我正在寻找一个不需要 32 位精度的应用程序,12-16 位就足够了。
推力是否能够处理 float16(即将两个 16 位精度浮点数打包/解包成一个 32 位字)?
我应该使用定点算术吗?
CUDA 硬件不包括对half
-precision 算术的本机支持,仅支持与float
.
由于 C 没有内置half
类型,因此转换内在函数使用unsigned short
:
unsigned short __float2half_rn( float );
float __half2float( unsigned short );
这里接受的答案现在已经过时了。
Cuda 7.5 现在支持 16 位浮点数。
包括和数据类型的标题cuda_fp16.h
。half
half2