我正在按照CUDA-by-example教程设置OpenGL,以便与CUDA进行图形互操作 . Here is what I'm following . 当我使用CUDA运行时注册缓冲区作为图形资源并运行代码时,我收到一条错误,指出所有支持CUDA的设备都忙或不可用 .
我可以运行其他CUDA代码没问题 . 如果我不尝试进行互操作,我可以使用OpenGL渲染图形(所以我可以:将内存交换到CPU,在OpenGL中渲染等) .
我不认为CUDA设备在这一点上做了什么 . 我已经尝试关闭所有其他窗口,看看是否有其他东西正在使用该资源,但这并没有改变任何东西 . 这是一个简短的代码片段,到目前为止我已经显示了我的初始化过程:
#include "common/gl_helper.h"
#include "cuda.h"
#include "cuda_gl_interop.h"
#include "common/book.h"
#define DIM 1024
PFNGLBINDBUFFERARBPROC glBindBuffer = NULL;
PFNGLDELETEBUFFERSARBPROC glDeleteBuffers = NULL;
PFNGLGENBUFFERSARBPROC glGenBuffers = NULL;
PFNGLBUFFERDATAARBPROC glBufferData = NULL;
GLuint bufferObj;
cudaGraphicsResource *resource;
int main( void ) {
cudaDeviceProp pr