AMD MI300X vượt NVIDIA H100 trong suy luận LLM
(blog.tensorwave.com)- Trong phép so sánh suy luận Mixtral 8x7B của TensorWave và MK1, tổ hợp MI300X+MK1 Flywheel cho thấy thông lượng cao hơn 33% so với H100 SXM+vLLM trong các tình huống chat thực tế
- Trọng tâm của bài kiểm thử là mô hình MoE, và Mixtral 8x7B có thể nằm gọn trong 192GB VRAM của một MI300X, trong khi H100 với 80GB VRAM cần hai GPU và tensor parallelism 2
- Trong suy luận batch ngoại tuyến, tổ hợp MI300X dẫn trước ở mọi kích thước batch, với chênh lệch hiệu năng trong khoảng 1.22x~2.94x
- Bài kiểm thử phân bố chat trực tuyến sử dụng các yêu cầu có trung bình 573 token đầu vào và 50 token đầu ra, và với mục tiêu độ trễ trung bình 5 giây, 2 MI300X xử lý số yêu cầu mỗi giây nhiều hơn 33% so với 2 H100
- TensorWave cho rằng nếu tính cả khả năng cạnh tranh về chi phí lẫn mức độ sẵn có của phần cứng, MI300X có thể là một lựa chọn đáng cân nhắc cho vận hành suy luận quy mô lớn trên đám mây
Trọng tâm so sánh: MI300X có thể vượt H100 trong suy luận MoE hay không
- Bài kiểm thử tập trung vào việc liệu bộ tăng tốc đầu bảng MI300X của AMD có thể vượt kiến trúc NVIDIA Hopper trong các workload AI thực tế hay không
- TensorWave và MK1 đã hợp tác trong một tháng để khai thác hiệu năng suy luận AI trên phần cứng AMD
- Trọng tâm ban đầu là kiến trúc Mixture of Experts(MoE)
- MoE được chọn vì hiệu quả tính toán và mức độ phổ biến
- Đây được giới thiệu là cấu trúc được dùng trong các LLM mã nguồn mở mạnh mẽ của Mistral, Meta, Databricks và X.ai
- MI300X sử dụng phần mềm suy luận MK1 đã đạt thông lượng cao hơn 33% so với tổ hợp H100 SXM và vLLM trong các tình huống chat thực tế dựa trên Mixtral 8x7B
- TensorWave thừa nhận hệ sinh thái phần mềm của NVIDIA trưởng thành hơn, nhưng vẫn đánh giá AMD đã là một đối thủ mạnh trên thị trường AI
Cấu hình benchmark
- Tất cả benchmark đều được thực hiện với mô hình Mixtral 8x7B
- Tất cả framework suy luận đều được cấu hình để dùng đường tính toán FP16
- Việc kích hoạt tính toán FP8 được để lại cho công việc trong tương lai
- Để so sánh các thiết lập tensor parallelism khác nhau, thông lượng của MI300X được ngoại suy gấp đôi
-
Hệ thống AMD
- Node TensorWave được thử nghiệm với cấu hình 8 bộ tăng tốc MI300X, 2 CPU AMD EPYC, tổng 192 lõi và 2.3TB RAM DDR5
- Thông số của bộ tăng tốc MI300X như sau
- 192GB VRAM
- 5.3TB/s
- FP16 khoảng 1300 TFLOPS
- Cấu hình phần mềm như sau
- ROCm 6.1.2
- Engine suy luận MK1 Flywheel v0.9.2
- Fork vLLM tối ưu cho AMD ROCm rocm/vllm v0.4.0
- Do toàn bộ mô hình Mixtral 8x7B có thể nằm trong 192GB VRAM của một MI300X, tensor parallelism được đặt là 1(tp=1)
-
Hệ thống NVIDIA
- Hệ thống H100 được thử nghiệm với cấu hình 8 bộ tăng tốc H100 SXM5 có NVLink, 160 lõi CPU và 1.2TB RAM DDR5
- Thông số của bộ tăng tốc H100 SXM5 như sau
- 80GB VRAM
- 3.35TB/s
- FP16 khoảng 986 TFLOPS
- Cấu hình phần mềm như sau
- CUDA 12.2
-
vLLM v4.3
- Để chứa Mixtral 8x7B trên hai H100 80GB VRAM, tensor parallelism được đặt là 2(tp=2)
Kết quả suy luận ngoại tuyến
- Bài kiểm thử ngoại tuyến tạo các prompt có kích thước cố định và đưa trực tiếp vào mô hình để đo thông lượng tối đa của từng giải pháp suy luận
- Batch ngoại tuyến xử lý nhiều prompt cùng lúc để tăng hiệu quả phần cứng
- Khi kích thước batch tăng, thông lượng tăng lên
- Do xử lý nhiều yêu cầu đồng thời hơn nên độ trễ cũng tăng
- Theo thông lệ tiêu chuẩn, các yêu cầu trong cùng một batch bị giới hạn ở cùng kích thước đầu vào và cùng kích thước đầu ra
- Bài kiểm thử được thực hiện bằng cách chỉnh sửa
benchmark_throughput.pytrong kho vLLM- Đã được refactor để bao gồm Flywheel như một backend
- Các prompt trong batch được tạo ngẫu nhiên để loại bỏ cơ chế cache
- Tổ hợp MI300X và MK1 Flywheel cho thấy hiệu năng cao hơn tổ hợp H100 và vLLM ở mọi kích thước batch
- Mức tăng hiệu năng nằm trong khoảng 1.22x~2.94x
Bài kiểm thử phân bố chat trực tuyến
- Benchmark trực tuyến được thiết kế để mô phỏng các ứng dụng chat phổ thông thực tế
- Bài kiểm thử hoạt động bằng cách tạo các worker độc lập gửi yêu cầu tới endpoint, rồi tăng số worker để tăng số lượng yêu cầu đồng thời
- Các yêu cầu được tạo theo phân bố chat văn bản tiêu chuẩn
- Số token đầu vào trung bình là 573
- Số token đầu ra trung bình là 50
- Công cụ benchmark hỗ trợ các phân bố dữ liệu tùy ý
- Có ba chỉ số được đo
- Thông lượng: số yêu cầu có thể xử lý mỗi giây dưới một workload nhất định
- Độ trễ trung bình: thời gian trung bình để tạo toàn bộ phản hồi cho mỗi yêu cầu
- TPOT(Time Per Output Token): thời gian trung bình để tạo mỗi token tiếp theo sau token đầu tiên, ảnh hưởng đến tốc độ tạo phản hồi dài
-
Kết quả non-streaming
- Benchmark trực tuyến đầu tiên kiểm thử trường hợp sử dụng non-streaming
- Đo thông lượng và độ trễ cần thiết để cung cấp toàn bộ phản hồi
- Ở mục tiêu độ trễ trung bình 5 giây, 2 MI300X(tp=1) xử lý số yêu cầu mỗi giây nhiều hơn 33% so với 2 H100(tp=2)
- Có thể dùng ít bộ tăng tốc hơn để phục vụ cùng số lượng người dùng với cùng chất lượng dịch vụ
-
Kết quả streaming
- Benchmark trực tuyến thứ hai bật streaming và đo thông lượng cùng TPOT khi token được stream ra
- MI300X cho thấy thông lượng cao hơn H100 ở mọi mức TPOT
- Ngay cả ở lưu lượng cao hơn, MI300X vẫn có thể tạo văn bản nhanh hơn
Kết luận và đề xuất triển khai
- Trong kết quả benchmark, AMD MI300X cho thấy hiệu năng cao hơn NVIDIA H100 trong các tác vụ suy luận ngoại tuyến và trực tuyến với kiến trúc MoE như Mixtral 8x7B
- Không chỉ có thông lượng cao, MI300X còn cho kết quả tốt hơn trong các kịch bản thực tế đòi hỏi thời gian phản hồi nhanh
- TensorWave đề xuất rằng khi xét đến hiệu năng, khả năng cạnh tranh chi phí và mức độ sẵn có của phần cứng, MI300X dùng cùng phần mềm suy luận MK1 phù hợp để mở rộng suy luận AI trong doanh nghiệp
- TensorWave cho biết họ cung cấp MI300X cùng phần mềm suy luận MK1 để người dùng có thể tự kiểm thử
1 bình luận
Ý kiến trên Hacker News
Xét việc TensorWave là nhà cung cấp đám mây chuyên cho workload AI và dùng AMD Instinct MI300X, báo cáo này nên được nhìn nhận với một mức độ dè dặt nhất định
So sánh công bằng hơn phải là với 8x H100 NVL (188GB, <800W)
Giá cũng nói lên nhiều điều. Nếu hiệu năng AMD ngang Nvidia thì chẳng có lý do gì để bán card với giá bằng 1/4
Không hiểu vì sao đến năm 2024 mà vẫn benchmark với 128 token đầu vào. Nó không đại diện cho phần lớn workload, và hiệu năng prefill là cực kỳ quan trọng
Việc 128 không phù hợp cũng sẽ khác nhau tùy truy vấn thực tế ngắn hơn hay dài hơn
Nếu coi một từ là một token, thì trong trường hợp của tôi hầu hết truy vấn đều ngắn hơn 128 từ
Tôi muốn nhìn phần này theo hướng lạc quan. Lĩnh vực này thật sự rất cần cạnh tranh, và hiện vốn hóa thị trường $NVDA lớn một cách bất thường. Nó lớn hơn toàn bộ Sở giao dịch chứng khoán Frankfurt khoảng 0,6 nghìn tỷ USD
Cũng có những tập đoàn tư nhân khổng lồ thuộc sở hữu của người Đức giàu có, như các chuỗi bán lẻ giảm giá Lidl, Aldi hay Bosch trong ngành linh kiện ô tô
Vấn đề của Nvidia rất có khả năng sẽ tự được điều chỉnh trong vài tháng đến vài năm tới
Là một nhà khoa học AI huấn luyện khá nhiều mô hình, cá nhân tôi thấy AMD đang bị định giá thấp so với Nvidia
Chip của họ không nhanh bằng sản phẩm mới nhất của Nvidia, và cũng có một số rào cản cần vượt qua để vận hành được
Nhưng với hầu hết workload trong phần lớn ngành công nghiệp, nếu tạm gác chuyện bản thân AI có phải là cách dùng vốn hiệu quả hay không, AMD tiết kiệm chi phí hơn nhiều và có thể cho kết quả gần như tương đương
Thị trường và giá bán phản ánh giá trị được nhận thức của giải pháp Nvidia và AMD. Đó là kết quả bao gồm cả công cụ, phần mềm, tổng chi phí sở hữu và mức độ dễ quản lý
Tôi cũng thắc mắc có bao nhiêu công ty sẽ mua các accelerator đắt như vậy chỉ để chạy song song 8 mô hình 7B tham số
Cũng có nói rằng có thể huấn luyện mô hình 14B trên một accelerator đơn lẻ, nên tôi muốn thấy các workload “huấn luyện và suy luận dùng toàn bộ accelerator”, chẳng hạn sau khi huấn luyện mô hình 14B thì throughput suy luận trên workload 4x14B sẽ ra sao
AMD và cho đến nay phần lớn các hãng đưa ra tuyên bố về hiệu năng suy luận, đặc biệt là Intel và Apple, thường chỉ chọn các benchmark mà họ thắng và bỏ qua những phần còn lại nơi Nvidia dẫn trước. Như nhiều bình luận trong bài này đã chỉ ra, họ cũng dùng mẫu so sánh thuộc thế hệ trung gian
Trong một hệ thống đơn, tức cấu hình 8 accelerator cho LLM, MI300X rất cạnh tranh với H100 về tổng chi phí sở hữu cho suy luận
Theo Microsoft, AMD Instinct MI300X có hiệu năng trên giá tốt nhất với GPT-4, và AMD đang hướng tới mục tiêu cải thiện hiệu năng trên mỗi watt gấp 100 lần vào năm 2027
https://wccftech.com/amd-instinct-mi300x-best-price-performa...
https://www.techspot.com/news/102056-nvidia-allegedly-punish...
Các đơn đặt hàng số lượng lớn loại accelerator này được đặt từ vài tháng trước
Trong khi đó, MI300X của Microsoft đã được đặt kín
https://techcommunity.microsoft.com/t5/azure-high-performanc...
“Các VM này và phần mềm vận hành chúng được xây dựng chuyên biệt cho các workload vận hành thực tế của dịch vụ Azure AI. GPT-4 Turbo, một trong những mô hình ngôn ngữ tự nhiên mạnh nhất thế giới, cũng đã được tối ưu hóa cho các VM này. ND MI300X v5 VM mang lại hiệu năng trên chi phí hàng đầu cho các mô hình OpenAI phổ biến và mô hình mã nguồn mở.”
Không rõ thiết lập song song tensor có ảnh hưởng đến hiệu năng hay không. Suy đoán đơn giản thì có, nhưng tôi không chắc
Theo bài viết, cấu hình AMD có thể đưa toàn bộ Mixtral 8x7B vào 192GB VRAM của 1 MI300X nên dùng song song tensor tp=1, còn cấu hình NVIDIA phải đưa vào 80GB VRAM của 2 H100 nên cần tp=2
Tức là dùng mô hình nằm trong giới hạn VRAM, và nếu hiệu năng tốt hơn thì áp dụng lượng tử hóa 8-bit, để không phơi bày một cách không cần thiết nhược điểm của cả hai bên
AMD có vẻ có phần cứng tốt hơn, nhưng vẫn chưa có năng lực sản xuất để cạnh tranh với Nvidia. Nếu cạnh tranh thực sự bắt kịp, quá trình biên lợi nhuận thu hẹp sẽ rất thú vị
Ai cũng nghĩ nguyên nhân sự thống trị của Nvidia là CUDA, nhưng không phải vậy. Gần 40% doanh thu năm nay đến từ các công ty siêu quy mô dùng stack tùy chỉnh riêng để tương tác với GPU
Việc đối thủ bắt kịp và cung cấp GPU rẻ hơn chỉ là vấn đề thời gian
Có vẻ bạn đang nhầm lẫn giữa nền tảng CUDA và ngôn ngữ giống C/C++ mà mọi người viết trong các file
.cuĐúng là một số nơi không viết trực tiếp file
.cu, nhưng không có nơi nào bỏ qua phần còn lại của CUDA stack nhưnvcc, PTX, SASS, runtime, driverTôi cũng làm ở một trong những “công ty siêu quy mô” đó. Nếu không tin, cứ xem PyTorch có bao nhiêu CUDA kernel: https://github.com/pytorch/pytorch/tree/main/aten/src/ATen/n...
Điều khiến Nvidia thống trị 100% là CUDA
Tôi nghĩ TSMC cũng đã bắt đầu một phần sản xuất ở các nhà máy tại Mỹ hoặc EU
Nvidia dùng TSMC và AMD cũng dùng TSMC
Đây là khởi đầu tốt cho AMD. Tôi cũng quan tâm và thỉnh thoảng dùng Groq, một lựa chọn suy luận khác ngoài Nvidia
Nvidia phụ thuộc vào TSMC để sản xuất. Việc Samsung đang xây dựng hạ tầng sản xuất cạnh tranh cũng là điều tốt, giúp Taiwan không trở thành điểm lỗi đơn nhất
Nếu không có chỉ số thống kê phù hợp, đặc biệt là dùng trung bình thay vì phân vị thứ 95 vốn được dùng rộng rãi, và cũng không có hiệu năng trên mỗi watt, thì đây là so sánh vô ích
Sẽ tốt hơn nếu có cả phân vị thứ 95
Giá mà có cả benchmark INT8/FP8 thì tốt. Cả hai card có lẽ đều có thể tải mô hình với khoảng 60GB VRAM mà không cần dùng tp=2 trên H100