Tôi đã làm một số nghiên cứu gần đây về chủ đề này. Tất cả đi xuống song song.
Về cơ bản có 2 cách để làm điều đó: song song mô hình hoặc song song hóa lô.
Song song mô hình là khi bạn chia mô hình theo các lớp giữa nhiều GPU. Theo kiến thức tốt nhất của tôi, bạn không thể phân chia một lớp giữa các GPU, vì vậy 8 GPU sẽ phục vụ 8 lớp rất rộng. Tensorflow hỗ trợ phương pháp này. Theo ý kiến của tôi, hơn 6 không có ý nghĩa theo cách này.
Song song hóa hàng loạt là khi bạn chạy toàn bộ mô hình trên mỗi GPU song song và bạn chia lô của mình và xử lý song song. Điều này được thực hiện thông qua một mẹo để xác định một lô lớn hơn sẽ được phân chia và trở thành kích thước lô mong muốn sau khi tách. Trong trường hợp này, việc phân chia và cập nhật hàng loạt trọng lượng được thực hiện trên CPU (trong trường hợp là Tensorflow) và sau 3 GPU, bất kỳ GPU bổ sung nào cũng chỉ có một sự cải thiện nhỏ về tốc độ đào tạo (theo báo cáo). Vì vậy, ở đây thậm chí 4 không có ý nghĩa và 8 chỉ là điên rồ. Dưới đây là một ví dụ về song song hàng loạt.
Thay vào đó, nếu bạn giỏi mã hóa, bạn có thể muốn xem bài báo này , phần 3.5 trong đó giải thích cách 8 GPU được sử dụng để phục vụ mạng LSTM 4 lớp. Có lẽ bạn có thể làm những việc như thế này để sử dụng DGX-1 nhưng theo như tôi biết thì Tensorflow không hỗ trợ tách một lớp thành nhiều GPU. Kết luận của tôi là rất khó để sử dụng 8 GPU và trên đó tốc độ xe buýt trở thành nút cổ chai.
Gia hạn:
Tôi đã kiểm tra lại tốc độ xe buýt và tôi đã nhầm, đó không phải là vấn đề. Hầu hết thời gian dành cho đào tạo là nỗ lực tính toán của backpropagation.
Trên thực tế tốc độ PCIe bị giới hạn bởi CPU và chipset mobo. CPU có các làn PCIe được phân bổ bởi mobo. CPU đơn mạnh nhất tại thời điểm này là Broadwell-E với 40 làn (Skylake được đồn là có 44). Mobo phân bổ băng thông đó x16 hoặc x8 cho các thiết bị ngoại vi PCIe. Vì vậy, với CPU 40 làn, bạn có thể chạy 2 thẻ ở x16 (2 * 16 = 32 <40) hoặc 5 thẻ ở x8 (5 * 8 = 40). Ở đây cần phải đề cập rằng M.2 cũng sử dụng các làn PCIe để cho tùy chọn thứ hai bị quên và ổ M.2. Một hệ thống CPU đơn sẽ không mất 8 GPU, đó là lý do tại sao chúng cần CPU kép trong DGX-1. Hạn chế tiếp theo là chipset mobo. Mạnh mẽ nhất ở thời điểm hiện tại là X99 và C6 series. X299 sẽ được công bố vào tuần tới nếu bộ nhớ phục vụ và có thể sẽ sớm có sự thay thế C6.
Vì tốc độ PCIe không phải là nút cổ chai trong quá trình học máy, câu trả lời được cập nhật cho câu hỏi của bạn sẽ là càng nhiều GPU càng tốt. Có vẻ như giới hạn là 5 tại x8 khi sử dụng PCIe 3.0, nhưng điều đó hiếm khi cần hơn vì các lớp không thể được phân chia giữa các GPU. (Và NN sâu nhất mà vẫn có ý nghĩa có thể được coi là 5-6 lớp.)