2

私は動的言語 (Clojure) を使用して、JCuda を使用したインタラクティブな開発方法で CUDA コンテキストを作成しています。多くの場合、への呼び出しを含む初期化子を呼び出しますjcuda.driver.JCudaDriver/cuInit。cuInit を複数回呼び出しても安全ですか? また、cuInitのdestroyメソッドのようなものはありますか?エラーコードCUDA_ERROR_DEINITIALIZEDが返ってくる可能性があるのでお願いします。

4

1 に答える 1

3

質問に答えると、はい、おそらくcuInit複数回呼び出しても安全です。そうすることによる副作用に気づいていません。

ただし、cuInitAPI 内で 1 回限りの初期化プロセスのみをトリガーすることに注意してください。デバイスやコンテキストでは何もせず、CUDA_ERROR_DEINITIALIZED を返すことは絶対にできません。アプリケーションを呼び出したに実行する手順cuInit(つまり、コンテキストの作成) を実行すると、実際に影響があります。これを行うと、呼び出すたびに新しいコンテキストが作成され、コンテキストがアクティブに破棄されない場合、リソースの枯渇が発生します。API の同等の初期化解除呼び出しはありません。意図は、一度初期化されると、アプリケーションが終了するまでランタイム API がその状態にとどまることが期待されることだと思います。

于 2012-09-09T10:11:29.380 に答える