**您好,我正在尝试使用 opencl 编写内核代码。但是我在内核函数内部遇到了一个奇怪的错误。流程或多或少是这样的:
__kernel function1() {
struct mytype;
function2(&mytype);
}
function2(struct *mytype) {
uchar *ptr = mytype->value2;
function3(ptr);
}
function3(byte* ptr) {
uint16 v1 = 10;
uint16* ptr2 = (uint16*) ptr;
*ptr2 = v1 >> 8;
}
struct mytype {
uchar value1[8];
uchar value2[8];
uint key[52];
uint bufleft;
}
执行分配时代码失败:
*ptr2 = v1 >> 8;
但是我收到的唯一消息是“clFlush(): CL_UNKNOWN_ERROR”如果我尝试分配一个值而不是一个表达式,它就会起作用。我在 Ubuntu 中使用 OpenCL 1.2 CUDA