はじめに 本ドキュメントではFortran版CUDAコンパイラであるCUDA Fortranを用いたGPU計算について解説します。CUDAとはNVIDIA GPU向けの開発環境であり、従来よりC言語版であるCUDA CがNVIDIA社より提供されています。本センターのTSUBAMEスーパーコンピュータは680枚のTesla GPUを搭載しており、既存アプリケーションのCUDAへの移植により大幅な高速化が報告されています。CUDA FortranはNVIDIA社との協力によりPGI社により開発・提供されているもので、従来のC言語版CUDAと同様のGPU開発環境をFortran向けに提供するものです。これにより、FortranユーザにとってGPUの利用が敷居の低いものとなっております。 東工大GSICではCUDA Fortranを2010年1月よりTSBUAMEに導入しており、その利用の手順は
以前に、はじめてのCUDAプログラミングで分子動力学計算というブログ記事を書いたことがある。最近このなんちゃって分子動力学計算(MD)プログラムのソースコードを読み直してみたのだが、かなりひどい。しかも、「CUDAプログラミング」でググってみると、この記事が2番目にくる。こんないい加減なコードを参考にされたら読んだ人にも迷惑が掛かるので修正することにした。それほどCUDAに慣れているわけではないが、前回のコードよりはましだと思う。 それにしてもコードの内容がひどい。意味もなく__syncthreads()が入っているし、複数のスレッドから同じグローバルメモリに書き込みしてるし、レジスタを活用してないし、計算の順序は非効率だし、ダメダメだ。 そこでまず、CUDA Visual Profilerで関数のパフォーマンス測定を行った。因みにこのプロファイラはCUDAプログラミングツールキットに含ま
ここではFortranのプログラムをCUDAのプログラムに置き換える方法を記載します。 FortranとCUDAでは言語仕様が異なり、変更しなければならない点、 置き換え時に注意しなければならない点があります。 置き換えの手順 置き換えは基本的に以下の手順で行います。 1.FortranプログラムをCプログラムに置き換えます。>> 詳細 CUDAプログラムはFortranプログラムから直接呼び出すことはできませんので、 Cを経由してCUDAを呼び出すことになります。 その際に一度、プログラムそのものをCに置き換え、結果を確認します。 2.CプログラムをCUDAプログラムに置き換えます。>> 詳細 CからCUDAにデータを受け渡し、CUDAで実行します。 初期の段階では並列化を行わず、単純に実行し、結果を確認します。 3.CUDAプログラムの並列化を実施
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く