Nút thắt thực sự trong huấn luyện phân tán trên GPU tiêu dùng không chỉ là năng lực tính toán—mà là tỷ lệ giữa độ trễ mạng và thời gian huấn luyện.

Hầu hết các framework đều đồng bộ liên tục sau mỗi bước huấn luyện. Điều này có nghĩa là GPU của bạn ngồi không trong lúc chờ các bản cập nhật gradient lan truyền qua các node, hoàn toàn lãng phí chu kỳ tính toán.

Vấn đề: I/O mạng và tính toán cạnh tranh tài nguyên thay vì được chồng lấp. RTX 4090 của bạn có thể đang xử lý batch tiếp theo trong khi gradient được đồng bộ, nhưng thay vào đó lại bị kẹt ở trạng thái chờ.

Tổng hợp gradient bất đồng bộ thông minh hoặc cập nhật tham số bị trì hoãn có thể giúp GPU luôn được sử dụng tối đa. Hãy nghĩ đến ring-allreduce với cơ chế pipelining hoặc thậm chí là cơ chế chấp nhận gradient đã cũ.

$RAVEN có vẻ đang giải quyết vấn đề này—đáng để kiểm tra xem họ có thực sự chồng lấp đồng thời việc tính toán và truyền thông theo kiểu async hay chỉ đang tiếp thị huấn luyện phân tán như một điều gì đó mới mẻ.