一个简单的工具,用于显示指定数量的GPU,并在TensorFlow中显示所需的内存

mask-gpu的Python项目详细描述


屏蔽GPU

一个简单的工具,只向tensorflow公开具有所需内存的指定数量的gpu(以及更多的应用程序,请进一步阅读)。此工具使用nvidia-smi查询GPU可用内存值,并基于指定的内存和要公开的GPU数分配CUDA_VISIBLE_DEVICES环境变量以公开特定的GPU。像tensorflow-gpu这样的应用程序使用这些信息,并且只使用公开的gpu。如果你的应用程序没有使用CUDA_VISIBLE_DEVICES,那么这可能是not你需要的。

依赖关系

  • 英伟达SMI

安装

pip install mask-gpu

快速启动

显示可用的GPU信息

mask-gpu --info
# Outputs the following# Finding GPUs with a minimum of 1024MiB free memory...# GPUs available: 6 -> [0, 1, 4, 5, 6, 7]

只需运行mask-gpu即可公开1个GPU(至少有1024兆字节的可用内存)

`mask-gpu`# Remember to wrap mask-gpu in ` symbol# Or else mask-gpu will print the command# and you will have to manually execute it

指定选项

默认情况下,mask-gpuSeraches for GPU具有至少1024M的可用内存,并分配1个GPU

mask-gpu --info --min_memory 1024# mask-gpu -i -m 1024                <--- Same as above# Info does not execute any commands`mask-gpu --expose 1 --min_memory 1024`# `mask-gpu -e 3 -m 1024`            <--- Same as above# Remember to wrap mask-gpu in ` symbol

您可以使用上面的模板指定自己的选项

全部取消屏蔽(还原)

取消所有GPU的屏蔽,即恢复到使用mask-gpu之前的状态

`mask-gpu --unmask-all`# `mask-gpu -u`                      <--- Same as above# Remember to wrap mask-gpu in ` symbol

注意:此命令将清除CUDA_VISIBLE_DEVICES,因此在执行上述命令时将被删除

许可证

麻省理工学院的执照

版权所有(c)2019 Saravanabalagi Ramachandran

兹免费准许任何人取得副本 本软件和相关文档文件(“软件”)的 在软件中不受限制,包括但不限于 使用、复制、修改、合并、发布、分发、再授权和/或出售 软件的副本,并允许软件的用户 在满足以下条件的情况下,可以这样做:

上述版权公告及本许可公告须包括在 软件的所有副本或大部分。

本软件按“原样”提供,无任何形式的保证,明示或 默示的,包括但不限于适销性保证, 适合特定目的和不侵权。在任何情况下 作者或版权所有者应对任何索赔、损害或其他 责任,无论是在合同诉讼、侵权诉讼或其他诉讼中, 不属于或与软件、使用或其他交易有关 软件。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java将Scanner对象作为构造函数参数传递给UserInterface类   spring未能启动bean“subtocolWebSocketHandler”;嵌套的例外是java。lang.IllegalArgumentException:没有处理程序   Java EE应用程序中后台服务的多线程Java线程(设置守护进程和优先级)?   java Pull to refresh返回列表的第一个位置   无法将comparator类转换为java。可比的   java将json从servlet传递到dojo   JavaHibernate:将子类实例转换为超类实例   java警告调用servlet类时非法反射访问   java静态变量值   java@Entity和@embeddeble之间有什么区别   java将作业配置导入公共作业配置类(注释配置)   sql公共表表达式(以values语句开头)在java中给出错误   java在ImageJ中使用ImageProcessor   java PostgreSQL executeBatch()会随着时间的推移而变慢   java在安卓中以表格形式排列sqllite表数据?   java中SVG的swing定制呈现   java删除与另一个实体映射的实体   java何时/如何添加ListView适配器,使用back按钮恢复它?(片段)   java为什么IBinder和Binder之间的类型转换不是非法的?   java在方法参数列表中使用ArrayList或List