Системная оптимизация DNN: от матриц до Tensor Cores

Stanford Online 7,5 тыс. 1 ч 20 мин 3 мин 21.09.2024
Главное

Эффективное выполнение глубоких нейронных сетей (DNN) на GPU 🚀 6:11

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


🧠 Природа нагрузки: от нейронов к матрицам 7:57

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


🛠 Авеню оптимизации: алгоритмы, системы и железо 19:01

Для ускорения работы нейросетей существуют три ключевых пути, которые тесно переплетены:

  1. Алгоритмическая топология: Разработка более совершенных архитектур (например, ResNet или MobileNet), которые требуют меньше операций (FLOPs) и памяти при сохранении точности. За 4 года этот подход позволил сократить потребности в вычислениях примерно в 25 раз.
  2. Системная оптимизация: Эффективная реализация заданного алгоритма на конкретном «железе» (CPU/GPU).
  3. Специализированное оборудование: Применение аппаратных ускорителей, спроектированных для специфических операций нейросетей.

💻 Матричное умножение — сердце системной оптимизации 27:53

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


⚡️ Продвинутые приемы и fused-операции 1:01:21

Поскольку многие операции в DNN (например, масштабирование или Max Pool) являются узким местом из-за работы с памятью, инженеры стремятся к «слиянию» (fusion) операций.


🏗 Аппаратная адаптация: почему GPU? 1:15:16

GPU стали стандартом для DNN благодаря сочетанию высокой параллельности, множества ALUs и SIMD-возможностей.

💬 Цитаты

«Если вы как системный инженер игнорируете алгоритмические инновации, вы останетесь позади.»

Преподаватель Stanford 1:14:35

«Tensor Core — это просто красивое маркетинговое название для поддержки специальной инструкции матричного умножения.»

Преподаватель Stanford 1:18:56
👥 Спикер
🔗 Упомянутые сайты и проекты
📖 Термины
GEMM
General Matrix Multiplication (общее матричное умножение), фундаментальная операция, лежащая в основе слоев нейросетей.
Arithmetic Intensity
Отношение объема вычислений к объему передаваемых данных (байт); показывает эффективность использования памяти.
Fusion
Метод оптимизации, при котором несколько последовательных операций объединяются в одно ядро для минимизации обращений к памяти.
Softmax
Функция активации, преобразующая вектор чисел в вектор вероятностей.
📊 Цифры
⚖️ Другая сторона
Искусственный интеллект Deep Neural Networks GPU optimization matrix multiplication convolutional layers