Infinity Cache функционально похож на CPU-кэш L3
И, наконец, загадочный Infinity Cache. В презентации AMD о нем говорится преступно мало, но если вкратце, то это большой кэш, который установлен в чип, и, по словам AMD, функционально похож на CPU-кэш L3. Как сильно они похожи, нам еще только предстоит увидеть, но концептуально это что-то вроде локального кэша, буферизирующего операции чтения и записи данных, обращенные к главной памяти, и служащего подстраховкой для больших операций, которые во много раз быстрее, чем требуется при работе с VRAM.
Кэши в видеопроцессорах – это не новая идея, особенно для AMD. Компания встроила 32-мегабайтный кэш eSRAM в SoC-систему Xbox One (и Xbox One S), а до этого в Xbox 360 был встроенный кэш eDRAM. Но это первый случай, когда большой кэш был встроен в GPU для ПК.
Чип Navi 21 будет оснащен 128-мегабайтным кэшем Infinity Cache. О других видеочипах AMD пока ничего не говорила, но в них, вероятно, будут встроены более маленькие кэши, т.к. быстрые кэши занимают слишком много чипового пространства.
Поэтому здесь есть смысл поговорить о размере Infinity Cache. Если вкратце, то судя по имеющимся сейчас данным, можно предположить, что AMD выделила для него на удивление большую часть своего транзисторного лимита. Если предположить, что AMD использует стандартные 6-транзисторные SRAM-ячейки, то, по предварительным расчетам, размер Infinity Cache в Navi 21 будет составлять как минимум 6 млрд транзисторов, что много даже для 7-нанометрового техпроцесса TSMC (для сравнения, Navi 10 суммарно состоит из 10.3 млрд транзисторов). Полагаю, в арсенале AMD есть оптимизационные методы для минимизации количества транзисторов и занимаемого ими места, но даже с учетом этого чиповое пространство, которое им придется выделить для Infinity Cache, обещает быть немалым. Но, видимо, они готовы пойти на этот архитектурный компромисс.
AMD жертвует таким большим количеством транзисторов не просто так. У наличия на процессоре (даже если это GPU) большого кэша есть несколько больших плюсов. Например, что касается показателя «производительности на ватты», кэш улучшит энергоэффективность RDNA2, снизив объем трафика, который иначе пошел бы в энергозатратную VRAM. Это также позволяет AMD избавиться от более маленьких подсистем памяти c DRAM-чипами и контроллерами памяти, снизив энергопотребление еще и по этому фронту. Аналогично AMD отчасти обосновывает использование кэша тем, что энергозатраты на его использования меньше, чем при использовании 384-битной шины. Если конкретнее, 256-битная шина с Infinity Cache потребляет лишь 90% энергии 384-битного решения, при этом увеличивая пиковую пропускную способность более, чем вдвое.
Более того, согласно AMD, этот кэш повышает объем работы, выполняемый на GPU в реальном времени за один тактовый цикл – это достигается, вероятно, за счет того, что GPU более быстро извлекает данные, не ожидая, пока они придут из VRAM. И, наконец, Infinity Cache также крайне важен для работы ядер Ray Accelerator, хранящих в кэше существенную часть BVH-данных сцены.
Но, по сути, это было лишь тизером Infinity Cache. К нему есть вопросы не только по поводу чипового пространства, но и насчет производительности, свободы использования (будет ли у разработчиков прямой доступ к нему?) и насколько хорошо он совместим с современным ПО. Выделение столь большого места под встроенный кэш – это, в принципе, спорное решение, но здесь стоит добавить, что хотя Microsoft использовала похожую стратегию для Xbox One, она в то же время оснастила Xbox One X проверенной и объемной GDDR-шиной. Поэтому мне очень любопытно, как AMD с помощью относительно небольшого 128-мегабайтного кэша компенсирует то, что могло бы быть VRAM с 4 и более Гб памяти и пропускной способностью 256 Гбит/с и выше. Из всего, что AMD показала на той презентации, Infinity Cache – это самое революционное изменение, но также самое сомнительное с точки зрения использования его на ПК-шных GPU.
Наконец, касаемо Infinity Cache стоит добавить, что AMD никак не упомянула консоли. Хотя Infinity Cache заявлен как центральная часть архитектуры RDNA2, на данный момент пока неясно, собираются ли вообще производители консолей оснащать им свои устройства (хотя бы в минимальной форме). PS5 и XSX будут укомплектованы большими DRAM-подсистемами, и никто из производителей консолей, публикуя технические подробности о своих девайсах, пока даже словом не упоминал большой кэш.