本文介绍了OpenCL错误:对`_Z12atom_cmpxchgPVU8CLglobalmmm()的未定义引用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
编译以下OpenCL内核时:
When compiling the following OpenCL kernel:
#pragma OPENCL EXTENSION cl_khr_int64_base_atomics : enable
__kernel void kernel(__global ulong* mem) {
atom_cmpxchg(&mem[0], 0, 1);
}
我收到以下错误:
error: undefined reference to `_Z12atom_cmpxchgPVU8CLglobalmmm()'
我正在使用Rust的OpenCL和 OCL 库.我的OpenCL版本是1.2,我的GPU是Intel(R)Iris(TM)图形550,我的操作系统是macOS Sierra 10.12.1.
I'm using OpenCL from Rust with the OCL library. My OpenCL version is 1.2, my GPU is an Intel(R) Iris(TM) Graphics 550, I'm under macOS Sierra 10.12.1.
推荐答案
使用clGetDeviceInfo()
检查设备的CL_DEVICE_EXTENSIONS
.在macOS下,此GPU可能不支持cl_khr_int64_base_atomics
.
Check the CL_DEVICE_EXTENSIONS
of your device with clGetDeviceInfo()
. cl_khr_int64_base_atomics
may not be supported with this GPU under macOS.
这篇关于OpenCL错误:对`_Z12atom_cmpxchgPVU8CLglobalmmm()的未定义引用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!