gpuavatar Видеокарта
Наверх

Архитектура современных графических процессоров

NVIDIA G80

Cвой новый графический процессор под кодовым названием G80 компания NVIDIA спроектировала на основе принципов скалярной унифицированной шейдерной архитектуры. Что характерно, каждый из его 128-и потоковых скалярных конвейеров (процессоров; см. справочник) может обрабатывать всего лишь по одной операции (команде) за такт. Несмотря на то, что ещё несколько лет назад казалось, что и 20-и конвейеров вполне достаточно, но необходимость в столь большом количестве всё же возникла. Особенность скалярных конвейеров состоит в том, что они могут производить вычисления лишь над одним операндом в некоторый момент времени, а традиционные конвейеры проектируются для одновременной параллельной (векторизированной) обработки 4 операндов.

ATI R600

Как и в случае G80, каждый из шейдерных конвейеров R600 может выполнять одну операцию за такт. Дело в том, что конвейеры R600 не являются скалярными в широком смысле этого слова, так как они группируются в блоки по 5 штук. Каждый из этих 64 суперскалярных блоков может выполнять за такт одну скалярную операцию и одну векторизированную на 4-х конвейерах сразу. Теоретически одна такая векторизированная команда эквивалентна 4-м скалярным, но не всегда. Говоря простым языком, 4 одинаковые скалярные операции можно преобразовать в 1 векторизированную. Если же эти 4 скалярные операции отличаются по характеру, то такое преобразование невозможно. Это не имело бы никакого значения, если бы все операции с шейдерами были векторизированными, но на деле всё обстоит иначе, и прямая аналогия между 5-ю конвейерами ATI типа Vec 4+1 и 5-ю скалярными конвейерами NVIDIA просматривается далеко не всегда, поскольку в реальных приложениях доля независимых скалярных расчётов довольно значительна. Очевидно, что это негативно отражается на реальной производительности R600.