Как разрабатывать чипы GPU
Chapter 9 Power Energy and Thermal Management

Глава 9: Питание, энергия и тепловое управление

По мере того, как графические процессоры (GPU) эволюционировали в высокопараллельные, программируемые ускорители, способные обеспечивать огромную вычислительную производительность, управление их энергопотреблением и тепловыделением стало все более важным. Высокое энергопотребление не только приводит к повышению энергетических затрат и сокращению времени автономной работы мобильных устройств, но и требует более совершенных решений для охлаждения и упаковки, чтобы обеспечить надежную работу. В этой главе мы исследуем источники энергопотребления в GPU, методы отключения тактовой частоты и питания, динамическое масштабирование напряжения и частоты (DVFS), а также различные решения для охлаждения и упаковки GPU.

Источники энергопотребления в GPU

Для эффективного управления энергопотреблением в GPU важно понимать основные источники рассеиваемой мощности. Энергопотребление GPU можно в целом разделить на динамическую и статическую мощность.

Динамическая мощность

Динамическая мощность - это мощность, потребляемая GPU, когда он активно обрабатывает данные и выполняет инструкции. Динамическое энергопотребление GPU можно выразить следующим уравнением:

P_dynamic = α * C * V^2 * f

Где:

  • α - коэффициент активности, представляющий долю транзисторов, которые переключаются
  • C - общая емкость переключаемых транзисторов
  • V - напряжение питания
  • f - рабочая частота

Из этого уравнения видно, что динамическое энергопотребление пропорционально квадрату напряжения питания и линейно пропорционально рабочей частоте. Следовательно, снижение напряжения или частоты может привести к значительному снижению динамического энергопотребления.

Коэффициент активности α зависит от конкретной выполняемой рабочей нагрузки и использования различных компонентов GPU. Например, вычислительно-интенсивная рабочая нагрузка, которая держит ядра GPU занятыми, будет иметь более высокий коэффициент активности по сравнению с нагрузкой, ограниченной памятью, которая проводит больше времени в ожидании.Русский перевод этого файла Markdown:

Статическая мощность

Статическая мощность, также известная как мощность утечки, - это мощность, потребляемая GPU даже когда он простаивает и не обрабатывает данные активно. Статическая мощность в основном обусловлена токами утечки в транзисторах и становится все более значительной компонентой общего потребления энергии, поскольку размеры транзисторов продолжают уменьшаться.

Потребление статической мощности можно выразить с помощью следующего уравнения:

P_static = I_utechka * V

Где:

  • I_utechka - это общий ток утечки
  • V - это напряжение питания

На ток утечки влияют такие факторы, как размер транзистора, пороговое напряжение и температура. По мере уменьшения размера транзисторов ток утечки увеличивается, что приводит к более высокому потреблению статической мощности. Кроме того, более высокие температуры приводят к увеличению тока утечки, создавая положительную обратную связь, которая может привести к тепловому пробегу, если она не будет должным образом управляться.

На рисунке 9.1 иллюстрируется разбивка потребления динамической и статической мощности в типичном GPU.

        Динамическая мощность (70%)
       /                  \
      /                    \
     /                      \
    /                        \
   /                          \
  /                            \
 /                              \
/                                \
|----------------------------------|
|                                  |
|         Статическая мощность (30%) |
|                                  |
|----------------------------------|

Рисунок 9.1: Разбивка потребления динамической и статической мощности в типичном GPU.

Методы управления тактированием и питанием

Управление тактированием и управление питанием - это два широко используемых метода для снижения потребления энергии в GPU путем селективного отключения неиспользуемых или простаивающих компонентов.

Управление тактированием

Управление тактированием - это метод, который отключает тактовый сигнал от конкретного компонента или функционального блока, когда он не используется. Предотвращая тактовый сигнал от достижения неактивных компонентов, управление тактированием устраняет динамическоеПотребление электроэнергии, связанное с ненужным переключением транзисторов.

Рисунок 9.2 иллюстрирует концепцию управления тактовым сигналом.

           Тактовый сигнал
             |
             |
             |
             |
             |
         Управление тактовым сигналом
         Сигнал разрешения
             |
             |
             |
             |
             |
        +---------+
        |         |
        |  Управляемый |
        |  Тактовый сигнал  |
        |         |
        +---------+
             |
             |
             |
             |
        Функциональный блок

Рисунок 9.2: Концепция управления тактовым сигналом.

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

Управление тактовым сигналом может применяться на различных уровнях, от отдельных функциональных блоков до целых ядер GPU или даже более крупных подсистем. Управление тактовым сигналом на мелком уровне обеспечивает более точный контроль над потреблением энергии, но требует более сложной логики управления и может вызывать дополнительные накладные расходы. С другой стороны, управление тактовым сигналом на более высоком уровне проще в реализации, но может обеспечивать меньшую оптимизацию энергопотребления.

Управление питанием

Управление питанием - это техника, которая полностью отключает питание от определенного компонента или функционального блока, когда он не используется. Отключая питание, управление питанием устраняет как динамическое, так и статическое потребление энергии, связанное с этим компонентом.

Рисунок 9.3 иллюстрирует концепцию управления питанием.

В этом примере выключатель питания отключаетВот перевод на русский язык с сохранением фронтматтера и комментариев:

Между блоком питания и функциональным блоком располагается выключатель питания. Когда функциональный блок не нужен, выключатель питания выключается, полностью отключая блок питания от функционального блока и устраняя как динамическое, так и статическое потребление энергии.

Управление питанием может применяться на различных уровнях детализации, от отдельных функциональных блоков до целых ядер GPU или даже более крупных подсистем. Управление питанием с высокой степенью детализации обеспечивает более точный контроль над потреблением энергии, но требует более сложной логики управления и может вносить дополнительные накладные расходы. С другой стороны, управление питанием с низкой степенью детализации проще в реализации, но может приводить к менее оптимальной экономии энергии.

Внедрение управления питанием требует тщательного проектирования, включая:

  1. Логику управления управлением питанием: Необходима схема, определяющая, когда включать и выключать управление питанием в зависимости от активности функционального блока. Эта логика управления должна минимизировать влияние на производительность.

  2. Сохранение состояния: Когда функциональный блок находится под управлением питанием, его внутреннее состояние (например, значения регистров) теряется. Если необходимо сохранить состояние между циклами управления питанием, требуются дополнительные механизмы сохранения состояния, такие как теневые регистры или память.

  3. Накладные расходы управления питанием: Включение и выключение управления питанием вносит определенные задержки и энергетические накладные расходы. Эти накладные расходы должны быть минимизированы, чтобы преимущества управления питанием перевешивали затраты.

  4. Разделение доменов питания: Архитектура GPU должна быть разделена на соответствующие домены питания, каждый со своим управлением питанием, чтобы максимизировать экономию энергии при минимальном влиянии на производительность.

Пример: Управление питанием блоков исполнения в архитектуре NVIDIA Fermi

В архитектуре NVIDIA Fermi каждый мультипроцессор потоковых вычислений (SM) содержит 32 ядра CUDA, организованных в две группы по 16 ядер каждая. Когда GPU выполняет рабочую нагрузку с ограниченным параллелизмом, может не потребоваться активация всех 32 ядер CUDA в каждом SM.Вот перевод на русский с сохранением неизмененного кода:

В этом случае архитектура Fermi может отключать питание одной группы из 16 ядер CUDA, чтобы снизить потребление энергии.

На рисунке 9.4 показано отключение питания блоков исполнения в SM Fermi.

                 SM
        +-----------------+
        |                 |
        |   CUDA Cores    |
        |   (Группа 1)    |
        |                 |
        |   Выключатель   |
        |   питания       |
        |   CUDA Cores    |
        |   (Группа 2)    |
        |                 |
        +-----------------+

Рисунок 9.4: Отключение питания блоков исполнения в SM Fermi.

Когда рабочая нагрузка не требует всех 32 ядер CUDA, выключатель питания может быть отключен, отключая питание второй группы из 16 ядер CUDA и снижая потребление энергии SM.

Динамическое изменение напряжение и частоты (DVFS)

Динамическое изменение напряжения и частоты (DVFS) - это технология, которая динамически регулирует напряжение и частоту GPU в зависимости от текущей рабочей нагрузки и требований к производительности. Снижая напряжение и частоту во время периодов низкой загрузки, DVFS может значительно снизить потребление энергии без существенного влияния на производительность.

Потребление энергии GPU пропорционально квадрату напряжения и линейно пропорционально частоте, что показано в уравнении динамической мощности:

P_dynamic = α * C * V^2 * f

Где:

  • α - коэффициент активности
  • C - емкость
  • V - напряжение
  • f - частота

Снижая напряжение и частоту, DVFS может достичь кубического снижения динамического потребления энергии.

DVFS, как правило, реализуется с помощью комбинации аппаратных и программных методов:

  1. Домены напряжения и частоты: GPU разделен на несколько доменов напряжения и частоты, каждый из которых может управляться независимо. Это позволяет точно контролировать потребление энергии и производительность.

  2. Мониторинг производительности: аппаратные счетчики производительности и датчики используются для отслеживания рабочей нагрузки и температуры GPU.Эта информация используется логикой управления DVFS для принятия решений о том, когда и как регулировать напряжение и частоту.

  3. Логика управления DVFS: Программное или аппаратное управляющее устройство отвечает за определение подходящих настроек напряжения и частоты на основе текущей нагрузки и требований к производительности. Эта логика управления может использовать различные алгоритмы, такие как поиск по таблице или замкнутое управление с обратной связью, для принятия решений DVFS.

  4. Масштабирование напряжения и частоты: Как только логика управления DVFS определит целевое напряжение и частоту, аппаратный регулятор напряжения и генератор тактовых импульсов будут отрегулированы до новых настроек. Этот процесс может занять несколько тактовых циклов, в течение которых GPU может потребоваться приостановка или работа на пониженном уровне производительности.

Пример: DVFS в архитектуре NVIDIA Fermi

Архитектура Fermi NVIDIA включает в себя аппаратный контроллер DVFS, который может динамически регулировать напряжение и частоту GPU в зависимости от текущей нагрузки и тепловых условий. Архитектура Fermi поддерживает несколько доменов напряжения и частоты, что позволяет осуществлять независимое управление ядром GPU и подсистемами памяти.

На рисунке 9.5 иллюстрируется система DVFS в архитектуре Fermi.

        +--------------------+
        |                    |
        |   Домен ядра GPU   |
        |                    |
        +--------------------+
                 |
                 |
        +--------------------+
        |                    |
        |  Контроллер DVFS   |
        |                    |
        +--------------------+
                 |
                 |
        +--------------------+
        |                    |
        | Домен памяти       |
        |                    |
        +--------------------+

Рисунок 9.5: Система DVFS в архитектуре Fermi.

Контроллер DVFS отслеживает нагрузку и тепловые условия GPU и соответствующим образом регулирует настройки напряжения и частоты. Например, если GPU работает под высокой нагрузкой, контроллер DVFS может увеличить частоту и напряжение для повышения производительности. С другой стороны, если GPU находится в простое, контроллер DVFS может снизить частоту и напряжение для экономии энергии.Вот перевод этого файла на русский язык:


language: ru

При работе с вычислительно-интенсивной нагрузкой и температурой ниже определенного порога, контроллер DVFS может увеличить напряжение и частоту для повышения производительности. Наоборот, если GPU бездействует или выполняет задачи, связанные с памятью, контроллер DVFS может снизить напряжение и частоту для экономии энергии.

DVFS может значительно снизить потребление энергии GPU при сохранении хорошей производительности. Однако это также вводит некоторые проблемы, такие как:

  1. Задержка: Изменение настроек напряжения и частоты вызывает определенную задержку, во время которой GPU может быть вынужден простаивать или работать на пониженной производительности. Эту задержку следует свести к минимуму, чтобы преимущества DVFS перевешивали затраты.

  2. Стабильность и надежность: Изменение напряжения и частоты может повлиять на стабильность и надежность GPU. Контроллер DVFS должен обеспечить, чтобы настройки напряжения и частоты находились в безопасных рабочих диапазонах, и переходы между различными настройками были плавными и без сбоев.

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

Пример: DVFS в мобильном GPU

Рассмотрим мобильный GPU, который поддерживает три настройки напряжения и частоты:

  1. Высокая: 1.0 В, 500 МГц
  2. Средняя: 0.9 В, 400 МГц
  3. Низкая: 0.8 В, 300 МГц

GPU выполняет игру, чередующую вычислительно-интенсивные и связанные с памятью фазы. Во время вычислительно-интенсивных фаз контроллер DVFS устанавливает GPU на Высокую настройку для максимальной производительности. Во время фаз, связанных с памятью, контроллер DVFS снижает напряжение и частоту до Средней настройки, чтобы сэкономить энергию без значительного ущерба для производительности.

Если температура GPU превышает определенный порог, контроллер DVFS может еще больше снизить напряжение и частоту до Низкой настройки.Вот перевод на русский язык:

Решения для охлаждения GPU и упаковка

По мере того, как GPU становятся все более мощными и плотными по мощности, эффективные решения для охлаждения и методы упаковки становятся все более важными для обеспечения надежной работы и оптимальной производительности. Решения для охлаждения разрабатываются для отвода тепла от GPU и поддержания температуры чипа в безопасных пределах эксплуатации. Методы упаковки используются для обеспечения эффективных тепловых интерфейсов между GPU и решением для охлаждения, а также для защиты GPU от физических повреждений и внешних факторов.

Воздушное охлаждение

Воздушное охлаждение - это самое распространенное и экономичное решение для охлаждения GPU. Оно предполагает использование радиаторов и вентиляторов для рассеивания тепла от GPU в окружающий воздух. Радиатор - это пассивный компонент, который отводит тепло от GPU и обеспечивает большую площадь поверхности для рассеивания тепла. Вентилятор - это активный компонент, который заставляет воздух проходить через радиатор, усиливая конвективный теплообмен.

На рисунке 9.6 проиллюстрировано типичное решение для воздушного охлаждения GPU.

        Вентилятор
         |
         |
    _____|_____
   |           |
   |   Радиатор|
   |___________|
         |
         |
        GPU

Рисунок 9.6: Решение для воздушного охлаждения GPU.

Эффективность решения для воздушного охлаждения зависит от нескольких факторов, таких как:

  1. Конструкция радиатора: Радиатор должен иметь большую площадь поверхности и эффективную теплопроводность, чтобы максимизировать рассеивание тепла. Медь и алюминий - распространенные материалы для радиаторов из-за их высокой теплопроводности.

  2. Производительность вентилятора: Вентилятор должен обеспечивать достаточный воздушный поток через радиатор для эффективного отвода тепла. Скорость вращения и конструкция лопастей вентилятора могут быть оптимизированы для достижения баланса между охлаждающей производительностью и уровнем шума.

  3. Тепловой интерфейсный материал (TIM): TIM, такой как термопаста или...Вот перевод этого markdown-файла на русский язык:


language: ru

  1. Управление потоком воздуха: Общий поток воздуха внутри корпуса GPU должен быть оптимизирован, чтобы обеспечить эффективный забор холодного воздуха и удаление горячего воздуха. Это может предполагать использование дополнительных вентиляторов, воздуховодов или вентиляционных отверстий для направления потока воздуха.

Воздушное охлаждение подходит для большинства потребительских GPU и некоторых профессиональных GPU с умеренным энергопотреблением. Однако для высокопроизводительных GPU с очень высокой плотностью мощности воздушное охлаждение может быть недостаточным для поддержания приемлемых температур, и могут потребоваться более сложные решения для охлаждения.

Жидкостное охлаждение

Жидкостное охлаждение - это продвинутое решение для охлаждения, использующее жидкий хладагент для удаления тепла от GPU. Жидкостное охлаждение может обеспечить лучшие тепловые характеристики, чем воздушное охлаждение, поскольку жидкости обладают более высокой теплоемкостью и теплопроводностью по сравнению с воздухом. Существуют два основных типа решений для жидкостного охлаждения GPU: готовые (AIO) жидкостные системы охлаждения и пользовательские жидкостные контуры.

Готовые жидкостные системы охлаждения (AIO) - это предварительно собранные закрытые контуры, состоящие из водоблока, радиатора, насоса и трубопровода. Водоблок монтируется непосредственно на GPU, и жидкий хладагент прокачивается через него, чтобы поглощать тепло от GPU. Нагретый хладагент затем поступает в радиатор, где он охлаждается вентиляторами перед возвратом в водоблок. Готовые жидкостные системы охлаждения относительно просты в установке и техническом обслуживании, что делает их популярным выбором для высокопроизводительных игровых GPU.

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

Фигура 9.7 иллюстрирует типичное решение жидкостного охлаждения для GPU.

        Радиатор
           |
           |
        Трубки
           |
           |
        Водяной блок
           |
           |
          GPU

Рисунок 9.7: Решение жидкостного охлаждения для GPU.

Жидкостное охлаждение может обеспечить ряд преимуществ по сравнению с воздушным охлаждением, таких как:

  1. Более низкие температуры GPU: жидкостное охлаждение может поддерживать более низкие температуры GPU по сравнению с воздушным охлаждением, что позволяет достигать более высоких тактовых частот и лучшей производительности.

  2. Более тихая работа: системы жидкостного охлаждения могут работать при более низких скоростях вращения вентиляторов по сравнению с воздушными кулерами, что обеспечивает более тихую работу.

  3. Улучшенный потенциал разгона: более низкие температуры и лучшая тепловая мощность, обеспечиваемые жидкостным охлаждением, могут позволить более агрессивный разгон GPU.

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

Методы упаковки

Методы упаковки играют критическую роль в тепловом управлении и надежности GPU. Упаковка обеспечивает интерфейс между кристаллом GPU и системой охлаждения, а также защиту от физических повреждений и воздействия окружающей среды. Некоторые распространенные методы упаковки, используемые для GPU, включают:

  1. Flip-Chip Ball Grid Array (FC-BGA): в упаковке FC-BGA кристалл GPU перевернут и соединен с подложкой корпуса с помощью массива паяных шариков. Паяные шарики обеспечивают электрическое соединение и механическую поддержку. FC-BGA позволяет достичь высокой плотности выводов и хорошие тепловые характеристики, так как теплоотвод может быть напрямую прикреплен к обратной стороне кристалла GPU.

  2. Chip-on-Wafer-on-Substrate (CoWoS): CoWoS - это продвинутая технология упаковки, позволяющая интегрировать несколько кристаллов, таких как GPU и HBM-память, в одном корпусе. Кристаллы сначала монтируются на пластине, а затем на подложку.Here is the Russian translation of the provided markdown file:


language: ru

Для создания silicon interposer используются micro-bumps, а сам interposer затем фиксируется на подложке корпуса (package substrate) с помощью технологии flip-chip. CoWoS обеспечивает высокоскоростные, низколатентные межсоединения между GPU и памятью, а также улучшенную подачу питания и управление тепловыделением.

  1. Прямое подключение чипа (Direct Chip Attach, DCA): В упаковке DCA GPU-кристалл напрямую крепится к печатной плате с помощью проводящего клея или пайки. Это исключает необходимость в отдельной подложке корпуса, снижая тепловое сопротивление и улучшая подачу питания. Тем не менее, DCA требует тщательного проектирования и сборки печатной платы, чтобы обеспечить надежные соединения и предотвратить повреждение GPU-кристалла.

  2. Многокристальный модуль (Multi-Chip Module, MCM): Упаковка MCM подразумевает интеграцию нескольких кристаллов, таких как GPU и память, на одной подложке корпуса. Кристаллы соединяются с помощью wire bonds или технологии flip-chip, а подложка корпуса обеспечивает межсоединения между кристаллами и внешними выводами. Упаковка MCM позволяет достичь более высокой плотности интеграции и улучшить целостность сигнала по сравнению с отдельными корпусами.

Эффективные методы упаковки должны обеспечивать:

  1. Хорошую тепловую проводимость: Корпус должен иметь низкое тепловое сопротивление, чтобы позволить эффективный отвод тепла от GPU-кристалла к системе охлаждения.

  2. Надежные электрические соединения: Корпус должен обеспечивать стабильные и низкосопротивительные электрические соединения между GPU-кристаллом и печатной платой или interposer.

  3. Механическую защиту: Корпус должен защищать GPU-кристалл от физических повреждений, таких как удары, вибрации и изгибание.

  4. Защиту от окружающей среды: Корпус должен экранировать GPU-кристалл от внешних факторов, таких как влага, пыль и электромагнитные помехи.

По мере дальнейшего увеличения плотности мощности GPU, передовые технологии упаковки, такие как 2.5D и 3D интеграция, становятся все более важными для обеспечения эффективного теплоотвода и высокопроизводительных межсоединений.

Заключение

Управление питанием, энергией и тепловыделением являются критически важными аспектами GPU

По мере того, как GPU становятся более мощными и энергоемкими, эффективные методы управления имеют решающее значение для обеспечения оптимальной производительности, энергоэффективности и надежности.

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

Динамическое масштабирование напряжения и частоты (DVFS) - это еще одна мощная техника, которая может значительно снизить энергопотребление GPU при сохранении хорошей производительности. Путем динамической регулировки напряжения и частоты в зависимости от нагрузки и температурных условий DVFS может достичь хорошего баланса между производительностью и энергоэффективностью.

Эффективные решения по охлаждению и упаковке также имеют решающее значение для управления тепловым выходом современных GPU. Воздушное охлаждение - наиболее распространенное и экономически эффективное решение, но жидкостное охлаждение может обеспечить лучшие термические характеристики для высокопроизводительных GPU с очень высокой плотностью мощности. Передовые технологии упаковки, такие как CoWoS и MCM, могут обеспечить эффективное тепловое управление и высокопроизводительные межсоединения.

По мере дальнейшей эволюции архитектур GPU и увеличения плотности мощности, новые методы управления питанием, энергией и теплоотводом будут иметь решающее значение для обеспечения непрерывного роста производительности и эффективности GPU. Исследования в таких областях, как расширенные алгоритмы DVFS, интегрированные регуляторы напряжения и передовые технологии упаковки, будут играть ключевую роль в обеспечении следующего поколения высокопроизводительных и энергоэффективных GPU.