我正在尝试运行一个简单的OpenCL程序,在单个缓冲区中添加两个向量,并将结果存储在第三个缓冲区中。我试图在带有独立GPU的MacBook Pro上运行它。 AMD GPU(通过clGetDeviceInfo
功能)是设备列表中的第二个,集成GPU是第一个。它与集成GPU一起正常工作。但是当我将命令队列初始化修改为以下内容时:
cl_command_queue command_queue = clCreateCommandQueue(context, device_list[1], 0, &clStatus);
它在输出中返回NaN值。如果我使用device_list[0]
,它就有效。我只更改了命令队列初始化。那么我如何保证我没有问题地使用离散GPU呢?