【发布时间】:2019-04-30 22:32:46
【问题描述】:
我在 OpenCL 内核中有一个错误,当我尝试使用 cl_khr_fp64 扩展时,内核编译并且构建日志为空,但是当我调用 @ 987654321@,我有 CL_INVALID_KERNEL_NAME 错误。
失败的来源:
#pragma OPENCL EXTENSION cl_khr_fp64 : enable
__kernel void simple( __global char *x, __global char *y ){
int id = get_global_id(0);
y[id]=2*x[id];
}
这个源码编译正确:
__kernel void simple( __global char *x, __global char *y ){
int id = get_global_id(0);
y[id]=2*x[id];
}
我将 OpenCL 1.0 与 CL_DEVICE_EXTENSIONS 中具有 cl_khr_fp64 的 Tesla C1060 一起使用,驱动程序 280.13 和CL_PLATFORM_VERSION=OpenCL 1.1 CUDA 4.0.1
【问题讨论】:
-
澄清一下——你知道你的编译在第一种情况下是成功的,因为你正在检查 clBuildProgram 设置的错误代码,对吗?
-
编译步骤返回CL_SUCCESS,但我也检查了构建日志
-
你是说如果你简单地删除 cl_khr_fp64 这一行,clCreateKernel 就会返回 CL_SUCCESS?
-
我认为Zhen是说两种情况下编译都成功,但是当他在第一种情况下调用
clCreateKernel(..., "simple", ...)时,他得到CL_INVALID_KERNEL_NAME。第二种情况成功。甄,这是你的情况吗? -
@James 就是这样。两个示例都可以编译,但是使用 cl_khr_fp64 我在 clCreateKernel 上得到 CL_INVALID_KERNEL_NAME。
标签: opencl