Сегодня 12 марта 2025
18+
MWC 2018 2018 Computex IFA 2018
реклама
Видеокарты

Понимание и рассчёт скорости заполнения (fillrate) акселератора

Терминология

О видах памяти и скорости её заполнения высказано столько мнений, что я решил написать статью по этому поводу. Прежде всего давайте определимся с терминологией:

  • Пиксел - самый маленький элемент буфера кадров, обычно 16-ти или 32-х битный. Так же может обладать Z координатой, тоже 16-ти или 32-х битной.
  • Сэмпл Текселя - самый маленький элемент текстуры. Обычно 16-ти или 32-х битный.
  • Тексел - цвет текстуры, принадлежащий пикселу. Обычно он либо точечно апроксимирован (один сэмл текселя), билинейно фильтрирован (четыре сэмпла текселей) или трилинейно фильтрирован (восемь сэмплов текселей)

Как подсчитать ширину канала памяти?

Для этого нужно знать всего две вещи - ширину шины в битах и частоту памяти в мегагерцах. Память с шириной шины 128 бит может за один раз передавать 16 байт, так как один байт это восемь бит (128бит / 8 = 16 байт). Double Data Rate (DDR) память имеет в два раза большую эффективную частоту, так как за один такт она передаёт данные два раза.

Память с 128-бит шиной и 166Mhz SDRAM может максимально передавать 128бит / 8 бит в байте * 166 мегагерц = 2.656 гигабайт в секунду.

Память с 128-бит шиной и 166Mhz DDR способна передавать 128 бит / 8 бит в байте * 166 мегагерц * 2 (поскольку DDR) = 5.312 гигабайт в секунду

Как посчитать максимальную скорость заполнения?

Для рассчёта максимального теоретического fillrate вы должны знать следующее:

  • Доступную ширину канала памяти (см. выше)
  • Глубину пиксела (сколько бит - 16 или 32)
  • Глубину Z буфера (16 или 32 бита)
  • Глубину текселя

Когда акселератор рендерит треугольник, он разбивает его на единичные пиксели. В нормальной ситуации он делает с каждым пикселем следующее:

  • Читает старое значение Z из Z-буфера
  • Пишет новое значение в Z-буфер
  • Считывает тексел(и)
  • Пишет новый пиксел в Z-буфер

Учитывая это мы можем рассчитать скорость заполнения для заданной ширины канала памяти.

В первом примере у нас до 16 байт, способных пройти через систему памяти для каждого пиксела. Теперь берём для нашего примера память с 128 битной шиной и частотой в 166 мегагерц, смотрим сколько можно протолкнуть через эту память, уместив в 2.656 гигабайт в секунду. Получается 2.656 / 16 = 166 мегапикселей в секунду. Вот несколько моделей и их требований по передаче данных через шину для одного пиксела:

  • 32 бита, 32-х битный Z-буфер, 32-х битная текстура = 16 байт на пиксел
  • 16 бит, 32-х битный Z-буфер, 16-ти битная текстура = 12 байт на пиксел
  • 32 бит, 16-ти битный Z-буфер, 16-ти битная текстура = 10 байт на пиксел
  • 16 бит, 16-ти битный Z-буфер, 16-ти битная текстура = 8 байт на пиксел
  • 16 бит, 16-ти битный Z-буфер без текстуры = 6 байт на пиксл

Вот несколько подсчётов:

Чип со 128-ми битной шиной на 166Mhz SDRAM (к примеру GeForce на SDRAM)

  • Максимальная скорость заполнения в полном 32-х битном режиме (16 байт на пиксел) - 166 мегапикселов в секунду
  • Максимальная скорость заполнения в 16-ти битном режиме (8 байт на пиксел) - 332 мегапиксела в секунду

Чип с шиной 128 бит и частотой 166Mhz типа DDR (к примеру GeForce на DDR)

  • Максимальная скорость заполнения в 32-х битном режиме при 16 байтах на пиксел 322 мегапиксела в секунду
  • Максимальная скорость заполнения в 16-ти битном режиме при 8-ми байтах на пиксел - 664 мегапиксела в секунду

Чип с шириной шины в 128 бит и 183Mhz типа SDRAM (например TNT2 Ultra)

  • Максимальная скорость заполнения в 32-х битном режиме при 16-ти байтах на пиксел - 183 мегапиксела
  • Максимальная скорость заполнения в 16-ти битном режиме при 8-ми байтах на пиксел - 366 мегапикселов в секунду

Получается, что TNT2 Ultra способна рендерить в 32-х битном режиме больше пикселей в секунду, нежели SDRAM версия GeForce. Примечание: конвейер TNT2 лимитирован порогом в 300 мегапикселов в секунду. Можно так же подсчитать, какой поток данных требуется обновления визуального ряда:

Ширина экрана в пикселах * высота экрана * байт на пиксел * частоту регенерации

Примечание: байт на пиксел = 2 для 16-ти битного буфера кадров и 4 для 32-х битного.
Пример - 1600x1200*4*75Hz=576Мб в секунду, так что получается 20% теоретической скорости заполнения TNT2 Ultra, а значит на 20% уменьшается теоретическая скорость заполнения. Другим случаем является использование памяти в случае мультитекстурирования. Насколько ещё одна текстура опускает скорость заполнения в большой степени зависит от приложения, фактора увеличения текстуры, ориентации и др. Короче, если не вникать в детали, то шаблоны тоже отнимают часть канала памяти. Я это писал просто, чтобы показать как 3D акселераторы используют память, а не для того, чтобы рассуждать о разных типах памяти. Это просто математика.


Дополнительные материалы:

Unreal Tournament 2003 в роли бенчмарка
3DMark 2003: увидеть будущее
Max Payne в роли бенчмарка
Serious Sam в роли бенчмарка
Тестовый пакет 3DMark 2001 Pro
Тестовый пакет 3DMark 2000

 
 
Если Вы заметили ошибку — выделите ее мышью и нажмите CTRL+ENTER.

window-new
Soft
Hard
Тренды 🔥
Google инвестировала в одного из главных конкурентов OpenAI больше, чем считалось ранее 8 мин.
Naughty Dog вынесла урок из скандалов вокруг The Last of Us Part II — новые подробности Intergalactic: The Heretic Prophet 43 мин.
Google выпустила Gemma 3 — самую мощную модель ИИ для запуска на одной видеокарте 50 мин.
Apple выпустит концерт Metallica с погружением для Vision Pro с «беспрецедентным доступом» к музыкантам 2 ч.
Психогеографическая RPG Hopetown получила тизер-трейлер с озвучкой от рассказчика Disco Elysium и готовится к выходу на Kickstarter 2 ч.
Microsoft скоро начнёт насаждать рекламу прямо в переписке с ИИ-ботом Copilot 2 ч.
Обновление Basis Dynamix Enterprise 4.2: расширение возможностей управления СХД и более 60 новых функций 3 ч.
Мультиплеерный экшен про боевых роботов Steel Hunters от создателей World of Tanks скоро ворвётся в ранний доступ Steam — дата выхода и новый трейлер 3 ч.
OpenAI создала ИИ-модель, которая мастерски пишет художественные тексты 8 ч.
Бывшие разработчики Gothic и Elex анонсировали Rootbound — завязанный на физике экшен с разумным рюкзаком 14 ч.
Google стала ещё на шаг ближе к выпуску смарт-очки после долгого перерыва 10 мин.
G.Skill представила самую быструю память DDR5 для AMD Ryzen — низкие задержки, до 8000 МТ/с и до 192 Гбайт 29 мин.
Китайская Changan начнёт тестировать твердотельные аккумуляторы с запасом хода до 1500 км уже в этом году 37 мин.
WD представила портативные жёсткие диски на 26 Тбайт и хранилища до 208 Тбайт за $8300 41 мин.
Российскую розницу завалило поддельными наушниками Apple и других известных брендов 51 мин.
Конкуренты SpaceX завалили Федеральную комиссию связи США жалобами на монополию Starlink 59 мин.
Mini-ITX-плата Sapphire Edge+ VPR-5050 содержит чип AMD Ryzen V2748 и FPGA Versal 2 ч.
Мировые продажи смарт-часов упали впервые в истории: у Apple продажи рухнули, а у Xiaomi — взлетели 2 ч.
Nissan сменит генерального директора после провала сделки с Honda 2 ч.
MSI представила компактную GeForce RTX 5070 Shadow 2X всего с двумя вентиляторами 3 ч.