本篇内容主要讲解“运行tensorflow python程序限制对GPU和CPU的占用操作方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“运行tensorflow python程序限制对GPU和CPU的占用操作方法是什么”吧!
一般情况下,运行tensorflow时,默认会占用可以看见的所有GPU,那么就会导致其它用户或程序无GPU可用,那么就需要限制程序对GPU的占用。并且,一般我们的程序也用不了所有的GPU资源,只是强行霸占着,大部分资源都不会用到,也不会提升运行速度。
使用nvidia-smi可以查看本机的GPU使用情况,如下图,这里可以看出,本机的GPU型号是K80,共有两个K80,四块可用(一个K80包括两块K40)。
1、如果是只需要用某一块或某几块GPU,可以在运行程序时,利用如下命令运行:CUDA_VISIBLE_DEVICES=0,1 python test.py
这里表示只有GPU 0和1对程序可见,因此也就限制了程序只能用GPU 0和1
同样,也可以在代码里指定
import osos.environ["CUDA_VISIBLE_DEVICES"] = "0,1"
如果想只用CPU,不用CPU来运行程序,可以用如下命令(所有GPU都不可见):
CUDA_VISIBLE_DEVICES='' python test.py
或者是
CUDA_VISIBLE_DEVICES="-1" python test.py
2、让tensorflow只按需索取显存,如下代码所示
#only minimum use gpugpu_config = tf.ConfigProto()gpu_config.gpu_options.allow_growth = Truewith tf.Session(config = gpu_config) as sess:
前面是对GPU的限制,那如果不用GPU,只用CPU呢?如何限制对CPU的使用呢?
前面也有提到,如果使用命令CUDA_VISIBLE_DEVICES=“”python test.py可以只使用CPU,那如果想只使用部分CPU呢?可以通过如下代码限制
cpu_config = tf.ConfigProto(intra_op_parallelism_threads = 8, inter_op_parallelism_threads = 8, device_count = {'CPU': 8})with tf.Session(config = cpu_config) as sess:
到此,相信大家对“运行tensorflow python程序限制对GPU和CPU的占用操作方法是什么”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。