mxnet 显存配置,cpu过高配置

mxnet自动调用尽量多的cpu多核,多人训练,别人就不方便用了。

这个起作用,控制cpu核数占用。

os.environ['OMP_NUM_THREADS'] = "4"

要加在整个项目的mxnet import之前。

mxnet 环境变量配置(显存)

MXNET_CPU_WORKER_NTHREADS的设置大于4对特征提取不起作用

os.environ['MXNET_CPU_WORKER_NTHREADS'] = "4"

os.environ['MXNET_UPDATE_ON_KVSTORE'] = "0"
os.environ['MXNET_EXEC_ENABLE_ADDTO'] = "1"
os.environ['MXNET_USE_TENSORRT'] = "0"
os.environ['MXNET_GPU_WORKER_NTHREADS'] = "2"
os.environ['MXNET_GPU_COPY_NTHREADS'] = "1"
os.environ['MXNET_OPTIMIZER_AGGREGATION_SIZE'] = "54"

一般情况下,不需要修改有关环境变量的配置。但是一些特殊情况,需要修改的,就涉及到以下这些内容了:
在linux上最简单的修改方式就是export MXNET_GPU_WORKER_NTHREADS=3

一 设置进程数量
MXNET_GPU_WORKER_NTHREADS
这个参数用来在一块卡上并行计算,在每一块GPU上最大的进程数,默认值为2

MXNET_GPU_COPY_NTHREADS
在每个GPU上执行内存复制作业的并发线程的最大数量,默认值1

MXNET_CPU_WORKER_NTHREADS

MXNET_CPU_PRIORITY_NTHREADS

MXNET_CPU_NNPACK_NTHREADS

二 显存选项
MXNET_EXEC_ENABLE_INPLACE
默认值:true

NNVM_EXEC_MATCH_RANGE
默认值:16

MXNET_EXEC_NUM_TEMP
默认值:1
将此设置为一个小数目可以节省GPU内存。它也可能会降低并行度,这通常是可以接受的。

MXNET_GPU_MEM_POOL_RESERVE
默认值:5
If you see a strange out-of-memory error from the kernel launch, after multiple iterations, try setting this to a larger value.

三 Memonger
MXNET_BACKWARD_DO_MIRROR
默认值:0,可选0或1
MXNet 使用镜像概念来节省内存。用于训练阶段来节省设备内存,当设置为1 的时候,在前向传播的时候会复制某些层的fp,反向传播的时候会重新计算这些数据。
MXNET_BACKWARD_DO_MIRROR=1 将会节省30%~50%的显存, 保存95%的运行速度。
四 控制数据通信
MXNET_KVSTORE_REDUCTION_NTHREADS
默认值:4
用于总结大数组的CPU线程数。
MXNET_KVSTORE_BIGARRAY_BOUND

MXNET_ENABLE_GPU_P2P

更多配置信息:

http://mxnet.incubator.apache.org/how_to/env_var.html

五 Mxnet恢复训练
Mxnet可以通过断点恢复训练,命令如下:

python train_end2end.py --network resnet --gpu 0 --resume --begin_epoch 10 --end_epoch 15 --lr_step 15

原文链接:https://blog.csdn.net/u010402786/article/details/78475472

你可能感兴趣的:(mxnet,mxnet,深度学习,环境配置,cpu过高)