KNOWLEDGE_ACCUMULATOR Telegram 253
Strangely, Matrix Multiplications on GPUs Run Faster When Given "Predictable" Data! [2024]

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

Оказывается, если взять видеокарту и попросить её умножить 2 большие матрицы фиксированного размера, то скорость выполнения зависит от значений на входе. Казалось бы - количество умножений и сложений фиксированное и такого быть не должно, но разница аж в 10-20%. Как так?

Для понимания этого перескажу некоторые аспекты работы видеокарты (сам не эксперт, пожалуйста, поправьте неточности):

Итак, видеокарта - это конструкция из транзисторов и других элементов, по которым течёт ток (внезапно). Он пропускается через всю схему какое-то количество раз в секунду, и это называется тактовой частотой. На то, чтобы пропускать ток, уходит часть мощности видеокарты - в случае A100 это около 80W.

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

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

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

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

Автор пробует подавать разные виды входов - равномерное распределение, нормальное, нормальное + шахматная маска, бернулли и т.д. - результаты можно найти в посте.

По результатам ещё одного замера удаётся "разоблачить" маркетинг от Nvidia. На бумаге количество флопсов на H100 в 3 раза больше, чем у A100, поскольку считаются они по формуле (кол-во ядер) x (макс. частота) x (флопсы на инструкцию). Однако, по графику видно (прикреплён к посту), что поддерживать такой теоретический максимум видеокарта не способна при доступном лимите мощности

Таким образом, в реальности она работает лишь в 2 раза быстрее. Учитывая то, что их мощности это 700W и 400W, получается, что "реальные" флопсы на ватт между поколениями выросли весь скромно.

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

@knowledge_accumulator



tgoop.com/knowledge_accumulator/253
Create:
Last Update:

Strangely, Matrix Multiplications on GPUs Run Faster When Given "Predictable" Data! [2024]

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

Оказывается, если взять видеокарту и попросить её умножить 2 большие матрицы фиксированного размера, то скорость выполнения зависит от значений на входе. Казалось бы - количество умножений и сложений фиксированное и такого быть не должно, но разница аж в 10-20%. Как так?

Для понимания этого перескажу некоторые аспекты работы видеокарты (сам не эксперт, пожалуйста, поправьте неточности):

Итак, видеокарта - это конструкция из транзисторов и других элементов, по которым течёт ток (внезапно). Он пропускается через всю схему какое-то количество раз в секунду, и это называется тактовой частотой. На то, чтобы пропускать ток, уходит часть мощности видеокарты - в случае A100 это около 80W.

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

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

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

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

Автор пробует подавать разные виды входов - равномерное распределение, нормальное, нормальное + шахматная маска, бернулли и т.д. - результаты можно найти в посте.

По результатам ещё одного замера удаётся "разоблачить" маркетинг от Nvidia. На бумаге количество флопсов на H100 в 3 раза больше, чем у A100, поскольку считаются они по формуле (кол-во ядер) x (макс. частота) x (флопсы на инструкцию). Однако, по графику видно (прикреплён к посту), что поддерживать такой теоретический максимум видеокарта не способна при доступном лимите мощности

Таким образом, в реальности она работает лишь в 2 раза быстрее. Учитывая то, что их мощности это 700W и 400W, получается, что "реальные" флопсы на ватт между поколениями выросли весь скромно.

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

@knowledge_accumulator

BY Knowledge Accumulator




Share with your friend now:
tgoop.com/knowledge_accumulator/253

View MORE
Open in Telegram


Telegram News

Date: |

The Channel name and bio must be no more than 255 characters long 1What is Telegram Channels? Deputy District Judge Peter Hui sentenced computer technician Ng Man-ho on Thursday, a month after the 27-year-old, who ran a Telegram group called SUCK Channel, was found guilty of seven charges of conspiring to incite others to commit illegal acts during the 2019 extradition bill protests and subsequent months. Users are more open to new information on workdays rather than weekends. While some crypto traders move toward screaming as a coping mechanism, many mental health experts have argued that “scream therapy” is pseudoscience. Scientific research or no, it obviously feels good.
from us


Telegram Knowledge Accumulator
FROM American