Tôi mới sử dụng OpenCL. Tôi đã làm việc với hạt nhân OpenCL với dữ liệu 1-D. Nhưng khi tôi cố gắng vượt qua một con trỏ 3-D, nó không thể xây dựng hạt nhân. Để cụ thể, tôi nhận được CL_BUILD_PROGRAM_FAILURE. Đây là mã giả cho hạt nhân tôi đang cố gắng xây dựng -Làm thế nào để sử dụng mảng 3-D trong hạt nhân OpenCL?
__kernel void 3D_Test(__global float ***array)
{
x = get_global_id(0);
y = get_global_id(1);
z = get_global_id(2);
array[x][y][z] = 10.0;
}
Bất kỳ ai có thể cho tôi biết có vấn đề gì với mã không? Cảm ơn trước!
Bạn nên kiểm tra việc xây dựng nhật ký, có được nó với clGetProgramBuildInfo. –
Bạn cũng có thể xem xét loại Image3D, được hỗ trợ trong OpenCL 1.1, cho phép bạn lưu trữ và truyền các mảng 3D khá dễ dàng. –