GPU の共有メモリが Matlab の並列計算ツールボックスでどのように使用されているかを一般的に誰かが教えてくれますか? たとえば、MP ユニットを同期するために明示的に使用できますか。
ところで。私は、1.5GB のメモリ、マルチプロセッサあたり 32 コア (MP あたり 16 コア)、および 64Kb の共有 (L1) メモリを備えた GTX 580 を持っています。
ありがとう
GPU の共有メモリが Matlab の並列計算ツールボックスでどのように使用されているかを一般的に誰かが教えてくれますか? たとえば、MP ユニットを同期するために明示的に使用できますか。
ところで。私は、1.5GB のメモリ、マルチプロセッサあたり 32 コア (MP あたり 16 コア)、および 64Kb の共有 (L1) メモリを備えた GTX 580 を持っています。
ありがとう
Matlabの答えはわかりませんが、Pythonで作業する意思がある場合は、PyCUDAが最適です。カーネルコードはCUDA-Cで直接開発し、Pythonでは長い文字列で書き出されます。次に、PyCUDAを使用すると、これらをコンパイルし、デバイス変数を設定し、デバイスとの間でデータを送受信し、起動構成でカーネルを実行してスレッド/ブロックなどを制御できます。共有メンバーを利用するには、shared
キーワードを使用して変数を宣言するだけです。 CUDA-Ccode-as-Python-string。
ここにリンクされている画像処理用のコードをいくつか書きました。解凍して、CUDA-CソースモジュールをPython文字列として記述した方法を確認できます。NumPyとSciPyを使用すると、Pythonの残りのユーザーエクスペリエンスはMatlabと非常によく似ており、さらに優れています。Matlabでこのプロジェクトを行うことに結婚していない場合は、PyCUDAに切り替えることを検討してください。
マイス、
GPU 用の M コードについて説明したいと思います。Jacket が GPU にアクセスするための便利な代替手段であることがわかりました。Jacket はデフォルトで共有メモリを使用して処理を行います。自分で制御したい場合は SDK を使用します。
GTX 580 は素晴らしいカードですが、現金を持っている場合は、長期的な信頼性 (特に長時間実行される科学アプリケーションの場合) のために、Tesla GPU のいくつかを個人的にお勧めします。