Память GPU — роль ресурса в системе, а HBM — конкретная организация DRAM и интерфейса. Локальная память разных GPU может быть реализована по-разному; наличие HBM не задаёт автоматически её ёмкость или скорость приложения.
Почему это важно
Большой объём RAM сервера не превращается автоматически в столь же быструю локальную память GPU. Перед запуском нужно установить, где лежат данные, как они туда попадают и что остаётся в физической памяти устройства. Общие указатели и managed memory меняют программный доступ, но не отменяют ограничений иерархии памяти.
Что подтверждено
У дискретной CUDA GPU память CPU и локальная память устройства являются разными ресурсами. Программа должна учитывать размещение данных и допустимый способ доступа или переноса; объём RAM компьютера не равен объёму локальной памяти устройства.
Граница применимости: CUDA 12.6, дискретная GPU; не утверждение, что все интегрированные CPU/GPU платформы имеют такую же физическую организацию.
CUDA различает global memory, shared memory блока и регистры потоков. Shared memory в названии CUDA означает ресурс для совместной работы потоков блока, а не общий запас видеопамяти всех GPU сервера.
Граница применимости: Иерархия памяти CUDA 12.6; для специальных механизмов межблочного доступа требуются отдельные документированные условия.
Unified Virtual Addressing в CUDA объединяет представление адресов поддержанных выделений памяти CPU и GPU, но не сливает физические ёмкости устройств в один локальный запас. Единое адресное пространство само по себе не переносит данные и не делает произвольный указатель доступным любому устройству.
Граница применимости: CUDA 12.6, Unified Virtual Address Space; UVA отличают от Unified Memory, mapped allocations и отдельно разрешённого peer access.
CUDA Unified Memory предоставляет управляемое адресное пространство для доступа CPU и GPU. Физическое размещение и способ обслуживания доступа зависят от платформы и могут включать перенос страниц; одинаковое значение указателя не доказывает одинаковую стоимость доступа.
Граница применимости: CUDA 12.6, managed memory; поддержка миграции, прямого доступа и других режимов устанавливается для конкретных ОС и аппаратуры.
Если выбранная платформа поддерживает oversubscription managed memory, выделение может превышать локальную ёмкость GPU за счёт иерархии памяти. Это не увеличение физической VRAM: обслуживание обращений и перенос данных могут стать частью времени вычисления.
Граница применимости: Редакторское сопоставление CUDA Unified Memory и стоимости передачи данных; обязательная предпосылка — поддержка указанного режима конкретной комбинацией GPU, ОС и CUDA.
Ёмкость памяти отвечает на вопрос, сколько данных в ней помещается, а пропускная способность — сколько данных переносится за время. Увеличение доступных байтов само по себе не устанавливает скорость чтения и записи для выбранного kernel.
Граница применимости: Сопоставление модели памяти устройства и измерения bandwidth CUDA; без обещания зависимости производительности от объёма конкретной видеокарты.
CUDA Best Practices рекомендует сокращать обмен между памятью CPU и GPU и по возможности сохранять промежуточные данные на GPU. Повторное копирование одного и того же рабочего набора добавляет передачи, даже если сам набор помещается в локальной памяти.
Граница применимости: CUDA 12.6 Best Practices, дискретная GPU и явно требуемые передачи CPU↔GPU; итоговую стоимость устанавливают измерением.
Не путать
Объём памяти и её пропускная способность измеряют разные свойства. Достаточная ёмкость позволяет разместить данные, но не доказывает нужное время их обработки; высокая пропускная способность не помогает разместить набор, если для него не хватает ёмкости при выбранном способе выделения памяти.
Что проверить
- Разделите оперативную память CPU, локальную память каждой GPU и управляемые выделения памяти.
- Установите фактическое место хранения входа, промежуточных данных и результата.
- Не считайте UVA доказательством общего физического запаса или разрешённого доступа.
- Для Unified Memory проверьте возможности конкретной ОС и GPU.
- Измерьте миграции и передачи, если рабочий набор использует несколько уровней памяти.
- Раздельно проверьте доступную ёмкость и достигнутую скорость чтения/записи.
- Составьте полный бюджет выделений памяти с запасом перед запуском прикладной нагрузки.
Первоисточники
CUDA C++ Programming Guide
NVIDIA · CUDA C++ Programming Guide, CUDA 12.6, страница открыта 7 сентября 2026 года
Открыт редактором 7 сентября 2026 года, заголовок документа сверен.
Открыть первоисточникCUDA C++ Best Practices Guide
NVIDIA · CUDA C++ Best Practices Guide, CUDA 12.6, страница открыта 7 сентября 2026 года
Открыт редактором 7 сентября 2026 года, заголовок документа сверен.
Открыть первоисточникNVIDIA A100 Tensor Core GPU Architecture
NVIDIA · NVIDIA A100 Tensor Core GPU Architecture whitepaper, PDF открыт 7 сентября 2026 года
Открыт редактором 7 сентября 2026 года, заголовок документа сверен.
Открыть первоисточник