cuda - 检查 GPU 是否共享
问题描述
当 GPU 与其他进程(例如 Xorg 或其他 CUDA 进程)共享时,CUDA 进程最好不要消耗所有剩余内存,而是动态增加其使用量。
(您可能会间接从中得到各种错误,例如Could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR
。但这个问题与此无关。)
(在 TensorFlow 中,您将使用allow_growth=True
GPU 选项来完成此操作。但这个问题与此无关。)
有没有一种简单的方法来检查 GPU 当前是否被其他进程使用?(我不是在问它是否配置为用于独占访问。)
我可以解析输出nvidia-smi
并寻找其他进程。但这似乎有点 hacky,可能不那么可靠,也不够简单。
(我的软件使用的是 TensorFlow,所以如果 TensorFlow 提供了这样的功能,那很好。但如果没有,我不在乎这是 C API 还是 Python 函数。不过,我宁愿避免其他外部依赖,除了那些我'我无论如何都在使用,比如 CUDA 本身或 TensorFlow。我不害怕使用ctypes
。所以考虑这个问题语言不变。)
解决方案
推荐阅读
- perl - 使用 perl / PPR 从 perl 文件中删除所有注释
- android - RenderScript 在带有致命信号 6 (SIGABRT) 的 Android 5 (API 21) 上崩溃
- java - java.lang.NoClassDefFoundError:无法初始化类 org.codehaus.groovy.vmplugin.v7.Java7
- php - 如何在动态子域链接 test.domain.com/anything 中重写 url
- c# - 如何从 C# 中字符串变量中的名称调用静态方法?
- mysql - 使用 MySQL 按他们出演的电影类型列出演员
- clickonce - clickonce 自定义包的引导程序未正确计算安装条件
- python - 在 Django 模板中渲染破折号
- declaration - 在另一个过程中调用一个过程,该过程在它之前声明
- android - 为什么我们不能在滚动视图中直接添加多个视图?