譯者:hijkzzzhtml
torch.multiprocessing 是一個本地 multiprocessing
模塊的包裝. 它註冊了自定義的reducers, 並使用共享內存爲不一樣的進程在同一份數據上提供共享的視圖. 一旦 tensor/storage 被移動到共享內存 (見 share_memory_()
), 將其發送到任何進程不會形成拷貝開銷.python
此 API 100% 兼容原生模塊 - 因此足以將 import multiprocessing
改爲 import torch.multiprocessing
使得全部的 tensors 經過隊列發送或者使用其它共享機制, 移動到共享內存.git
由於 APIs 的類似性, 咱們沒有爲此包提供足夠的文檔, 因此推薦參考很是優秀的原生進程模塊文檔.github
警告apache
若是主進程意外退出 (好比 由於一個信號的到來), Python’s multiprocessing
有時候會沒法請理它的子進程. 這是一個衆所周知的警告, 所以,若是你在中斷解釋器後發現任何資源泄漏,這可能意味着你剛剛發生了這種狀況.url
策略管理
torch.multiprocessing.get_all_sharing_strategies()
返回當前系統支持的共享策略的集合.spa
torch.multiprocessing.get_sharing_strategy()
返回當前的 CPU tensors 共享策略..net
torch.multiprocessing.set_sharing_strategy(new_strategy)
設置一個新的 CPU tensors 共享策略.code
閱讀全文/改進本文htm