我使用以下代码在OpenCL
中的内核void中设置和清除unsigned long long的位A1 |= 1ll << 2 * i; // i = 9 , set bit 18 =1, A1 long long int
A1 &= ~(1ll << 2 * i + 1); //clear bit 19 = 0
我的代码在CUDA中运行良好,但在OpenCL中,它在buildprogram中有错误CL_OUT_OF_HOST_MEMORY。 但如果我使用
A1 |= 1 << 2 * i; // i = 9 , set bit 18 =1, A1 long long int
A1 &= ~(1 << 2 * i + 1); //clear bit 19 = 0
它运行良好但结果错误,因为它无法设置长多数位。 你能帮帮我吗?