4

Mathematica を使用して単純な変数を GPU メモリにロードしています。

mem = CUDAMemoryLoad[{1, 2, 3}]

そして、次の結果を取得します。

CUDAMemory["<135826556>", "Integer32"]

ここで、GPU メモリ内のこのデータを使用して、Thrust を使用して別の .cu プログラム (Mathematica の外部) からアクセスしたいと考えています。

これを行う方法はありますか?もしそうなら、誰かがその方法を説明してもらえますか?

4

1 に答える 1

4

いいえ、これを行う方法はありません。CUDAコンテキストはプライベートであり、プロセスの標準APIには、別のプロセスコンテキストに割り当てられているメモリにアクセスする方法はありません。

CUDA 4のリリースサイクル中に、cudaIpcと呼ばれる新しいAPIがリリースされました。これにより、同じホスト上で実行されているCUDAコンテキストを持つ2つのプロセスが、GPUメモリ割り当てにハンドルをエクスポートおよび交換できるようになります。APIは、統合アドレッシングサポートで実行されているLinuxホストでのみサポートされます。私の知る限り、Mathematicaは現在これをサポートしていません。

于 2012-11-14T06:38:14.890 に答える