У меня есть Mac Pro (конец 2013 г.), и я хочу посчитать в двойном размере с помощью OpenCL. Когда я использовал Mavericks, в CL_DEVICE_EXTENSIONS
для моего графического процессора FirePro было указано только cl_APPLE_fp64_basic_ops
, поэтому я не мог использовать двойные математические функции, такие как exp()
. Я недавно обновился до Yosemite, и теперь правильный cl_khr_fp64
есть в списке расширений, но я все еще не могу использовать exp для двойного. Журнал ошибок показывает, что он ищет перегруженную функцию, и exp доступен для float, float4, float8,..., но не для 64-битных. Я включил команду для включения fp64:
#pragma OPENCL EXTENSION cl_khr_fp64 : enable
Кто-нибудь знает, что происходит? Почему GPU говорит, что доступно cl_khr_fp64
, но я не могу использовать все это. Я могу +-*/
в двойном размере, но раньше я мог делать это только basic_ops
. Apple лжет мне, что они обновили поддержку fp64
?
Странно, на моем процессоре OpenCL также говорит, что cl_khr_fp64
также доступен, но я также не могу использовать exp на процессоре.