1 điểm bởi GN⁺ 2023-12-19 | 1 bình luận | Chia sẻ qua WhatsApp

Kiến trúc tính toán CDNA 3 của AMD

  • AMD có một lịch sử lâu dài trong việc nâng thị phần ở thị trường GPU tính toán.
  • Sau kiến trúc Tesla của Nvidia, AMD vẫn liên tục bám đuổi.
  • Terascale 3 chuyển từ VLIW5 sang VLIW4 để cải thiện mức độ tận dụng các đơn vị thực thi trong khối lượng công việc tính toán.
  • GCN thay thế Terascale và nhấn mạnh hiệu năng nhất quán cho cả GPGPU lẫn các ứng dụng đồ họa.
  • AMD tách việc phát triển kiến trúc GPU thành hai dòng riêng biệt là CDNA và RDNA, lần lượt chuyên cho tính toán và đồ họa.
  • CDNA 2 mang lại thành công đáng kể cho AMD. GPU MI250X và MI210 đã giành được nhiều hợp đồng siêu máy tính.
  • CDNA 3 thu hẹp khoảng cách bằng cách đưa ra mọi thứ tốt nhất mà AMD có thể cung cấp. MI300X phô diễn công nghệ đóng gói tiên tiến thông qua cấu hình chiplet tinh vi.
  • Ở khía cạnh bộ nhớ, Infinity Cache của dòng RDNA được đưa vào thế giới CDNA để giảm nhẹ vấn đề băng thông.
  • Kiến trúc tính toán của CDNA 3 nhận được những cải tiến thế hệ quan trọng nhằm tăng thông lượng và mức độ tận dụng.

Bố cục GPU

  • AMD có truyền thống dùng chiplet trên CPU Ryzen và Epyc để mở rộng số lõi với chi phí thấp.
  • MI300X dùng chiến lược tương tự, tách phần tính toán thành các Accelerator Complex Die gọi là XCD.
  • Mỗi XCD bao gồm một tập lõi và bộ nhớ đệm dùng chung, và MI300X có tổng cộng 8 XCD, cung cấp 304 Compute Unit.
  • H100 của Nvidia có 132 Streaming Multiprocessor (SM) và trình bày chúng với lập trình viên như một GPU hợp nhất lớn duy nhất.
  • Ponte Vecchio (PVC) của Intel dùng Compute Tile và Base Tile để cung cấp chức năng tương tự, nhưng gặp thách thức như một GPU hợp nhất do giới hạn băng thông của cầu nối EMIB.

Giải quyết vấn đề băng thông

  • Năng lực tính toán đã vượt trước bộ nhớ trong nhiều thập kỷ, và GPU ngày càng ứng phó bằng các chiến lược bộ nhớ đệm tinh vi hơn.
  • CDNA 2 dùng 8 MB bộ nhớ đệm L2 và phụ thuộc vào HBM2e, nhưng AMD đã bổ sung "Infinity Cache" vốn được dùng trên RDNA(2).
  • Infinity Cache là bộ nhớ đệm phía bộ nhớ, mọi lưu lượng bộ nhớ đều đi qua Infinity Cache.
  • Infinity Cache của CDNA 3 được thiết kế để tối ưu băng thông, gồm 128 lát cắt và cung cấp tổng băng thông 17.2 TB/s.

Những thách thức tiềm ẩn của băng thông cross-die

  • Infinity Fabric của MI300X bao gồm 4 IO die, mỗi die được kết nối với hai ngăn xếp HBM và phân vùng bộ nhớ đệm liên quan.
  • Băng thông của kết nối giữa các die có thể hạn chế việc đạt tới băng thông Infinity Cache theo lý thuyết khi hoạt động như một GPU logic đơn.

Tính nhất quán giữa các XCD

  • Infinity Cache không cần lo về tính nhất quán, nhưng bộ nhớ đệm L2 thì có.
  • AMD dùng Coherent Masters (CM) và Coherent Slaves (CS) của Infinity Fabric để lộ MI300X như một GPU lớn duy nhất.

Bộ nhớ đệm L2

  • Mỗi XCD của MI300X bao gồm 4 MB bộ nhớ đệm L2, đóng vai trò quan trọng như một bộ nhớ đệm GPU truyền thống.

Bộ nhớ đệm L1

  • CDNA 3 tăng gấp đôi thông lượng của bộ nhớ đệm L1 và nâng dung lượng từ 16 KB lên 32 KB.

Lập lịch và đơn vị thực thi

  • Thông qua cấu hình chiplet phức tạp và hệ phân cấp bộ nhớ đệm được sửa đổi, AMD trình bày MI300X như một GPU đơn.
  • CDNA 3 có các cải tiến lặp lại trên kiến trúc Compute Unit cốt lõi của CDNA 2, vốn từng gặp khó khăn trong việc tận dụng các đơn vị FP32.

Phép toán ma trận

  • Phép nhân ma trận ngày càng trở nên quan trọng khi machine learning phát triển mạnh.
  • MI300X tăng gấp đôi thông lượng ma trận trên mỗi CU, cải thiện hiệu năng so với các thế hệ CDNA trước đó.

Bộ nhớ đệm lệnh

  • CDNA 3 tăng dung lượng bộ nhớ đệm lệnh lên 64 KB và tăng gấp đôi độ kết hợp từ 4-way lên 8-way.

Lời cuối

  • Thay đổi thế hệ lớn nhất của CDNA 3 nằm ở hệ phân cấp bộ nhớ, với việc bổ sung Infinity Cache là cải tiến chủ chốt.
  • AMD đã tăng mạnh băng thông giữa các die để biến MI300 thành một bộ tăng tốc hợp nhất lớn duy nhất.

Ý kiến của GN⁺

  • Kiến trúc CDNA 3 là một bước tiến quan trọng giúp củng cố năng lực cạnh tranh của AMD trong lĩnh vực GPU computing.
  • Việc đưa Infinity Cache vào là một cách tiếp cận đổi mới để giải quyết vấn đề băng thông bộ nhớ, đặc biệt quan trọng với các ứng dụng tính toán hiệu năng cao xử lý các tập dữ liệu lớn.
  • Chiến lược trình bày MI300X như một GPU đơn giúp giảm độ phức tạp trong lập trình và cho phép các nhà phát triển tận dụng tài nguyên hiệu quả hơn, từ đó giúp dòng GPU của AMD hấp dẫn hơn với thị trường rộng lớn hơn.

1 bình luận

 
GN⁺ 2023-12-19
Ý kiến Hacker News
  • Tôi mới biết rằng AMD đã tách nhánh để phát triển hai kiến trúc GPU chuyên biệt là CDNA cho tính toán và RDNA cho đồ họa.

    • Giờ thì đã hiểu vì sao card đồ họa tiêu dùng của AMD không phù hợp với các tác vụ tính toán: đó là do khác biệt về kiến trúc. Điều này có vẻ giống như một vấn đề kiểu đường cao tốc không có lối lên.
  • Tôi nghĩ AMD sẽ khó cạnh tranh với NVidia trong tương lai gần, vì nhiều nhà khoa học đang nhận được GPU miễn phí hoặc giảm giá từ NVidia để phát triển các thư viện cốt lõi cho lĩnh vực ML/AI.

    • Đưa ra ý kiến rằng cách NVidia thâm nhập vào giới học thuật là phi đạo đức.
  • Đây là lần đầu tôi biết đến VLIW (Very long instruction word).

    • VLIW là một kiến trúc tập lệnh được thiết kế để khai thác song song mức lệnh. Trong khi CPU truyền thống chỉ cho phép thực thi lệnh theo trình tự, bộ xử lý VLIW có thể chỉ định rõ việc thực thi song song. Mục tiêu là mang lại hiệu năng cao hơn mà không cần đến độ phức tạp của các thiết kế khác.
  • Bày tỏ ý kiến của mình về dự đoán rằng AMD sẽ quay trở lại lĩnh vực AI bằng cách tận dụng kiến thức về chiplet và bus fabric.

    • Thừa nhận rằng bản thân không tự tin vào việc đọc bài viết đó, hay thậm chí là việc đọc nói chung, mà chỉ đơn giản muốn nêu quan điểm cá nhân.
  • Đặt câu hỏi không biết từ khi nào từ "compute" bắt đầu được dùng như một danh từ.

    • Bày tỏ sự khó chịu với cách dùng "compute" như danh từ.
  • Trong nhiều thập kỷ, năng lực tính toán đã vượt xa bộ nhớ. Cũng như CPU, GPU đang xử lý điều này bằng các chiến lược caching ngày càng tinh vi hơn.

    • Khác với CPU, GPU không cố gắng đối phó trực diện mà chấp nhận độ trễ cao hơn và song song hóa ở quy mô lớn hơn nhiều để tạo ra hiệu ứng 'ẩn độ trễ'. Đây là một ví dụ có thể được đưa vào các bài thuyết trình về tối ưu hóa mã GPU.