Non*_*yme 13 c c++ x86 gcc half-precision-float
的__fp16浮点数据类型是一个众所周知的扩展上的ARM处理器特别是所使用的C标准.我想在我的x86_64处理器上运行它们的IEEE版本.虽然我知道他们通常没有这个,但我可以用"无符号短"存储(它们具有相同的对齐要求和存储空间)和(硬件)浮点算法来模拟它们.
有没有办法在gcc中请求?
我认为舍入可能稍微"不正确",但这对我来说没问题.
如果这也适用于C++,那将是理想的.
我没有在 gcc 中找到这样做的方法(从 gcc 8.2.0 开始)。
至于 clang,在 6.0.0 中,以下选项显示了一些成功:
clang -cc1 -fnative-half-type -fallow-half-arguments-and-returns
Run Code Online (Sandbox Code Playgroud)
该选项-fnative-half-type允许使用__fp16类型(而不是将它们提升为浮动)。虽然该选项-fallow-half-arguments-and-returns允许__fp16按值传递,但 API 是非标准的,请注意不要混合不同的编译器。
话虽如此,它不提供使用__fp16类型的数学函数(它会将它们提升为/从float或double)。
对于我的用例来说已经足够了。
| 归档时间: |
|
| 查看次数: |
4057 次 |
| 最近记录: |