2

我正在使用 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。

4

1 回答 1

0

回应(a)部分

我一直在使用带有 OpenCL 1.2 的 AMD Radeon 7970 的 CUDAfy。使用此硬件,CUDAfy 会自动启用双精度。我不需要启用它就可以在我的 C# [Cudafy] 内核方法中使用 Doubles。

于 2018-01-24T10:25:05.930 回答