作者热门文章
- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
__fp16
float 据类型是众所周知的 C 标准扩展,尤其是在 ARM 处理器上使用。我想在我的 x86_64 处理器上运行它们的 IEEE 版本。虽然我知道他们通常没有这些,但我可以使用“无符号短”存储(它们具有相同的对齐要求和存储空间)和(硬件)浮点运算来模拟它们。
有没有办法在 gcc 中请求?
我认为舍入可能有点“不正确”,但这对我来说没问题。
如果这也适用于 C++,那将是理想的。
最佳答案
我没有在 gcc 中找到这样做的方法(从 gcc 8.2.0 开始)。
至于 clang,在 6.0.0 中,以下选项显示了一些成功:
clang -cc1 -fnative-half-type -fallow-half-arguments-and-returns
-fnative-half-type
选项允许使用 __fp16
类型(而不是将它们提升为 float )。虽然选项 -fallow-half-arguments-and-returns
允许按值传递 __fp16
,但 API 是非标准的,请注意不要混合不同的编译器。
话虽如此,它不提供使用 __fp16
类型的数学函数(它会将它们提升到 float
或 double
或从 float
提升它们)。
这对我的用例来说已经足够了。
关于c++ - 如何在 gcc 上为 x86_64 启用 __fp16 类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45108628/
我是一名优秀的程序员,十分优秀!