我想在原生支持半精度浮点的 Jetson AGX Xavier(使用 armv8.2 架构)上进行半精度浮点计算。由于 _Float16 数据类型是半精度浮点的算术数据类型,所以我编写了以下示例:
#include <stdio.h>
#include <math.h>
int main()
{
_Float16 x = 38808.5;
_Float16 y = 33096;
_Float16 res;
res=333.75*y*y*y*y*y*y+4*x*x*(11*4*x*x*y*y-y*y*y*y*y*y-121*y*y*y*y-2.0)
+5.5*y*y*y*y*y*y*y*y+2*x/(2*y);
printf("%e\n", (double)res);
return 0;
}
使用 gcc-7 我可以成功编译并运行它,但是使用 g++-7 我得到了错误:
‘_Float16’ was not declared in this scope
根据this reference,C++似乎不支持_Float16。我想知道在 C++ 中使用 _Float16 数据类型是否有任何替代方法?