
本章深入探讨 HSA Runtime 的内存区域抽象,理解不同类型的内存区域(System Memory / VRAM / LDS / Kernarg)、内存属性(Fine-grained / Coarse-grained)、一致性语义以及跨设备访问能力。难度级别: 🟡 中级预计阅读时间: 60-90 分钟前置知识: 第 06-12 章,建议已经了解 HSA Agent在 HSA Runtime 中,“内存”并不是单纯的一段虚拟地址,而是带有所有者、物理位置、访问权限、一致性模型和迁移能力的资源。CPU、GPU、SDMA、IOMMU、KFD 都会参与内存的分配、映射、访问和同步过程。理解 MemoryRegion / MemoryPool 的设计,可以帮助我们回答很多实际问题:为什么某些内存 CPU/GPU 都能访问?为什么 VRAM 访问快但 CPU 读写慢?为什么有些 SVM 访问会触发 page fault?为什么 coarse-grained 内存需要显式同步?📋 本章学习目标✅ 理解MemoryRegion抽象设计✅ 掌握不同内存类型的特点和用途✅ 了解Fine-grained和Coarse-grained内存✅ 理解内存一致性和跨设备访问✅ 掌握内存池管理机制✅ 理解hsa_region_t与hsa_amd_memory_pool_t的关系