指定CPU核心跑程序

指定CPU核心跑程序

使用多卡服务器跑yolov8时会导致每个程序运行时间变长,经分析发现,每个yolo程序都会大量消耗第一个可使用的cpu核心,会造成单个核心超负载,指定每个程序使用的核心可以解决这个问题。

查看所有可用核心的使用情况:

mpstat -P ALL 5 2    #每5秒输出一次,共两次

%usr是用户使用率,%idle是核心空闲率
在这里插入图片描述

指定GPU和CPU核心:

nohup python batchtrain.py > outfile/train.out 2>&1 &  #这行是本来要运行的代码,下面是指定GPU和CPU核心运行该程序的代码
CUDA_VISIBLE_DEVICES=2 taskset -c 41-55 nohup python batchtrain.py > outfile/train.out 2>&1 &

上面代码指定了程序在GPU2和41到55号CPU核心上运行,默认该进程产生的子进程也会在这个范围内运行。

查看进程运行情况:

ps -eF | grep train

在这里插入图片描述

查看进程210035可运行的CPU核心:

taskset -p 210035

在这里插入图片描述
在这里插入图片描述

十六进制fffe0000000000转换为二进制为11111111111111100000000000000000000000000000000000000000
从末尾往前41位是0,表示0-40号核心不可用,41-55位是1,表示可用。
在这里插入图片描述
可以发现,41号核心基本跑满了,程序主要占用可用的第一个核心。

看下41号核心上的进程:

ps -eLo pid,tid,psr,cmd | grep -w 41

在这里插入图片描述
可以看到,上面运行的都是该进程及子进程。

查看进程运行时间:

ps -eo pid,lstart,etime | grep 203694

在这里插入图片描述
可以看到,程序已经跑了半个小时了(系统时间有点问题)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值