下記のページに Stream を使って多重データ転送する方法と
ベンチマークが載っている。
How to Overlap Data Transfers in CUDA C/C++ | Parallel Forall:
http://devblogs.nvidia.com/parallelforall/how-overlap-data-transfers-cuda-cc/
最初に全てのストリームでデータを転送してカーネルを実行する方法と
データを転送してカーネルを実行するのをストリーム数繰り返す方法とでは
デバイスによってパフォーマンスが違うようだ。
2015-02-28
CUDA の Stream 間の同期方法
CUDA の Stream 間の同期方法が API を見ても分からなかったが、下記サイトを読むと、cudaEventRecord と cudaStreamWaitEvent を使えばいいようだ。
Declaring dependencies with cudaStreamWaitEvent - Cedric Augonnet:
http://cedric-augonnet.com/declaring-dependencies-with-cudastreamwaitevent/
Java で例えるなら、cudaEventRecord が Object#notifyAll で、cudaStreamWaitEvent が Object#wait になるだろうか。
私の個人的な感覚では、cudaEventRecord はイベント API に属さずにストリームの API に属した方が直感的ではないかと思う。
Declaring dependencies with cudaStreamWaitEvent - Cedric Augonnet:
http://cedric-augonnet.com/declaring-dependencies-with-cudastreamwaitevent/
Java で例えるなら、cudaEventRecord が Object#notifyAll で、cudaStreamWaitEvent が Object#wait になるだろうか。
私の個人的な感覚では、cudaEventRecord はイベント API に属さずにストリームの API に属した方が直感的ではないかと思う。
2015-02-27
CUDA セッションのタイムラインを見たい
Visual Studio 上で、実行される関数がどれくらい
時間がかかっているかを視覚化したタイムラインを見るには、
時間がかかっているかを視覚化したタイムラインを見るには、
メニューの [Nsight]-[Start Performance Analysis...] を選択して、
[Trace Settings] の CUDA にチェックを入れて、
[Application Control] の [Launch] ボタンを押す。
プログラムの実行後にレポートが表示されるので、
[Session Overview] の [Timeline] を選択する。
タイムラインの時間軸をズームするには、
[Ctrl] を押しながらマウスのホイールを回す。
[Ctrl] を押しながらマウスのホイールを回す。
2015-02-26
CUDA 6.5 でプロジェクトを作って実行してみた
Windows 7 に Visual Studio Community 2013 と CUDA 6.5 をインストールする。
言語パックがエラーで導入できなかったので、英語のIDEのまま使用することにした。
Visual Studio を起動する。
メニューの [File]-[Project ...] を選択する。
[Templates] で [NVIDIA]-[CUDA 6.5] を選択し、[CUDA 6.5 Runtime] を選び、
[Name] にプロジェクト名、[Location] に配置フォルダを指定して [OK] を押す。
プロジェクトが作成され、kernel.cu ファイルが作成される。
kernel.cu ファイルには main 関数といくつかのサンプルコードがある。
メニューの [Debug]-[Start Debugging] からプログラムを実行する。
上手く動けば、設定を変更して、ソースコードを入力していく。
言語パックがエラーで導入できなかったので、英語のIDEのまま使用することにした。
Visual Studio を起動する。
メニューの [File]-[Project ...] を選択する。
[Templates] で [NVIDIA]-[CUDA 6.5] を選択し、[CUDA 6.5 Runtime] を選び、
[Name] にプロジェクト名、[Location] に配置フォルダを指定して [OK] を押す。
プロジェクトが作成され、kernel.cu ファイルが作成される。
kernel.cu ファイルには main 関数といくつかのサンプルコードがある。
メニューの [Debug]-[Start Debugging] からプログラムを実行する。
上手く動けば、設定を変更して、ソースコードを入力していく。
CUDA 6.5 のビルドで出る大量の warning C4819 を消す
Visual Studio 2013 の CUDA 6.5 でビルドすると、次のような警告が大量に出る。
これを表示しないようにするには、プロジェクトのプロパティを開き、
[CUDA C/C++]-[Command Line] の [Additional Options] に
を追加する。
1>c:\program files\nvidia gpu computing toolkit\cuda\v6.5\include\math_functions.h : warning C4819: The file contains a character that cannot be represented in the current code page (932). Save the file in Unicode format to prevent data loss
これを表示しないようにするには、プロジェクトのプロパティを開き、
[CUDA C/C++]-[Command Line] の [Additional Options] に
-Xcompiler "/wd 4819"
を追加する。
Geforce GTX 9xx 用の CUDA
CUDA 6.5 をインストールして、設定の [Code Generation] に「compute_52,sm_52」を指定してビルドすると、次のエラーが出る。
GTX9xx 用に別の CUDA があるようなので、下記をダウンロードしてインストールするとビルドできるようになった。
CUDA Downloads For GeForce GTX9xx
https://developer.nvidia.com/cuda-downloads-geforce-gtx9xx
nvcc fatal : Unsupported gpu architecture 'compute_52'.
GTX9xx 用に別の CUDA があるようなので、下記をダウンロードしてインストールするとビルドできるようになった。
CUDA Downloads For GeForce GTX9xx
https://developer.nvidia.com/cuda-downloads-geforce-gtx9xx
Visual Studio Community 2013 に CUDA 6.5 をインストール
Visual Studio Express 2013 for Windows Desktop に CUDA 6.5 をインストールして使おうとしたのだが、設定などが上手くいかない。
Visual Studio Community 2013 Update 4 に CUDA 6.5 をインストールしたら、すんなりいった。
無理に Visual Studio Express を使わずに、素直に Visual Studio Community 2013 を使えばいいようだ。
Visual Studio Community 2013 Update 4 に CUDA 6.5 をインストールしたら、すんなりいった。
無理に Visual Studio Express を使わずに、素直に Visual Studio Community 2013 を使えばいいようだ。
Subscribe to:
Posts (Atom)