1. 概述
在 ROCm 的 libhsakmt 内存管理体系中,dGPU共享虚拟内存(SVM)管理是高性能异构计算的核心。为满足不同类型的内存一致性需求,hsakmt 针对 dGPU SVM 设计了两种 aperture(地址空间管理器):dgpu_aperture 和 dgpu_alt_aperture。这两者分别对应非一致性(non-coherent)和一致性(coherent)的 SVM 内存分配,底层实现和使用场景各有侧重。关于SVM的原理请参见:AMD KFD驱动技术分析11:SVM原理与核心概念。
本文将结合源码,系统梳理这两种 aperture 的设计、初始化流程、分配选择、典型应用、API 影响和底层实现细节。
2. 数据结构与基本定义
在 fmm.c 中,svm_t 结构体定义如下:
typedef struct {
manageable_aperture_t apertures[SVM_APERTURE_NUM];
manageable_aperture_t *dgpu_aperture;
manageable_aperture_
订阅专栏 解锁全文
1010

被折叠的 条评论
为什么被折叠?



