Я не маю жодних сильних почуттів щодо CUDA проти OpenCL; імовірно, OpenCL - це довгострокове майбутнє, лише відтінок того, що він є відкритим стандартом.
Але нинішні NVIDIA vs ATI карти для GPGPU (не графічна продуктивність, а GPGPU), про що я маю тверду думку. І для цього я зазначу, що в поточному списку великих 500 кластерів NVIDIA приводить системи AMD 4 до 1, а на gpgpu.org - результати пошуку (документи, посилання на інтернет-ресурси тощо) для NVIDIA перевищує результати для AMD 6: 1.
Величезна частина цієї різниці - кількість доступної інформації в Інтернеті. Ознайомтесь із зоною NVIDIA CUDA порівняно з процесором для розробників GPGPU AMD . Кількість матеріалів для розробників, які починаються, навіть не наближається до порівняння. На сайті NVIDIAs ви знайдете тонни паперів - і внесений код - від людей, які, ймовірно, працюють над такими проблемами, як ваша. Ви знайдете тонни онлайн-класів від NVIDIA та інших країн, а також дуже корисні документи, такі як керівництво з найкращих практик розробників тощо. Наявність безкоштовних інструментів розробки - профайлер, cuda-gdb тощо - надзвичайно нахиляє NVIDIA.
(Редактор: інформація в цьому пункті вже не є точною.) І деякі відмінності - це також апаратне забезпечення. Карти AMD мають кращі характеристики щодо пікових флопів, але щоб мати змогу отримати значну частину цього, вам потрібно не тільки розбити свою проблему на безліч повністю незалежних процесорів потоку, кожен робочий елемент також повинен бути векторизованим. Зважаючи на те, що код GPGPUing є досить складним, що додаткової архітектурної складності достатньо, щоб зробити або порушити деякі проекти.
І результат всього цього полягає в тому, що спільнота користувачів NVIDIA продовжує зростати. З трьох-чотирьох груп, які я знаю, думаючи створити кластери GPU, жодна з них серйозно не розглядає карти AMD. А це означає, що на стороні NVIDIA все більше груп пишуть документи, надають код тощо.
Я не шил NVIDIA; Я хотів би, щоб це не було так, і щоб було дві (або більше!) Однаково переконливих платформ GPGPU. Конкуренція хороша. Можливо, AMD активізує свою гру дуже скоро - і майбутні продукти злиття виглядають дуже виграшно. Але даючи комусь пораду про те, які картки купити сьогодні, і де витратити свій час, прикладаючи зусилля, зараз я не можу з сумліною сказати, що обидва середовища розвитку однаково хороші.
Відредаговано, щоб додати : Я думаю, що вищезазначене є дещо еліптичним з точки зору відповіді на початкове запитання, тому дозвольте зробити це трохи більш чітким. Продуктивність, яку ви можете отримати від апаратних засобів, в ідеальному світі з нескінченним доступним часом залежить лише від базового обладнання та можливостей мови програмування; але насправді кількість продуктивності, яку ви можете отримати за фіксовану кількість часу, також сильно залежить від інструментів розробки, існуючих баз кодів спільноти (наприклад, загальнодоступних бібліотек тощо). Усі ці міркування всіляко вказують на NVIDIA.
(Редактор: інформація в цьому пункті вже не є точною.) Що стосується обладнання, вимога до векторизації в SIMD-одиницях на картках AMD також робить досягнення продуктивності паперу ще складніше, ніж з обладнанням NVIDIA.