ROCm rocr-libhsakmt分析系列3: aperture概念

ROCm rocr-libhsakmt分析系列3: aperture概念 前文 acquire_vm讲了gpu vm的概念,gpu vm就是一个GPU虚拟地址空间。那么偌大的一个空间,我们该如何使用它呢?仍然可以类比进程的虚拟地址空间,例如,进程的虚拟地址空间按功能划分成了多个段:代码段、全局变量段、栈区、堆区、文件mmap区等,每个段占用互不相交的虚拟地址区域。接下来我们要讲在libhsakmt中划分gpu vm的一个重要概念:aperture。1. Aperture的概念Aperture是 GPU 内存寻址中的关键概念,用于定义一段连续的虚拟地址范围,并指定其对应的内存类型和转换规则,可以理解为一段具有特定属性的虚拟地址空间。按字面意思翻译过来就是:地址空间孔径,我戏称为“地孔”。一个Aperture通常包含以下字段:Base(基址):Aperture的起始地址。Limit(结束地址或限址):Aperture的结束地址。Alignment(对齐):Aperture的字节对齐大小。Mtype(内存类型):指定该Aperture内内存的缓存策略(如是否缓存、写回策略等)。A