Por que cudaGLSetGLDevice falhou, mesmo que seja chamado na primeira linha da função principal

Eu quero usar a interoperabilidade entre OpenGL e CUDA. Eu sei, como alguns tutoriais disseram, o primeiro passo é escolher o dispositivo. No entanto, quando chamei o cudaGLSetGLDevice (0) na primeira linha da função principal, o programa saiu com as informações "cudaSafeCall () Erro da API de tempo de execução 36: não é possível definir enquanto o dispositivo está ativo neste processo."

Na verdade, embora eu use cudaDeviceProp e cudaChooseDevice antes de chamar cudaGLSetDevice, o erro ainda existe.

Acredite, meu computador tem apenas uma GPU, 9800GT. E eu sei que a chamada de cudaGLSetGLDevice deve ser anterior a qualquer outra função CUDA, e é por isso que eu a coloquei na primeira linha da função principal.

E eu uso o Windows SDK para renderizar OpenGL em vez de glut, é problema sobre isso?

questionAnswers(1)

yourAnswerToTheQuestion