私は、書いたコードをCUDAを使ってGPUで処理する独自のライブラリに入れました。新しいスレッドでCUDA対応ライブラリを呼び出す
私はQtのを使用してGUIフロントエンドを構築していて、GUIをロードするの一環として、私が呼び出したときに、アプリケーションが可能な限り応答するように、先に行くとGPUを初期化するために
CUresult res;
CUdevice dev;
CUcontext ctx;
cuInit(0);
cuDeviceGet(dev,0);
cuCtxCreate(ctx, 0, dev);
を呼び出しますCUDA対応ライブラリー。
問題は、別のスレッドからCUDA対応ライブラリを呼び出すようになったことです。
これを行うには何らかの努力が必要ですか?他のスレッドは、(cuInit()を呼び出すメインスレッドを除く)任意のcuda関数を呼び出すだけですが、私のコードは私のcudaライブラリのcudaFree()呼び出しでクラッシュしています。
ありがとうございました
私は、ワーカースレッドでcuCtxPopCurrent()を呼び出そうとしましたが、ワーカースレッドでnullの結果を返すようです – Derek