Возможности GPU в рамках шейдерной модели 3.0 и взаимодействие GPU с памятью
Ведущими разработчиками и производителями графических процессоров в настоящее время являются компании NVIDIA и ATI (c 2007 года – подразделение компании AMD). Лучшие из графические процессоров этих компаний, поддерживавших шейдерную модель 3.0, по достижимой производительности физического моделирования уже были сравнимы с кластерами из нескольких десятков процессоров. В качестве примера характеристики некоторых из этих процессоров [16] приведены в табл. 4.2. Таблица 4.2. Характеристики графических процессоров, поддерживающих шейдеры модели 3.0
Графические процессоры с шейдерной моделью 3.0 поддерживают использование при программирование операций, приведённых ниже. · Ряд математических операций с вещественными числами (см. Приложение 1). Целочисленные типы не поддерживаются. · Последовательное и произвольное чтение данных из видеопамяти. Произвольной записи в видеопамять нет. · Возможны циклы, длиной до 255 итераций. · Возможны ветвления алгоритма в результате проверки условий, с использованием операторов условного перехода. Взаимодействие GPU с памятью отчасти проиллюстрировано на рис. 4.5. В шейдерной модели 3.0 доступ GPU к памяти характеризуется следующими возможностями: · Графическому процессору не доступны дисковая память и оперативная память компьютера. Поэтому перед началом вычислений исходные данные должны быть скопированы в видеопамять центральным процессором. · Графическому процессору доступна видеопамять – специализированная память, обычно расположенная на видеокарте. У GPU нет доступа к оперативной и дисковой памяти. · Поскольку оперативная память компьютера графическому процессору недоступна, перед началом вычислений исходные данные должны быть скопированы в видеопамять центральным процессором. Он же затем копирует массив результатов из видеопамяти обратно в оперативную память. · Графическому процессору доступно как потоковое, так и произвольное чтение данных из видеопамяти. · Единственный вариант записи в видеопамять - это автоматическое формирование массива результатов (рендер-цели). Произвольная запись в видеопамять невозможна. · Графический процессор может использовать регистры - ячейки памяти, расположенные прямо на процессоре и характеризующиеся очень малой латентностью (быстрым доступом к данным): · есть чтение из констант-регистров, которые могут хранить постоянные величины, не изменяющиеся в ходе обработки всех данных; · есть чтение и запись во временные регистры, данные в которых не сохраняются при переходе к следующим элементам потока данных. · Вершинные процессоры могут записывать до 12-и 4-векторов из 32-битных чисел. · Пиксельные процессоры могут записывать до 4-х 4-векторов из 32-битных чисел. · Нет работы с динамически размещаемыми структурами данных. · Суммарное кол-во инструкций в программе - не более 65536 (у графических процессоров NVIDIA). Таким образом, возможностей шейдерной модели 3.0 достаточно для эффективной реализации «чистой» поточно-параллельной обработки данных, но вот возможности произвольной работы с памятью, а также применения ветвлений и циклов ограничены.
|