面向fhe编译器的确定性的内存规划
空
面向fhe编译器的确定性的内存规划
rmm(RAPIDS Memory Manager)的内存分配策略
介绍:
RMM是NVIDIA为GPU内存管理设计的一个高性能内存管理库,旨在优化GPU内存的分配和释放过程,提高内存使用效率,减少内存碎片化问题。RMM主要用于数据科学和机器学习等需要大量GPU内存的应用中。
内存分配策略
1. 预分配内存池
RMM在初始化时会预分配一块较大的GPU内存池,这样可以减少频繁的内存分配和释放操作,提高性能。应用程序在需要内存时,从这个预分配的内存池中分配内存,而不是每次都向操作系统请求内存。
具体算法-指数退避扩展策略: 比如在执行一个cudamalloc操作时,会有一个需要分配的内存大小,记作min_size。rmm并不直接分配一个min_size大小的内存块,而是会分配一个大于它的内存块,大小记为try_size。每次尝试分配try_size大小的内存块,如果分配失败,则将try_size缩小一倍,直到成功或者try_size小于min_size为止(报错)。这样可以避免频繁向上层驱动请求分配内存,而是由rmm直接管理一大块内存。
2. 合并最佳适配算法的碎片优化
本文由作者按照 CC BY 4.0 进行授权