最近,AMDKFD 内核计算驱动正在开发一个新功能,即支持批量用户指针“userptr”分配。通过这个新的用户空间 API,将能够支持分配多个不连续的 CPU 虚拟地址范围,这些范围映射到单一连续的 GPU 虚拟地址。
在之前补丁系列的基础上,今天发布了这一批量用户指针分配支持的第二次迭代,同时不再需要对共享虚拟内存(SVM)子系统进行任何更改,还改进了异构内存管理(HMM)的集成,并采用了更好的设计方法。
新的“AMDKFD_IOC_ALLOC_MEMORY_OF_GPU_BATCH”接口的主要目的是通过将分散的内存缓冲区呈现为统一的 GPU 地址空间,帮助高效地管理这些内存缓冲区,例如用于具有碎片化主机内存的工作负载。这种批量用户指针分配的解决方案被发现比在用户空间中采用的方法要更高效,因为后者会导致更大的系统调用开销。

从用户空间来看,已经有此补丁应用于 ROCm 的 libhsakmt 库,以利用该批量用户指针 API。
那些对最新 AMDKFD 内核驱动程序工作感兴趣的人可以在邮件列表中找到 v2 补丁。
转自 New AMD Linux Driver Patches Posted For Batch Userptr Allocation Support – Phoronix
Linuxeden开源社区