Низкоуровневые средства программирования
Низкоуровневые средства программирования появились как признание производителями ГПУ коммерческой значимости их использования для высокопроизводительных вычислений. Первым средства низкоуровневого доступа выпустила AMD в 2006 году в рамках своей инициативы CTM. В том же 2006 году NVidia выпустила CUDA, свое решение для низкоуровневого доступа к ГПУ. Изначально оба продукта распространялись только по партнерскому соглашению и были закрытыми. CUDA был открыт для использования весной 2007 года. AMD выпустила свой продукт для общего использования только в конце 2007 года, вместе с очередной его версией, CAL.
Низкоуровневые средства программирования состоят из двух частей: промежуточного ассемблера, предназначенного для разработчиков компиляторов и языков программирования, и C-подобного языка, предназначенного для использования программистами ГПУ. В случае NVidia промежуточным языком является диалект C, расширенный некоторыми средствами программирования ГПУ. Именно это принесло технологии CUDA популярность в сообществе программистов ГПУ. Соответствующим языком для графических процессоров AMD является Brook+.
Достоинства низкоуровневых средств программирования
- Предоставление программисту полного контроля над архитектурой
- Возможность работы с несколькими ГПУ
- Асинхронное выполнение задач на ГПУ
- Возможность загрузки образа скомпилированного шейдера
Недостатки низкоуровневых средств программирования
- Необходимость знания особенностей архитектуры для эффективного программирования
- Отсутствие переносимости между архитектурами ГПУ
- Разнородность средств разработки для ГПУ различных производителей
Технология программирования AMD CTM
Технология программирования NVidia CUDA
© Лаборатория Параллельных информационных технологий НИВЦ МГУ