Other

Wie ich lernte Half-Precision-Floats zu lieben (und den gcc!)

🇩🇪 · HacKNology

Für ein besseres Verständnis wird dringend geraten, zuerst diesen Artikel hier durchzuarbeiten … Motivation Aus dem letzten Projekt waren noch zwei Fragestellungen übergeblieben: Könnte man nicht auch die kürzeren Fließkommaformate für neuronale Netze (typischerweise) nebst passender mathematischer Operation selbst implementieren? Wäre es dann möglich, entsprechende ‘custom’ Mnemonics (opcodes) im Compiler nachzurüsten? Und wenn ja: Wieviel Aufwand wäre hierfür zu treiben? Diesen Themen widmet sich dieses ‘Projekt’ … 1. Warum spielen die kurzen 16-Bit-Floats überhaupt so eine Rolle? Der Platz auf einem Chip (oder - wie hier - dem FPGA) ist normalerweise begrenzt, d.h. ’teuer’. Umgekehrt kommt es bei Anwendungen im Graphikbereich (3d) oder auch neuronalen Netzen nicht so sehr auf die Genauigkeit an. Daher kann es sinnvoll sein, einen Datentyp zu verwenden, der praktisch den halben Platz einspart (50%!) und dafür schon in der ersten (dezimalen) Nachkommastelle nicht mehr so ganz exakt ist …