По сообщению IBM Research, большинство инженеров, занимающихся разработкой моделей искусственного интеллекта, сегодня работают с графическими процессорами (GPU). Они пишут модели на PyTorch, запускают их и измеряют задержку и использование ресурсов. Однако то, что происходит между фреймворком и кремнием, зачастую остается скрытым. Это было управляемо, когда доминировала одна архитектура. Теперь, когда аппаратное обеспечение для ИИ разнообразилось, это стало значительно сложнее — на рынке появились GPU, TPU от Google, Wafer-Scale Engine (WSE) от Cerebras, Language Processing Unit (LPU) от Groq и ускоритель Spyre от IBM. Новая специализация на Coursera, «Архитектуры потоков данных для ИИ: от принципов к практике», предназначена для инженеров, которым необходимо работать с этим разнообразием. Курс ведет Каутар Эль Маграуи, ведущий научный сотрудник IBM Research и адъюнкт-профессор компьютерных наук в Колумбийском университете. Программа состоит из шести курсов, охватывающих модели выполнения, компиляцию, системы памяти, отладку и моделирование производительности через практические лабораторные работы. «Иногда сама модель не является сложной частью», — говорит Эль Маграуи. «Сложность заключается в понимании того, как эта модель соотносится с конкретной архитектурой и почему что-то, что работает очень хорошо на одной системе, может вести себя совершенно иначе на другой.» Специализация начинается с одной модели на PyTorch. На уровне фреймворка это один и тот же nn.Module для каждой цели. Как только компилятор сопоставляет ее с аппаратным обеспечением, выполнение выглядит совершенно иначе, и каждый стек поддерживает свой набор операторов, компоновок и преобразований графа. GPU выполняет модель как ядра через множество параллельных потоков с управляемыми аппаратурой кэшами и специализированными матричными блоками. TPU распределяет работу по системным массивам, а компилятор XLA управляет разбиением и перемещением данных. Cerebras распределяет вычисления и более 40 ГБ встроенной SRAM по всей пластине. Groq полагается на свой компилятор для планирования, когда выполняется каждая операция и когда перемещаются данные. Spyre компилирует модель в граф потоков данных, а его компилятор решает размещение и размещение временных данных, в то время как время выполнения управляет передачами и запусками. Эти детали варьируются в зависимости от поколения продукта. Выборы влияют на то, какие оптимизации имеют значение. Слияние удаляет промежуточный трафик памяти, но насколько это экономит, зависит от того, сохраняет ли компилятор уже промежуточные данные на чипе, как тензоры разбиты на блоки и добавляет ли объединенное ядро нагрузку на память. Размерность тензора, которая чисто сопоставляется с одной целью, может потребовать дополнения или перераспределения данных на другой. Специализация рассматривает выполнение потоков данных как архитектурный класс с общими принципами. Каждая концепция вводится в общих терминах, прежде чем обсуждается какая-либо конкретная система. Spyre является основным примером, поскольку команда Эль Маграуи работает с ним напрямую, но это одна из пяти систем, которые сравниваются на протяжении курса. Две реализации одной и той же операции также могут работать с очень разными скоростями по причинам, которые имеют мало общего с арифметикой. Для матричного умножения и внимания разбиение, компоновка данных, синхронизация и перемещение между встроенной и внешней памятью часто определяют достигаемую производительность. «Нет единой архитектуры, которая выигрывает в каждой строке», — говорит Эль Маграуи. «GPU придают приоритет гибкости и широкой программируемости. Другие системы жертвуют частью этой гибкости, чтобы получить эффективность, детерминизм, масштаб или более строгий контроль над выполнением.» Компилятор получает особое внимание. На специализированных ускорителях он отвечает за разбиение, слияние, планирование, размещение и управление памятью. Именно здесь достигается большая часть производительности во время активации модели. «Вы можете иметь ускоритель, который чрезвычайно эффективен для поддерживаемых операций», — говорит она, — «но затем один неподдерживаемый оператор, одна форма тензора, которая плохо сопоставляется, или одна проблема размещения памяти могут оказать значительное влияние на всю модель.» Специализация представляет собой последовательность из шести курсов. Каждый курс охватывает один уровень стека и заканчивается лабораторной работой. Вместе они поэтапно создают карту ландшафта ускорителей. Завершение всех шести курсов дает профессиональный сертификат в области проектирования производительности систем ИИ. Курс 1 — Ландшафт ускорителей: Архитектуры, специфичные для домена, управление потоками и выполнение потоков данных, иерархии памяти и модели программирования для всех пяти систем. Курс 2 — Модели выполнения потоков данных: Узлы, ребра, правила срабатывания и статическое и динамическое планирование. Блок внимания трансформера, прослеживаемый через Spyre и TPU. Курс 3 — Компиляция для потоков данных: TorchDynamo, AOTAutograd и генерация кода для бэкенда. Слияние, разбиение и планирование в XLA и компиляторе Spyre. Курс 4 — Системы памяти: Кэши, временные хранилища и дизайны только со SRAM. Как каждая иерархия памяти изменяет управление кэшами KV для вывода LLM. Курс 5 — Отладка в стеке потоков данных: Восьмиуровневая таксономия ошибок, включая ошибки захвата графа и блокировки планирования, таймауты DMA и числовые проблемы. Курс 6 — Моделирование производительности и оптимизация: Анализ Roofline, адаптированный для памяти с управлением программным обеспечением, с планированием, измеряемым как третья узкая точка наряду с вычислениями и памятью. На ускорителе потоков данных неправильный результат или замедление часто проявляются далеко от своей причины. NaN на выходе модели может возникать из-за разложения оператора, прохода слияния, несовпадения компоновки тензора или ошибки DMA. Курс 5 организует эти ошибки в восьмиуровневую таксономию, от ошибок захвата графа на фронтенде до конфликтов планирования, блокировок, таймаутов DMA и числовых проблем на бэкенде. Для проверки правильности студенты уменьшают ошибку до небольшого воспроизводителя, сравнивают выходы каждого уровня с ссылкой на CPU или GPU и находят первую точку, где результаты расходятся. Для производительности Курс 6 ограничивает измеряемую область, отделяет время ядра от времени передачи, сравнивает результат с идеалом компилятора и атрибутирует остаток к байтам, перемещенным на каждом уровне памяти. Каждая операция затем отображается на диаграмме Roofline. В одном из ошибок, сообщенных в проекте с открытым исходным кодом torch-spyre, клонирование тензора fp16 из 65 элементов вернуло неправильное последнее значение. Журнал передачи был правильным, но скомпилированная копия покрыла только первые 64 элемента, а сравнение выходов каждого уровня с эталоном обнаружило ошибку на этом этапе. Каждый курс завершается основной лабораторной работой, которая выполняется на Google Colab с использованием стандартного PyTorch. Каждая лабораторная работа также имеет необязательную практическую часть Spyre, которая выполняется на оборудовании Spyre. Лаборатории разрабатываются Рашедом Бхатти, доктором философии, старшим техническим сотрудником IBM Research и преподавателем лабораторий для специализации. Каждая лаборатория занимает от 90 минут до двух часов, и студенты пишут и запускают свой собственный код. В первой лаборатории они создают тестовый стенд с нуля с использованием torch.utils.benchmark и объясняют разрыв производительности между CPU и GPU с точки зрения параллелизма SIMT и пропускной способности HBM. Позже лаборатории прослеживают блок трансформера с помощью torch.fx, сравнивают жадный режим с torch.compile, читают временную шкалу памяти профайлера PyTorch во время вывода LLM, диагностируют три запланированных ошибки и строят диаграмму Roofline для нагрузки LLM. Для основных лабораторий не требуются никаких проприетарных инструментов. В необязательной практической части Spyre, называемой «Глубокое погружение в потоки данных», студенты из партнерских программ выполняют те же лаборатории на оборудовании Spyre. Там они работают непосредственно с концепциями потоков данных из каждого курса: они читают граф потоков данных, который производит компилятор Spyre, и каталогизируют слияния и ребра перемещения данных, следят за тем, как тензоры разбиваются на блоки и размещаются в временной памяти, измеряют трафик между HBM и временными хранилищами с помощью аппаратных счетчиков и строят диаграмму Roofline на основе этих счетчиков для иерархии памяти с управлением программным обеспечением. Глубокое погружение не требуется для завершения специализации или получения сертификата. Специализация предназначена для учащихся среднего и продвинутого уровня, включая аспирантов в области компьютерных наук или электротехники, инженеров компиляторов, архитекторов аппаратного обеспечения и практиков машинного обучения, которые оптимизируют рабочие нагрузки на различных аппаратных платформах. Участники должны быть уверены в своих знаниях промежуточного уровня Python и C/C++, знакомы с архитектурами CNN и трансформеров, а также иметь базовые знания компьютерной архитектуры. Учащиеся, завершившие программу, получают профессиональный сертификат в области проектирования производительности систем ИИ. «К концу курса, когда вы увидите новый ускоритель ИИ, я хочу, чтобы вы знали, какие вопросы задавать о нем», — говорит Эль Маграуи. «Какова модель выполнения? Где находится память? Кто планирует операции? Что контролирует компилятор?» Специализация открыта для регистрации на Coursera. Материал подготовлен нейросетью на основе оригинальной публикации. ИИ может ошибаться в деталях (цифры, имена, даты, цитаты) — для важной информации сверяйтесь с первоисточником.
From the original source:
SMNTCN (Semanticon) — глобальные новости ИИ
Read full article at SMNTCN (Semanticon) — глобальные новости ИИThis material was compiled from public sources. If its publication affects your rights → Request removal
Title in RussianIBM Research запускает специализацию по архитектуре ИИ на ускорителях
IBM Research запускает новую специализацию по архитектуре ИИ на ускорителях.
AI Summary & Key Takeaways
- IBM Research запускает новую специализацию по архитектуре ИИ на ускорителях.
IBM Research запускает специализацию по архитектуре ИИ на ускорителях
Related stories
Ex-Nvidia-turned-VC Amulya Vishwanath: ‘Physical AI is in it’s LEGO era’
It’s the moment everyone is waiting for — the ChatGPT moment for robotics, Amulya Vishwanath explained to TechCrunch’s Equity.
The new economics of enterprise AI
Imagine your company just discovered electricity. At first only a few machines run on it, and nobody worries about efficiency — consumption is low and the value is obvious. But once electricity becomes infrastructure, every process depends on it, and the question changes from…
RUГлава NVIDIA Дженсен Хуанг приедет в Казахстан 23 октября
💎 Глава NVIDIA Дженсен Хуанг приедет в Казахстан 23 октября 23 октября в Астане состоится встреча основателя и генерального директора NVIDIA Дженсена Хуанга с заместителем премьер-министра — министром искусственного интеллекта и цифрового развития Казахстана Жасланом Мадиевым.…
RUIBM Research представляет llm-d 1.0 для открытой ИИ-инфраструктуры
IBM Research анонсировала llm-d 1.0 — открытое решение для инфраструктуры ИИ.

