gpt4 book ai didi

cuda - 我实际上可以在cuda卡上分配多少内存

转载 作者:太空宇宙 更新时间:2023-11-04 13:26:45 27 4
gpt4 key购买 nike

我正在编写一个使用 cuda 在 GPU 上执行计算的服务器进程。我想对传入的请求进行排队,直到设备上有足够的内存来运行作业,但我很难弄清楚我可以在设备上分配多少内存。我对一项工作需要多少内存有一个很好的估计,(至少有多少将从 cudaMalloc() 分配),但是我在分配可用的全局内存总量之前很久就让设备内存不足。

是否有一些公式之王可以从全局内存总量中计算出我可以分配的数量?我可以使用它,直到我得到一个根据经验行得通的估计,但我担心我的客户会在某个时候部署不同的卡,而我的偷工减料的数字将不会很好地发挥作用。

最佳答案

GPU 的 DRAM 大小是您可以通过 cudaMalloc 分配的内存量的上限,但不能保证 CUDA 运行时可以一次满足对所有内存的请求大分配,甚至是一系列小分配。

内存分配的约束因操作系统底层驱动模型的细节而异。例如,如果所讨论的 GPU 是主要显示设备,则操作系统可能还为图形保留了部分 GPU 内存。运行时使用的其他隐式状态(例如堆)也会消耗内存资源。也有可能内存已变得碎片化,并且不存在足够大的连续 block 来满足请求。

CUDART API 函数 cudaMemGetInfo 报告可用内存和可用内存总量。据我所知,没有类似的 API 调用可以报告最大可满足分配请求的大小。

关于cuda - 我实际上可以在cuda卡上分配多少内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33106649/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com