【CUDA】最適化テクニック

CUDA入門

高速化の手法として、1Threadごと1Byteづつ処理しているものを、4Byteまとめて処理するものがあります。

比較的、簡単に高速化ができるのでぜひやってみましょう。

処理内容

8192×8192のBYTE型の二次元配列に対し、縦方向に加算していき、8192の一次元配列に各X座標の加算結果を格納する処理です。

1スレッドが1つのX座標を担当します。

コード

1Byteずつ処理

4Byteずつ処理

4Byteずつまとめて処理するコードです。
確保する配列のサイズなどは変わっていませんが、カーネルでは1スレッドが4Byte分まとめて処理しています。

そのため、ブロックサイズなどが1/4になっていたりすることに注意しましょう。

処理時間

処理時間は以下の通り。

1Byteずつ処理533μsec
4Byteまとめて処理356μsec

なんと、処理時間が3割以上早くなりました。
簡単にできる割には、効果が大きいことが判ります。

マウスコンピューター/G-Tune