CUDA:cudaMallocManage处理退出吗?
CUDA: does cudaMallocManaged deal with exits?
如果(在C++ + CUDA中(cudaMallocManaged((用于在主机和GPU内存中分配共享数组,并且程序遇到(例如在主机代码中(exit(1)
,这是否会在GPU中永久留下悬空内存?
我猜答案是否定的,基于 exit(( 还是异常会阻止调用范围结束析构函数? 但我不确定 GPU 是否具有某种回收机制。
如果(在 C++ + CUDA 中(
cudaMallocManaged()
用于分配共享 主机和 GPU 内存中的数组,并且程序遇到(例如在主机中 code( 一个 exit(1(,这是否会在 GPU 中留下悬空内存 永久?
不。CUDA 运行时 API 注册了一个拆解函数,该函数将在进程退出时释放 API 声明的所有资源。此操作包括销毁任何活动的 GPU 上下文,从而释放 GPU 上的内存。请注意,该过程实际上必须退出才能发生所有这些操作(有关如何出错的示例,请参阅此处(。
相关文章:
- 警告处理为错误这里有什么问题
- 为什么"do while"循环不断退出,即使条件计算结果为 false?
- 在C#中处理C++指针而不使用unsafe的最佳方法
- QDateTime::toString() 在退出处理程序中使用时失败
- CUDA:cudaMallocManage处理退出吗?
- 运行Qt时处理退出代码0xC0000135 hello world
- 如何在 c++ 窗口中将参数和返回的退出值传递到批处理文件/从批处理文件获取返回的退出值
- GethostName()给出退出状态-1如何处理
- 类的静态实例无法在程序退出时正确处理资源删除
- C++键盘挂钩-退出程序,但也防止密钥在其他地方被处理
- C++映射的指针在退出时自动释放,如何处理删除
- 在c++/cli控制台应用程序中处理停止或退出事件
- 在 MPI 应用程序中处理信号/正常退出
- 使用系统调用处理退出状态
- 处理退出而不保存在Qt中
- 关于如何使看门狗程序能够感知和处理其病房之一的退出代码的设计思路
- 我怎么能每秒只处理2帧?在c或c++中循环时如何退出
- 什么是正确的方式来处理强制退出应用
- 在出现term信号时,Windows处理退出代码
- 如何处理没有退出的空指针