CUDA 13.5 готовит платформу Vera Rubin к выходу: новые возможности планировщика и связи между GPU
NVIDIA официально представила CUDA 13.5, что знаменует важный этап для будущей платформы Vera Rubin: поддержка этой архитектуры переходит из статуса раннего доступа (Early Access) в статус общей доступности (General Availability). Это означает, что разработчики теперь могут готовить промышленное программное обеспечение для Vera Rubin, используя полноценную и официально поддерживаемую версию CUDA. Помимо этого, обновление привносит значительные изменения в управление ресурсами через Multi-Process Service (MPS) и открывает новые возможности для прямой коммуникации между видеокартами внутри CUDA-ядер (CUDA Tile).
Одним из ключевых направлений обновления стало расширение контроля над вычислительными ресурсами и улучшение взаимодействия между графическими процессорами. В CUDA 13.5 реализована поддержка Locality Domains в сочетании с Multi-Process Service (MPS), что позволяет связывать структуры cgroup-v2 с пространствами имен (namespaces) MPS. Это дает возможность администраторам автоматически назначать рабочие нагрузки на различные политики ресурсов, избавляя от необходимости настраивать каждый отдельный процесс через переменные окружения. Важной особенностью стала возможность разделения потоковых мультипроцессоров (SM) на разделы (partitions) внутри одного пространства имен: для каждого устройства можно заранее определить, какая часть SM будет доступна конкретному namespace, что критически важно для многопользовательских систем, где ресурсы одного ускорителя делятся между разными сервисами или пользователями.
Для повышения надежности управления памятью NVIDIA добавила механизм мониторинга на основе опроса (polling). Если стандартные уведомления cgroup о достижении лимитов памяти не срабатывают или приходят с задержкой, MPS теперь может напрямую запрашивать текущее потребление ресурсов. Это позволяет системе более точно принимать решения о вытеснении процессов или освобождении памяти, хотя и создает дополнительную нагрузку на управление по сравнению с чисто событийной моделью.
Прямая связь между GPU и оптимизация CUDA Tile
Значительный прорыв произошел в области CUDA Tile. Теперь внутри одного Tile-ядра реализована возможность прямого доступа к памяти другой видеокарты, соединенной через NVLink. NVIDIA разделяет типы доступа на Unicast-указатели для обращения к одному соседнему устройству и Multicast-указатели (вместе со специальными операциями Multimem) для распределения или агрегации данных через фабрики NVSwitch. Такая интеграция позволяет объединять вычисления и передачу данных (например, матричное умножение с последующей редукцией) внутри одного ядра, что существенно снижает задержки и накладные расходы на синхронизацию, что особенно актуально для обучения гигантских ИИ-моделей, чьи тензоры распределены по множеству ускорителей.
Кроме того, CUDA 13.5 предлагает предварительный обзор интероперабельности (совместимости) между Tile-ядрами и классическим SIMT-кодом. Теперь Tile-ядра могут напрямую вызывать функции устройств из SIMT-библиотек, если данные уже находятся в регистрах или разделяемой памяти (Shared Memory). Ранее для этого требовалось разделение на разные ядра и использование глобальной памяти, что создавало лишние операции копирования. В контексте математических библиотек для архитектуры Vera Rubin были обновлены cuBLAS (новые эвристики для операций с форматами NVFP4 и MXFP8, оптимизированные под задачи Mixture-of-Experts) и cuSPARSE, которая обещает значительный прирост производительности в зависимости от используемого алгоритма.
Изменения в модели драйверов для Windows
Важное архитектурное изменение касается программного обеспечения для Windows. С выходом платформы Rubin NVIDIA меняет модель драйверов: CUDA будет поддерживать WDDM и Microsoft Compute Driver Model (MCDM), однако режим TCC (Tesla Compute Cluster) больше не будет поддерживаться на Rubin и последующих поколениях. Это означает, что разработчики, чье ПО полагалось исключительно на TCC, должны будут адаптировать свои решения для работы с новыми моделями драйверов.