我没有 HD5850 但我怎么知道 opencl 的最大工作组大小?HD5850 的首选浮点矢量宽度是多少?我怀疑它是 5,但在拥有 5850 的朋友计算机上不起作用。尝试了宽度 4,但现在工作速度不够快,我怀疑工作组大小不是最佳的。为 25k 50k 和 100k 粒子做 NBody 由 x,y,z, vx,vy,vz 的 float8 个变量组成。
谢谢。
如果您在开发时需要 OpenCL 细节但无法访问硬件,请尝试http://clbenchmark.com。例如,HD 5850 页面在这里:http ://clbenchmark.com/device-environment.jsp?config=11975982 。它显示 CL_DEVICE_PREFERRED_VECTOR_WIDTH_FLOAT=4。
使用 clGetDeviceInfo 轮询 CL_DEVICE_MAX_WORK_GROUP_SIZE。我认为 5850 将在 256 处具有此值,但这对于您的内核可能不是最佳的。
使用相同的技术轮询 CL_DEVICE_PREFERRED_VECTOR_WIDTH_FLOAT,我认为你的卡上是 4。