Opencl 如果我们将NULL传递给设备列表参数,clBuildProgram为哪些设备生成?
Opencl 如果我们将NULL传递给设备列表参数,clBuildProgram为哪些设备生成?,opencl,Opencl,clBuildProgram允许您列出要为其构建程序的设备列表。这就是声明中出现num_devices和device_list参数的原因: cl_int clBuildProgram(cl_program program, cl_uint num_devices, const cl_device_id *device_list, const char *options, void (CL_CALLBACK *pfn_notify)(cl_program program, void *user_d
clBuildProgram
允许您列出要为其构建程序的设备列表。这就是声明中出现num_devices
和device_list
参数的原因:
cl_int clBuildProgram(cl_program program, cl_uint num_devices, const cl_device_id *device_list, const char *options, void (CL_CALLBACK *pfn_notify)(cl_program program, void *user_data), void *user_data)
如果我们这样使用它会发生什么
cl_int clBuildProgram(program, 0, NULL, ...
clCreateProgramWithSource
创建program
时使用的上下文)我这样问是因为在1号的情况下,我需要将设备列表传递给此函数,以避免对所有设备进行多余的编译。2)是正确的。编译仅限于与程序上下文关联的设备。这不能是系统中的每个设备,除非上下文是使用每个设备创建的。2)是正确的。编译仅限于与程序上下文关联的设备。这不能是系统中的每个设备,除非使用每个设备创建上下文