Введение в язык параллельного программирования HIP

Опубликовано: 26 Июня, 2021

В заголовке должны быть термины параллельные вычисления, гетерогенные вычисления, высокопроизводительные вычисления (HPC) . Если нет, вы можете изучить область HPC, это одна из самых быстрорастущих технологий. Он коснулся почти всех отраслей, таких как медицина, безопасность, развлечения, автономные автомобили, финансы, нефтяная промышленность и т. Д., И список растет с каждым годом. Такие компании, как Google, Facebook, Microsoft, Adobe, Intel, Nvidia, AMD, ARM, - это несколько имен, которые активно внедряют инновации в область высокопроизводительных вычислений.

Сегодня доступно множество разнородных вычислительных языков, среди которых мало известных языков: OpenCL, Cuda, OpenAMP, HIP . Последние добавления в список - это Intel OneAPI и C ++ 20 (будет поддерживать параллельные вычисления). AMD разработала язык параллельных вычислений HIP, который является расширением C ++, поэтому разработчику C ++ будет интересно изучать этот язык.

Чтобы понять, какие инновации это вносит, давайте сначала разберемся с проблемой, сегодня у Nvidia есть язык CUDA, который не переносится на устройство. Другими словами, код, написанный на CUDA, не может быть запущен на AMD GPU, поэтому приложения, написанные на CUDA, вынуждены работать только на платформах Nvidia. HIP решает проблему и вносит инновации, позволяя запускать единый код на платформе AMD или Nvidia. AMD утверждает, что код, написанный на CUDA или HIP, не снизит производительность. Разработчик может разрабатывать приложения в HIP и бесплатно запускать их на графическом процессоре Nvidia или AMD, что является большим облегчением для клиентов.

Преимущества HIP перед другими сопутствующими языками HPC:

  • Это открытый исходный код, поэтому его можно настроить в соответствии с их потребностями.
  • Это чистое расширение CPP, поэтому обучение относительно легко по сравнению с любым новым языком, таким как OpenCL.
  • Переносимость - самое большое преимущество, которое разработчик может ценить, писать один раз, компилировать и запускать на разных графических процессорах (AMD / Nvidia).
  • В пакете доступен переводчик под названием hipify, который может за считанные секунды перевести исходный код CUDA в HIP.