Mở rộng quy định Deep Learning trên nhiều nút V100

Trừu tượng
Trong blog trước của chúng tôi, chúng tôi đã trình bày hiệu suất học sâu trên một nút Dell PowerEdge C4130 với bốn GPU V100. Đối với rất
các mô hình mạng thần kinh lớn, một nút đơn lẻ vẫn chưa đủ mạnh để huấn luyện nhanh chóng các mô hình đó. Vì vậy, điều quan trọng là phải mở rộng quy mô
mô hình đào tạo thành nhiều nút để đáp ứng nhu cầu tính toán. Trong blog này, chúng tôi sẽ đánh giá hiệu suất đa nút của deep
khung học tập MXNet và Caffe2. Kết quả sẽ cho thấy rằng cả hai khung đều có quy mô tốt trên nhiều nút V100-SXM2.
Tổng quan về MXNet và Caffe2
Trong phần này, chúng tôi sẽ cung cấp thông tin tổng quan về cách MXNet và Caffe2 được triển khai để đào tạo phân tán trên nhiều nút. Thông thường
có hai cách để song song hóa việc đào tạo mạng thần kinh trên nhiều thiết bị: song song hóa dữ liệu và song song hóa mô hình. Trong dữ liệu song song,
tất cả các thiết bị có cùng kiểu nhưng các thiết bị khác nhau hoạt động trên các phần dữ liệu khác nhau. Trong khi ở mô hình song song, các thiết bị khác nhau
có các tham số của các lớp khác nhau của một mạng lưới thần kinh. Trong blog này, chúng tôi chỉ tập trung vào tính song song dữ liệu trong các khung học tập sâu
và sẽ đánh giá mô hình song song trong tương lai. Một lựa chọn khác trong hầu hết các khung học sâu là sử dụng đồng bộ hay
cập nhật trọng số không đồng bộ. Việc triển khai đồng bộ tổng hợp các độ dốc trên tất cả các công nhân trong mỗi lần lặp lại (hoặc lô nhỏ)
trước khi cập nhật trọng số. Tuy nhiên, trong triển khai không đồng bộ, mỗi công nhân cập nhật trọng số một cách độc lập với nhau.
Vì cách đồng bộ đảm bảo sự hội tụ của mô hình trong khi cách không đồng bộ vẫn là một câu hỏi mở, chúng tôi chỉ đánh giá
cập nhật trọng lượng đồng bộ.
MXNet có thể khởi chạy các công việc trên một cụm theo nhiều cách bao gồm SSH, Yarn, MPI. Đối với đánh giá này, SSH đã được chọn. Ở chế độ SSH,
các quy trình trong các nút khác nhau sử dụng rsync để đồng bộ hóa thư mục làm việc từ nút gốc sang các nút phụ. mục đích của
đồng bộ hóa là tổng hợp các độ dốc trên tất cả các công nhân trong mỗi lần lặp lại (hoặc lô nhỏ). Caffe2 sử dụng thư viện Gloo cho nhiều nút
đào tạo và thư viện Redis để tạo điều kiện quản lý các nút trong đào tạo phân tán. Gloo là một thư viện giống như MPI đi kèm với một số
các hoạt động tập thể như rào cản, phát sóng và giảm thiểu cho các ứng dụng máy học. Thư viện Redis được sử dụng bởi Gloo được sử dụng để
kết nối tất cả các nút tham gia
Phương pháp kiểm tra
Chúng tôi đã chọn đánh giá hai khung học sâu để thử nghiệm, MXNet và Caffe2. Như với điểm chuẩn trước đây của chúng tôi, chúng tôi sẽ lại
sử dụng bộ dữ liệu ILSVRC 2012 chứa 1.281.167 hình ảnh đào tạo và 50.000 hình ảnh xác thực. Mạng nơ ron trong đào tạo
được gọi là Resnet50, đây là một mạng chuyên sâu về tính toán mà cả hai khung đều hỗ trợ. Để có được hiệu suất tốt nhất, CUDA 9
trình biên dịch, thư viện CUDNN 7 và NCCL 2.0 được sử dụng cho cả hai khung vì chúng được tối ưu hóa cho GPU V100. Nền tảng thử nghiệm
có bốn máy chủ Dell EMC’s PowerEdge C4130 ở cấu hình K. Bố cục hệ thống của cấu hình K được hiển thị trong Hình 1. Như chúng ta có thể
xem, máy chủ có bốn GPU V100-SXM2 và tất cả các GPU được kết nối bằng NVLink. Các chi tiết phần cứng và phần mềm khác được hiển thị
trong Bảng 1. Bảng 2 cho thấy các tham số đầu vào được sử dụng để huấn luyện mạng thần kinh Resnet50 trong cả hai khung.
Hình 1: Cấu hình C4130 K
Bảng 1: Cấu hình phần cứng và chi tiết phần mềm
Bảng 2: Các tham số đầu vào được sử dụng trong các khung học sâu khác nhau
Đánh giá hiệu suất
Hình 2 và Hình 3 lần lượt hiển thị kết quả tăng tốc và hiệu suất của Resnet50 trên nhiều nút với MXNet và Caffe2. Như
chúng ta có thể thấy, quy mô hiệu suất rất tốt với cả hai khung. Với MXNet, so với 1*V100, việc tăng tốc khi sử dụng 16*V100
(trong 4 nút) lần lượt là 15,4 lần ở chế độ FP32 và 13,8 lần ở chế độ FP16. Và so với FP32, FP16 đã cải thiện hiệu suất tới 63,28%
- 82,79%. Cải thiện hiệu suất như vậy đã được đóng góp cho Lõi Tensor trong V100.
Trong Caffe2, so với 1*V100, tốc độ tăng tốc khi sử dụng 16*V100 (4 nút) lần lượt là 14,8 lần trong FP32 và 13,6 lần trong FP16. Và
cải thiện hiệu suất khi sử dụng FP16 so với FP32 là 50,42% - 63,75% không bao gồm trường hợp 12*V100. Với 12*V100, sử dụng FP16
chỉ nhanh hơn 29,26% so với sử dụng FP32. Chúng tôi vẫn đang điều tra lý do chính xác của nó, nhưng một lời giải thích có thể là 12 không phải là
sức mạnh của 2, có thể làm cho một số hoạt động như rút gọn chậm hơn.
Hình 2: Hiệu suất của MXNet Resnet50 trên nhiều nútHình 3: Hiệu suất của Caffe2 Resnet50 trên nhiều nút