• トップ
  • G-DEPについて
  • ご購入ガイド
  • サポート
  • お問い合わせ

G-DEPトップ  >  G-DEPの高速演算記  >  高速演算記 第7回 「チューニング技法その2 GPUチューニングの実際」

高速演算記 第7回 「チューニング技法その2 GPUチューニングの実際」

今回はCUDAのSDK[1]に含まれるサンプルプログラム reduction を例に実際のカーネル記載について説明していきたいと思います。プログラム本体はNVIDIA社の開発者サイトからCUDA SDKをインストールすることによりご覧頂くことが可能です。

リダクションとは総和計算などn個の配列要素から、演算により一つの値を求める作業です。本例では総和計算をCUDAカーネルで記述する場合を説明します。CUDA SDKのサンプルコードを見ると複数のカーネルが記載されていることが分かりますが、総和計算のコードをもっとも簡単な形で記述したreduce0()からはじまり、reduce6()まで次第に最適化されています。それぞれの段階でどの程度の高速化が実現されているのかを比較するのにはよいサンプルコードではないでしょうか。

さて、計算を単一プロセッサで行う場合は以下のようになります。

int sum = data[0];
for(int s=1; s < n; s++) {
  sum += data[s];
}
続きを読むには...

この記事は会員限定のため、G-DEP会員登録(無料)が必要となります。
未登録の方は「登録」ボタンをクリックしG-DEP会員登録を行ってください。
※会員登録をされますと記事の閲覧の他、コメント投稿も可能になります。

新規登録  ログイン