gpt4 book ai didi

c++ - CUDA:cudaMallocManaged 是否处理退出?

转载 作者:行者123 更新时间:2023-11-27 23:43:22 35 4
gpt4 key购买 nike

如果(在 C++ + CUDA 中)cudaMallocManaged() 用于在主机和 GPU 内存中分配一个共享数组,并且程序遇到(比如在主机代码中)exit(1),是否这会在 GPU 中永久留下悬空内存吗?

根据 Will exit() or an exception prevent an end-of-scope destructor from being called? 我猜答案是否定的但我不确定 GPU 是否有某种回收机制。

最佳答案

If (in C++ + CUDA) cudaMallocManaged() is used to allocate a shared array in host and GPU memory, and the program encounters (say in Host code) an exit(1), does this leave dangling memory in the GPU permanently?

没有。 CUDA 运行时 API 注册了一个拆解函数,该函数将释放 API 在进程退出时声明的所有资源。此操作包括销毁任何事件的 GPU 上下文,从而释放 GPU 上的内存。请注意,要使所有这些发生,该过程实际上必须退出(有关如何出错的示例,请参见 here)。

关于c++ - CUDA:cudaMallocManaged 是否处理退出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52651392/

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