我已将OpenCl / C ++脚本转移到新机器(Intel(R)Core(TM)i5-4570 CPU @ 3.20GHz,NVIDIA TESLA C2070)。
我在GPU上成功运行它并且我得到了正确的结果(这时当我尝试在CPU上运行时它给我的结果不正确0),然后我想在CPU上运行它,所以我安装了英特尔驱动程序(http://wiki.tiker.net/OpenCLHowTo )。
当我编译它时,我遇到了这个问题:
Inconsistency detected by ld.so: dl-version.c: 224: _dl_check_map_versions: Assertion `needed != ((void *)0)' failed!
我通过将-lglut -lGLU -lGL -lm -lpthread作为g ++的参数来解决这个问题。
现在的问题是,当我把CL_DEVICE_TYPE_GPU放入CL_DEVICE_TYPE_GPU时,它给我正确的结果,并且错误的结果(0看起来不起作用)。
预期产出:
315360000 0.345 0.349 0.345 9
输出错误:
315360000 0 0 0 9
任何想法!!
答案 0 :(得分:0)
cl_int ret = clGetPlatformIDs(2, platforms, &ret_num_platforms);
cout << ret;
//ret = clGetDeviceIDs( platforms[0], CL_DEVICE_TYPE_CPU, 1, &device_id, &ret_num_devices); // Execute me on CPU
ret = clGetDeviceIDs( platforms[1], CL_DEVICE_TYPE_GPU, 1, &device_id, &ret_num_devices); // Execute me on GPU