📌 UMA
Unified Memory Architecture UMA — архитектура, в которой CPU и GPU используют общее адресное пространство и физическую RAM, вместо разделённых пулов памяти.
🧠 Как работает
В UMA система построена таким образом, что:
- CPU и GPU используют один контроллер памяти
- Все данные хранятся в общей RAM
- Нет необходимости копировать данные между CPU и GPU
- Управление осуществляется через единое адресное пространство
- Совместима с APU, SoC, Shared GPU Memory
Это упрощает передачу текстур, буферов и структур между устройствами.
Варианты реализации:
- Аппаратный (например, APU, Apple M1)
- Программный (CUDA Unified Memory, OpenCL SVM)
⚙️ Где применяется
Устройства | Описание |
---|---|
APU AMD | CPU и GPU на одном кристалле |
SoC для мобильных | ARM + GPU (например, Qualcomm Adreno) |
Embedded / IoT | Упрощённые системы с одним пулом памяти |
Apple Silicon | Полная унификация CPU, GPU, NPU, RAM |
💻 Пример (CUDA Unified Memory)
int *a;
cudaMallocManaged(&a, sizeof(int) * N); // доступно CPU и GPU
📐 Сравнение UMA и Discrete Memory
Архитектура | Память CPU | Память GPU | Копирование |
---|---|---|---|
Discrete (dGPU) | Отдельная | Своя VRAM | Требуется |
UMA | Общая RAM | Та же память | Не нужно |
🧩 Связанные технологии
-
Zero-copy между CPU и GPU
-
Cache Coherence между устройствами
✅ Преимущества
-
Простота доступа к памяти с обеих сторон
-
Меньшие задержки передачи данных
-
Более компактный и энергоэффективный дизайн