我在与OpenCL和Ubuntu有关的这一领域是全新的,但是我正在学习并尝试运行一些基准测试,但是下面显示了以下错误。我相信我所做的一切都与安装CUDA(我有NVIDIA显卡)并与基准测试链接正确相关,但是仍然出现以下错误。有人可以帮我吗?
此外,要正确链接,我要做的第一件事是找到include和lib目录,然后使用它们使用的命令,如下所示:
export CHAI_OCL_LIB=/usr/local/cuda-10.1/targets/x86_64-linux/lib/
export CHAI_OCL_INC=/usr/local/cuda-10.1/targets/x86_64-linux/include/
为此,我找到了OpenCL的位置,如下图所示,以获取地址。
错误:
support/ocl.h:106:9: note: suggested alternative: ‘cl_context_properties’
cl_queue_properties prop[] = {0};
main.cpp:180:38: error: ‘clSVMAlloc’ was not declared in this scope
Node * nodes = (Node *)clSVMAlloc(ocl.clContext, CL_MEM_SVM_FINE_GRAIN_BUFFER, sizeof(Node) * n_nodes, 0);
main.cpp:316:5: error: ‘clSVMFree’ was not declared in this scope
clSVMFree(ocl.clContext, nodes);
^~~~~~~~~
从错误中看,基准测试要求构建OpenCL 2.x
,并且Nvidia
支持最高为OpenCL 1.2
。
因此要构建基准安装OpenCL 2.x
。根据Ubuntu版本的不同,可以直接通过apt install ocl-icd-opencl-dev
安装。