Mi az egész az FP16, FP32 a Pythonban? Potenciális üzleti partneremmel és egy mély tanulási telepítést építünk az idősorokkal való együttműködésre. “FP16 és FP32” -vel állt elő, miközben GPU-t talált. Úgy tűnik, hogy lebegőpontos értékekről beszél 16 vs 32 bites értékeken. (Adatpontjaink így néznek ki: “5989.12345”, tehát eléggé biztos vagyok abban, hogy 16 bites.)

Az FP16 egy speciális technika, amelyet a GPU-k a teljesítmény javítására használnak, vagy csak divatos kifejezés a 16 bites lebegő értékek használatára a 32 standard lebegés helyett?

Megjegyzések

  • Igen, az FP16 16 bitet jelent a GPU kontextusában.

Válasz

Az FP32 és FP16 jelentése 32- bites lebegőpontos és 16 bites lebegőpontos. A GPU-k eredetileg az FP32-re összpontosítottak, mert ezek a 3D-s játékokhoz szükséges számítások. Manapság sok GPU natív támogatást nyújt az FP16-hoz, hogy felgyorsítsa a neurális hálózatok kiszámítását. ( https://blog.slavv.com/titan-rtx-quality-time-with-the-top-turing-gpu-fe110232a28e ) azt fogja látni, hogy az FP16-ot támogató GPU-k majdnem kétszer gyorsabban számolják az FP16-ot, mint az FP32. vegye figyelembe, hogy az FP16-ot támogató újabb kártyák (például az NVidia 2080 sorozat) szintén abo Az FP32 esetében 20% -kal gyorsabban, mint elődjüknél (1080), 140% -kal növekszik az FP16 ideghálózatainak kiképzése az előző kártyák FP32-hez képest.

De van egy figyelmeztetés. Neurális hálózatát az FP16 segítségével kell megírni, és ugyanolyan pontosságúnak kell lennie. Az FP16 tervezési szempontból alacsonyabb pontossággal rendelkezik, mert sokkal kevesebb bit van arra, hogy azonos számot képviseljen. Néhányan vegyes precíziós modellek mellett döntenek a gyors és pontos ( https://hackernoon.com/rtx-2080ti-vs-gtx-1080ti-fastai-mixed-precision-training-comparisons-on-cifar-100-761d8f615d7f ) érdekében. De az utolsó linken látja, hogy a sebesség gyorsabb a vegyes pontosság érdekében, de nem kétszer olyan gyors, mint amikor tiszta FP16-ot használ. Elméletileg használhatná az FP32 súlyokat is, és néhányat átalakíthatna FP16 súlyokká, de a pontosság csökkenhet.

Tehát a végén meg kell értenie, hogy átírhatja-e neurális hálózatát az FP16 teljes vagy részleges használatához . Ha nem tud, akkor nem kap további előnyöket az FP16 kompatibilis kártyákkal.

Az FP16 maximális értéke 65504, a minimum pedig 5,96 × 10−8. A legjobb pontosság az 5989.12345 esetében nagy valószínűséggel az 5988.0 lesz (bitekkel lejátszva a következővel: https://www.h-schmidt.net/FloatConverter/IEEE754.html ). Ha ez a pontosság és nagyság nem elég neked, akkor edzés előtt méretezheted adataidat az FP16-hoz, majd dupla sebességgel edzhetsz. Vagy vegyes precíziós modelleket használjon, ahol az FP32 van bemenetként, majd csökkentse a pontosságot a későbbi rétegekben.

Megjegyzések

  • rendkívül informatív blogtartalom, ezért ehhez 🙂
  • A FP16-ba felvettem a számod valószínű megjelenítését is. Ha elégedett vagy a válasszal, jó lenne, ha elfogadható válaszként ellenőrizhetnéd a választ, és ha akarod, akkor is szavazz rá.

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük