Почему в эпоху ИИ говорят, что всегда не хватает памяти? На самом деле это предопределено с самого рождения. Потому что «узкое место» фон Неймана!
Основой современных компьютеров является архитектура фон Неймана. Ее ключевой принцип в том, что программа и данные хранятся в одном и том же типе памяти. CPU последовательно извлекает инструкции и выполняет их.
Поскольку современные CPU/GPU считают все быстрее, перевозка данных не успевает за скоростью мышления мозга: мозг часто вынужден ждать данные. В эпоху ИИ это становится все более очевидным — каналы передачи данных между вычислительными мощностями и памятью недостаточно быстрые, и перевозка данных замедляет вычисления. Вот что такое «бottleneck Фон Неймана».
Это похоже на CPU/GPU как на поваров. Память — это склад. Шина/интерконнект — это каналы доставки еды. Поваров становится больше, мастерство их ножа — быстрее, но склад находится далеко от кухни, а канал доставки узкий. В итоге дело не в том, что повара не умеют готовить, а в том, что повара ждут ингредиенты.
В AI-серверах сейчас этот узкий проход в основном упирается в четыре вещи:
1:Задержка памяти — сколько времени нужно, чтобы получить данные один раз.
2:Пропускная способность памяти — сколько данных можно перенести за единицу времени.
3:Хватит ли объёма памяти, чтобы всё уместилось. Если не уместится, придётся обращаться к более медленным SSD/жёстким дискам.
4:Энергопотребление и перенос данных сами по себе очень дорогие. Во многих случаях перенос одного раза данных стоит дороже, чем само вычисление. Большой модели при инференсе нужно постоянно читать: веса модели, KV cache, вход/выход токены активаций. Если пропускной способности HBM не хватает, даже при очень мощной вычислительной способности GPU загрузить её полностью не получится.
Так как же решить этот «узкий проход фон Неймана»?
Потому что полностью устранить нельзя — можно лишь смягчить.
1. Кэширование: CPU/GPU напрямую не обращаются к памяти каждый раз, а добавляют многоуровневые кэши.
2. Повышать пропускную способность памяти. Сегодня самая дефицитная — HBM. Идея такая: собрать память «в кучу», разместить её рядом с GPU и соединить сверхшироким интерфейсом.
3. Сблизить вычисления и память. Например: GPU + HBM, CPU + HBM, 3D-стэкинг, chiplet и продвинутая корпусная упаковка, расширение памяти CXL. По сути, это сокращение расстояния, на которое нужно переносить данные.
4. Уменьшить объём данных. В AI для этого часто используют квантизацию FP8 / INT8 / FP4, разрежение, обрезание (pruning) модели, компрессию KV cache, GQA / MQA / MLA. FlashAttention — это не про то, чтобы сделать канал шире, а про то, чтобы нужно было переносить меньше данных.
5. Изменить алгоритмы и ПО. Например: предварительная подкачка данных (prefetch), пакетная обработка (batching), слияние операторов (operator fusion), изменение раскладки данных для повышения попаданий в кэш, снижение повторных чтений/записей. Многие улучшения по производительности — это не то, что железо стало сильнее, а то, что ПО заставляет данные меньше раз ездить туда-сюда.
6. Оптический интерконнект / CPO: когда перенос данных между чипами и между стойками становится узким местом, используют оптику.
Посмотрев всё это, ты, наверное, наконец понимаешь: «башня фон Неймана» — это не какой-то один плохой дизайн, а фундаментальное противоречие современного вычисления: вычисления становятся всё дешевле, а перемещение данных — всё дороже.
Раньше все в основном мерились частотой CPU. Теперь меряются: HBM, кэш, упаковка, пропускная способность памяти, сеть дата-центра, оптическая связь, вычисления в памяти, программное планирование. Поэтому в эпоху AI важными становятся HBM, DRAM, SSD, CPO, оптические модули, OCS. По сути, всё это направлено на решение этого узкого места.#美股科技股反弹道指创新高
