Разработчики из Modal создали Глоссарий GPU, чтобы помочь себе и другим разобраться в терминологии, связанной с аппаратным и программным обеспечением NVIDIA GPU. Им удалось собрать, очистить, нормализовать и представить разрозненную информацию по этой теме.
Баннер GPU Glassary
Смысл создания глоссария заключается в решении проблемы, с которой столкнулись сотрудники Modal при работе с GPU.
По их собственным словам:
документация фрагментирована, что затрудняет связь понятий на разных уровнях стека, таких как архитектура потоковых мультипроцессоров, вычислительные возможности и флаги компилятора nvcc.
Чтобы собрать, дополнить и представить эту информацию, они приложили немало усилий: собирали материал от официальной документации до каналов, посвященных Discord, и даже пролистали старые добрые книги.
В итоге получилась сокровищница, которая наверняка развлечет даже самых хардкорных профессионалов, работающих с GPU. Сайт построен в виде гипертекстового документа, где один термин указывает на другой, как в классической старомодной взаимосвязанной веб-энциклопедии. Настроение и презентация сайта соответствуют этой концепции.
С точки зрения содержания, материал разделен на три основные категории:
- Аппаратное обеспечение устройства - физические компоненты GPU
- Программное обеспечение устройства - программное обеспечение, работающее на GPU
- Host Software - CPU («хост» на жаргоне NVIDIA) при запуске программ на GPU.
В каждом разделе есть список связанных терминов. Так, например, в разделе «Аппаратное обеспечение устройства» перечислены следующие термины:
- CUDA (архитектура устройства)
- Потоковый мультипроцессор
- SM
- Ядро
- Специальный функциональный блок
- SFU
- Блок загрузки/хранения
- LSU
- Планировщик деформаций
- Ядро CUDA
- Тензорное ядро
При нажатии на термин загружается обычный html-документ с подробной информацией по этому вопросу и четкими диаграммами. Дополнительным плюсом является то, что здесь не используется Javascript, поэтому сайт загружается быстро.
Но почему такой глоссарий важен даже в наше время, когда LLM доминируют и их можно попросить рассказать о чем угодно? Это тот же случай, что и в «Explore Programming Idioms»:
Еще одно преимущество такого сайта, как Wikipedia, перед чатботом - когда я не хочу искать что-то конкретное, а хочу случайно просмотреть сайт, чтобы обнаружить термины, о которых я просто не знал, или обнаружить термины, связанные с темой, по которой я провожу исследование. К тому же я уверен, что представленная информация является фактической, а не плодом галлюцинаций.
Кроме того, в эпоху искусственного интеллекта, чтобы сориентироваться, необходимо в какой-то момент ознакомиться с подобной терминологией. Я уверен, что вы слышали о тензорах, но, возможно, не знаете, что это такое. Вот ответ, взятый из глоссария:
Тензорные ядра - это ядра GPU, которые оперируют целыми матрицами с каждой инструкцией.
В сочетании с диаграммой и объяснением.

Изначально мы познакомились с тензорными ядрами в статье NVIDIA выпускает бесплатные курсы по искусственному интеллекту, где я рассказывал о них:
Компания NVIDIA, которая когда-то ориентировалась исключительно на геймеров, выпуская самые современные графические процессоры, теперь стала компанией, занимающейся разработкой искусственного интеллекта. Это произошло как побочный эффект исследований, которые они проводили в своем стремлении производить постоянно развивающиеся графические карты. Это привело их к открытию тензорных ядер, которые теперь используются для обучения больших языковых моделей.
Другие интересные темы, которые вы найдете в глоссарии, - это, например, четкие объяснения хорошо известных общих понятий, таких как поток, кэш данных L1, регистры, ядро и т. д., но также и специфических для технологий Nvidia. Сюда входит инструментарий NVIDIA CUDA и модель программирования, которая предоставляет среду разработки для ускорения вычислительных приложений за счет использования мощности GPU. Его компонентами являются libcuda.so, NVIDIA CUDA Compiler Driver, NVIDIA CUDA Runtime Driver и т.д.
Как уже говорилось, инструментарий CUDA специфичен для NVIDIA, но в прошлом году мы рассматривали ZLUDA, уровень трансляции, позволяющий запускать немодифицированные CUDA-приложения с почти нативной производительностью на GPU AMD, в статье ZLUDA Ports CUDA Applications To AMD GPUs.
CUDA также требует написания кода на C++, но есть способы взаимодействия с ней из Java и Python, о чем рассказывается в Program Deep Learning on the GPU with Triton и TornadoVM Makes It Possible To Run Java on GPUs and FPGAs.
Я упоминаю эти статьи, чтобы намекнуть, что программирование на GPU больше не считается черным искусством, а стало доступным в повседневном программировании, таком как разработка игр, ИИ и многих других.
Так что если вы занимаетесь подобным бизнесом или просто разработчик, который хочет ознакомиться с некоторыми важными концепциями компьютерных наук, то «Глоссарий по GPU» от Modal - это то, что вам нужно.