Некоторые вычислительные возможности современных видеокарт, которые применяются для решения неграфических задач:
- Параллельная обработка данных. 14 Видеочипы принимают на входе группу полигонов, проводят все необходимые операции и на выходе выдают пиксели. 1 Обработка полигонов и пикселей независима, их можно обрабатывать параллельно, отдельно друг от друга. 1
- Большая пропускная способность памяти. 4 У графических процессоров несколько контроллеров памяти, да и сама графическая память более быстрая, поэтому они имеют большую пропускную способность памяти по сравнению с универсальными процессорами. 4
- Поддержка многопоточности. 1 Видеочипы могут поддерживать до 1024 потоков на каждый мультипроцессор, которых в чипе несколько штук. 1 При этом если переключение с одного потока на другой для CPU стоит сотни тактов, то GPU переключает несколько потоков за один такт. 1
- Разделяемая память. 25 Это память небольшого объёма (16 килобайт на мультипроцессор), к которой имеют доступ блоки потоков. 5 Она позволяет кэшировать наиболее часто используемые данные и может обеспечить более высокую скорость, по сравнению с использованием текстурных выборок для этой задачи. 5
Примером технологии, которая позволяет использовать вычислительные возможности видеокарт для неграфических задач, является программно-аппаратная архитектура CUDA (от англ. Compute Unified Device Architecture), разработанная компанией Nvidia. 1