CUDA.NET

CUDAをC#で使うためのライブラリ (Ver.2.0.3)
http://www.gass-ltd.co.il/en/products/cuda.net/

の環境で動かしてみたのでメモ。

  • CUDAのドライバ (Ver.178.28)
  • Toolkit (Ver.2.0)

の2つだけインストール。(ドライバは、サイト上の表記は対応OSがWindowsXPだけど、ちゃんとファイル名にWin2kって入ったものが落ちてくる。)

あと、nvccがVisualStudio付属のC++コンパイラ(cl.exe)を必要とするので

をインストール。(これはVCでなくて、WindowsSDKでも良かったかもしんない。)

cl.exeにパスが通っていなかったので、

以上でCUDA.NETが使えるので、CUDA.NETのページにあるSampleをビルドして実行。結果は

clock
OK
bitonic sort
OK
simpleCUFFT
実行出来るけど、『ERROR, l2-norm error 0.7161518 is greater than epsilon 1E-05』ってのが出て失敗。計算精度が足りない?block数とか変えればどうにかなんのかな??
asyncAPI
CopyHostToDeviceAsyncメソッドを呼び出すところでエラー発生(CUStream型の変数を呼び出すあたりでエラーが起きてるっぽい。原因不明)

とりあえず動いたので今日はこの辺で終了。EEだと、VC#で.cuファイルの色分け、補完が利かないのが不便だなぁ。。。