MPS V3 trong CUDA 13.4 bổ sung tính năng giới hạn bộ nhớ GPU theo từng tác vụ. Khi vượt mức trần cứng, yêu cầu cấp phát bộ nhớ sẽ thất bại với lỗi hết bộ nhớ.
NVIDIA($NVDA) công bố ngày 27 trên blog kỹ thuật cách áp dụng tính năng này cho các tác vụ Kubernetes. Phương pháp kết hợp MPS V3, dịch vụ đa tiến trình của CUDA, với Linux cgroup để thiết lập phạm vi sử dụng bộ nhớ GPU cho từng container.
Giới hạn bộ nhớ gồm mức mềm và mức cứng. Mức mềm là mục tiêu bộ nhớ của tác vụ; yêu cầu cấp phát vẫn có thể thành công khi vượt mức này. Tuy nhiên, nếu xảy ra cạnh tranh bộ nhớ thực tế, MPS có thể loại bỏ hoặc chấm dứt tác vụ đó.
Mức cứng là giới hạn tối đa của việc cấp phát bộ nhớ. Yêu cầu vượt mức này sẽ bị xử lý bằng lỗi hết bộ nhớ. Khác với mức mềm, mức cứng không cho phép sử dụng vượt giới hạn.
Chỉ cài đặt tính năng CUDA trong Kubernetes không đồng nghĩa GPU sẽ tự động được phân bổ cho từng tác vụ. Bộ lập lịch cần quyết định GPU chạy tác vụ, lượng bộ nhớ yêu cầu và cách chia sẻ tài nguyên tính toán.
GPU Fractioning Operator mã nguồn mở áp dụng cấu hình lên các nút GPU và đo mức sử dụng bộ nhớ, tài nguyên tính toán theo từng phần GPU thay vì toàn bộ GPU. Bộ lập lịch đảm nhiệm việc phân bổ GPU và chọn chế độ, còn Operator áp dụng giới hạn trên nút.
NVIDIA cho biết KAI Scheduler là bộ lập lịch đầu tiên tích hợp GPU Fractioning. Nhật ký thay đổi của KAI Scheduler ghi nhận phiên bản v0.18.0, công bố ngày 23 tháng 9, đã bổ sung yêu cầu bộ nhớ GPU phân đoạn và hỗ trợ chế độ tính toán.
Mỗi tác vụ có thể chỉ định riêng lượng bộ nhớ cần thiết và mức sử dụng tối đa. Việc đặt mức tối đa cũng cho phép xác định phạm vi bộ nhớ tác vụ có thể dùng vượt quá lượng đã yêu cầu.
Cách chia sẻ tài nguyên tính toán gồm phân chia theo thời gian và chia sẻ SM. Với phân chia theo thời gian, nhiều tác vụ lần lượt sử dụng thời gian chạy GPU. Với chia sẻ SM, nhiều tác vụ cùng sử dụng tài nguyên tính toán GPU.
NVIDIA giải thích hai cách này có mức độ cách ly lỗi khác nhau. Phân chia theo thời gian tách biệt vùng lỗi của từng tác vụ, trong khi chia sẻ SM dùng chung vùng lỗi. Bộ lập lịch quản lý để hai chế độ tính toán không bị trộn lẫn trên cùng một GPU.
MIG, phương thức chia sẻ GPU hiện có, phân chia GPU thành các đơn vị phần cứng. Tính năng phân chia bộ nhớ mới thiết lập ranh giới bộ nhớ theo từng tác vụ bằng MPS V3; tài liệu của NVIDIA nêu rõ tính năng này không được hỗ trợ trên thiết bị MIG.
Môi trường triển khai cũng cần đáp ứng yêu cầu tương thích. Tính năng mới trong CUDA 13.4 cần trình điều khiển R615 trở lên, còn phân chia bộ nhớ yêu cầu Linux cgroup v2.
Trong cụm Kubernetes, cần cấu hình Operator trên các nút GPU cùng bộ lập lịch hỗ trợ tính năng này. Vì vậy, chỉ dựa vào việc hỗ trợ CUDA 13.4 thì chưa thể đảm bảo tính năng hoạt động giống nhau trên mọi GPU và cụm.
Sau khi công bố quy trình viết kernel GPU bằng Rust, NVIDIA tiếp tục giới thiệu tính năng quản lý bộ nhớ và tài nguyên tính toán khi bố trí nhiều tác vụ trên cùng một GPU.
Bình luận 0