6 điểm bởi GN⁺ 2025-08-21 | Chưa có bình luận nào. | Chia sẻ qua WhatsApp
  • GPU đóng vai trò cốt lõi trong machine learning hiện đại, với cấu trúc kết hợp nhiều Streaming Multiprocessors (SMs) chuyên cho phép toán nhân ma trận tốc độ cao và HBM (bộ nhớ băng thông cao)
  • SM của GPU được chia thành Tensor Core (nhân ma trận) và CUDA Core (phép toán vector), hỗ trợ tính toán song song quy mô lớn và lập trình linh hoạt
  • GPUTPU khác nhau về cấu trúc bên trong và cấu hình mạng; GPU có tính đa dụngkhả năng mở rộng cao hơn, nhưng để đạt hiệu năng tối ưu cần cân nhắc nhiều hơn
  • Trong node, các GPU có thể giao tiếp siêu tốc qua NVLinkNVSwitch; giữa các node, chúng được kết nối bằng mạng như InfiniBand để phục vụ huấn luyện phân tán quy mô lớn
  • Collectives trên GPU (ví dụ: AllReduce, AllGather) có hiệu năng thay đổi đáng kể theo cấu trúc phần cứng và các tầng mạng, và trên thực tế thường thấp hơn băng thông lý thuyết

GPU là gì?

  • GPU ML (machine learning) hiện đại (ví dụ: H100, B200) có cấu hình gồm hàng chục đến hàng trăm Streaming Multiprocessor (SM) chuyên cho phép toán nhân ma trận, kết hợp với bộ nhớ HBM tốc độ cao
  • Mỗi SM có Tensor Core (nhân ma trận), Warp Scheduler (phép toán vector), SMEM (cache on-chip)
  • Khác với TPU, GPU có thể xử lý song song linh hoạt ở quy mô lớn hơn thông qua hơn 100 SM

Cấu trúc chi tiết của SM

  • SM được chia thành 4 subpartition, và mỗi subpartition đều có Tensor Core, CUDA Core (phép toán vector), Warp Scheduler, register file riêng
  • CUDA Core phụ trách phép toán số học vector (SIMD/SIMT), còn Tensor Core được tối ưu riêng cho nhân ma trận
  • FLOPs của Tensor Core vượt trội áp đảo, và với phép toán độ chính xác thấp thì tốc độ xử lý còn cao hơn nữa
  • GPU mới nhất (ví dụ: B200) bổ sung TMEM dung lượng lớn để hỗ trợ đầu vào Tensor Core cỡ lớn

Tính linh hoạt của CUDA Core

  • CUDA Core của GPU sử dụng mô hình SIMT (Single Instruction Multiple Threads), thực thi song song một lệnh trên nhiều thread
  • Mỗi thread có con trỏ lệnh độc lập (program counter), mang lại tính linh hoạt cho các nhánh điều kiện, nhưng nếu có quá nhiều phân kỳ lệnh (divergence) trong warp thì hiệu năng sẽ giảm
  • Mỗi CUDA Core có trạng thái riêng và có thể truy cập bộ nhớ một cách linh hoạt (trong khi TPU chỉ có thể xử lý bộ nhớ liên tiếp)

Lập lịch/song song hóa

  • SM lập lịch và thực thi đồng thời nhiều warp (tối đa 64), và mỗi warp scheduler chỉ chạy một chương trình tại một thời điểm
  • Nhờ cấu trúc này, GPU vừa khá linh hoạt vừa đạt được mức xử lý đồng thời cao

Cấu trúc bộ nhớ của GPU

  • GPU có HBM là lớn nhất, ngoài ra còn có hệ phân cấp bộ nhớ gồm L2/L1 (SMEM)/TMEM/register

Tóm tắt thông số GPU hiện đại

  • Số lượng SM (Streaming Multiprocessor), xung nhịp, bộ nhớ, FLOPs, băng thông (BW) khác nhau tùy theo từng model
  • Dung lượng bộ nhớ (HBM), băng thông và FLOPs (floating-point/số nguyên/độ chính xác thấp) đều tăng qua từng thế hệ
  • Trong bảng (lược bỏ), các đặc điểm chính gồm: Blackwell (B200) có HBM 192GB, HBM BW 8.0TB/s, FP8 FLOPs 4.5e15
  • Qua từng thế hệ, có thể thấy rõ sự tiến bộ phần cứng như dung lượng register và cache on-chip (SMEM), cùng việc bổ sung TMEM

So sánh GPU/TPU

  • GPU có tính đa dụng, được mô-đun hóa bằng nhiều SM nhỏ (đơn vị song song), và do có nhiều cơ chế điều khiển phần cứng nên khó hiểu/tối ưu hơn
  • TPU gồm một số ít Tensor Core cỡ lớn và nhiều vector ALU (VPU), sử dụng cơ chế điều khiển đơn luồng nên phần cứng có thể đơn giản hơn và giảm chi phí
  • Vì vậy, TPU bắt buộc phải tối ưu bằng compiler, còn GPU có thể chạy nhiều kernel độc lập, giúp việc sử dụng dễ dàng hơn
  • Về hiệu năng/giá, GPU H200 gần đây có FLOPs/s gấp 2 lần TPU v5p, HBM gấp 1.5 lần, và giá khoảng gấp 2.5 lần
  • TPU có VMEM (cache on-chip) lớn hơn và nhanh hơn, nên có thể mang lại lợi thế lớn trong suy luận mô hình như LLM

Các ý chính từ phần Hỏi & Đáp về phần cứng GPU

  • H100 có tổng cộng 16.896 fp32 CUDA core (132 SM x 4 x 32), B200 có 18.944
  • FLOPs cho phép toán vector của H100 tối đa khoảng 33.5TFLOPs/s, thấp hơn 30 lần so với FLOPs nhân ma trận của Tensor Core (990TFLOPs/s)
  • Tổng dung lượng L1/SMEM và register của H100 là 66MB, còn VMEM của TPU là 120MB
  • Tỷ lệ giữa bandwidth (băng thông) và FLOPs (cường độ tính toán theo lý thuyết) ở cả H100/B200 đều khoảng 280-300, tương tự TPU

Mạng GPU (cấu trúc giao tiếp)

Cấu trúc node/cluster

  • Node GPU thường gồm 8 GPU, được kết nối trực tiếp ở mức full bandwidth bằng NVLink (siêu tốc) và NVSwitch (switch)
  • Giữa các node, có thể scale-out bằng InfiniBand (hoặc Ethernet)
  • GPU thế hệ mới nhất (Blackwell) có cấu trúc cho phép mở rộng tới 72 node

Đặc điểm theo từng tầng mạng

  • Bên trong node (vùng NVLink): egress trên mỗi GPU là 450GB/s (H100), 900GB/s (B200), và tối đa 1.6TB/s trên mỗi NVSwitch
  • Tầng trên của node (InfiniBand Leaf/Spine): cấu trúc Leaf Switch (8) ~ Spine Switch (16), duy trì full bandwidth 400GB/s theo lý thuyết giữa GPU với GPU
  • Trong các kiến trúc lớn như SuperPod, có 1024 GPU (128 node), còn GB200 (node 72 GPU) có băng thông được khuếch đại gấp 9 lần (3600GB/s)

Các điểm chính về hiệu năng mạng

  • Về lý thuyết, cấu trúc mạng (Full Fat Tree) được thiết kế để cung cấp băng thông tối đa cả giữa node với node
  • Khi mở rộng lên 1024~4096 GPU, do giới hạn cổng phần cứng nên sử dụng cấu trúc phân tầng với nhiều Spine/Core Switch hơn
  • Việc chuyển từ băng thông trong node (450GB/s) sang băng thông liên node (400GB/s) tạo ra chênh lệch hiệu năng trong các phép collective

Cấu trúc phép toán tập thể (Collectives)

  • Hỗ trợ các phép collective mức cao như AllGather, AllReduce (cộng gộp), AllToAll (phân tán)
  • Trong node, có thể đạt hiệu năng tối ưu qua NVLink kết nối trực tiếp (theo B/W lý thuyết); giữa node với node thì đi qua InfiniBand
  • Sử dụng các thư viện NCCL, NVSHMEM của NVIDIA

Phân tích hiệu năng của collectives

  • AllGather/ReduceScatter: được triển khai theo kiểu ring với B/W (450GB/s theo H100), còn với thông điệp nhỏ có thể dùng kiểu tree
  • AllToAll: mỗi GPU gửi trực tiếp đến GPU đích, nên ở mức B/W sẽ chia theo N, vì vậy trong node về lý thuyết nhanh gấp 2 lần
  • Kết quả đo thực tế cho thấy AllReduce đạt khoảng 370GB/s, chưa chạm mức tối đa của phần cứng
  • So với TPU, chỉ khi dữ liệu đủ lớn (vài chục MB đến GB) mới tiến gần peak bandwidth của phần cứng

Tóm tắt tổng thể và insight

  • GPU mạnh về tính đa dụng và khả năng mở rộng, nhưng tùy theo cấu trúc phần cứng/mạng mà độ khó tối ưu hiệu năng và mức độ quan sát được cao hơn TPU
  • Mạng kết nối (Intra-Node/NVLink/InfiniBand/Leaf/Spine...) là yếu tố cốt lõi của hiệu năng huấn luyện quy mô lớn, và cần lưu ý chênh lệch giữa băng thông thực tế và lý thuyết
  • Hiểu rõ collectives và cấu trúc mạng là yếu tố thiết yếu trong huấn luyện/phục vụ mô hình phân tán siêu lớn
  • Cần một quy trình dựa trên benchmark thực tế và hiểu biết chi tiết về cấu trúc phần cứng để xác định điểm nghẽn hiệu năng và điều kiện tối ưu

Chưa có bình luận nào.

Chưa có bình luận nào.