Javítás: A CPU támogatja azokat az utasításokat, amelyek szerint a TensorFlow bináris fájlt nem az AVX2 használatához fordították össze

Az Advanced Vector Extensions ( AVX, más néven Sandy Bridge New Extensions ) az Intel és az AMD mikroprocesszorainak x86 utasításkészlet-architektúrájának kiterjesztései, amelyeket az Intel javasolt az Intel által 2008 márciusában, és amelyeket az Intel először támogatott a Sandy Bridge processzorral, 2011 első negyedévében és később. az AMD bekapcsolta a Bulldozer processzorral, amely 2011. harmadik negyedévében szállított. Az AVX új funkciókat, új utasításokat és új kódolási sémát kínál.

A figyelmeztetés cmd-ben jelenik meg

Ezt a figyelmeztető üzenetet a TensorFlow megosztott könyvtára nyomtatja ki. Amint az üzenet jelzi, a megosztott könyvtár nem tartalmazza azokat a utasításokat, amelyeket a CPU felhasználhat.

Mi okozza ezt a figyelmeztetést?

A TensorFlow 1.6 után a bináris fájlok AVX utasításokat használnak, amelyek esetleg már nem futnak régebbi processzorokon. Tehát a régebbi CPU-k nem tudják futtatni az AVX-t, míg az újabbak esetében a felhasználónak a forrásból kell készítenie a tensorflow-t CPU-jához. Az alábbiakban található az összes információ, amelyet tudnia kell erről a figyelmeztetésről. Ezenkívül egy módszer, amellyel megszabadulhat ettől a figyelmeztetéstől a jövőbeni használatra.

Mit csinál az AVX?

Különösen az AVX vezette be az FMA-t (Fused multiply-add); amely a lebegőpontos szorzó-művelet, és ezt az összes műveletet egyetlen lépésben hajtják végre. Ez elősegíti, hogy minden művelet probléma nélkül felgyorsuljon. Ez gyorsabbá és könnyebbé teszi az algebrai számítást, valamint a pont-termék, a mátrix szorzásának, konvolúciójának, stb. Az AVX-t és az FMA-t támogató CPU-k sokkal gyorsabbak lesznek, mint a régebbiek. De a figyelmeztetés szerint a CPU támogatja az AVX-t, tehát ez jó dolog.

Intel AVX technológia

Miért nem használja alapértelmezés szerint?

Ennek oka az, hogy a TensorFlow alapértelmezett disztribúciója a CPU kiterjesztések nélkül épül fel. A CPU kiterjesztései szerint az AVX, AVX2, FMA, stb. A problémát kiváltó utasítások alapértelmezés szerint nem engedélyezettek a rendelkezésre álló alapértelmezett építményeknél. Azért nem engedélyezettek, hogy ezt a lehető legtöbb processzorral kompatibilisebbé tegyék. E kiterjesztések összehasonlításához a GPU helyett sokkal lassabbak a CPU-ban. A CPU-t kis méretű gépi tanuláson használják, miközben a GPU használatát várják, ha közép- vagy nagyméretű gépi tanulásra használják.

Javítva a figyelmeztetést!

Ezek a figyelmeztetések csak egyszerű üzenetek. Ezeknek a figyelmeztetéseknek az a célja, hogy tájékoztassák Önt a beépített TensorFlow forrásról. Ha a TensorFlow-t a forrásból készíti, akkor gyorsabb lehet a gépen. Tehát ezek a figyelmeztetések a TensorFlow felépítéséről származnak a forrásból.

Ha GPU van a számítógépen, akkor figyelmen kívül hagyhatja ezeket az AVX támogatás figyelmeztetéseit. Mivel a legdrágábbokat GPU-eszközre szállítják. És ha azt akarja, hogy ez a hiba többé ne jelenjen meg, akkor ezt egyszerűen figyelmen kívül hagyhatja:

importálja az operációs rendszer modult a fő programkódba, és állítsa be a leképezési objektumot is

 # A figyelmeztető import letiltása érdekében os os.environ ['TF_CPP_MIN_LOG_LEVEL'] = '2' 

De ha Unix-on van, akkor használja az export parancsot a bash shell-ben

 export TF_CPP_MIN_LOG_LEVEL = 2 

De ha nincs GPU, és a lehető legnagyobb mértékben szeretné használni a CPU-t, akkor a TensorFlow-t a CPU-hoz optimalizált forrásból kell készítenie, itt engedélyezve az AVX, AVX2 és FMA-t.

Érdekes Cikkek