webentwicklung-frage-antwort-db.com.de

Also aktiviere Sie __fp16-Typ auf gcc für x86_64

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.

10
Nonyme

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.

2
Nonyme