Der __fp16
-Gleitkomma-Datentyp ist eine bekannte Erweiterung des C-Standards, der insbesondere auf ARM Prozessoren verwendet wird. Ich möchte die IEEE-Version davon auf meinem x86_64-Prozessor ausführen. Ich weiß zwar, dass sie das normalerweise nicht haben, aber ich würde sie mit "unsigned short" -Speicher (sie haben die gleichen Ausrichtungsanforderungen und den gleichen Speicherplatz) und (Hardware-) Float-Arithmetik emulieren können.
Gibt es eine Möglichkeit, das in gcc anzufordern?
Ich gehe davon aus, dass die Rundung etwas "falsch" ist, aber das ist für mich in Ordnung.
Wenn dies auch in C++ funktionieren würde, wäre dies ideal.
Ich habe in gcc (ab gcc 8.2.0) keine Möglichkeit dazu gefunden.
In Version 6.0.0 zeigten die folgenden Optionen einige Erfolge:
clang -cc1 -fnative-half-type -fallow-half-arguments-and-returns
Die Option -fnative-half-type
aktiviert die Verwendung des __fp16
-Typs (anstatt sie in den Float-Modus umzuwandeln). Während die Option -fallow-half-arguments-and-returns
es ermöglicht, __fp16
als Wert zu übergeben, ist die API keine Standard-API. Achten Sie jedoch darauf, keine verschiedenen Compiler zu mischen.
Davon abgesehen bietet es keine mathematischen Funktionen, die __fp16
-Typen verwenden (sie werden in/von float
oder double
hochgestuft).
Für meinen Anwendungsfall hat es gereicht.