Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция10 графика.doc
Скачиваний:
16
Добавлен:
21.04.2015
Размер:
629.76 Кб
Скачать

Текстурные блоки g80

В G80 текстурные блоки всё ещё плотно привязаны к своим кластерам шейдерных процессоров. Это несколько снижает производительность, т.к. процессоры не могут использовать "чужие" текстурники, даже когда те свободны.

Каждый текстурный блок состоит из 4 блоков адресации, 8 (32 в терминологии R600) блоков выборки и 8 блоков фильтрации. Выборка из FP16 текстуры выполняется на половинной скорости, из FP32 текстуры - в четыре раза медленнее, чем выборка INT8. Блоки фильтрации способны аппаратно фильтровать любые форматы текстур. Некоторые примеры возможностей: каждый текстурный блок способен либо выполнить 4 билинейные AF 2x с форматом INT8 (да, бесплатная AF 2x, если нужные тексели оказались в L1 кеше), либо 4 билинейные фильтрации с форматом FP16, либо 2 билинейные фильтрации с форматом текстуры FP32. Текстурный блок может наложить до 128 текстур за проход.

Текстурные блоки имеют L1 кеши по 8 КБ каждый. L2 кеш, объём которого равен 128 КБ, текстурные блоки делят с блоками ROP. По всей видимости, текстурные блоки G80 используются для доступа к буферам констант шейдерными процессорами, что может негативно сказаться на производительности DirectX 10 приложений.

Текстурные блоки G80 также управляются арбитрами отдельно от шейдерных процессоров.

В чипах G84 и G92, появившихся после G80, каждый кластер шейдерных процессоров уже включает по 8 блоков адресации текстур.

Заключение

Сравним некоторые пиковые теоретические возможности текстурных блоков R580+, R600 и G80 таблицей.

  Чип

R580+

R600

G80

  Видеокарта

Radeon X1950 XTX

Radeon HD 2900 XT 1 GB

GeForce 8800 Ultra

  Частота

650 МГц

825 МГц

612 МГц

  Текстурных блоков

16

4

8

  Кеш L1

2 КБ * 16

32 КБ * 4 + вершинный

8 КБ * 8

  Кеш L2

?

256 КБ

128 КБ

  Текстур за проход

16

128

128

  Блоков адресации

1 * 16 (16)

8 * 4 (32)

4 * 8 (32)

  Блоков выборки (в единицах AMD)

4 * 16 (64)

20 * 4 (80)

32 * 8 (256)

  Блоков фильтрации

1 * 16 (16)

4 * 4 (16)

8 * 8 (64)

  INT8 выборок за такт для билинейной фильтрации

4 * 16 (64)

16 * 4 (64)

32 * 8 (256)

  FP16 выборок за такт

½ * 4 * 16 (32)

1 * 20 * 4 (80)

½ * 32 * 8 (128)

  FP32 выборок за такт

¼ * 4 * 16 (16)

1 * 20 * 4 (80)

¼ * 32 * 8 (64)

  Трилинейных фильтраций INT8 за такт

½ * 1 * 16 (8)

½ * 4 * 4 (8)

½ * 8 * 8 (32)

  Билинейных фильтраций FP16 за такт

-

1 * 4 * 4 (16)

½ * 8 * 8 (32)

  Билинейных фильтраций FP32 за такт

-

½ * 4 * 4 (8)

¼ * 8 * 8 (16)

  Билинейных фильтраций одноканальных FP32 за такт

-

1 * 4 * 4 (16)

¼ * 8 * 8 (16)

  Трилинейных фильтраций INT8 в секунду

8 * 650 * 10^6 (5.2 млрд)

8 * 825 * 10^6 (6.6 млрд)

32 * 612 * 10^6 (19.6 млрд)

  Билинейных фильтраций FP16 в секунду

-

16 * 825 * 10^6 (13.2 млрд)

32 * 612 * 10^6 (19.6 млрд)

  Билинейных фильтраций одноканальных FP32 в секунду

-

16 * 825 * 10^6 (13.2 млрд)

16 * 612 * 10^6 (9.8 млрд)

Хотя R600 значительно отстаёт от G80 по мощности текстурных блоков, в его пользу выступают более крупные кеши, повышенная тактовая частота, а также менее жёсткая привязанность текстурных блоков к конкретным шейдерным процессорам.

Но всё же R600 является заметным шагом вперёд по сравнению с R580+.

Судя по предварительным данным, Fetch4 будет включена в состав DirectX 10.1 под названием Gather4. В отличие от PCF, уже включенной в состав DX 10, это позволит напрямую передавать неотфильтрованные тексели одноканальных текстур блокам АЛУ (PCF передаёт блокам АЛУ только отфильтрованный результат). Начиная с RV530, продукты AMD уже поддерживают Fetch4, а компании nVidia придётся изменить их текстурные блоки для поддержки этой технологии.