2016-01-13 275 views
2

我正在使用CUDAfy和C#。對於我的內核,我需要雙精度。在CUDA中,這沒有問題,它會自動支持。但是,爲了支持非NVIDIA硬件,用戶應該也可以使用OpenCL。在這裏,據我所知,雙精度必須手動激活。目前,編譯器會引發異常通過CUDAfy在OpenCL中啓用雙精度

Compilation error: :8:32: error: use of type 'double' requires cl_khr_fp64 extension to be enabled

要在內核代碼做到這一點,人們通常會添加一行

#pragma OPENCL EXTENSION cl_khr_fp64 : enable 

現在是有辦法

一)告訴CUDAfy到在OpenCL硬件上啓用雙精度或 b)加載現有的CUDA C代碼而不是轉換C#代碼?

我的硬件支持CUDA 3.0和OpenCL 1.2。

+0

這是一歲,但你有沒有找到解決辦法? –

回答

0

響應於部分(A)

我已經使用CUDAfy與AMD的Radeon 7970與OpenCL的1.2。有了這個硬件,CUDAfy自動啓用雙精度。我不需要啓用它來在我的C#[Cudafy]內核方法中使用雙精度。