У меня есть Mac Pro (конец 2013 года), и я хочу сделать математику в двойном использовании с помощью OpenCL. Когда я использовал Mavericks, CL_DEVICE_EXTENSIONS
для моего графического процессора FirePro отображал только cl_APPLE_fp64_basic_ops
, поэтому я не мог использовать двойные математические функции, такие как exp()
. Недавно я обновился до Yosemite, и теперь нужный cl_khr_fp64
находится в списке расширений, но я все еще не могу использовать exp для double. Журнал ошибок показывает, что он ищет перегруженную функцию, а exp доступен для float, float4, float8, ... но не для 64 бит. Я включил команду включить fp64:Как вы используете double в OpenCL на MacPro?
#pragma OPENCL EXTENSION cl_khr_fp64 : enable
Кто-нибудь знает, что происходит? Почему GPU говорит, что есть cl_khr_fp64
, но тогда я не могу использовать его все. Я могу +-*/
в двойном, но я мог бы также сделать это раньше только с basic_ops
. Является ли Apple лгать мне, что они повысили поддержку fp64
?
Странно, на моем процессоре OpenCL также говорит, что также доступен cl_khr_fp64
, но я не могу использовать exp на процессоре.
Вы пробовали это: http://stackoverflow.com/a/26797959/1864294 –
@MichaelDorner, я попробовал это, и это возвращает 63 для CL_DEVICE_DOUBLE_FP_CONFIG Я также нашел документацию от Apple, что говорит о D700 поддерживает двойной. http://store.apple.com/us/buyFlowCTOLearnMore/ME253LL/A?group=graphics_z0pk Кроме того, когда я запускаю это на своем процессоре через OpenCL, он тоже не работает. CPU также возвращает 63 для CL_DEVICE_DOUBLE_FP_CONFIG –