1、將已經實例化的模型在多個GPU上並行,只需要使用nn.DataParallel(model)方法即可,可用torch.cuda.device_count()檢查GPU的個數。
2、nn.DataParallel中的參數有三個,第壹個是需要並行的模型,第二個是並行所使用的GPU列表(默認使用所有可用GPU),第三個是模型輸出所在的device編號(可以是cpu,默認是GPU0)。
3、為了驗證並行效果,我們定義壹個打印輸入和輸出大小的模型,我們使用了2個GPU並行該模型。
4、使用任意壹個數據集,在模型輸出結果後,我們再打印出輸出結果的大小,與模型中的打印結果進行對比。
5、In Model是模型內打印的結果,Outside為模型外打印的結果。對比發現Outside的batch大小為所有In Model之和,代表壹個batch的數據被平均分到每個並行的GPU進行計算,之後再合並輸出結果。