2011-06-16 81 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

相关问题