【发布时间】:2014-03-11 23:00:40
【问题描述】:
下面是我的内核,但是当我想用 #define 关键字定义的两个值相乘或执行其他操作并将其分配给内核的参数时,我得到一个错误状态为 -48 的错误。(无效的内核。 ) 不能将这些相乘还是我做错了什么?
#define cl_sizeX 1024;
#define pi 3.1415926535897;
#define N 1024;
#define M 1024;
#define lambda 632e-9;//632e-9;
#define X 12.1e-6;
__kernel void helloworld(__global char* in, __global char* out)
{
int num = get_global_id(0);
out[num] = in[num] + 1;
}
__kernel void multiply_arrays(__global int* first, __global int* second, __global int* out_array)
{
int num = get_global_id(0);
out_array[num] = first[num] * second[num];
}
__kernel void create_library(__global float* z0){
//Variable definitions
int a = get_global_id(0);
int i1 = get_global_id(1);
int i2 = get_global_id(2);
//z0[a] = ((N*pow(X, 2)) / lambda) + (a - 1)*((N*pow(X, 2)) / (100 * lambda));
z0[a] = N*X; // This is where i get error
当我分配 z0[a] = N;我没有收到错误,也无法弄清楚。 我使用 Windows 8.1 和 Visual Studio 13 进行编码。
【问题讨论】:
标签: c parallel-processing opencl