Можно ли использовать пользовательские типы в ядре OpenCL, например, в типах gmp (mpz_t, mpq_t,...)?
Чтобы иметь что-то вроде этого (это ядро не построено только из-за #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]); }
Возможно, добавив разные аргументы в четвертый параметр (параметры) clBuildProgram
?
Или у OpenCL уже есть типы, которые могут обрабатывать большие числа?