AMD признала ограниченную пригодность Radeon 4xxx для OpenCL

Владельцы видеокарт 4000 серии недолго радовались долгожданной поддержке OpenCL — архитектурные ограничения R700 снижают эффективность универсальных вычислений.

В форуме AMD для разработчиков сотрудник компании дал объяснения наблюдаемому феномену низкой производительности вычислений OpenCL на видеокартах Radeon 4000 серии. Как следует из объяснения, архитектура R700 не была изначально приспособлена для OpenCL, в отличие от новой архитектуры «Cypress». В частности, при использовании локальной видеопамяти она эмулируется в глобальной, что приводит к удвоенному расходу памяти.

Сотрудник AMD сказал, что впоследствии будет приняты меры по улучшению производительности OpenCL для видеокарт 4000 серии, но кардинальных перемен ждать не следует. Для достижения приемлемой производительности следует специально писать программы с учетом данной особенности R700, используя по-возможности регистры GPU вместо локальной памяти.

OpenCL logo

Напомним, что официальная поддержка OpenCL для видеокарт Radeon 4xxx появилась лишь в этом месяце с выходом исправления для драйверов Catalyst версии 9.12, причем ожидавшаяся поддержка для более старых карт 3ххх и 2ххх серий была официально отменена. Одними из первых феномен низкой производительности в OpenCL отметили пользователи утилиты DirectCompute Benchmark: согласно сообщениям в форуме программы видеокарты 4800 серии показывают в полтора-два раза меньший результат в OpenCL по сравнению с результатом в Microsoft DirectCompute, в то время как для видеокарт 5800 серии и видеокарт NVIDIA соотношение обычно обратное.