MxNet系列——how_to——env_var

博客新址: http://blog.xuezhisd.top
郵箱:[email protected]


環境變量

環境可以修改MXNet的一些設置。一般情況下,你不需要修改這些設置。本節將它們羅列出來,用於參考。

設置線程數目

  • MXNET_GPU_WORKER_NTHREADS (默認值=2)
    • 每個GPU上,進行計算的最大線程數
  • MXNET_GPU_COPY_NTHREADS (默認值=1)
    • 每個GPU上,內存複製的最大線程數
  • MXNET_CPU_WORKER_NTHREADS (默認值=1)
    • CPU上的計算任務的最大線程數
  • MXNET_CPU_PRIORITY_NTHREADS (默認值=4)
    • 優先的CPU任務的線程數

內存選項

  • MXNET_EXEC_ENABLE_INPLACE (默認值=true)
    • 在符號計算中,是否使用原地(計算)優化。
  • MXNET_EXEC_MATCH_RANGE (默認值=10)
    • 符號計算內存分配器中的粗略匹配規模
    • 如果不想使用(圖的)節點間共享內存(用於調試時),可以將該環境變量設置爲0。
  • MXNET_EXEC_NUM_TEMP (默認值=1)
    • 每個設備上分配的臨時工作空間的最大數目
    • 將它設置成比較小的數字,可以節省GPU內存。它也可能會降低並行度,但這通常是可接受的。
  • MXNET_GPU_MEM_POOL_RESERVE (默認值=5)
    • 分配給非GPU數組的GPU內存的比例,比如內核啓動器或cudnn句柄空間。
    • 如果在迭代多次之後,看到一個來自內核啓動器的內存溢出錯誤,嘗試增大該環境變量的值。

Engine Type

  • MXNET_ENGINE_TYPE (默認值=ThreadedEnginePerDevice)
    • MXNet的實質執行引擎的類型。
    • 可選值:
      • NaiveEngine: 非常簡單的引擎,使用主線程來計算。
      • ThreadedEngine: 使用全局線程池來調度作業。
      • ThreadedEnginePerDevice: 每個GPU上分配線程。

控制數據通信

  • MXNET_KVSTORE_REDUCTION_NTHREADS (默認值=4)
    • 用於大數組求和的CPU線程數
  • MXNET_KVSTORE_BIGARRAY_BOUND (默認值=1e6)
    • 大數組的最小尺寸
    • 當數組的容量大於該閾值時,將使用線程 MXNET_KVSTORE_REDUCTION_NTHREADS 進行規約。
  • MXNET_ENABLE_GPU_P2P (默認值=1)
    • 如果爲True,MXNet嘗試使用GPU的 peer-to-peer 通信(前提是P2P可用),當 kvstore 的類型是 device 時。

Memonger

  • MXNET_BACKWARD_DO_MIRROR (默認值=0)
    • 在訓練過程中,是否執行 mirror 以節省設備存儲。
    • 當設置成1時,在前向傳播過程中,圖計算器將會對一些層的特徵圖進行 mirror 操作,並拋棄它們;但當需要時,會重新計算這些拋棄的特徵圖。MXNET_BACKWARD_DO_MIRROR=1 時,將會節省 30%~50% 的設備內存,同時保持 95% 的運行速度。
    • 在MXNet中,mirror 的一個拓展叫做 memonger technology,它可以在保持75%運行速度的同時節省 O(sqrt(N)) 內存。

其它環境變量

  • MXNET_CUDNN_AUTOTUNE_DEFAULT (默認值=0)
    • 用於卷積層的cudnn_tune的默認值。
    • Auto tuning 默認是關閉的。For benchmarking, set this to 1 to turn it on by default.

設置最小內存使用


  • 務必確保 min(MXNET_EXEC_NUM_TEMP, MXNET_GPU_WORKER_NTHREADS) = 1
    • 默認設置滿足這個條件。

設置更多的GPU並行


  • MXNET_GPU_WORKER_NTHREADS設置成一個較大的數(比如 2)
    • 爲了減少內存的使用,考慮設置 MXNET_EXEC_NUM_TEMP
  • 這可能不會加速,尤其是圖像任務。因爲GPU通常會被充分利用(甚至在序列化作業中)。
發佈了147 篇原創文章 · 獲贊 283 · 訪問量 101萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章