Snow LeopardでCUDA 3.1を使う

Snow LeopardにCUDA 3.1を導入した。動作環境は下記の通り。

SDKをインストール後、サンプルをそのままmakeすると32bitのバイナリが出来るので、下記の手順に従って64bit向けにビルドする。

  • /doc/CUDA_SDK_release_notes.txt

1. Build the SDK project examples.

  • x86_64=1 configuration by typing "make x86_64=1"

基本のbandwidthTest (64bit)を実行してみる。

$ file ./bin/darwin/release/bandwidthTest 
./bin/darwin/release/bandwidthTest: Mach-O 64-bit executable x86_64
$ ./bin/darwin/release/bandwidthTest 
[bandwidthTest]
./bin/darwin/release/bandwidthTest Starting...

Running on...

 Device 0: GeForce 9400M
 Quick Mode

 Host to Device Bandwidth, 1 Device(s), Paged memory
   Transfer Size (Bytes)	Bandwidth(MB/s)
   33554432			1429.3

 Device to Host Bandwidth, 1 Device(s), Paged memory
   Transfer Size (Bytes)	Bandwidth(MB/s)
   33554432			1405.3

 Device to Device Bandwidth, 1 Device(s)
   Transfer Size (Bytes)	Bandwidth(MB/s)
   33554432			5060.0

[bandwidthTest] - Test results:
PASSED

Press <Enter> to Quit...

OSのバージョンもCUDAのバージョンも異なるので比較しにくいけど、前回「CUDAメモリ転送のパフォーマンス」で試した時より、「ホスト→デバイス」の転送速度が大きく改善されているようだ。

次に「メモリ固定」を指定して再実行してみる。

$ ./bin/darwin/release/bandwidthTest --memory=pinned
[bandwidthTest]
./bin/darwin/release/bandwidthTest Starting...

Running on...

 Device 0: GeForce 9400M
 Quick Mode

 Host to Device Bandwidth, 1 Device(s), Pinned memory, Write-Combined Memory Enabled
   Transfer Size (Bytes)	Bandwidth(MB/s)
   33554432			1396.1

 Device to Host Bandwidth, 1 Device(s), Pinned memory, Write-Combined Memory Enabled
   Transfer Size (Bytes)	Bandwidth(MB/s)
   33554432			1772.1

 Device to Device Bandwidth, 1 Device(s)
   Transfer Size (Bytes)	Bandwidth(MB/s)
   33554432			5060.4

[bandwidthTest] - Test results:
PASSED

Press <Enter> to Quit...

「デバイス→ホスト」方向の能力は上がっているけど、前回の「CUDAメモリ転送のパフォーマンス」程の結果は出ていない。CUDAのバージョンの違いが理由なのだろうか?CUDAのメモリ処理は相変わらず謎が多い。



関連