PTXでf16x2

目次

Pascal世代から使えるようになった半精度演算はPTXでの型としてはf16とf16x2にあたる. f16x2はf16を2つまとめたもので,これを使うとSIMD演算をすることができる. 今回は備忘録も兼ねてf16x2のことを少しだけ書いておく.

f16x2

レジスタ

.reg .b32 %hoge;
のように32bit型で指定する.

計算

mul.f16x2 %hoge0,%hoge1,%hoge2;
のようにf16x2型で計算する.

f16,f16x2の相互変換

変換というほどでもないが
.reg .b16 %splited<2>;

//f16x2を2つのf16へ
mov.b32 {%splited0,%splited1}, %hoge;
//2つのf16をf16x2へ
mov.b32 %hoge, {%splited0,%splited1}; 

組み込み関数

PTXは書きたくない!という方はCUDAの組み込み関数を使えばf16x2の演算を使えます.(こっちが普通の使い方かも?)

参考ページ

カテゴリー:CUDA
記事作成日:2017-12-15