Dlaczego cudaGLSetGLDevice nie powiodło się, mimo że jest wywoływany w pierwszej linii funkcji głównej

Chcę używać współdziałania między OpenGL i CUDA. Wiem, jak powiedziały niektóre tutoriale, pierwszym krokiem jest wybór urządzenia. Jednak gdy zadzwoniłem do cudaGLSetGLDevice (0) w pierwszym wierszu głównej funkcji, program zakończył pracę z informacją „cudaSafeCall () Błąd Runtime API 36: nie można ustawić, gdy urządzenie jest aktywne w tym procesie”.

Właściwie, mimo że używam cudaDeviceProp i cudaChooseDevice przed wywołaniem cudaGLSetDevice, błąd nadal istnieje.

Wierz mi, mój komputer ma tylko jeden GPU, 9800GT. I wiem, że wywołanie cudaGLSetGLDevice powinno być przed jakąkolwiek inną funkcją CUDA, dlatego umieściłem go w pierwszej linii funkcji głównej.

I używam zestawu Windows SDK do renderowania OpenGL zamiast glut, czy jest w tym problem?

questionAnswers(1)

yourAnswerToTheQuestion