Co je to všechno o FP16, FP32 v Pythonu? Můj potenciální obchodní partner a já vytváříme Deep Learning Setup pro práci s časovými řadami. Při hledání GPU přišel s „FP16 a FP32“. Vypadá to, že mluví o hodnotách s plovoucí desetinnou čárkou v 16 proti 32 bitům. (Naše datové body vypadají takto: „5989.12345“, takže jsem si celkem jistý, že 16 bitů není dost.)

Je FP16 speciální technika, kterou GPU používají ke zlepšení výkonu, nebo je to jen fantazijní termín pro použití 16bitových floatových hodnot namísto 32 standardních floatů?

Komentáře

  • Ano, FP16 znamená 16 bitů v kontextu GPU.

Odpověď

FP32 a FP16 znamenají 32- bit s plovoucí desetinnou čárkou a 16-bit s plovoucí desetinnou čárkou. GPU se původně zaměřily na FP32, protože to jsou výpočty potřebné pro 3D hry. V dnešní době má mnoho GPU nativní podporu FP16 pro urychlení výpočtu neuronových sítí. Pokud se podíváte na některá měřítka ( https://blog.slavv.com/titan-rtx-quality-time-with-the-top-turing-gpu-fe110232a28e ) uvidíte, že GPU, které podporují FP16, jsou téměř dvakrát rychlejší než výpočet FP16 než FP32. Uvědomte si, že také novější karty podporující FP16 (jako NVidia 2080 series) U 20% rychlejší pro FP32 ve srovnání s jejich předchůdcem (1080) získáte nárůst o 140% na trénování neuronových sítí FP16 ve srovnání s FP32 na předchozích kartách.

Ale je tu upozornění. Vaše neuronová síť musí být zapsána pomocí FP16 a měla by také mít stejnou přesnost. FP16 mají konstrukčně nižší přesnost, protože mají mnohem méně bitů, které představují stejné číslo. Někteří se rozhodnou používat modely se smíšenou přesností, aby byly rychlé a přesné ( https://hackernoon.com/rtx-2080ti-vs-gtx-1080ti-fastai-mixed-precision-training-comparisons-on-cifar-100-761d8f615d7f ). Na posledním odkazu však vidíte, že rychlost je vyšší pro smíšenou přesnost, ale není dvakrát rychlejší, než když používáte čistý FP16. Můžete také teoreticky použít závaží FP32 a některé z nich převést na závaží FP16, ale přesnost by mohla klesnout.

Takže nakonec musíte pochopit, zda byste mohli přepsat svou neurální síť a plně nebo částečně používat FP16 . Pokud nemůžete, nedostanete žádné další výhody z karet kompatibilních s FP16.

Maximální hodnota pro FP16 je 65504 a minimum je 5,96 × 10−8. Nejlepší přesnost pro 5989.12345 bude s největší pravděpodobností 5988.0 (hraje se s bity na https://www.h-schmidt.net/FloatConverter/IEEE754.html ) Pokud je tato přesnost a velikost to pro vás nestačí, mohli byste si před tréninkem upravit data tak, aby vyhovovala FP16, a poté trénovat dvojnásobnou rychlostí. Nebo použijte modely se smíšenou přesností, kde máte jako vstup FP32, a pak snižte přesnost v pozdějších vrstvách.

Komentáře

  • vysoce informativní obsah blogu, za to thx 🙂
  • Také jsem zahrnoval pravděpodobné zastoupení vašeho čísla v 16. RP. Pokud jste s odpovědí spokojeni, bylo by dobré, kdybyste si odpověď mohli ověřit jako přijatou odpověď a také hlasovat, pokud chcete.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *