Как работают Видеокарты? Исследуем архитектуру GPU [Branch Education на русском]

Видеокарты могут запускать самые невероятные игры, но сколько вычислений они выполняют каждую секунду? Самые продвинутые графические процессоры выполняют тридцать шесть триллионов вычислений или даже больше каждую секунду. Но как одно устройство может справляться с десятками триллионов вычислений? В этом видео мы исследуем архитектуру внутри видеокарты тридцать девяносто и архитектуру чипа GA-102.

Таймкоды

00:00 Введение в вычислительную мощность видеокарт

  • Видеокарты выполняют миллионы вычислений в секунду для запуска игр.
  • Современные игры, такие как Cyberpunk 2077, требуют около 36 триллионов вычислений в секунду.
  • Для достижения такой производительности потребовалось бы 4400 планет Земля.

02:07 Различия между GPU и CPU

  • GPU имеет более 10 тысяч ядер, а CPU — всего 24 ядра.
  • GPU обрабатывает большие объемы данных, но медленнее, чем CPU.
  • CPU универсален и может выполнять разнообразные программы, а GPU — нет.

05:01 Архитектура GPU

  • GPU состоит из чипа с 28,3 миллиардами транзисторов.
  • Чип разделен на семь графических процессорных кластеров с 12 потоковыми мультипроцессорами.
  • Каждый потоковый мультипроцессор содержит 4 варпа и 1 ядро трассировки лучей.

05:55 Ядра CUDA и их функции

  • Ядра CUDA выполняют простые арифметические операции.
  • Тензорные ядра используются для геометрических преобразований и работы с ИИ.
  • Ядра трассировки лучей выполняют алгоритмы трассировки лучей.

06:52 Производственные дефекты и их влияние

  • Разные модели видеокарт используют один и тот же чип, но с разным количеством дефектных ядер.
  • Дефектные ядра отключаются, чтобы не влиять на другие участки чипа.
  • Разные модели видеокарт имеют разную тактовую частоту и количество памяти.

08:47 Устройство ядра CUDA

  • Ядро CUDA состоит из 400 тысяч транзисторов и выполняет операции умножения и сложения.
  • Половина ядер работает с числами с плавающей запятой, а другая половина — с целыми числами.
  • Ядро выполняет одно умножение и одно сложение за такт, что позволяет видеокарте выполнять 35,6 триллионов вычислений в секунду.

10:37 Дополнительные компоненты видеокарты

  • Чип содержит контроллеры графической памяти, интерфейс PCI-Express и кэш-память второго уровня.
  • Видеокарта оснащена радиатором с тепловыми трубками и вентиляторами для охлаждения.
  • Важнейший компонент — 24 гигабайта графической памяти GDDR6X SDRAM от компании Micron.

12:21 Загрузка видеоигр и графическая память

  • Время загрузки видеоигр связано с перемещением трехмерных моделей с твердотельного накопителя в графическую память.
  • Графический процессор имеет кэш второго уровня размером 6 МБ, который хранит часть игрового окружения.
  • Для отрисовки сцены данные постоянно передаются между графической памятью и GPU.

13:18 Пропускная способность и кодирование памяти

  • 24 чипа передают 364 бита данных одновременно, обеспечивая пропускную способность 1.15 терабайт в секунду.
  • Оперативная память имеет ширину шины 64 бита и пропускную способность 64 ГБ/с.
  • Память GDDR6X и GDDR7 используют трехуровневую амплитудно-импульсную модуляцию PCM3 для кодирования данных.

14:40 Переход на PCM3 и инновации от Micron

  • Предыдущее поколение GDDR6X использовало PCM4, но инженеры перешли на PCM3 для упрощения и повышения энергоэффективности.
  • Micron разрабатывает высокоскоростную память HBM для чипов искусственного интеллекта, используя сквозные кремниевые переходы.
  • HBM3 может содержать до 192 ГБ памяти и потребляет на 30% меньше энергии, чем конкуренты.

16:51 Вычислительная архитектура и параллельные операции

  • Графические процессоры решают задачи с высокой параллельностью, используя принцип SIMD.
  • SIMD позволяет выполнять одну инструкцию для множества данных, что ускоряет рендеринг и майнинг.
  • Пример: преобразование вершин из пространства модели в мировое пространство для определения положения объектов в сцене.

21:00 Архитектура CUDA и её эволюция

  • Каждая инструкция выполняется потоком, который соответствует одному ядру.
  • Потоки объединяются в группы по 32, называемые варпами, и управляются потоковым мультипроцессором.
  • Новые видеокарты используют архитектуру CUDA, где потоки могут выполняться с разной скоростью и используют общий L1-кэш.

23:26 Майнинг биткоинов и тензорные ядра

  • Видеокарты изначально использовались для майнинга биткоинов, где применяется алгоритм SHA-256 для создания блоков в блокчейне.
  • Алгоритм SHA-256 генерирует случайные 256 бит, что делает его эффективным для майнинга.

25:16 Алгоритм SHA-256 и лотерея

  • Алгоритм SHA-256 создает случайный номер билета на основе входных данных.
  • Изменение значения nonce генерирует новый случайный номер.
  • Победителем становится первый хэш с первыми 80 битами, равными нулю.
  • Награда составляет 3 биткоина, и лотерея начинается заново с новыми транзакциями.
  • Видеокарты использовались для генерации 95 миллионов хэшей в секунду.

26:14 Современные компьютеры и видеокарты

  • Современные компьютеры с ASIC генерируют 250 триллионов хэшей в секунду.
  • Использование видеокарт для майнинга биткоинов неэффективно.
  • Переход к обсуждению тензорных ядер.

26:53 Тензорные ядра и матричная математика

  • Тензорные ядра выполняют сложные операции умножения и сложения матриц параллельно.
  • Нейронные сети и генеративный ИИ требуют триллионов и квадриллионов таких операций.
  • Используются большие матрицы для выполнения этих операций.

27:51 Заключение и благодарности

  • Видеоролик о видеокартах завершен.
  • Благодарность спонсорам и подписчикам за поддержку.
  • Призыв поддержать канал и посмотреть другие видео.

Ссылка – Таймкоды сделаны при помощи Нейросети YandexGPT https://300.ya.ru/v_muEPVkpE

Расшифровка видео

Сколько вычислений выполняют видеокарты?
0:00
Как вы думаете Сколько вычислений делает
0:02
ваша видеокарта каждую секунду Во время
0:04
запуска видеоигр с невероятно
0:07
реалистичной графикой Может быть 100 млн
0:11
что ж всего лишь 100 млн вычислений в
0:13
секунду требовалось для запуска игры
0:15
Mario 64 аж в
0:18
1996 году Давайте возьмём больше Может
0:22
быть 100 млрд Что ж с такой
0:24
производительностью у вас был бы
0:26
компьютер который мог запустить
0:28
Minecraft в 2000 одиннадцатом году чтобы
0:31
запускать самые современные и
0:33
реалистичные видеоигры такие как
0:35
киберпанк вам обязательно нужна мощная
0:38
видеокарта способная выполнять около 36
0:41
триллионов вычислений в секунду это
0:44
действительно невообразимо большое число
0:46
но Давайте попробуем как-то осмыслить
0:49
его Представьте что вы решаете одну
0:51
задачу умножения в столбик каждую
0:53
секунду теперь Представьте что каждый
0:56
человек на планете решает такую же
0:58
задачу но с другими числами Чтобы
1:01
достичь вычислительной мощности этой
1:03
видеокарты с её 36 триллиона вычислений
1:07
в секунду нам понадобилось бы около
1:10
4.400 планет Земля вместе со всеми
1:13
людьми все они должны работать вместе
1:16
выполняя по одному вычислению каждую
1:19
секунду Поразительно что одно устройство
1:22
способно справляться со всеми этими
1:24
вычислениями в этом видео мы рассмотрим
1:27
принцип работы видеокарты в двух частях
1:30
для начала мы разберём эту видеокарту и
1:32
исследуем различные компоненты внутри а
1:35
также физическую конструкцию и
1:37
архитектуру ГПУ или графического
1:40
процессорного устройства затем мы изучим
1:43
вычислительную архитектуру и узнаем как
1:46
ГПУ обрабатывает огромные массивы данных
1:49
и почему он идеально подходит для
1:51
графики в видеоиграх майнинга биткоинов
1:54
нейронных сетей и искусственного
1:56
интеллекта оставайтесь с нами и Давайте
1:58
начнём
2:01
видео для вас перевёл железный
2:06
бес этот видеоролик активно спонсируется
2:09
компанией макрон которая производит
2:12
графическую память внутри этой
2:14
видеокарты Итак прежде чем подробно
Разница между GPU и CPU
2:16
рассмотреть все компоненты ГПУ Давайте
2:19
разберём какие есть основные различия
2:22
между ГПУ и цпу внутри этой видеокарты
2:26
графический процессор или ГПУ имеет
2:29
более 10.000 ядер Однако когда мы
2:33
смотрим на Центральный процессор или цпу
2:36
установленный на материнской плате мы
2:38
видим интегральную схему или чип всего с
2:41
24 ядрами Так какой же процессор из них
2:45
мощнее 10.000 намного больше 24 и можно
2:49
подумать что ГПУ мощнее Однако всё
2:53
гораздо сложнее довольно полезная
2:55
аналогия — это представить ГПУ как
2:57
огромный грузовой корабль а цпу как
3:01
гигантский пассажирский самолёт
3:03
грузоподъёмность в этой аналогии — это
3:06
объём вычислений и данных которые могут
3:09
быть обработаны а скорость корабля или
3:11
самолёта — это то Насколько быстро эти
3:14
вычисления и данные обрабатываются по
3:18
сути это компромисс между огромным
3:20
количеством вычислений выполняемых с
3:22
меньшей скоростью и небольшим числом
3:25
вычислений которые можно выполнить
3:28
намного быстрее ещё одно Ключевое
3:30
Отличие в том что самолёты намного
3:33
универсальные так как могут перевозить
3:35
пассажиров посылки или контейнеры и
3:38
взлетать и приземляться в любом из
3:40
десятков тысяч аэропортов Аналогично цпу
3:44
универсальны тем что могут выполнять
3:46
разнообразные программы и инструкции
3:49
Однако гигантские грузовые суда
3:51
перевозят только контейнеры с массовыми
3:54
грузами и могут передвигаться лишь между
3:56
портами точно также видеокарты менее
3:59
гибкие чем центральные процессоры и
4:01
выполняют только простые инструкции
4:04
такие как базовые арифметические
4:06
операции К тому же видеокарты не могут
4:09
запускать операционные системы или
4:11
взаимодействовать с устройствами ввода и
4:13
сетями эта аналогия не совсем идеальная
4:16
но она помогает ответить на вопрос о том
4:19
что же быстрее по сути если вам нужно
4:22
выполнить определённый набор вычислений
4:24
с огромным объёмом данных то видеокарта
4:27
справится с такой задачей намного быст
4:30
Однако если данных намного меньше и их
4:33
нужно быстро обработать то Центральный
4:35
процессор будет работать эффективнее в
4:38
этом случае более того если нужно
4:40
запускать операционную систему или
4:42
поддерживать сетевые подключения в
4:44
различных приложениях и оборудовании то
4:47
вам потребуется Центральный процессор мы
4:50
планируем отдельное видео об архитектуре
4:52
цпу Так что подпишитесь чтобы не
4:55
пропустить его а сейчас давайте
Архитектура GPU GA-102
4:57
рассмотрим эту видеокарту и узнаем как
5:00
она работает Итак в центре этой
5:02
видеокарты находится печатная плата на
5:05
которой закреплены все различные
5:07
Электронные компоненты и мы начнём наше
5:10
знакомство с изучения её главного мозга
5:12
графического процессора или попросту ГПУ
5:16
когда мы заглядываем внутрь мы видим
5:18
большой Чип или Кристалл под названием
5:21
ga102 состоящий из
5:24
28,3 млрд транзисторов большую часть
5:28
площади чипа занимают вычислительные
5:30
ядра которые имеют иерархическую
5:33
организацию а именно чип разделён на
5:36
семь графических процессорных кластеров
5:38
или gpc и внутри каждого процессорного
5:42
кластера находится по 12 потоковых
5:45
мультипро
5:48
ссорой из этих потоковых мультипро
5:50
ссорой находятся четыре варпа и одно
5:53
ядро трассировки лучей а внутри каждого
5:56
варпа расположены 32 ядра куда или
6:13
шейдер-паки
6:18
процессора и Каждый имеет свою функцию
6:22
ядра куда можно представить как простые
6:24
двоичные калькуляторы с кнопками
6:26
сложения умножения и несколькими другими
6:29
они чаще всего используются при запуске
6:32
видеоигр тензорные ядра — это
6:34
калькуляторы умножения и сложения матриц
6:37
они применяются для геометрических
6:40
преобразований и работы с нейронными
6:42
сетями и искусственным интеллектом а
6:45
ядра трассировки лучей самые большие но
6:47
их меньше всего они используются для
6:50
выполнения алгоритмов трассировки лучей
6:52
теперь когда мы разобрались с
6:54
вычислительными ресурсами внутри этого
6:56
Чипа вот довольно интересный факт видео
Производство GPU GA-102
6:59
карты 3080 3090 3080 Ti и 3090 Ti
7:06
используют один и тот же дизайн Чипа
7:09
g102 для своего графического процессора
7:12
это может показаться странным Ведь они
7:14
имеют разные цены и были выпущены в
7:16
разные годы но это действительно так
7:20
почему так случилось Дело в том что во
7:22
время производства иногда ошибки при
7:24
создании рисунка частицы пыли или другие
7:27
производственные проблемы вызывают
7:29
повреждения и создают дефектные участки
7:32
схемы вместо того чтобы выбрасывать весь
7:35
чип из-за небольшого дефекта инженеры
7:37
находят дефектный участок и навсегда
7:40
изолируют и отключают его от близлежащих
7:43
схем благодаря тому что ГПУ имеет сильно
7:46
повторяющуюся внутреннюю структуру
7:49
небольшой дефект в одном ядре повреждает
7:51
только конкретный потоковый мультипро
7:54
ссор и не влияет на другие участки Чипа
7:57
в результате эти чипы
8:00
и сортируются по категориям в
8:02
зависимости от количества дефектов в
8:04
видеокарте 3090 Ti установлены
8:07
безупречные чипы g102 где работают все
8:12
10752 ядра куда а в 390 активны
8:18
10496 ядер в 3080 Ti работают
8:23
10.40 ядер А в 3080 активны
8:27
8704 ядра куда что эквивалентно
8:31
шестнадцати повреждённым и отключённым
8:33
потоковый мультипро ссорам К тому же
8:36
разные видеокарты отличаются
8:38
максимальной тактовой частотой а также
8:40
количеством и поколением графической
8:42
памяти которая поддерживает графический
8:45
процессор что мы рассмотрим чуть позже
8:47
поскольку мы рассматривали архитектуру
Устройство ядра CUDA
8:49
графического процессора g102 то давайте
8:53
заглянем в одно из его ядер куда и
8:56
посмотрим его устройство внутри этого
8:58
вычислителя находится схема примерно из
9:02
41.000 транзисторов этот участок из
9:05
50.000 транзисторов выполняет операцию A
9:09
X B + C которая называется умножением
9:13
сложением или fma на английском и
9:16
является самой распространённой
9:18
операцией в видеокартах половина ядер
9:21
куда выполняет fma с тридцати двух
9:24
битным числами с плавающей запятой что
9:26
по сути является научной нотаций а
9:29
вторая половина работает либо с целыми
9:31
числами либо числами с плавающей запятой
9:34
другие участки ядра обрабатывают
9:36
отрицательные числа и выполняют простые
9:39
операции такие как побитовый сдвиг и
9:42
битовое маскирование а также собирают и
9:44
ставят в очередь поступающие инструкции
9:47
и операнды накапливают и выводят
9:50
результаты В итоге это отдельное ядро
9:52
представляет собой простой калькулятор с
9:55
ограниченным набором функций этот
9:58
калькулятор выполняет одно умножение и
10:00
одно сложение за один такт благодаря
10:03
этому видеокарта 3090 имеющая
10:08
10496 ядер на частоте
10:11
1,7 ГГц производит
10:14
35,6 триллиона вычислений в секунду Если
10:18
вы задаёте вопросом как графический
10:20
процессор справляется с более сложными
10:22
операциями вроде деления извлечения
10:25
корня и тригонометрическими функциями то
10:27
эти вычисления выполняю специальными
10:30
функциональными блоками которых гораздо
10:32
меньше всего четыре на каждый потоковый
10:36
мультипро ссор теперь когда мы
10:38
разобрались с устройством одного ядра
10:40
Давайте отдали и внимательно рассмотрим
10:43
другие секции Чипа j102 по краям
10:46
расположены 12 контроллеров графической
10:49
памяти контроллеры ning и интерфейс PCI
10:53
Express внизу находится быстрая
10:55
кэш-память второго уровня объёмом 6 Мб
10:59
там же расположен движок тред который
11:02
управляет всеми графическими кластерами
11:05
и потоковые мультипро ссорами внутри
11:07
Чипа теперь когда мы изучили архитектуру
Компоненты видеокарты
11:10
графического процессора g102 то давайте
11:13
посмотрим на другие важные компоненты
11:16
внутри видеокарты на этой стороне
11:19
расположены различные порты для
11:21
подключения мониторов с другой стороны
11:23
разъём для подключения двенадцати
11:25
вольтового питания А здесь контакты PCI
11:29
экспресс для подключения к материнской
11:31
плате на печатной плате большинство
11:34
мелких компонентов составляют модуль
11:36
регулировки напряжения который
11:38
преобразует входные 12 в в
11:42
1,1 в и подаёт сотни ватт мощности на
11:46
графический процессор поскольку вся эта
11:49
мощность нагревает графический процессор
11:51
большая часть веса видеокарты приходится
11:54
на радиатор с четырьмя тепловыми
11:56
трубками которые переносят тепло От
11:58
процессора и и чипов памяти к рёбрам
12:00
радиатора где вентиляторы помогают Его
12:03
рассеивать пожалуй одни из важнейших
Графическая память GDDR6X и GDDR7
12:05
компонентов помимо графического
12:07
процессора это 24 ГБ графической памяти
12:11
эти чипы технически называются gddr6 xsd
12:16
Ram произведённые компанией micron
12:19
спонсором этого видео когда вы
12:21
запускаете видеоигру или ждёте
12:23
загрузочный экран время загрузки в
12:26
основном уходит на перемещение всех
12:28
трёхмерных моделей определённые сцены
12:30
или окружения с твердотельного
12:32
накопителя в эти чипы графической памяти
12:35
как уже говорилось ранее графический
12:37
процессор имеет небольшое хранилище
12:39
данных в виде общего кэша второго уровня
12:42
размером 6 МБ который может хранить
12:45
примерно такую часть игрового окружения
12:47
поэтому для отрисовки современной
12:49
видеоигры различные фрагменты сцены
12:52
постоянно передаются между графической
12:55
памятью и ГПУ поскольку ядра постоянно
12:58
выполня десятки триллионов вычислений в
13:01
секунду графические процессоры требуют
13:03
огромного потока данных и нуждаются в
13:06
непрерывной подачи терабайтов информации
13:09
поэтому эти чипы графической памяти
13:11
спроектированы как множество мощных
13:13
портовых кранов которые одновременно
13:16
загружают большое Грузовое судно
13:19
конкретно эти 24 Чипа одновременно
13:21
передают
13:22
364 бита данных Что называется тактом
13:25
шины данных а общий объём передаваемых
13:28
данных или пропускная способность
13:30
составляет около
13:33
1,15 ТБ в секунду Однако оперативная
13:36
память обслуживающая процессор имеет
13:38
ширину шины всего 64 Бита и максимальную
13:42
пропускную способность около 64 Гб в
13:45
секунду довольно интересная вещь
13:47
заключается в том что вы можете думать
13:49
что компьютеры работают только с
13:50
единицами и нулями чтобы увеличить
13:53
статическую скорость передачи память
13:56
gddr6x и новейшая графическая память G
13:59
7 отправляют и принимают данные по шине
14:02
используя несколько уровней напряжения а
14:05
не только ноль и единицу например gddr 7
14:09
для кодирования использует трёхуровневый
14:11
амплитудно импульсную модуляцию или
14:14
P3 для кодирования битов в троичный
14:17
разряды с напряжением 0 1 и -1 вот схема
14:21
кодирования показывающая как три
14:23
двоичных бита кодируются в две троичный
14:29
11 бит в се
14:34
троичный бита используя всего 176
14:38
троичный цифр предыдущее поколение gddr
14:42
6x используемое в видеокарте 390
14:45
применяла другую схему кодирования под
14:47
названием p4 отправляя два бита данных с
14:51
помощью четырёх различных уровней
14:53
напряжения Однако инженеры в индустрии
14:56
графической памяти решили перейти на Т
14:59
для будущих поколений графических чипов
15:02
чтобы упростить кодировщик улучшить
15:04
соотношение сигнал шум и повысить
15:10
энергоэффективность компания макрон
Всё о компании Майкрон
15:12
постоянно внедряет инновации раздвигая
15:15
границы того сколько данных можно
15:17
передать за секунду и создавая передовые
15:20
чипы памяти ещё одним достижением Марон
15:23
стала разработка hbm или
15:25
высокоскоростной памяти окружающей чипы
15:28
иску ного интеллекта hbm создаётся из
15:31
стопок чипов памяти DIR Ram и использует
15:34
tsv или сквозные кремниевые переходы
15:37
чтобы соединить эту стопку в Единый чип
15:40
фактически формируя куб памяти для
15:42
искусственного интеллекта в последнем
15:44
поколении высокоскоростной памяти
15:47
hbm3 один куб может содержать от 24 до
15:51
36 гиб памяти что в итоге даёт 192 ГБ
15:57
высокоскоростной памяти вокруг Чипа
15:59
искусственного интеллекта если будете
16:01
покупать нейронный процессор Убедитесь
16:03
что он использует hbm 3i от майрон
16:07
которая потребляет на 30% меньше энергии
16:10
чем продукты конкурентов впрочем Если вы
16:12
не строите дата-центр искусственного
16:14
интеллекта вряд ли вы планируете
16:16
покупать такую систему ценой от 25 до
16:19
40.000 долларов на которую очередь на
16:22
поставку растянулось на несколько лет
16:25
если интересно узнать больше о
16:27
высокоскоростной памяти и или новом
16:29
поколении графической памяти от micron
16:32
смотрите ссылки в описании А если вас
16:34
интересует разработка следующего
16:36
поколения чипов памяти компания майрон
16:39
всегда находится в поиске талантливых
16:41
учёных и инженеров которые помогут
16:43
создавать инновационные передовые чипы
16:46
узнать подробнее о работе в компании
16:48
micron Вы можете перейдя по этой ссылке
Архитектура одиночной инструкции множественных данных
16:51
теперь когда мы изучили множество
16:53
физических компонентов внутри этой
16:55
видеокарты и графического процессора
16:58
дава давайте рассмотрим вычислительную
17:00
архитектуру и узнаем как приложения
17:03
вроде видеоигр и майнинга биткоинов
17:05
выполняют так называемые чрезвычайно
17:08
параллельные операции Хотя название и
17:10
звучит Забавно но чрезвычайная
17:13
параллельность — это действительно
17:15
Техническая классификация компьютерных
17:17
задач где почти не требуется усилий для
17:20
разделения проблемы на параллельные
17:22
процессы и рендеринг видеоигр с
17:24
майнингом биткоинов отлично подходит под
17:27
эту категорию по сути графические
17:30
процессоры решают идеально параллельные
17:32
задачи Используя принцип
17:35
SD Что означает одна инструкция
17:38
множества данных Где одни и те же
17:40
команды или вычислительные шаги
17:42
повторяются для тысяч или миллионов
17:45
различных чисел Давайте посмотрим как SD
Почему GPU обрабатывают игровую графику, трансформации объектов
17:49
или одна инструкция множества данных
17:51
используется для создания игрового
17:53
окружения Как вы уже возможно знаете эта
17:56
ковбойская шляпа состоит примерно из
18:00
треугольников построенных пум соединения
18:02
около 14000 вершин каждая с координатами
18:05
по осям X Y и Z эти координаты вершин
18:09
построены с использованием системы
18:11
координат называемой пространством
18:14
модели Где начало координат 00 находится
18:18
в центре шляпы Чтобы построить
18:20
трёхмерный мир мы размещаем сотни
18:22
объектов каждый со своим собственным
18:25
пространством модели в мировом
18:27
окружении камера могла определить где
18:30
именно находится каждый объект
18:33
относительно остальных объектов в игре
18:36
Нам необходимо преобразовать все вершины
18:39
из отдельных пространств моделей в общую
18:42
систему координат или мировое
18:45
пространство Итак как же нам
18:47
преобразовать 14.000 вершин ковбойской
18:50
шляпы из пространства модели в мировое
18:52
пространства мы используем одну
18:54
инструкцию которая прибавляет позицию
18:56
начала координат шляпы в мировом прост к
18:59
соответствующим координатам по осям X Y
19:02
и Z каждой вершины в пространстве модели
19:05
затем мы применяем эту инструкцию к
19:07
множеству данных всем оставшимся
19:10
координатам по осям X Y и Z для тысяч
19:14
других вершин из которых построена шляпа
19:17
затем мы делаем то же самое для стола и
19:20
сотен других объектов в сцене каждый раз
19:23
используя те же инструкции но с разными
19:26
координатами объектов в мировом
19:27
пространстве и тысячами вершин каждого
19:30
объекта в пространстве модели в
19:32
результате все вершины и треугольники
19:35
всех объектов преобразуются в общую
19:37
систему координат мирового пространства
19:40
и камера Теперь может определить какие
19:42
объекты находятся спереди а какие позади
19:46
этот пример показывает мощь
19:49
SD или одна инструкция множества данных
19:52
Где одна инструкция обрабатывает
19:56
5629 объектов в сцене общим числом
19:59
вершин
20:00
88,3 млн выполняя 25 млн операций
20:05
сложения Ключевая особенность SD и
20:08
чрезвычайно параллельных программ в том
20:11
что каждая из этих миллионов вычислений
20:13
никак не зависит от других вычислений и
20:16
поэтому все эти расчёты можно
20:18
распределить между тысячами ядер
20:20
видеокарты и выполнить их параллельно
20:23
друг с другом важно отметить что
20:25
преобразование вершин из пространства
20:27
модели в пространство это лишь один из
20:31
первых шагов сложного конвейера
20:33
рендеринга игровой графики и у нас есть
20:35
отдельное видео которое подробно
20:38
рассматривает каждый из этих шагов мы
20:40
пропустили преобразование для вращения и
20:43
масштаба объектов Но их расчёт похож и
20:46
требует дополнительных вычислений
20:50
SD Теперь когда у нас есть базовое
Архитектура потоков
20:53
понимание этой технологии Давайте
20:55
обсудим как эта вычислительная
20:57
архитектура
20:59
с физической архитектурой по сути каждая
21:02
инструкция выполняется потоком и этот
21:04
поток соответствует одному ядру куда
21:07
потоки объединяются в группы по 32
21:10
называемые варпа и одна и та же
21:13
последовательность инструкций выдаётся
21:15
всем потокам в варпе Затем варпы
21:18
группируются в блоки потоков которыми
21:20
управляет потоковый мультипро и наконец
21:24
блоки потоков группируются в сетки
21:26
которые обрабатываются по
21:29
видеокарте всеми этими вычислениями
21:31
управляет гатт движок который эффективно
21:35
распределяет блоки потоков по доступным
21:37
потоковый мультипро ссорам одно важное
21:40
отличие в архитектуре
21:42
SD состоит в том что все 32 потока в
21:46
варпе следуют одним инструкциям и
21:48
двигаются синхронно друг с другом как
21:51
фаланга солдат такое синхронное
21:54
выполнение применялось в видеокартах
21:56
примерно до 2000 шестнадцатого года
21:59
Однако новые видеокарты используют
22:02
архитектуру
22:03
simt или одна инструкция множество
22:06
потоков разница между SD и simt в том
22:12
что оба отправляют одинаковые инструкции
22:14
каждому потоку но в simt потоки не
22:18
обязаны быть синхронными и могут
22:20
выполняться с разной скоростью на
22:22
техническом языке каждому потоку
22:24
выделяется свой счётчик команд Кроме
22:27
того в SA imt все потоки в потоковом
22:30
мультипро ссоре используют общий L1 кэш
22:34
размером 128 КБ и поэтому данные
22:38
выводимые одним потоком могут
22:40
использоваться другим потоком улучшение
22:42
от SD до
22:45
simt даёт больше гибкости при
22:47
расхождении варпов через условное
22:50
ветвление по данным и упрощает повторную
22:53
синхронизацию потоков при достижении
22:55
барьерной синхронизации по сути
22:57
современный архитектуры видеокарт стали
23:00
более гибкими и эффективными особенно
23:03
когда дело касается обработки ветвлений
23:05
в программном коде стоит добавить что
23:07
хотя можно подумать будто термин Warp
23:10
происходит от варп двигателей на самом
23:12
деле он пришёл из качества а именно от
23:15
жаккардового станка этот станок с
23:18
1804 года использовал программируемые
23:21
перфокарты для выбора определённых нитей
23:23
из набора чтобы соткать сложные узоры
23:26
эти станки весьма впечатляющие
23:29
но Давайте двигаться дальше последние
Помогите развитию Branch Education!
23:31
темы которые мы рассмотрим — это майнинг
23:33
биткоинов тензорные ядра и нейронные
23:37
сети но сначала мы хотели бы попросить
23:39
вас поставить лайк этому и оригинальному
23:41
видео из описания написать небольшой
23:44
комментарий и подписаться Если вы ещё
23:47
этого не сделали мечта branch education
23:50
создавать бесплатные и доступные
23:53
визуально увлекательные образовательные
23:55
видео которые глубоко погружаются в
23:57
различные темы науки инженерии и
24:00
принципов работы технологий а затем
24:03
объединить несколько видео в полностью
24:05
бесплатную инженерную программу для
24:08
школьников и студентов всего пара секунд
24:11
на лайк подписку и комментарий окажет
24:13
нам огромную помощь к тому же у нас есть
24:17
страница на патреоне с вопросами
24:19
ответами и закулисные материалами и если
24:22
вы находите нашу работу полезной мы
24:24
будем благодарны за любую поддержку Итак
24:28
теперь когда мы разобрали как технология
Майнинг биткоина
24:30
одиночных инструкций множественных
24:32
потоков используется в видеоиграх
24:35
Давайте кратко обсудим Почему видеокарты
24:38
изначально применялись для майнинга
24:40
биткоина мы не будем глубоко погружаться
24:42
в алгоритм работы блокчейна оставим это
24:45
для отдельного эпизода Но если вкратце
24:47
для создания блока в блокчейне хэш
24:51
алгоритм ша
24:52
256 применяется к набору данных который
24:55
включает транзакции метку времени
24:58
дополнительные данные и случайное число
25:00
называемое НС после обработки ша 256
25:05
выдаёт совершенно случайные 256 бит или
25:09
хэш можно представить этот алгоритм как
25:11
генератор лотерейных билетов Где вы не
25:14
можете выбрать Номер билета но на основе
25:17
входных данных алгоритм ша 256 создаёт
25:21
Случайный Номер билета Поэтому если
25:24
изменить значение Non не меняя другие
25:26
данные будет с
25:28
новый Случайный Номер лотерейного билета
25:31
победителем в этой лотерее становится
25:33
первый случайно сгенерированный хэш у
25:36
которого первые 80 бит хэша равны нулю а
25:39
остальные 176 бит не имеют никакого
25:43
значения и как только выигрышный билет
25:45
найден награда составляет три биткоина и
25:48
лотерея начинается с новым набором
25:51
транзакций и входных значений Так почему
25:53
же использовались видеокарты графические
25:56
процессоры выполняли итерации алгоритма
25:59
ша
26:00
256 с одинаковыми транзакциями метками
26:04
времени и данными но с разными
26:06
значениями НС в результате такая
26:09
видеокарта могла генерировать примерно
26:11
около 95 млн хэшей или что то же самое
26:15
95 млн случайных лотерейных билетов
26:19
каждую секунду и была надежда что один
26:21
из этих номеров будет иметь первые 80
26:24
бит равными нулю Однако в наши дни
26:27
современ компьютеры оснащенные As или
26:31
специализированными интегральными
26:33
схемами генерируют 250 триллионов хэшей
26:37
в секунду что равносильно
26:39
2600 видеокартам использовать видеокарты
26:43

это всё равно что копать биткоины
26:45
ложкой вместо экскаватора в виде As
26:48
майнинг компьютера Теперь давайте
Тензорные ядра
26:50
обсудим устройство тензорный ядер для
26:53
рассмотрения генеративного
26:54
искусственного интеллекта и нейронных
26:56
сетей потребуется
26:58
полных видео поэтому сосредоточимся на
27:01
конкретной матричной математике которую
27:03
решают тензорные ядра по сути тензорные
27:06
ядра берут три матрицы умножают первые
27:09
две добавляют третью и выводят результат
27:12
рассмотрим одно значение на выходе это
27:15
значение равно сумме значений из первой
27:18
строки первой матрицы умноженный на
27:20
значения из первого столбца второй
27:23
матрицы к которым добавляется
27:25
соответствующее значение из третьей
27:27
матрицы поскольку все значения трёх
27:30
входных матриц готовы одновременно
27:33
тензорные ядра выполняют все сложные
27:35
операции умножения и сложения матриц
27:38
параллельно нейронные сети и
27:40
генеративный искусственный интеллект
27:43
требуют от триллионов до квадриллионов
27:45
операций умножения и сложения матриц и
27:48
обычно используют гораздо большие
27:50
матрицы и наконец есть ядро трассировки
27:53
лучей которые мы рассмотрели в отдельном
27:56
видео на канале на этом про видео карты
Заключение
27:58
в принципе всё branch education
28:00
благодарны всем спонсорам и YouTube
28:02
подписчикам за поддержку видео Если вы
28:05
хотите поддержать работу branch
28:06
education Вы можете найти ссылки на
28:08
канал и оригинальное видео в описании
28:11
ниже это branch education мы создаём
28:14
трёхмерную анимацию которая глубоко
28:16
погружается в технологии движущие нашим
28:19
современным миром Посмотрите другие
28:22
видео на канале железного беса Спасибо
28:24
что досмотрели До
28:27
конца Y

Поделиться: