【发布时间】:2023-04-07 20:46:01
【问题描述】:
我是 OpenCL 编程的新手,我正在尝试在 VS 2019 中运行一个简单的向量加法代码。但是,我无法编译 .cl 代码。尝试构建程序时显示以下 6 个错误:
Error C2144 语法错误:'void' 应该以';'开头
错误 C4430 缺少类型说明符 - 假定为 int。注意:C++ 不支持 default-int
错误 C2065 '__global':未声明的标识符
错误 C2146 语法错误:在标识符 'float4' 之前缺少 ')'
错误 C2143 语法错误:缺少 ';'在'{'
之前错误 C2447 '{':缺少函数头(旧式正式列表?)
这是我的内核代码:
__kernel void add_numbers(__global float4* data,
__local float* local_result, __global float* group_result) {
float sum;
float4 input1, input2, sum_vector;
uint global_addr, local_addr;
global_addr = get_global_id(0) * 2;
input1 = data[global_addr];
input2 = data[global_addr + 1];
sum_vector = input1 + input2;
local_addr = get_local_id(0);
local_result[local_addr] = sum_vector.s0 + sum_vector.s1 +
sum_vector.s2 + sum_vector.s3;
barrier(CLK_LOCAL_MEM_FENCE);
if (get_local_id(0) == 0) {
sum = 0.0f;
for (int i = 0; i < get_local_size(0); i++) {
sum += local_result[i];
}
group_result[get_group_id(0)] = sum;
}
}
我已经添加了 include 和 lib 目录并正确链接了它们。谷歌搜索后,我找不到很多解决此错误的方法。请帮帮我...
更新:我修复了它
大家好, 我找到了解决这个问题的方法。我从 VS 项目中删除了 .cl 文件,然后重新添加了它(可选)。我还将文件打开选项更改为具有“rb”而不是“r”( fopen(filename,"rb") )。现在我可以运行它了!
【问题讨论】:
标签: opencl