转载链接:https://cloud.tencent.com/developer/article/1011312
扩展链接:https://blog.csdn.net/xuezhisdc/article/details/54927801
一般情况下,不需要修改有关环境变量的配置。但是一些特殊情况,需要修改的,就涉及到以下这些内容了: 在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