【发布时间】:2013-02-09 07:37:42
【问题描述】:
我创建了一个冒泡排序代码。用户函数 createProgram 中的 clbuildprogram 出现错误 我的内核看起来像:
__kernel void sort_kernel(__global const float *a, __global const float *b)
{
const int n=100;
int j;
float temp;
int gid = get_global_id(0);
b[gid]=a[gid];
for(j=0; j < n-gid; j++)
{
if(b[j+1]<b[j])
{
temp=b[j];
b[j]=b[j+1];
b[j+1]=temp;
}
}
}
clbuildprogram 根据运行时错误给出错误。
***内核中的错误::1:1:错误:未知类型名称'_kernel'
_kernel void sort_kernel(__global const float *a, __global const float *b) //, ^
:1:9: 错误:预期标识符或 '(' _kernel void sort_kernel(__global const float *a, __global const float *b) //, ^
:21:3: 错误:预期的外部声明 } ^
:23:1: 错误:预期的外部声明 } ^
:23:1: 错误:预期的外部声明***
请告诉我错误是什么以及如何纠正它...?
【问题讨论】:
-
您确定您的内核代码以
__kernel开头而不是_kernel开头吗?这是 JIT 编译器返回的错误... -
至于理解和解决编译器错误...总是更正第一个错误,忽略其他错误,然后重试直到它工作。尤其是在 C 和 C++ 方言中,一个小错字往往会级联成大量(在大型项目中为数百个)难以理解和令人生畏的错误消息。只有第一个有意义。
标签: opencl