多GPU环境运行实验的一点经验
多GPU环境运行实验的一点经验
- 电脑配置
- 遇到的问题
- 尝试1
- 尝试2
- 其他技巧
电脑配置
OS: Ubuntu 20.04
GPU: RTX 3090 x 2, 分别记为gpu0,gpu1。
Tensorflow: 2.4.0
遇到的问题
程序里面原本设置如下:
os.environ["CUDA_VISIBLE_DEVICES"] = "0, 1"
实际上如果不设置的话,也是默认使用两块GPU.
我遇到的问题是:启动一个程序的话,使用率, gpu0:90%, gpu1: 接近0。
然后我启动了3个程序,相当于三个程序同时在运行(速度相比于只运行一个慢多了),这样一来, 使用率, gpu0:100%, gpu1: 10%, 我发现这三个程序实际上都是在gpu0上运行的,如下:
看来,gpu1基本上没啥用,太浪费了。 怎么办?
尝试1
首先想到的是在运行程序的时候通过指定GPU的方式来把4个运行任务均摊到两个gpu上。具体讲:
通过命令行+ 参数的方式来指定gpu,
运行程序的命令如下:
:python3 start.py --gpuid '0'
其中start.py即为要运行的程序文件,通过参数gpuid来指定使用哪一块gpu。
start.py中,
parser.add_argument('--gpuid', type=str, default='0, 1', help="GPU-ID used for training in a multi-GPU environment (default: None)")os.environ["CUDA_VISIBLE_DEVICES"] = args.gpuid # 指定GPU# 接着就是启动实验的程序。
奇怪的是这种指定方式的方式并没有起到任何作用。
尝试2
直接在命令行进行指定并启动程序,具体命令如下:
CUDA_VISIBLE_DEVICES = 1 python3 start.py
注:当然也可以指定多个gpu, 如, CUDA_VISIBLE_DEVICES=0, 1。
通过这样的方式给每个GPU分配两个运行任务,与不指定GPU相比,发现:
1.GPU1的使用率提高了,实际上两块GPU的使用率相当;
2 程序运行速度提高了不少,因为之前4个运行任务都在gpu0上,不过带来的问题时噪音变大了。之前两个GPU fan都在75%左右, 现在两个gpu fan都很高,一个为100%。
如下:
其他技巧
多GPU环境,如果不指定GPU的话,系统以一种贪婪的方式把计算任务铺满所有的GPU资源,因此可以在程序中设置动态分配GPU资源。
如下:
gpus = tf.config.experimental.list_physiological_devices("GPU")
for gpu in gpus:tf.config.experimental.set_memory_growth(gpu, True)
OK.
多GPU环境运行实验的一点经验相关推荐
- 【Dlib】在GPU环境中运行dlib中的例子dnn_mmod_ex报错...dlib::cuda_error...Error while calling cudaMalloc...
1.问题描述 在GPU环境下运行dlib中的例子dnn_mmod_ex时,报错: terminate called after throwing an instance of 'dlib::cuda_ ...
- 对解决Visual Studio的 LNK2019 和 LNK1120 错误的一点经验
文章目录 对解决Visual Studio的 LNK2019 和 LNK1120 错误的一点经验 问题描述 尝试分析 写在结尾 对解决Visual Studio的 LNK2019 和 LNK1120 ...
- 手把手教你:如何使用滴滴云搭建GPU环境
目录 前言 一.滴滴云GPU配置选择及创建 二.GPU服务器的登录 三.GPU环境配置 1.Anaconda的下载 2.Anaconda的安装 3.conda创建自己的python环境 4.安装Pyt ...
- Mint系统使用介绍,Mint系统安装,在Mint系统上搭建GPU环境,在Mint系统上安装Pycharm、Anaconda等软件,在Mint系统上安装cuda和cudnn
欢迎大家关注笔者,你的关注是我持续更博的最大动力 原创文章,转载告知,盗版必究 Mint系统使用介绍,Mint系统安装,在Mint系统上搭建GPU环境,在Mint系统上安装Pycharm.Anacon ...
- 知乎嵌入式大杂烩:学习STM32的一点经验分享
前言 前两天在群里看到群友们在讨论学习STM32的话题,并且今天也有一位机械专业的准研究生也问了STM32的入门问题.正好我也有一点经验,所以试着分享一下这个话题.我也不是什么大神,只是一名普通的工程 ...
- TF之Windows:Windows系统下设置Tensorflow运行方式为GPU加速运行的详细攻略
TF之Windows:Windows系统下设置Tensorflow运行方式为GPU加速运行的详细攻略 目录 软件环境 1.第一步安装好CUDA软件程序 2.第二步安装好tensorflow-gpu库 ...
- 生产环境运行Docker的9个关键决策
本文讲的是生产环境运行Docker的9个关键决策,[编者的话]生产环境运行Docker并没有想象的那么简单,如何实现稳定安全的部署和扩容? 又有哪些需要考虑的关键决策? 本文就此做了一些分析和阐述,赶 ...
- caffe-gpu ubuntu 安装_ubuntu16.04 cuda10.0 配置caffe gpu环境
caffe gpu环境的配置就是一部赤裸裸的血泪史,每次都能遇到很多问题~ 环境依赖 ubuntu 16.04cuda 10.0python 3.5opencv 3.4.10sudo apt-get ...
- 使用Unity开发项目的一点经验
使用Unity开发项目的一点经验 我们主要使用3dsmax2010进行制作,输出FBX的类型导入Unity3D中. 默认情况下,3dsmax8可以和U3D软件直接融合,自动转换为FBX物体. 注意事项 ...
- Windows 10配置GPU环境
Windows 10配置GPU环境 查看显卡型号 下载安装显卡驱动 下载安装CUDA 查看本机显卡驱动版本 查看CUDA和显卡驱动的对应关系 下载安装CUDA 下载cuDNN 验证安装 验证CUDA ...
最新文章
- 图论 ---- C. Graph Transpositions(数据分阶段分层图最短路(二维) + 贪心)
- Nginx在Windows平台的配置与使用
- boost::gil::rgb8_image_t::recreate用法的测试程序
- 转 JavaScript传值及.Net传值方式总结
- c语言下标法与指针法,《C和指针》中关于指针与下标的问题
- 数组——询问学号(洛谷 P3156)
- BZOJ3711 PA2014Druzyny(动态规划+cdq分治+线段树)
- 程序员如何解决并发冲突的难题?
- 吃易消化吸收的东西利于长寿
- 【VirtualBox】VirtualBox的四种网络连接模式
- 计算机课题立项申报书范文,课题立项申请书怎么写
- Python数据解析
- Unity开发WebGL项目开发问题与解决方法汇总
- 毕业设计-基于微信小程序房屋安全管理系统
- linux关于安装tar、tar.gz、tar.xz等文件的贴士
- markdown公式中字母加粗
- js按下回车键调用方法
- hitTest:(CGPoint)point withEvent:(UIEvent *)event
- Spark系列之Spark体系架构
- 深入浅出Java开发!什么是分布式系统,如何学习分布式系统