我正在使用 CUDAfy 和 C#。对于我的内核,我需要双精度。在 CUDA 中,这没问题,它是自动支持的。但是,为了支持非 NVIDIA 硬件,用户也应该能够使用 OpenCL。在这里,据我了解,必须手动激活双精度。目前,编译器抛出异常
编译错误::8:32:错误:使用“double”类型需要启用 cl_khr_fp64 扩展
要在内核代码中这样做,通常会添加一行
#pragma OPENCL EXTENSION cl_khr_fp64 : enable
现在有没有办法
a) 告诉 CUDAfy 在 OpenCL 硬件上启用双精度或 b) 加载现有的 CUDA C 代码而不是翻译 C# 代码?
我的硬件支持 CUDA 3.0 和 OpenCL 1.2。