Infinity Cache это технология большого кэша последнего уровня в видеокартах AMD на архитектуре RDNA представленная в 2020 году вместе с архитектурой RDNA 2. В отличие от традиционной видеопамяти Infinity Cache это SRAM на кристалле GPU который работает как большой кэш последнего уровня и значительно снижает нагрузку на шину памяти и VRAM.

Разберём архитектуру Infinity Cache её влияние на производительность в играх и вычислениях сравнение с традиционными подходами и практические приёмы настройки.

Архитектура и принцип работы Infinity Cache

Infinity Cache это большой пул SRAM обычно 32-128 МБ до 256 МБ в RDNA 3 на кристалле GPU который работает как единый кэш последнего уровня для всех вычислительных единиц. В отличие от VRAM GDDR6/GDDR6X которая работает по широкой шине с высокой задержкой Infinity Cache обеспечивает доступ к данным с задержкой близкой к L2/L3 кэшу CPU и потребляет значительно меньше энергии на байт.

Когда GPU запрашивает данные они сначала проверяются в L1/L2 кэшах вычислительных единиц затем в Infinity Cache. Только при промахе в Infinity Cache запрос уходит в VRAM. Поскольку Infinity Cache на кристалле GPU доступ к нему занимает 10-20 нс против 100-200 нс до VRAM.

Размер Infinity Cache по поколениям: RDNA 1 (RX 5000) 0 МБ (нет Infinity Cache); RDNA 2 (RX 6000) 32-128 МБ (RX 6800 XT 128 МБ RX 6700 XT 96 МБ); RDNA 3 (RX 7000) 32-96 МБ на GCD плюс до 256 МБ в MCD у RX 7900 XTX.

Иерархия кэша в RDNA 2: каждый Workgroup Processor (WGP) имеет L0 инструкционный кэш и L0 данные кэш (16 КБ каждый). Четыре WGP образуют Shader Engine (SE) с общим L1 кэшем (128 КБ). Все SE делят L2 кэш (4 МБ). Над L2 находится Infinity Cache (L3) размером 128 МБ у флагманских моделей. В RDNA 3 добавляется второй уровень L2 на GCD (16 МБ) и MCD с собственным L3 (16 МБ каждый).

Политика замещения в Infinity Cache основана на LRU с приоритезацией: данные ray tracing и текстурные сэмплы получают более высокий приоритет удержания в кэше по сравнению с вершинными буферами и командными потоками. Это реализуется через теги доступа в дескрипторах памяти которые драйвер AMDGPU выставляет при создании буферов.

Преимущества Infinity Cache над традиционными подходами

Infinity Cache работает как фильтр: до 80-90 процентов запросов к памяти обслуживается из кэша не нагружая шину VRAM. Это позволяет узким шинам памяти (128-256 бит вместо 384-512 бит) обеспечивать эффективную полосу сравнимую с более широкими шинами.

Доступ к SRAM на кристалле GPU потребляет 0.1-0.5 пДж/бит против 5-10 пДж/бит для GDDR6/GDDR6X. При типичных игровых нагрузках 80-90 процентов запросов обслуживается из Infinity Cache что снижает потребление памяти GPU на 20-40 процентов.

При увеличении разрешения требования к полосе растут линейно а ширина шины VRAM ограничена физически. Infinity Cache позволяет масштабировать эффективную полосу за счёт увеличения hit rate не расширяя шину памяти.

Латентность доступа к Infinity Cache 10-20 нс против 100-200 нс до VRAM. Для задач чувствительных к латентности (ray tracing ray-box intersection) это даёт измеримый прирост производительности.

Сравнение с конкурентами: NVIDIA использует L2 кэш размером 6-12 МБ (Ada Lovelace) без отдельного L3 на кристалле. Подход AMD с 128 МБ L3 позволяет обрабатывать больше данных локально не обращаясь к VRAM.

Эффективная полоса пропускания: при hit rate 85 процентов и частоте Infinity Fabric 2 ГГц эффективная полоса составляет 1.7 ТБ/с (128 МБ 2 ГГц 0.85 * 8 байт на цикл) что в 2-3 раза превышает пиковую полосу GDDR6 384-битной шины.

Влияние на производительность в играх и приложениях

В 4K/8K разрешении Infinity Cache даёт прирост 15-30 процентов FPS в играх чувствительных к полосе памяти (Cyberpunk 2077 Flight Simulator Hogwarts Legacy). При ray tracing кэш особенно важен: BVH traversal генерирует много случайных доступов к памяти которые хорошо кэшируются.

При рендеринге (Blender V-Ray) и кодировании видео (HEVC/AV1) working set часто превышает VRAM. Infinity Cache работает как буфер: горячие тайлы/фреймы остаются в кэше снижая перекачку через PCIe/VRAM.

Для инференса больших моделей (LLM diffusion) Infinity Cache может кэшировать веса и промежуточные активации снижая нагрузку на VRAM и PCIe.

В синтетических тестах (3DMark Time Spy Port Royal) RX 6800 XT с 128 МБ Infinity Cache обходит RTX 3080 с 10 ГБ GDDR6X в сценариях с высокой нагрузкой на память благодаря эффективной полосе 1.5-2 ТБ/с против 760 ГБ/с пиковой у конкурента.

Производительность в приложениях с большими наборами данных: при обучении нейросетей на GPU с 24 ГБ VRAM но рабочим набором 32 ГБ Infinity Cache позволяет держать горячие слои весов в кэше снижая перекачку через PCIe 4.0 x16 на 40-60 процентов.

Настройка и оптимизация Infinity Cache

AMDGPU драйвер управляет Infinity Cache автоматически: эвикция приоритеты replacement policy. В RDNA 3 часть Infinity Cache может быть выделена под инструкции/данные через регистры (AC/DC кэш).

Поднятие частоты Infinity Fabric (FCLK) повышает пропускную способность кэша. Обычно FCLK = MCLK/2 или 1:1 режим. Smart Access Memory (SAM) / Resizable BAR позволяет CPU видеть весь VRAM улучшает доступ CPU к данным в Infinity Cache.

Мониторинг: amdgpu_top / radeontop показывает утилизацию VRAM и L2/L3 кэша; perf с событиями AMD GPU: amdgpu_cache_hits amdgpu_cache_misses; radeontop -c показывает утилизацию Infinity Cache.

Типичные ошибки настройки: отключение Resizable BAR (без SAM/ReBAR CPU не видит VRAM копирование идет через staging buffer); низкий FCLK (частота Infinity Fabric ниже 1800-2000 МГц ограничивает пропускную способность кэша); отсутствие Resizable BAR в BIOS (многие материнские платы требуют явного включения ReBAR/Above 4G Decoding).

Для максимальной производительности рекомендуется: включить Above 4G Decoding и ReBAR в BIOS; установить FCLK 2000-2100 МГц через PBO Advanced или ручную настройку; использовать ядро Linux 6.1+ с поддержкой Dynamic FCLK scaling; настроить amdgpu.ppfeaturemask для включения всех фич управления питанием.

Дополнительные параметры настройки: amdgpu.gttsize для размера GTT буфера (влияет на объём системной памяти доступной GPU); amdgpu.vramlimit для искусственного ограничения VRAM (полезно для тестирования поведения при нехватке памяти); amdgpu.sdma_phase_quantum для настройки SDMA планировщика влияющего на загрузку Infinity Cache.

Особенности RDNA 3 MCD и Chiplet Infinity Cache

В RDNA 3 архитектура стала чиплетной: Graphics Compute Die (GCD) содержит 32-96 МБ Infinity Cache (L3) а Memory Cache Dies (MCD) добавляют по 16 МБ каждый (до 256 МБ суммарно у RX 7900 XTX). MCD содержат контроллеры памяти и дополнительный L3-кэш работающий прозрачно для GCD. Это позволяет масштабировать кэш независимо от вычислительной логики.

GCD в RX 7900 XTX имеет 96 МБ L3 на 6 SE. Шесть MCD добавляют по 16 МБ L3 каждый итого 192 МБ суммарно. Интерконнект между GCD и MCD работает на частоте 2.5 ГГц обеспечивая пропускную способность более 3 ТБ/с.

MCD кэш работает в режиме write-through для данных VRAM и write-back для собственных метаданных. Это обеспечивает когерентность между GCD L3 и MCD L3 без дорогых протоколов snooping.

RDNA 3 также вводит разделение кэша на instruction cache и data cache внутри Infinity Cache: AC (instruction) и DC (data) части могут настраиваться независимо через регистры RDNA3_CACHE_PARTITION что позволяет оптимизировать под конкретные рабочие нагрузки (compute heavy vs graphics heavy).

Ограничения важные нюансы и практический порядок внедрения Infinity Cache

Hit rate не 100 процентов: при рабочих наборах больше размера Infinity Cache (streaming workloads большие текстуры более 128 МБ) hit rate падает производительность падает до уровня VRAM.

Write-back политика: запись через кэш требует flush при смене контекста / синхронизации добавляет латентность.

Конкуренция за кэш: при мультитаскинге (игра + браузер + кодировка) hit rate падает из-за вытеснения.

Отсутствие ECC: Infinity Cache не имеет ECC single-bit ошибки могут приводить к артефактам (редко но возможно при перегреве).

Важно: Infinity Cache это технология видеокарт AMD Radeon (архитектура RDNA 2/3) а не серверных процессоров EPYC. В серверных процессорах EPYC используется обычный L3-кэш с технологией 3D V-Cache (стековый кэш) а не Infinity Cache. Infinity Fabric это межсоединение а не название кэша.

Практический порядок внедрения и проверки Infinity Cache:

  1. включить Resizable BAR и Above 4G Decoding в BIOS материнской платы для активации Smart Access Memory;
  2. обновить микрокод AMD GPU и ядро Linux до версии с поддержкой RDNA 2/3 (ядро 5.10+ для RDNA 2 5.15+ для RDNA 3);
  3. настроить PBO и частоту FCLK в BIOS или через amdgpu.ppfeaturemask для оптимальной работы Infinity Fabric;
  4. проверить работоспособность через amdgpu_top radeontop perf с событиями amdgpu_cache_hits/misses;
  5. запустить бенчмарки в целевых приложениях (игры 4K ray tracing рендеринг ML инференс) зафиксировать прирост;
  6. зафиксировать настройки в скриптах провижининга для автоматического применения при развёртывании новых узлов.

Заключение по технологии Infinity Cache и дополнительные рекомендации

Infinity Cache прорывная технология AMD перенесшая подход больших L3-кэшей из CPU (EPYC 3D V-Cache) в GPU. Она позволяет узким шинам памяти (128-256 бит) конкурировать с широкими (384-512 бит) за счёт высокого hit rate (80-90 процентов) снижает потребление энергии на 20-40 процентов и даёт прирост 15-30 процентов в 4K/8K гейминге. Для современных GPU (RDNA 2/3) Infinity Cache ключевой фактор производительности и его правильная настройка (SAM FCLK Resizable BAR) критична для раскрытия потенциала видеокарты.

Диагностика и устранение неполадок

При диагностике проблем с производительностью связанных с Infinity Cache рекомендуется последовательно проверить: hit rate через perf (ожидается 80-95 процентов для типичных нагрузок); температуру Infinity Fabric (перегрев выше 95 градусов вызывает троттлинг FCLK); версию микрокода GPU (устаревший микрокод может не включать оптимизации кэша); настройки BIOS (ReBAR Above 4G Decoding FCLK frequency). Типичные симптомы проблем: низкий FPS в 4K при высокой загрузке VRAM но низкой загрузке GPU core; артефакты в ray tracing сценах при высоких температурах; нестабильная производительность между запусками из-за динамического FCLK scaling. Использование amdgpu_top с ключом -c показывает утилизацию Infinity Cache в реальном времени позволяя выявить узкие места кэша.

Экономическая эффективность и перспективы развития

Технология Infinity Cache позволяет AMD выпускать видеокарты с ужеми шинами памяти (128-256 бит) сохраняя конкурентоспособность с решениями NVIDIA имеющими шины 384-512 бит. Это снижает стоимость кристалла (меньше PHY контроллеров памяти) и стоимость платы (менее слоёв печатной платы для шины памяти). По оценкам аналитиков экономия на BoM составляет 15-25 долларов на карту среднего ценового сегмента.

В перспективе RDNA 4 (RX 8000) ожидается увеличение Infinity Cache до 256-512 МБ на GCD с переходом на 3 нм техпроцесс TSMC и внедрением 3D V-Cache технологии из серверных EPYC непосредственно в GPU. Это даст hit rate 90-95 процентов при рабочих наборах до 512 МБ и позволит использовать 64-128 битные шины памяти следующего поколения GDDR7 сохраняя эффективную полосу 3-4 ТБ/с.

Сравнение с кэш-технологиями CPU и итоговые выводы

Технология Infinity Cache в GPU концептуально близка к 3D V-Cache в серверных процессорах AMD EPYC: оба подхода используют вертикальное стекирование или крупный on-die SRAM для расширения L3 кэша. Разница в том что 3D V-Cache добавляет 64 МБ L3 поверх CCD через гибридную сборку тогда как Infinity Cache интегрирован в видеокристалл моноlitно. Оба решения решают одну проблему: разрыв между растущими вычислительными мощностями и отстающей полосой памяти. Правильная настройка Infinity Cache через SAM FCLK Resizable BAR в сочетании с современным ядром Linux даёт максимальный возврат на вложения в видеокарту AMD.