HƯỚNG DẪN KỸ THUẬT

Quản lý và phân mảnh bộ nhớ GPU

Cách các khung AI phân bổ, tái sử dụng và lấy lại bộ nhớ hạn chế trên GPU cũng như lý do các khoảng trống (phân mảnh) còn sót lại có thể gây ra lỗi hết bộ nhớ ngay cả khi về mặt kỹ thuật vẫn còn nhiều bộ nhớ.

Nghe hướng dẫn nàyAI thuật lại · ~2 min

Trên trang nàyĐọc trong 2 phút
  1. Tổng quan
  2. Lặn sâu
  3. Triển khai trong thế giới thực
  4. Tương lai của việc quản lý và phân mảnh bộ nhớ GPU
  5. Đưa nó vào thực tế
  6. Tiếp tục khám phá
  7. Câu hỏi thường gặp

Tổng quan

Hiểu nó là chìa khóa để lắp các mô hình lớn và tránh những sự cố bí ẩn.

Lặn sâu

Bộ nhớ GPU là cố định và quý giá: thẻ có thể có tổng dung lượng 24, 80 hoặc 192 GB, được chia sẻ theo trọng lượng mô hình, kích hoạt, độ dốc, trạng thái tối ưu hóa và bộ đệm tạm thời. Việc gọi trình điều khiển để phân bổ bộ nhớ cho mọi thao tác sẽ chậm, vì vậy các khung như PyTorch sử dụng bộ cấp phát bộ nhớ đệm để lấy các khối lớn lên phía trước và phân phát các phần phụ, sau đó giữ các phần được giải phóng trong một nhóm để tái sử dụng. Điều đáng chú ý là sự phân mảnh: khi các tensor có kích thước khác nhau được phân bổ và giải phóng, không gian trống sẽ vỡ thành các khối rải rác. Bạn có thể có tổng cộng 5 GB trống nhưng không phân bổ được 2 GB liền kề vì không có khoảng cách nào đủ lớn. Đây là lý do tại sao quá trình đào tạo có thể gặp sự cố do lỗi hết bộ nhớ mặc dù dường như có khoảng trống trống.

Triển khai trong thế giới thực

A training team examines allocator statistics before testing expandable segments on a variable-batch workload.

A developer uses memory_summary and a memory snapshot to investigate active tensors and inactive split blocks.

An inference team uses vLLM’s paged KV-cache management to reduce cache-allocation waste.

A training team lowers batch size or checkpoints activations after confirming live tensor memory is the limiting factor.

Tương lai của việc quản lý và phân mảnh bộ nhớ GPU

Quản lý bộ nhớ ngày càng thông minh hơn và phân trang nhiều hơn, lấy cảm hứng từ hệ điều hành. Các kỹ thuật như bộ cấp phát kiểu bộ nhớ ảo và sự chú ý phân trang (được sử dụng để quản lý bộ đệm KV trong quá trình suy luận) giúp giảm đáng kể sự lãng phí và phân mảnh. Yêu cầu các khung mặc định có thể mở rộng, chống phân mảnh các bộ cấp phát, khả năng hiển thị tốt hơn thông qua các trình phân tích tích hợp và kết nối chặt chẽ hơn với việc giảm tải và tính toán lại để hệ thống tự động xử lý GPU, CPU và bộ nhớ ổ đĩa để duy trì mức sử dụng ở mức cao và hiếm khi xảy ra sự cố.

Đưa nó vào thực tế

Tại sao nó quan trọng

  • Chi phí và ngân sách. Các quyết định về kiến ​​trúc sẽ thúc đẩy hiệu suất và chi phí vận hành trong nhiều năm.
  • Quyết định rõ ràng hơn. Giáo dục kỹ thuật giúp các nhóm chọn nhóm phù hợp chứ không chỉ nhóm mới nhất.
  • Kiểm soát chất lượng. Lựa chọn kỹ thuật tốt hơn làm giảm sự cố về độ tin cậy trong sản xuất.

coi chừng

  • Tối ưu hóa một điểm chuẩn có thể che giấu những điểm yếu của hệ thống rộng hơn.
  • Chi phí cơ sở hạ tầng và bảo trì thường được đánh giá thấp.
  • Khoảng cách về bảo mật và khả năng quan sát có thể tăng lên khi hệ thống trở nên phức tạp hơn.

Các bước tiếp theo

  1. Xác định các mục tiêu về độ trễ, chất lượng và chi phí trước khi triển khai.
  2. Điểm chuẩn trong điều kiện tải và dữ liệu thực tế.
  3. Giám sát thiết bị về lỗi, độ lệch và tác động của người dùng.
  4. Chuẩn bị đường dẫn khôi phục và ứng phó sự cố trước khi mở rộng quy mô.

Tiếp tục khám phá

Bản tin miễn phí

Nhận bản tóm tắt AI hàng ngày

Ba câu chuyện AI đã được xác minh vào mỗi buổi sáng các ngày trong tuần, được viết bằng tiếng Anh đơn giản. Miễn phí mãi mãi, không có quảng cáo.

Một email mỗi ngày trong tuần. Hủy đăng ký trong một cú nhấp chuột. Chúng tôi không bao giờ bán hoặc chia sẻ địa chỉ của bạn.

Tự kiểm tra

Take the GPU Memory Management and Fragmentation quiz

Phản hồi tức thì về mọi câu trả lời và chứng chỉ có thể chia sẻ với ID có thể xác minh sau khi bạn vượt qua khóa học.

Bắt đầu bài kiểm tra

Hỗ trợ giáo dục AI miễn phí. AI Understanding là tổ chức phi lợi nhuận 501(c)(3) — không bao giờ có quảng cáo, không có tường phí. Hãy quyên góp

Câu hỏi thường gặp

Quản lý và phân mảnh bộ nhớ GPU là gì?

Cách các khung AI phân bổ, tái sử dụng và lấy lại bộ nhớ hạn chế trên GPU cũng như lý do các khoảng trống (phân mảnh) còn sót lại có thể gây ra lỗi hết bộ nhớ ngay cả khi về mặt kỹ thuật vẫn còn nhiều bộ nhớ. Hiểu nó là chìa khóa để lắp các mô hình lớn và tránh những sự cố bí ẩn.

Phân mảnh bộ nhớ GPU là gì?

Phân mảnh có nghĩa là tổng bộ nhớ trống là đủ, nhưng nó bị chia thành nhiều mảnh, do đó không có khoảng trống nào đủ lớn cho một tensor lớn.

Tại sao các khung như PyTorch sử dụng bộ cấp phát bộ nhớ đệm?

Việc gọi cudaMalloc/cudaFree cho mỗi hoạt động diễn ra chậm, do đó bộ cấp phát bộ nhớ đệm sẽ lấy các khối lớn và tái sử dụng các khối đã giải phóng từ một nhóm.

A CUDA allocation fails despite apparently unused reserved memory. What should a developer investigate?

Allocator statistics and snapshots help distinguish fragmentation from live tensors or other allocations. The error alone does not prove a single cause.

Which PyTorch allocator option can be tested for changing-size workloads that leave unused memory slivers?

Expandable segments can reduce waste for selected allocation patterns. Availability and benefit depend on allocator configuration and workload.

PagedAttention của vLLM quản lý điều gì để giảm lãng phí bộ nhớ trong quá trình suy luận?

PagedAttention lưu trữ bộ đệm KV trong các trang có kích thước cố định như bộ nhớ ảo của hệ điều hành, cắt giảm phân mảnh và phục vụ nhiều yêu cầu một cách hiệu quả.