我正在使用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。
答案 0 :(得分:0)
回应(a)部分
我一直在使用带有OpenCL 1.2的AMD Radeon 7970的CUDAfy。使用此硬件,CUDAfy可自动启用双精度。我没有必要启用它才能在我的C#[Cudafy]内核方法中使用双打。