我正在尋找一個不需要32位精度的應用程序,12-16位就足夠了。可以推薦處理半精度浮點數(float16/IEEE 754-2008)嗎?
推力能夠處理float16's(即將兩個16位精度浮點數打包/解包爲32位字)?
我應該使用定點算術嗎?
我正在尋找一個不需要32位精度的應用程序,12-16位就足夠了。可以推薦處理半精度浮點數(float16/IEEE 754-2008)嗎?
推力能夠處理float16's(即將兩個16位精度浮點數打包/解包爲32位字)?
我應該使用定點算術嗎?
CUDA硬件不包括本機支持half
精算算法,只有轉換爲和從float
轉換。
因爲C沒有內置half
型,轉換內部函數使用unsigned short
:
unsigned short __float2half_rn(float);
float __half2float(unsigned short);
接受的答案在這裏已經過時。
Cuda 7.5現在支持16位浮點數。
爲half
和half2
數據類型包含標頭cuda_fp16.h
。
Cuda沒有16位浮點運算支持。你可以加載一半浮點數並在單個操作中轉換爲單精度,但就是這樣。 – talonmies 2012-08-01 18:41:30