有没有办法找出,在GPU(设备)内存中占用内核代码(执行)的内存量是多少? 如果我有512 MB设备内存,我怎么知道可以分配多少? 视觉分析器可以显示这样的信息吗?
答案 0 :(得分:1)
程序代码占用的内存非常少。 CUDA上下文的其余部分(本地内存,常量内存,printf缓冲区,堆和堆栈)使用了更多。 CUDA运行时API包含cudeGetMemInfo
调用,该调用将返回代码可用的可用内存量。请注意,由于碎片和页面大小限制,您将无法分配内存的每个最后一个空闲字节。最好的策略是从最大值开始,递归地尝试分配连续较小的分配,直到成功分配为止。
您可以在my answer中看到有关设备内存消耗的更完整解释,以及类似行中的早期问题,