Словарь терминов GPU (перевод Modal GPU Glossary на русский). ai.. ai. gpu.. ai. gpu. ml.. ai. gpu. ml. mlops.. ai. gpu. ml. mlops. ИИ.. ai. gpu. ml. mlops. ИИ. искусственный интеллект.

Словарь терминов GPU (перевод Modal GPU Glossary на русский)

Источник: Modal GPU Glossary
Лицензия оригинала: CC BY 4.0
Перевод: выполнен для образовательных целей

Введение

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

Аппаратное обеспечение устройства (Device Hardware)

Эти термины и технологии относятся к физическим компонентам GPU — «устройству» на языке NVIDIA.

CUDA (Архитектура устройства)

Модель параллельных вычислений и архитектура программирования NVIDIA для GPU.

Streaming Multiprocessor (SM) — Потоковый мультипроцессор

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

Core — Ядро

Общий термин для вычислительных единиц внутри SM. Включает CUDA Cores и Tensor Cores.

Special Function Unit (SFU) — Блок специальных функций

Аппаратный блок для выполнения сложных математических операций: синус, косинус, экспонента, обратная величина и др.

Load/Store Unit (LSU) — Блок загрузки/сохранения

Отвечает за операции чтения и записи данных между регистрами и памятью GPU.

Warp Scheduler — Планировщик варпов

Компонент SM, который выбирает готовый варп для выполнения инструкции на доступных исполнительных блоках.

CUDA Core — Ядро CUDA

Ядро GPU, выполняющее скалярные арифметические инструкции. В отличие от ядер CPU, CUDA Cores не планируются независимо: группы из 32 ядер (варп) получают одну и ту же инструкцию от планировщика варпов, но применяют её к разным данным (модель SIMT — Single Instruction, Multiple Threads).

Tensor Core — Тензорное ядро

Специализированное ядро GPU, выполняющее матричные операции за одну инструкцию. Обеспечивает до 100× больше операций с плавающей запятой в секунду по сравнению с CUDA Cores. Используется для ускорения операций глубокого обучения, таких как умножение матриц с накоплением (D = AB + C).

Tensor Memory Accelerator (TMA) — Ускоритель тензорной памяти

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

Streaming Multiprocessor Architecture — Архитектура потокового мультипроцессора

Организация компонентов внутри SM: распределение CUDA Cores, Tensor Cores, кэшей, регистров и планировщиков. Меняется от поколения к поколению GPU (Volta, Ampere, Hopper, Blackwell).

Texture Processing Cluster (TPC) — Кластер обработки текстур

Группа из нескольких SM, объединённых для обработки графических и вычислительных задач, связанных с текстурной памятью.

Graphics/GPU Processing Cluster (GPC) — Графический/GPU-кластер обработки

Высокоуровневая группировка TPC, управляющая распределением задач между несколькими кластерами на GPU.

Register File — Файл регистров

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

L1 Data Cache — Кэш данных L1

Быстрый кэш первого уровня внутри SM для ускорения доступа к часто используемым данным из глобальной памяти.

Tensor Memory — Тензорная память

Специализированная высокоскоростная память, оптимизированная для питания тензорных ядер данными при выполнении матричных операций.

GPU RAM — ОЗУ GPU

Основная память графического процессора (также называемая глобальной памятью). Хранит данные, доступные всем SM, но с более высокой задержкой по сравнению с кэшами и регистрами.

Программное обеспечение устройства (Device Software)

Эти термины относятся к программному обеспечению, выполняемому непосредственно на GPU («устройстве»).

CUDA (Модель программирования)

Модель параллельного программирования NVIDIA для массово-параллельных процессоров. Включает иерархию потоков, модель памяти и механизмы синхронизации.

Streaming ASSembler (SASS) — Потоковый ассемблер

Низкоуровневый машинный код, выполняемый непосредственно на GPU. Генерируется компилятором из PTX.

Parallel Thread eXecution (PTX) — Параллельное выполнение потоков

Промежуточное представление (IR) CUDA, виртуальная ассемблерная платформа, независимая от конкретного поколения GPU. Компилируется в SASS драйвером во время выполнения.

Compute Capability — Вычислительная способность

Версия архитектуры GPU, определяющая доступные инструкции, функции и ограничения. Примеры: 7.5 (Turing), 8.0 (Ampere), 9.0 (Hopper).

Thread — Поток

Минимальная единица выполнения в CUDA. Каждый поток выполняет один экземпляр ядра с собственными регистрами и программным счётчиком.

Warp — Варп

Группа из 32 потоков, которые планируются и выполняются вместе на одном SM. Все потоки варпа выполняют одну и ту же инструкцию одновременно (модель SIMT). Варп — основная единица планирования на GPU.

Warpgroup — Группа варпов

Логическая группировка нескольких варпов для координации выполнения и синхронизации внутри блока потоков.

Cooperative Thread Array (CTA) — Кооперативный массив потоков

Также известен как Thread Block (блок потоков). Группа потоков, которые могут сотрудничать через общую память и синхронизацию. Все потоки блока выполняются на одном SM.

Kernel — Ядро (функция)

Функция CUDA, запускаемая с хоста (CPU) и выполняемая параллельно множеством потоков на GPU. Запускается один раз, но выполняется одновременно многими потоками.

Thread Block — Блок потоков

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

Thread Block Grid — Сетка блоков потоков

Коллекция всех блоков потоков, выполняющих одно ядро. Представляет весь объём параллельной работы для запуска ядра.

Thread Hierarchy — Иерархия потоков

Структура организации потоков в CUDA: Grid → Block → Warp → Thread. Позволяет масштабируемое распределение работы по GPU.

Memory Hierarchy — Иерархия памяти

Многоуровневая система памяти GPU: регистры → общая память → кэш L1/L2 → глобальная память → память хоста. Каждый уровень отличается по скорости, объёму и области видимости.

Registers — Регистры

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

Shared Memory — Общая память

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

Global Memory — Глобальная память

Основная память GPU, доступная всем потокам всех блоков. Имеет высокую пропускную способность, но также высокую задержку. Соответствует памяти GPU RAM.

Программное обеспечение хоста (Host Software)

Эти термины относятся к программному обеспечению, выполняемому на CPU («хосте») при управлении GPU-программами.

CUDA (Платформа программного обеспечения)

Полный стек инструментов NVIDIA для разработки GPU-приложений: компиляторы, библиотеки, API, профилировщики.

CUDA C++ (язык программирования)

Расширение C++ с ключевыми словами и конструкциями для написания ядер и управления выполнением на GPU (__global__, <<<grid, block>>>, и др.).

NVIDIA GPU Drivers — Драйверы NVIDIA GPU

Системное ПО, обеспечивающее взаимодействие между ОС/приложениями хоста и аппаратным обеспечением GPU.

nvidia.ko

Модуль ядра Linux для драйверов NVIDIA, обеспечивающий низкоуровневый доступ к GPU.

CUDA Driver API

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

libcuda.so

Библиотека реализации CUDA Driver API в Linux.

NVIDIA Management Library (NVML)

API для мониторинга и управления состоянием GPU: температура, загрузка, память, питание.

libnvml.so

Библиотека реализации NVML в Linux.

nvidia-smi

Утилита командной строки на базе NVML для мониторинга и управления GPU.

CUDA Runtime API

Высокоуровневый API для запуска ядер, управления памятью и синхронизации. Проще в использовании, чем Driver API.

libcudart.so

Библиотека реализации CUDA Runtime API в Linux.

NVIDIA CUDA Compiler Driver (nvcc)

Компилятор CUDA: преобразует код CUDA C++ в PTX и/или машинный код для целевых архитектур GPU.

NVIDIA Runtime Compiler

Компонент, компилирующий PTX в SASS во время выполнения, обеспечивая совместимость с разными поколениями GPU.

NVIDIA CUDA Profiling Tools Interface (CUPTI)

Интерфейс для создания инструментов профилирования и трассировки CUDA-приложений.

NVIDIA Nsight Systems

Профилировщик производительности для анализа работы CPU и GPU, выявления узких мест и оптимизации приложений.

CUDA Binary Utilities

Набор утилит для работы с бинарными файлами CUDA: cuobjdump, nvdisasm, cudabacktrace и др.

cuBLAS (CUDA Basic Linear Algebra Subroutines)

Оптимизированная библиотека линейной алгебры для GPU: матричные операции, векторные вычисления, решения СЛАУ.

cuDNN (CUDA Deep Neural Network library)

Библиотека примитивов для глубокого обучения: свёртки, пулинг, нормализация, активации — оптимизирована для NVIDIA GPU.

Производительность (Performance)

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

«Производительность — это продукт» — слоган NVIDIA.

Performance Bottleneck — Узкое место производительности

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

Roofline Model — Модель «потолка»

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

Compute-bound — Ограничено вычислениями

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

Memory-bound — Ограничено памятью

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

Arithmetic Intensity — Арифметическая интенсивность

Отношение количества арифметических операций к объёму переданных данных (FLOP/байт). Ключевой параметр для анализа по модели Roofline.

Overhead — Накладные расходы

Дополнительные затраты времени или ресурсов на управление, синхронизацию, передачу данных, не связанные с полезной работой.

Little’s Law — Закон Литтла

Формула из теории массового обслуживания: L = λ × W, где L — среднее число задач в системе, λ — интенсивность поступления, W — среднее время выполнения. Применяется для анализа параллелизма GPU.

Memory Bandwidth — Пропускная способность памяти

Максимальный объём данных, который может быть передан между памятью и вычислительными блоками за единицу времени (ГБ/с).

Arithmetic Bandwidth — Арифметическая пропускная способность

Максимальное количество арифметических операций, которые GPU может выполнить за единицу времени (TFLOP/s).

Latency Hiding — Сокрытие задержек

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

Warp Execution State — Состояние выполнения варпа

Текущий статус варпа: активен, ожидает (stalled), завершён. Определяет, может ли варп быть выбран для выполнения.

Active Cycle — Активный такт

Такт, в котором варп выполняет полезную инструкцию (не ожидает данные или синхронизацию).

Occupancy — Заполненность

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

Pipe Utilization — Загрузка конвейера

Доля времени, в течение которой исполнительные блоки (конвейеры) выполняют полезные инструкции.

Peak Rate — Пиковая производительность

Теоретический максимум операций в секунду, который может достичь GPU при идеальных условиях.

Issue Efficiency — Эффективность выдачи инструкций

Процент тактов, в которых планировщик успешно выдаёт инструкцию варпу (не простаивает из-за зависимостей или конфликтов).

Streaming Multiprocessor Utilization — Загрузка SM

Доля времени, в течение которой SM выполняет полезные вычисления, а не простаивает.

Warp Divergence — Расхождение варпа

Ситуация, когда потоки внутри варпа выполняют разные ветви кода (например, из-за условия if). Приводит к последовательному выполнению ветвей и снижению производительности.

Scoreboard Stall — Остановка по таблице результатов

Задержка выполнения инструкции из-за зависимости от результата предыдущей инструкции, ещё не завершённой.

Branch Efficiency — Эффективность ветвления

Метрика, показывающая, насколько эффективно выполняются условные переходы внутри варпа (минимизация warp divergence).

Memory Coalescing — Коалесценция памяти

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

Bank Conflict — Конфликт банков

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

Register Pressure — Давление регистров

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

🔗 Полезные ссылки

⚠️ Примечание: Данный перевод создан на основе публично доступной информации и знаний о терминологии CUDA/GPU. Для точных технических деталей рекомендуется обращаться к оригинальной документации NVIDIA и Modal. Некоторые термины могут иметь несколько устоявшихся вариантов перевода в русскоязычной литературе.

Автор: Seklikov

Источник

Rambler's Top100