2015-01-13 59 views
3

我有一臺Mac Pro(2013年末),我想用OpenCL做兩次數學運算。當我使用小牛時,我的FirePro GPU的CL_DEVICE_EXTENSIONS僅列出cl_APPLE_fp64_basic_ops,所以我不能使用雙數學函數,如exp()。我最近升級到優勝美地,現在正確的cl_khr_fp64是在擴展名列表中,但我仍然不能使用雙倍的exp。錯誤日誌顯示它正在尋找一個重載函數,exp可用於float,float4,float8,...但不是64位。我已經包括命令打開fp64:如何在MacPro上使用OpenCL中的double?

#pragma OPENCL EXTENSION cl_khr_fp64 : enable 

有誰知道發生了什麼事?爲什麼GPU會說cl_khr_fp64可用,但我無法使用它全部。我可以用+-*/兩倍,但我也可以用basic_ops。蘋果是否對我說他們升級了對fp64的支持?

奇怪的是,在我的CPU上,OpenCL也說cl_khr_fp64也可用,但是我也不能在CPU上使用exp。

+0

您是否嘗試過這樣的:http://stackoverflow.com/a/26797959/1864294 –

+0

@MichaelDorner,我想這和它CL_DEVICE_DOUBLE_FP_CONFIG 返回63我還發現文件從蘋果,說的D700支持雙。 http://store.apple.com/us/buyFlowCTOLearnMore/ME253LL/A?group=graphics_z0pk 另外,當我通過OpenCL在我的CPU上運行它時,它也不起作用。 CPU也爲CL_DEVICE_DOUBLE_FP_CONFIG返回63 –

回答

-1

在OpenCL C中,您應該稱它們爲雙打而不是cl_khr_fp64s

double pie = M_PI;
double2 two_pies = (double2){M_PI}; // or {M_PI,M_PI};

相關問題