GMLake集成PyTorch为何采用强侵入式代码?

1个回答

写回答

小企鹅起飞

2025-10-28 20:50

+ 关注

说GMLake被PyTorch集成是不准确的。GMLake的做法是重写torch/c10/cuda/CUDACachingAllocator.cpp,将自己的虚拟内存拼接(VMS)那一套东西硬塞进PyTorch原生的DeviceAllocator和NativeCachingAllocator这两个类里,而且集成的时候也是通过重写原生的.so文件。真不太理解为什么要采用这种代码侵入性这么强的形式,毕竟PyTorch提供了CUDAPluggableAllocator这样方便向外扩展的接口(通过调整自定义的malloc和free函数这种方式)。从技术层面来看,个人感觉它本质上就是把CPU上虚拟内存池的技术运用到GPU显存管理上。这里要注意的是,CUDA低级别VM API是10.2版本引入的,都过去好几年了,似乎居然没人做类似的工作,这好像不太合理……

举报有用(0分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号