У меня нет особых чувств по поводу CUDA vs. OpenCL; по-видимому, OpenCL - это долгосрочное будущее, просто потому, что он является открытым стандартом.
Но нынешние карты NVIDIA и ATI для GPGPU (не графической производительности, а GPGPU), о которых я твердо придерживаюсь. И чтобы подвести к этому, я укажу, что в текущем списке 500 крупнейших кластеров, NVIDIA опережает AMD 4 системы до 1, а на gpgpu.org результаты поиска (статьи, ссылки на онлайн-ресурсы, etc) для NVIDIA превосходят результаты AMD 6: 1.
Огромная часть этой разницы - это количество доступной онлайн-информации. Посмотрите CUDA Zone NVIDIA и GPGPU Developer Central. Количество материала для начинающих разработчиков даже близко не сравнивается. На сайте NVIDIA вы найдете тонны статей - и предоставленный код - от людей, которые, вероятно, работают над проблемами, подобными вашей. Вы найдете тонны онлайн-классов от NVIDIA и других, а также очень полезные документы, такие как руководство для разработчиков и т. Д. Доступность бесплатных инструментов разработки - профилировщика, cuda-gdb и т. Д. - в значительной степени меняет путь NVIDIA.
(Редактор: информация в этом абзаце больше не точна.) И некоторая разница еще и в аппаратном обеспечении. Карты AMD имеют лучшие характеристики с точки зрения пиковых провалов, но для того, чтобы получить значительную часть этого, вы должны не только разбить проблему на множество полностью независимых потоковых процессоров, но и каждый рабочий элемент также необходимо векторизовать. Учитывая, что код GPGPUing достаточно сложен, этой дополнительной архитектурной сложности достаточно, чтобы создать или сломать некоторые проекты.
И результатом всего этого является то, что сообщество пользователей NVIDIA продолжает расти. Из трех или четырех групп, которые я знаю, думают о создании кластеров графических процессоров, ни одна из них серьезно не рассматривает карты AMD. А это будет означать, что еще больше групп будут писать статьи, вносить свой код и т. Д. На стороне NVIDIA.
Я не фанат NVIDIA; Я бы хотел, чтобы этого не было, и чтобы было две (или больше!) Одинаково привлекательных платформы GPGPU. Конкуренция - это хорошо. Возможно, AMD очень скоро активизирует свою игру - и грядущие продукты Fusion выглядят очень привлекательно. Но давая кому-то совет о том, какие карты купить сегодня и где потратить свое время, прикладывая усилия прямо сейчас, я не могу с чистой совестью сказать, что обе среды разработки одинаково хороши.
Отредактировано для добавления: я полагаю, что приведенное выше является немного эллиптическим с точки зрения ответа на исходный вопрос, поэтому позвольте мне сделать его более ясным. Производительность, которую вы можете получить от части оборудования, в идеальном мире с бесконечным доступным временем зависит только от базового оборудования и возможностей языка программирования; но на самом деле производительность, которую вы можете получить за фиксированное время, также сильно зависит от инструментов разработки, существующих баз кода сообщества (например, общедоступных библиотек и т. д.). Все эти соображения сильно указывают на NVIDIA.
(Редактор: информация в этом абзаце больше не является точной.) Что касается аппаратного обеспечения, требование векторизации в модулях SIMD в картах AMD также затрудняет достижение бумажной производительности, чем с оборудованием NVIDIA.
person
Jonathan Dursi
schedule
09.01.2011