在内核中使用CL_INVALID_KERNEL_NAME时出错 我在OpenCL内核中有一个错误,当我尝试使用cl_khr_fp64扩展时,内核编译和构建日志是空的,但是当我调用clCreateKernel时,就会出现错误。失败的源:y[id]=2*x[id];我使用的是CL_DEVI 浏览3提问于2011-11-22得票数10 ...
CL_INVALID_KERNEL_NAME 程序中不存在指定的内核 CL_INVALID_KERNEL_DEFINITION 程序源代码中定义的内核不合法 CL_INVALID_KERNEL 传入的内核不是合法值 CL_INVALID_ARG_INDEX 参数索引指示的参数对于内核不合法 CL_INVALID_ARG_VALUE 对于一个非局部参数,内核参数值为NULL;或者对于一个局部参数,内核参数值为非NULL ...
CL_INVALID_KERNEL_NAME 程序中不存在指定的内核 CL_INVALID_KERNEL_DEFINITION 程序源代码中定义的内核不合法 CL_INVALID_KERNEL 传入的内核不是合法值 CL_INVALID_ARG_INDEX 参数索引指示的参数对于内核不合法 CL_INVALID_ARG_VALUE 对于一个非局部参数,内核参数值为NULL;或者对于一个局部参数,内核参数值为非NULL ...
cl_kernel clCreateKernel (cl_program program, const char *kernel_name, cl_int *errcode_ret) 1. 2. 3. 4. 5. 此函数用来创建内核对象。 program,是一个程序对象,带有成功构建的执行体。 kernel_name,是程序中一个声明时带有限定符__kernel的函数名。 errcode,返回相应的错误码 CL_INVALID_PROGRAM,pro...
#define CL_INVALID_KERNEL_NAME -46 #define CL_INVALID_KERNEL_DEFINITION -47 #define CL_INVALID_KERNEL -48 #define CL_INVALID_ARG_INDEX -49 #define CL_INVALID_ARG_VALUE -50 #define CL_INVALID_ARG_SIZE -51 #define CL_INVALID_KERNEL_ARGS -52 ...
CL_PLATFORM_NAME CL_PLATFORM_VENDOR CL_PLATFORM_VERSION CL_PLATFORM_PROFILE CL_PLATFORM_EXTENSIONS 函数通过char型数组返回需要的信息。 数组的长度(字节)由最后一个参数size_t *param_value_size_ret来确定。 第三个参数size_t param_value_size用于告诉函数要保存的字节数. ...
我的项目中所有的kernel在程序初始化时就被编译生成了,存放在一个std::unordered_map<std::string, cl::Kernel>类型的map表中(kernel name为key),以后程序需要调用的时候,就通过kernel name来获取指定的cl::Kernel对象。 建这个表的时候,要创建cl::Kernel。常用的创建cl::Kernel的途径有两个: ...
kernel = clCreateKernel(program, "hello", &ret);/* Set OpenCL Kernel Parameters */ret = clSetKernelArg(kernel, 0, sizeof(cl_mem), (void *)&memobj);/* Execute OpenCL Kernel */ret = clEnqueueTask(command_queue, kernel, 0, NULL,NULL); 9楼2012-02-01 09:21 回复 恋夜H诗 ...
cl_kernel clCreateKernel(cl_program program, const char *kernel_name, cl_int *errcode_ret) 功能描述:根据内核函数名,从 program 对象创建 kernel 对象。参数说明:- program[IN] :已经生成可执行二进制的内核程序对象。- kernel_name[IN] :program 中以__kernel 修饰的函数名。- errcode_ret[OUT]:返回...
/* Execute OpenCL kernel as data parallel*/ ret = clEnqueueNDRangeKernel(command_queue,kernel, 1, NULL, &global_item_size,&local_item_size, 0, NULL, NULL); 这个就表示上面这个数据并行计算的kernel中每一个work-group由1个work-item组成,而共有4个work-items要被处理,即总的work-items要被分成...