Có thể sử dụng các loại tùy chỉnh trong hạt nhân OpenCL như các loại gmp (mpz_t, mpq_t,…) không?Các loại tùy chỉnh trong hạt nhân OpenCL
Để có một cái gì đó như thế này (kernel này không xây dựng chỉ vì #include <gmp.h>
):
#include <gmp.h> __kernel square( __global mpz_t* input, __global mpz_t number, __global int* output, const unsigned int count) { int i = get_global_id(0); if(i < count) output[i] = mpz_divisible_p(number,input[i]); }
Có lẽ bằng cách thêm tham số khác nhau để tham số thứ tư (tùy chọn) của clBuildProgram
?
Hoặc OpenCL đã có các loại có thể xử lý số lớn?
Để đảm bảo loại kích thước bằng nhau, đó là một ý tưởng tốt để sử dụng cl_ * loại trong mã máy chủ (cl_int, cl_long, cl_float2, vv). – dietr
@dietr Nó cũng giúp mã rõ ràng, như trong "biến này có nghĩa là để được chuyển cho một hạt nhân" – Thomas