📌 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 между устройствами
 
✅ Преимущества
- 
Простота доступа к памяти с обеих сторон
 - 
Меньшие задержки передачи данных
 - 
Более компактный и энергоэффективный дизайн