Korjaus: Suoritin tukee ohjeita siitä, että tätä TensorFlow-binaaria ei ole käännetty käyttämään AVX2: ta

Advanced Vector Extensions ( AVX , joka tunnetaan myös nimellä Sandy Bridge New Extensions ) ovat x86-käskyjoukon arkkitehtuurin laajennuksia Intelin ja AMD: n mikroprosessoreille, joita Intel ehdotti maaliskuussa 2008 ja joita Intel tukee ensin Sandy Bridge -prosessorilla vuoden 2011 ensimmäisellä neljänneksellä ja myöhemmin AMD on ottanut käyttöön Bulldozer-prosessorin, joka toimitetaan vuoden 2011 kolmannella neljänneksellä. AVX tarjoaa uusia ominaisuuksia, uusia ohjeita ja uuden koodausjärjestelmän.

Tämän varoitusviestin on tulostanut TensorFlow'n jaettu kirjasto. Kuten viesti osoittaa, jaettu kirjasto ei sisällä sellaisia ​​ohjeita, joita suorittimesi voisi käyttää.

Mikä aiheuttaa tämän varoituksen?

TensorFlow 1.6: n jälkeen binäärit käyttävät nyt AVX-ohjeita, jotka eivät ehkä enää toimi vanhemmissa suorittimissa. Joten vanhemmat suorittimet eivät pysty käyttämään AVX: tä, kun taas uudempien, käyttäjän on rakennettava tensorflow lähteestä CPU: lle. Alla on kaikki tiedot, jotka sinun on tiedettävä tästä varoituksesta. Myös menetelmä tämän varoituksen poistamiseksi tulevaa käyttöä varten.

Mitä AVX tekee?

Erityisesti AVX esitteli FMA: n (Fused multiply-add); joka on liukuluku kerro-lisää -operaatio, ja tämä kaikki operaatio suoritetaan yhdessä vaiheessa. Tämä auttaa nopeuttamaan monia toimintoja ongelmitta. Se tekee algebran laskennasta nopeamman ja helpomman käytön, myös pistetulon, matriisikertoimen, konvoluution jne. Ja nämä ovat kaikki käytetyimmät ja perustoiminnot jokaisessa koneoppimisessa. CPU: t, jotka tukevat AVX: tä ja FMA: ta, ovat paljon nopeammat kuin vanhemmat. Mutta varoituksessa todetaan, että suorittimesi tukee AVX: tä, joten se on hyvä asia.

Miksi sitä ei käytetä oletuksena?

Tämä johtuu siitä, että TensorFlow-oletusjakauma on rakennettu ilman suorittimen laajennuksia. Suoritinlaajennuksilla se ilmoittaa AVX: n, AVX2: n, FMA: n jne. Tämän ongelman laukaisevat ohjeet eivät ole oletusarvoisesti käytettävissä käytettävissä olevissa oletusrakennuksissa. Syyt siihen, etteivät ne ole käytössä, on tehdä tämä yhteensopivammaksi mahdollisimman monien suorittimien kanssa. Myös näiden laajennusten vertaamiseksi ne ovat paljon hitaampia suorittimessa kuin GPU: ssa. CPU: ta käytetään pienimuotoisessa koneoppimisessa, kun taas GPU: ta odotetaan käytettävän keskisuuressa tai laajamittaisessa koneoppimisessa.

Varoituksen korjaaminen!

Nämä varoitukset ovat vain yksinkertaisia ​​viestejä. Näiden varoitusten tarkoituksena on kertoa rakennettu TensorFlow lähteestä. Kun rakennat TensorFlow-lähteen lähteestä, se voi olla nopeampi koneessa. Joten kaikki nämä varoitukset kertovat sinulle on rakentaa TensorFlow lähteestä.

Jos koneessasi on GPU, voit ohittaa nämä AVX-tuen varoitukset. Koska kalleimmat lähetetään GPU-laitteella. Ja jos et halua enää nähdä tätä virhettä, voit yksinkertaisesti sivuuttaa sen lisäämällä tämän:

tuo OS-moduuli pääohjelmakoodiin ja aseta sille myös kartoitusobjekti

# Varoituksen tuonnin poistaminen käytöstä os.environ ['TF_CPP_MIN_LOG_LEVEL'] = '2'

Mutta jos käytät Unixia , käytä vientikomentoa bash-kuoressa

vie TF_CPP_MIN_LOG_LEVEL = 2

Mutta jos sinulla ei ole GPU: ta ja haluat käyttää keskusyksikköäsi niin paljon kuin mahdollista, sinun tulee rakentaa TensorFlow lähteestä, joka on optimoitu suorittimellesi ja jossa AVX, AVX2 ja FMA ovat käytössä.