Слагаемые производительности графических акселераторов NVIDIA
У графических акселераторов много параметров. Имеют значение архитектура базового процессора, объем, частота и пропускная способность памяти, интерфейс шинного подключения, размер кэш-памяти и пр. Чтобы подобрать инструмент по руке, пользователю надо знать запросы его собственных приложений. Каждому свое: коммерческим серверам, рабочим станциям, игровым ПК. Линейный подход «дороже-лучше» не работает.
Подход NVIDIA
Процессоры NVIDIA построены на трех основных типах ядер: CUDA для базовых графических вычислений, RT для трассировки лучей в реальном времени, тензорных ядрах для ускорения машинного обучения.
Ядра CUDA позволяют графическому процессору параллельно обрабатывать похожие задачи. Больше ядер – больше одновременно обрабатывается данных. Чем выше тактовая частота, тем быстрее работает каждое ядро. Графические процессоры становятся лучше с новыми поколениями и архитектурами, поэтому старая графическая карта с большим количеством ядер CUDA не обязательно мощнее новой, с меньшим.
В компьютерной графике трассировка лучей (ray tracing, RT) – моделирование переноса света в алгоритмах рендеринга для создания реалистичных изображений: отражения, преломления, теней, размытия в движении. Ядра RT ускоряют ключевые математические операции, необходимые для отслеживания виртуальных лучей света в сцене.
Тензорные вычисления используются в задачах математического моделирования, но самый большой спрос на них – в машинном обучении. Обработка огромных наборов данных при обучении нейросетей – многопараметрическая задача нелинейной оптимизации. Специализированные тензорные ядра графических акселераторов поддерживают операции с различной точностью и динамически оптимизируют вычисления для повышения производительности. Приложения искусственного интеллекта сегодня – основной драйвер развития графических вычислений.
Три колена, три архитектуры
Архитектура Ada (Lovelace) свежего поколения акселераторов NVIDIA сменила архитектуру Ampere, а та – Turing. Сравним три GPU (которые NVIDIA назвала так, что невнимательному пользователю легко запутаться):
- RTX 6000 (Ada)
- RTX A6000 (Ampere)
- Quadro RTX 6000 (Turing)
В отличие от имен, показатели карт разнятся сильно.
Источник: NVIDIA
CUDA
Ядра CUDA отвечают за освещение, физику и другие графические вычисления. Процессор AD102 поколения Ada содержит на 70% больше ядер CUDA, чем предшественник. По данным NVIDIA, скорость обработки операций с плавающей запятой одинарной точности (FP32) выросла вдвое. Можно ждать значительного прироста производительности в разработке 3D-моделей и автоматизированном проектировании (CAE).
RT
Ядра RT третьего поколения просчитывают геометрию освещенности объектов (пересечение лучей и треугольников) вдвое быстрее, чем раньше. Это означает, что карты на основе Ada более точно воспроизводят отражения и тени, лучше выполняют шумоподавление - устраняют случайные изменения яркости и цвета для придания изображениям большей реалистичности. Ядра Ada RT содержат два новых аппаратных блока: Opacity Micromap (OMM) и Displaced Micro-Mesh (DMM). Они ускоряют трассировку лучей для полупрозрачных объектов или объектов неправильной формы. Микросетки воспроизводят объекты все более сложной формы без увеличения времени обработки.
По словам NVIDIA, обеспечить высокую частоту кадров трассировки лучей только за счет мощности RT Core нельзя. Вот почему в Ada реализована новая система планирования - переупорядочивание шейдеров (Shader Execution Reordering, SER). NVIDIA утверждает, что потратила годы на исследования и разработки SER, основной целью которых является повышение эффективности шейдеров на лету, оптимизация загрузки ядер CUDA и улучшение параллелизма.
Тензорные ядра
Тензорные ядра Ada четвертого поколения функционально идентичны ядрам процессора NVIDIA Grace Hopper для центров обработки данных (такие стоят в старших акселераторах H100). Их движок Transformer Engine FP8 обеспечивает до пяти раз более высокую производительность в задачах искусственного интеллекта (ИИ) по сравнению с тензорным ядром Ampere предыдущего поколения (которое само по себе обеспечивало аналогичный прирост скорости за счет использования разреженности). На тензорные ядра Ada и компонент Optical Flow Accelerator опирается технология масштабирования изображений DLSS 3 – новые кадры отрисовываются исключительно с использованием ИИ, не задействуя основной конвейер рендеринга графики.
Кодирование/декодирование
Встроенный кодировщик NVIDIA NVENC переносит ресурсоемкую задачу кодирования видео с CPU на выделенную часть графического процессора и ускоряет экспорт видео. Встроенный декодер NVDEC помогает плавно воспроизводить многопоточное видео высокого разрешения. Карта RTX 6000 позволяет использовать три аппаратных видеоускорителя NVENC и NVDEC, физически присутствующих на AD102, для шести независимых ускоренных потоков транскодирования. В предыдущих поколениях и кодировщиков и декодеров было меньше. У настольных аналогов RTX 6000 на том же процессоре, RTX 40x0, их тоже меньше – 2/1.
Цена прогресса
«Высоко оптимизированная архитектура графического процессора NVIDIA Ada Lovelace сочетает в себе ядра RT третьего поколения, тензорные ядра четвертого поколения и новые ядра CUDA для выхода на ранее недостижимую производительность рендеринга, искусственного интеллекта, графики и вычислений», — считает Карл Флайгар, специалист по профессиональной графике и данным PNY, основного контрактного производителя NVIDIA.
Задача пользователя – считать собственную выгоду, соотнося с затратами. RTX 6000 (Ada) примерно на треть дороже предшественницы RTX A6000 (Ampere). Одновременное присутствие на рынке акселераторов нескольких поколений позволяет пользователям выбрать подходящий инструмент, не переплачивая за невостребованные возможности. Правда, для этого надо знать нагрузки своих же задач. Большинство специалистов по глубокому обучению и инженеров не понимают специфики каждой новой архитектуры графических акселераторов и того, какие преимущества они приносят. Покупают по старинке - на что дадут денег.