2011-06-16 158 views
0

上運行oclNbody演示我想對ATI Radeo運行NVidia的OpenCL的演示oclNbody.exe 4850卡,並收到這樣的錯誤:錯誤:標識符「float3」未定義;當ATI卡

Build Log: C:\DOCUME~1\DIMEDR~1\LOCALS~1\Temp\OCL27C.tmp.cl(33): error: identifier

 "float3" is undefined 

REAL3 bodyBodyInteraction(REAL3 ai, REAL4 bi, REAL4 bj, REAL softeningSquared)

^

等了使用所有REAL3數據類型。我已經看到了OpenCL specification 1.1,它清楚地表明支持float3。我試圖用float3改變REAL3而沒有運氣。我有我的卡的最新驅動程序。使用Windows XP SP3操作系統

如何解決或解決此錯誤?

回答

0

我已經發現一種解決方法:

  • 使用浮子的4代替FLOAT3;
  • 的#define ZERO4 {0.0F,0.0F,0.0F,0.0F},並用它來代替ZERO3
  • ,降低工作組的數量爲64個(256是)

和它的工作!

3

float3和其他3分量矢量類型不是OpenCL 1.0規範的一部分;他們被添加到1.1版本中。根據AMD's driver compatibility page,Radeon HD 4800顯卡僅支持OpenCL 1.0。

編譯器試圖將float3解釋爲標識符的事實表明它不是公認的類型。

+0

感謝您澄清約1.0。我一定錯過了。 – Dmitriy 2011-06-17 09:49:54