Параллельное программирование на графическом процессоре (GPU) основано на способности устройства выполнять программный код параллельно на большом числе одинаковых процессоров (вычислительных ядер) с помощью некоторого количества одновременно исполняемых потоков. 3
Процесс запуска программы на GPU включает следующие шаги: 2
Для достижения кооперации (совместного решения задачи) между потоками применяются определённые механизмы коммуникации. 5 Например, при использовании CUDA коммуникация осуществляется через память: потоки могут читать входные данные, изменять выходные данные либо обмениваться «промежуточными» результатами. 5
Графические процессоры работают по принципу SIMD (от англ. Single Instruction — Multiple Data — одна инструкция для множества данных). 1 Этот принцип обеспечивает параллельное использование большого количества «вычислителей» без явного управления ими: распределения задач, синхронизации вычислений и коммуникации между параллельными расчётами. 1