0

OpenGLとCUDAの相互運用性を利用したい。いくつかのチュートリアルで述べたように、最初のステップはデバイスを選択することです。ただし、メイン関数の最初の行でcudaGLSetGLDevice(0)を呼び出すと、プログラムは「cudaSafeCall()ランタイムAPIエラー36:デバイスがこのプロセスでアクティブな間は設定できません」という情報で終了しました。

実際、cudaGLSetDeviceを呼び出す前にcudaDevicePropとcudaChooseDeviceを使用しても、エラーは引き続き存在します。

私を信じてください、私のコンピュータはただ1つのGPU、9800GTを持っています。また、cudaGLSetGLDeviceの呼び出しは、他のCUDA関数の前に行う必要があることを知っているので、メイン関数の最初の行に配置します。

そして、私はWindows SDKを使用して、過剰ではなくOpenGLをレンダリングしますが、これには問題がありますか?

4

1 に答える 1

2

call の前に初期化された opengl コンテキストが必要ですcudaGLSetDevice。大量の場合glutInit(argc, argv);は呼び出されます。cuda<->opengl 相互運用機能呼び出しを使用する前に、opengl コンテキストを初期化します。

于 2012-05-07T12:47:45.100 に答える