Chia sẻ đam mê công nghệ
Từ hãng

AMD và Intel gộp tối ưu AI CPU vào oneDNN: lập trình viên được gì?

AMD đưa tối ưu hóa ZenDNN vào oneDNN, hướng tới một backend PyTorch dùng chung cho CPU x86 của cả hai hãng. Thay đổi này giảm việc duy trì nhánh phần mềm riêng, nhưng chưa đồng nghĩa hiệu năng mọi ứng dụng sẽ tăng ngay.

Tóm tắt nhanh

  • AMD sẽ tích hợp các tối ưu hóa ZenDNN vào thư viện mã nguồn mở oneDNN.
  • oneDNN được hai hãng chọn làm thư viện mặc định tăng tốc x86 trong PyTorch.
  • Nhà phát triển có thể dùng chung một backend trên CPU AMD và Intel, thay vì theo hai nhánh tối ưu riêng.
  • Hiệu quả thực tế còn phụ thuộc vào phần tối ưu được hợp nhất và cách ứng dụng tận dụng phần cứng.

AMD và Intel thống nhất đưa các tối ưu hóa suy luận AI trên CPU x86 vào oneDNN, để PyTorch có một đường phần mềm chung thay vì phải xử lý riêng các nhánh tối ưu cho từng hãng.

Thông báo ngày 20/10 cho biết AMD đang tích hợp các tối ưu ZenDNN vào oneDNN và gia nhập UXL Foundation với tư cách thành viên chỉ đạo. Động thái này tiếp nối khuyến nghị của x86 Ecosystem Advisory Group (EAG), nhóm phối hợp hệ sinh thái x86 được hai hãng lập từ năm 2024.

Một backend chung giảm việc phải nuôi hai nhánh tối ưu

AMD tại Advancing AI
AMD tại sự kiện Advancing AI, nơi hãng giới thiệu các hướng phát triển AI của mình. Ảnh: Tom's Hardware / Future

Điểm đáng chú ý với lập trình viên không nằm ở việc đổi tên thư viện, mà ở chỗ phần tối ưu cho CPU AMD được đưa vào dự án dùng chung. Trước đây, ZenDNN là nhánh riêng của AMD dựa trên oneDNN; việc tích hợp giúp nhóm phát triển PyTorch và ứng dụng AI có cơ hội duy trì một backend, trong khi thư viện tự chọn kernel phù hợp với tính năng phần cứng lúc chạy.

Trung tâm dữ liệu Microsoft
Hạ tầng trung tâm dữ liệu là nơi các CPU có thể đảm nhiệm suy luận AI khi workload phù hợp. Ảnh: Microsoft / Tom's Hardware

oneDNN cung cấp các phép toán thường dùng trong học sâu như nhân ma trận và tích chập, cùng các kiểu dữ liệu độ chính xác thấp. Khi backend xử lý khác biệt phần cứng, nhà phát triển bớt phải tự phân nhánh mã cho từng bộ xử lý. Điều đó có thể giảm chi phí bảo trì và kiểm thử khi phần mềm được triển khai trên máy chủ dùng CPU của hai nhà cung cấp.

Phạm vi công bố hiện tập trung vào tối ưu AI trên CPU qua PyTorch. Đây không phải thông báo AMD chuyển GPU sang nền tảng phần mềm của Intel; ROCm vẫn là hệ sinh thái GPU riêng của AMD. oneDNN cũng không chỉ dành cho x86: thư viện hỗ trợ thêm các kiến trúc như Arm và RISC-V.

Hợp nhất phần mềm chưa đảm bảo mọi tác vụ chạy nhanh hơn

Việc dùng chung thư viện giải quyết phân mảnh ở tầng phần mềm, nhưng không tự động biến mọi mô hình hay ứng dụng thành nhanh hơn. Kết quả phụ thuộc vào kernel cụ thể, loại dữ liệu, kích thước mô hình và mức độ ứng dụng gọi đúng đường tối ưu. Vì vậy, người vận hành máy chủ vẫn cần benchmark trên chính workload của mình trước khi thay đổi cấu hình hoặc dự toán năng lực.

Tom’s Hardware dẫn lại kết quả khi oneDNN được thêm làm backend cho PyTorch cuối năm 2023: mức cải thiện được ghi nhận là 1,24 lần với Float32 và 2,21 lần với BFloat16. Đây là kết quả của phép thử được nêu trong bối cảnh đó, không phải cam kết hiệu năng cho mọi CPU hoặc cho phần tích hợp ZenDNN mới.

Thỏa thuận x86 có thể mở đường cho các tối ưu ở cấp lệnh

AMD và Intel còn hợp tác phát triển AI Compute Extensions (ACE), tập lệnh x86 hướng tới tăng tốc phép nhân ma trận. Hai hãng cho biết hỗ trợ tương lai sẽ được đưa vào PyTorch qua các cập nhật oneDNN, nhưng chưa nêu mốc triển khai cụ thể. Do đó, tác động trước mắt của thông báo nằm ở việc gom công việc phần mềm; lợi ích từ ACE vẫn là kế hoạch tiếp theo.

Với nhà phát triển AI, một backend chung có ích nhất khi các tối ưu cho cả hai dòng CPU được duy trì đồng bộ và có thể kiểm chứng bằng benchmark công khai. Việc AMD tham gia UXL Foundation ở cấp chỉ đạo tạo thêm cơ chế để hãng góp tiếng nói vào hướng phát triển oneDNN, thay vì chỉ duy trì một nhánh riêng.

Nguồn tham khảo: Intel Newsroom; Tom’s Hardware; Phoronix

Bài viết mới nhất