トップページ

最新記事

half2のmax/min

背景

ないんですよね,CUDAのhalf2に対するSIMD max/minが.
halfにもないので愚直に書くとバラしてfloatにキャストするなりしてmax/minとって詰め戻すことになるかと.
そこをうまいことbit演算でできるよというのがこの記事です.

コード

肝となるのは__byte_perm関数.
何をしているかというのは「CUDAの整数 & bit演算関数 - 天炉48町」を見てもらえればわかると思います.
PTXで見ても分岐なしたったの9演算.
嬉しいですね.
int8なんかも最初の引き算ができれば同じ要領でSIMD max/min関数が作れそうですねー.

記事作成日:2020-04-15