32 ビットの精度を必要としないアプリケーションを探しています。12 ~ 16 ビットで十分です。
スラストは float16 を処理できますか (つまり、2 つの 16 ビット精度浮動小数点を 32 ビット ワードにパック/アンパックします)?
固定小数点演算を使用する必要がありますか?
half
CUDA ハードウェアには、 -precision 演算のネイティブ サポートは含まれず、との変換のみが含まれfloat
ます。
C には組み込み型がないためhalf
、変換組み込み関数は次を使用しますunsigned short
。
unsigned short __float2half_rn( float );
float __half2float( unsigned short );
ここで受け入れられた回答は古くなっています。
Cuda 7.5 では、16 ビット浮動小数点がサポートされるようになりました。
およびデータ型のヘッダーcuda_fp16.h
を含めます。half
half2