簡體   English   中英

CPU和GPU上的OpenCL / C ++腳本行為不正確

[英]Incorrect act OpenCl/C++ script on CPU and GPU

我已經將OpenCl / C ++腳本轉移到了新機器(3.20GHz @Intel®Core™i5-4570 CPU,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_CPU時會給我正確的結果,而當我放入CL_DEVICE_TYPE_GPU時會給錯誤的結果(0看起來不起作用)。

預期產量:

315360000   0.345   0.349   0.345   9

錯誤的輸出:

315360000   0   0   0   9

任何想法!!

解決了:)我根據此鏈接中的代碼進行了一些修改https://devtalk.nvidia.com/default/topic/498968/printing-all-opencl-devices-not-detecting-all-opencl-devices-under-視窗/

    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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM