Включить двойную точность в OpenCL через CUDAfy
Я работаю с CUDAfy и C#. Для моего ядра мне нужна двойная точность. В CUDA это не проблема, она автоматически поддерживается. Однако для поддержки не NVIDIA-оборудования пользователь также должен иметь возможность использовать OpenCL. Здесь, насколько я понимаю, двойная точность должна быть активирована вручную. В настоящее время компилятор выдает исключение
Ошибка компиляции::8:32: ошибка: использование типа 'double' требует включения расширения cl_khr_fp64
Чтобы сделать это в коде ядра, обычно нужно добавить строку
#pragma OPENCL EXTENSION cl_khr_fp64 : enable
Теперь есть ли способ
а) попросить CUDAfy включить двойную точность на оборудовании OpenCL или б) загрузить существующий код CUDA C вместо перевода кода C#?
Мое оборудование поддерживает CUDA 3.0 и OpenCL 1.2.
1 ответ
В ответ на часть (а)
Я использовал CUDAfy с AMD Radeon 7970 с OpenCL 1.2. Благодаря этому оборудованию CUDAfy автоматически обеспечивает двойную точность. Мне не нужно было включать его, чтобы использовать Doubles в моих методах ядра C# [Cudafy].