NVIDIA Technical Blog: Agentic AI / Generative AI
Điểm AI 51/100

Sản phẩm

NVIDIA ra mắt mã nguồn mở NVCRE: Kiểm tra độ sẵn sàng của cụm GPU trước khi chạy tác vụ AI

(giờ Việt Nam)

Tóm tắt AI

NVIDIA giới thiệu NVIDIA Cluster Readiness Engine (NVCRE), một bộ điều khiển Kubernetes mã nguồn mở giúp xác thực hiệu năng cụm GPU thông qua các tác vụ thực tế và xác định chính xác các nút gặp sự cố.

Chính văn · Bản dịch AI

Validate GPU Cluster Readiness Before AI Workloads Land

Một cụm GPU có thể vượt qua mọi bài kiểm tra sức khỏe nhưng vẫn thất bại khi chạy khối lượng công việc AI. Ngay cả khi mọi GPU, liên kết mạng và pod đều báo cáo trạng thái ổn định, một tác vụ huấn luyện trên 512 GPU vẫn có thể đạt hiệu suất kém hoặc thất bại. Nguyên nhân có thể là một GPU bị chậm, một liên kết bị suy giảm hiệu năng dưới tải, hoặc cấu hình định tuyến lưu lượng truy cập qua đường dẫn chậm hơn một cách âm thầm. Các nhà vận hành có thể không phát hiện ra vấn đề cho đến khi chạy được vài giờ hoặc khi khách hàng gửi phiếu hỗ trợ. Sau đó, các đội ngũ có thể mất nhiều ngày để chia nhỏ cụm nhằm tìm ra nguyên nhân gốc rễ trong khi tài nguyên vẫn để trống.

NVIDIA Cluster Readiness Engine (NVCRE) là một bộ điều khiển Kubernetes mã nguồn mở giúp thu hẹp phạm vi tìm kiếm đến các node cụ thể trước khi triển khai khối lượng công việc thực tế. Nó chạy các khối lượng công việc phân tán thực tế trên các nhóm node nhận biết cấu trúc liên kết (topology-aware), đo lường kết quả và báo cáo node nào đã thất bại ở bài kiểm tra nào. Các nhà vận hành không còn cần phải viết các tệp kê khai NVIDIA Collective Communications Library (NCCL) bằng tay, chia nhỏ các rack theo cách thủ công, hay biết về phần cứng bị suy giảm thông qua phiếu hỗ trợ của khách hàng. Sự sẵn sàng trở thành một thuộc tính đã được kiểm chứng của cụm thay vì chỉ là một giả định.

Việc chứng minh sự sẵn sàng đòi hỏi những gì

Một cụm GPU trở nên sẵn sàng theo từng giai đoạn. Nó trải qua các bước: khởi tạo (bring-up), chạy thử nghiệm cường độ cao (burn-in), tiền sản xuất (preproduction) và sản xuất (production), với mỗi giai đoạn đặt ra một tiêu chuẩn khác nhau. Một node vượt qua bài kiểm tra nhanh (smoke test) không nhất thiết đã sẵn sàng để tham gia vào quá trình huấn luyện trên 512 GPU.

Các đội ngũ nền tảng thường mã hóa quy trình đó vào sổ tay vận hành (runbook), bảng tính hoặc các tập lệnh shell bao quanh các bài kiểm tra NCCL. Nó trở thành một hệ thống khác mà họ phải xây dựng và duy trì song song với cấu hình node, chia sẻ GPU và điều phối khối lượng công việc.

Một cụm có thể vượt qua các chẩn đoán tiêu chuẩn nhưng vẫn thất bại dưới một tác vụ phân tán thực tế, vì vậy cách tốt nhất để kiểm tra sự sẵn sàng là chạy khối lượng công việc. Trên Slurm, điều đó chỉ cần một lệnh srun duy nhất. Kubernetes không có tính năng tương đương tích hợp sẵn, nên bài kiểm tra tương tự đòi hỏi các yêu cầu về tài nguyên GPU và truy cập bộ nhớ từ xa (RDMA), các cài đặt NCCL khớp với cấu trúc mạng, dung lượng bộ nhớ chia sẻ đủ lớn và cách đảm bảo tất cả các pod khởi động cùng nhau.

NVCRE lấp đầy những khoảng trống này trên Kubernetes. Nó chạy các khối lượng công việc làm lộ ra các vấn đề phần cứng thực tế và chỉ đích danh node nào gây ra lỗi.

Mã
communication/nccl-all-reduce
Status:       Failed
Runtime:      42m 18s
Scale:        full-scale
Nodes/Job:    8

Failed Nodes:
  gpu-node-07  ThresholdViolation
  gpu-node-12  HardwareFailureDetected

Summary
Categories:   1/2 passed
Failed Nodes: 2
Result:       FAILED

Cách NVCRE hoạt động

API là bề mặt sản phẩm. Các định nghĩa tài nguyên tùy chỉnh (CRD) xác định từng tài nguyên, vì vậy bạn có thể kiểm tra nó bằng kubectl và quản lý thông qua quy trình GitOps.

Một API phân lớp

API có ba tài nguyên được sắp xếp theo phân cấp.

  • Certification (Chứng nhận): Tài nguyên bạn tạo ra. Nó đặt tên cho các node cần kiểm tra và các danh mục cần chạy.
  • Workflow (Quy trình): Quản lý một danh mục. Nó áp dụng các ghi đè về danh mục, nền tảng và GPU; quản lý số lần lặp; đặt mục tiêu điều phối; và tạo ra job con.
  • Job (Tác vụ): Chạy khối lượng công việc cho nhóm node mục tiêu, giám sát sức khỏe của node và ghi lại các phép đo cũng như lỗi.

Một chứng nhận tạo ra một quy trình cho mỗi danh mục, và mỗi quy trình tạo ra job con của nó.

Kết quả sau đó được truyền lên trên. Job ghi lại node nào thất bại và lý do, quy trình báo cáo kết quả kiểm tra, và chứng nhận nhóm các kết quả theo danh mục.

Phân cấp đó quy kết mỗi lỗi cho một node và danh mục cụ thể. Ví dụ, một lần chạy báo cáo rằng gpu-01 gặp lỗi phần cứng trong quá trình NCCL và gpu-02 không đạt mục tiêu băng thông.

Xác thực một cụm

Ví dụ sau đây cho thấy cách một chứng nhận đặt tên cho các mục tiêu và các danh mục cần chạy.

Mã
apiVersion: nvcre.nvidia.com/v1alpha1
kind: Certification
metadata:
  name: gpu-cluster-cert
spec:
  target:
    nodeSelector:
      nvidia.com/gpu.present: "true"
  categories:
    - domain: communication
      variant: nccl-all-reduce
    - domain: training
      variant: nemotron5-8b
Mã
$ kubectl apply -f certification.yaml
$ kubectl get certifications.nvcre.nvidia.com -w

Danh mục tích hợp hiện bao gồm ba lĩnh vực: năm biến thể giao tiếp NCCL (all-reduce, all-gather, all-to-all, loopback và loopback qua NVIDIA NVSwitch), bộ chẩn đoán cấp độ 4 của NVIDIA Data Center GPU Manager (DCGM), và tiền huấn luyện NVIDIA NeMo với các mô hình NVIDIA Nemotron 5 ở mức 8B và 56B tham số. Mỗi mục nhập bao gồm các giá trị mặc định nhận biết nền tảng.

NVCRE phát hiện kiến trúc GPU và nền tảng đám mây từ các node mục tiêu và suy ra phần cấu hình còn lại, bao gồm số lượng GPU trên mỗi node, môi trường NCCL và mạng lưới dành riêng cho nền tảng.

Tiêu chí đạt dưới dạng biểu thức

Tiêu chí đạt và thất bại sử dụng Common Expression Language (CEL) và được đánh giá dựa trên các chỉ số đo lường. Không có ngưỡng nào được thiết lập mặc định. Các giá trị dưới đây là ví dụ minh họa cho các hệ thống thuộc lớp NVIDIA GB200 NVL72.

Mã
  categories:
    - domain: communication
      variant: nccl-all-reduce
      options:
        thresholds:
          busBandwidthGBps: "value >= 900"
    - domain: training
      variant: nemotron5-8b
      options:
        thresholds:
          goodputRatio: "value >= 0.9"
          avgTFLOPsPerGPU: "value >= 800"

Khi một chỉ số đo lường không đạt mục tiêu, NVCRE đặt điều kiện ValidationFailed, được ghi lại tách biệt với việc liệu bản thân lần chạy đó có thành công hay không. Một khối lượng công việc hoàn thành nhưng không đạt mục tiêu vẫn được báo cáo là thất bại.

Kiểm tra ở quy mô nơi các lỗi xuất hiện

Một số lỗi chỉ hiển thị ở một quy mô cụ thể, vì vậy chiến lược nhóm là rõ ràng. Trường testScale chọn chiến lược đó.

  • Intra-node kiểm tra từng node một cách độc lập.
  • Intra-rack phân chia các node theo miền cấu trúc liên kết bằng nhãn nvidia.com/gpu.clique.
  • Full-scale đặt mọi node vào một nhóm duy nhất.
  • Diagnose chạy tính năng cô lập lỗi thích ứng (được đề cập tiếp theo).

Chiến lược bạn chọn quyết định những gì được đo lường. Một bài kiểm tra NCCL bên trong một miền NVIDIA NVLink đo lường băng thông NVLink, trong khi bài kiểm tra tương tự trên ba rack lại đo lường cấu trúc mạng mở rộng (scale-out fabric). Hai cái đo lường những thứ khác nhau.

Cô lập lỗi thích ứng

Trường hợp khó nhất trong xác thực đa node là lỗi không thể quy cho bất kỳ node đơn lẻ nào. Một tác vụ all-reduce trên 64 node trả về băng thông thấp, và mọi node trong nhóm đều bị liên đới như nhau. Việc cô lập nguyên nhân bằng tay có thể mất nhiều ngày làm việc của kỹ sư.

NVCRE tự động hóa việc cô lập đó. Việc đặt testScale: diagnose sẽ chạy kiểm tra nhóm phân cấp nhận biết cấu trúc liên kết. Công cụ chia nhỏ từng nhóm thất bại, chạy lại các nửa và tiếp tục cho đến khi đạt minGroupSize. Các nhóm vẫn thất bại ở kích thước đó sẽ được gắn cờ là nghi phạm. maxConcurrent giới hạn số lượng job chạy đồng thời để chúng không làm bão hòa cấu trúc mạng đang được đo lường.

Kết quả đầu ra chỉ ra một số lượng nhỏ các node nghi vấn thay vì liên đới toàn bộ nhóm và đưa ra lý do tại sao mỗi node thất bại.

Chạy bất kỳ khối lượng công việc nào: API WorkloadRun

Chạy khối lượng công việc GPU đa node trên Kubernetes đòi hỏi phát hiện nền tảng, cấu hình runtime dành riêng cho framework, yêu cầu tài nguyên GPU và mạng, và dọn dẹp sau khi chạy thất bại. Việc thiết lập đó lặp đi lặp lại và dễ xảy ra lỗi.

WorkloadRun xử lý việc thiết lập: cung cấp một image container, chọn một framework và chỉ định số lượng node.

Mã
apiVersion: nvcre.nvidia.com/v1alpha1
kind: WorkloadRun
metadata:
  name: nccl-all-reduce
spec:
  image: nvcr.io/nvidia/pytorch:26.01-py3
  framework:
    mpi:
      binary: /usr/local/bin/all_reduce_perf_mpi
      args: ["-b", "8", "-e", "32G", "-f", "2", "-n", "100"]
      mpirunPath: /usr/local/mpi/bin/mpirun
  numNodes: 4
  bandwidthMeasurement:
    logProfileRef: nccl-bandwidth
    testType: all_reduce

Trường framework hỗ trợ chính xác một trong các loại: torch (huấn luyện phân tán thông qua torchrun), mpi (các bài kiểm tra NCCL và các khối lượng công việc MPI khác), hoặc exec (một lệnh tùy ý). NVCRE tạo ra Kubeflow TrainingRuntime tương ứng, chèn volume bộ nhớ chia sẻ, đặt các biến môi trường NCCL và nền tảng, đồng thời kích hoạt mạng mở rộng NVIDIA NVLink ở nơi phần cứng hỗ trợ.

Bài gốc còn tiếp — xem tiếp tại bài gốc ↗

NVIDIAGPUKubernetesHạ tầng AINVCRE

Bài viết được AI dịch và tổng hợp tự động từ NVIDIA Technical Blog: Agentic AI / Generative AI. Liên kết bài gốc ở phía trên. Dữ liệu đồng bộ qua API công khai được ghi nguồn tại AI HOT (canonical) ↗. AIHOT.vn luôn dẫn nguồn đầy đủ — nếu bạn thấy điểm cần chỉnh sửa, hãy gửi ý kiến tại trang phản hồi.

NVIDIA ra mắt mã nguồn mở NVCRE: Kiểm tra độ sẵn sàng của cụm GPU trước khi chạy tác vụ AI | AIHOT.vn