Opencl и HD5850
У меня нет HD5850, но как узнать максимальный размер рабочей группы для Opencl? Какова предпочтительная ширина вектора с плавающей точкой для HD5850? Я подозревал, что это было 5, но не работал на компьютере друзей, у которого есть 5850. Пробовал ширину 4, но не работал достаточно быстро, теперь я подозреваю, что размер рабочей группы не оптимален. Выполнение NBody для частиц 25k, 50k и 100k состоит из переменных float8 для x,y,z, vx,vy,vz.
Благодарю.
2 ответа
Используйте clGetDeviceInfo для опроса CL_DEVICE_MAX_WORK_GROUP_SIZE. Я думаю, что 5850 будет иметь это в 256, но это не может быть оптимальным для вашего ядра.
Используйте ту же технику для опроса CL_DEVICE_PREFERRED_VECTOR_WIDTH_FLOAT, который, я думаю, 4 на вашей карте.
Если вам нужны особенности OpenCL во время разработки, но у вас нет доступа к оборудованию, попробуйте http://clbenchmark.com/. Например, страница HD 5850 находится здесь: http://clbenchmark.com/device-environment.jsp?config=11975982. Он показывает CL_DEVICE_PREFERRED_VECTOR_WIDTH_FLOAT=4.