Низкоуровневые средства программирования


Низкоуровневые средства программирования появились как признание производителями ГПУ коммерческой значимости их использования для высокопроизводительных вычислений. Первым средства низкоуровневого доступа выпустила AMD в 2006 году в рамках своей инициативы CTM. В том же 2006 году NVidia выпустила CUDA, свое решение для низкоуровневого доступа к ГПУ. Изначально оба продукта распространялись только по партнерскому соглашению и были закрытыми. CUDA был открыт для использования весной 2007 года. AMD выпустила свой продукт для общего использования только в конце 2007 года, вместе с очередной его версией, CAL.

Низкоуровневые средства программирования состоят из двух частей: промежуточного ассемблера, предназначенного для разработчиков компиляторов и языков программирования, и C-подобного языка, предназначенного для использования программистами ГПУ. В случае NVidia промежуточным языком является диалект C, расширенный некоторыми средствами программирования ГПУ. Именно это принесло технологии CUDA популярность в сообществе программистов ГПУ. Соответствующим языком для графических процессоров AMD является Brook+.

Достоинства низкоуровневых средств программирования

  • Предоставление программисту полного контроля над архитектурой
  • Возможность работы с несколькими ГПУ
  • Асинхронное выполнение задач на ГПУ
  • Возможность загрузки образа скомпилированного шейдера

Недостатки низкоуровневых средств программирования

  • Необходимость знания особенностей архитектуры для эффективного программирования
  • Отсутствие переносимости между архитектурами ГПУ
  • Разнородность средств разработки для ГПУ различных производителей

Технология программирования AMD CTM

Технология программирования NVidia CUDA


© Лаборатория Параллельных информационных технологий НИВЦ МГУ
Rambler's Top100