Вопрос

Я расследую способы использования GPU, чтобы обработать потоковые данные. У меня было два варианта, но не смог решить, какой путь идти?

Мои критерии следующие:

  1. Простота использования (хорошая API)
  2. Сообщество и документация
  3. Представление
  4. Будущее

Я код в C и C ++ под Linux.

Это было полезно?

Решение

Opencl

  • Сопряжено из вашего производственного кода
  • Портативный между различными графическими оборудованием
  • Ограниченные операции, но предварительно обработанные ярлыки

Куда

  • Отдельный язык (CUDA C)
  • Только оборудование NVIDIA
  • Почти полный контроль над кодом (кодирование в C-похожем на язык)
  • Много профилирования и инструментов отладки

Нижняя линия - OpenCL портативный, CUDA только является NVIDIA. Однако, будучи независимым языком, CUDA гораздо мощнее и имеет кучу действительно хороших инструментов.

  1. Простота использования - Opencl легче использовать из коробки, но как только вы настроите среду кодирования CUDA, это почти похоже на кодировку в C.
  2. Сообщество и документация - Оба имеют обширную документацию и примеры, однако я думаю, что CUDA лучше.
  3. Представление - CUDA позволяет для большего контроля, следовательно, может быть лучше тонкой настроения для более высокой производительности.
  4. Будущее - Трудно сказать на самом деле.

Другие советы

Мой личный опыт был:

  1. API: Opencl имеет чуть более сложный API. Однако в большинстве случаев вы будете тратить с написания кода ядра, и здесь оба практически идентичны.

  2. Сообщество: CUDA имеет гораздо большую общину, затем opencl upl up til теперь, но это, вероятно, вообще будет даже выходить.

  3. Документация: Оба очень хорошо документированы.

  4. Производительность: Мы сделали опыт, что водители OpenCL еще не полностью оптимизированы.

  5. Будущее: будущее лежит в OpenCL, так как он является открытым стандартом, не ограничиваемым поставщиком или конкретному оборудованию!

Эта оценка составляется с 2010 года, так что, вероятно, устарело.

Opencl полностью, если у вас нет конкретной причины использования CUDA. OpenCL хорошо работает на многоцентах, таких как Intel I7, в дополнение к запуску на GPU. Используя OPENCL, вы можете запустить его на гораздо более широком диапазоне оборудования из мобильных телефонов Droid к IBM Power7 Computed узлам крупнейшего в мире суперкомпьютера, Голубые воды, который должен прийти в онлайн в следующем году.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top