我正在和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#代码?
我的硬件支持CUDA3.0和OpenCL 1.2。
发布于 2018-01-24 10:25:05
回应(a)部分
我一直在使用CUDAfy与7970与OpenCL 1.2。使用此硬件,CUDAfy自动实现双精度。为了在我的C# Cudafy内核方法中使用Double,我不需要启用它。
https://stackoverflow.com/questions/34761245
复制相似问题