Giới chuyên môn đang nói nhiều về SmartNIC dựa trên các DPU (Data Processing Unit) nhưng chưa bao giờ trả lời một câu hỏi đơn giản: “SmartNIC” là gì và chúng làm được gì? NIC là viết tắt của “Network Interface Card”, là một card PCIe cắm vào máy chủ hoặc thiết bị lưu trữ để cho phép kết nối với mạng Ethernet. Một SmartNIC dựa trên DPU vượt ra ngoài một kết nối đơn giản và thực hiện xử lý lưu lượng mạng “ngay trên NIC”, việc mà lâu nay nhất thiết phải được thực hiện bởi CPU trong trường hợp đó là một loại NIC foundation (NIC nền tảng).
Định nghĩa của một số nhà cung cấp về SmartNIC dựa trên DPU tập trung hoàn toàn vào việc triển khai. Nhưng điều này có lẽ có vấn đề, vì các nhà cung cấp khác nhau có những kiến trúc khác nhau và do đó một SmartNIC dựa trên DPU có thể dựa trên ASIC, FPGA và System-on-a-Chip (SOC). Theo lẽ tự nhiên, các nhà cung cấp mà chỉ sản xuất duy nhất một loại NIC dường như khăng khăng rằng chỉ loại NIC mà họ tạo ra mới đủ điều kiện là một SmartNIC.
Có nhiều sự cân bằng giữa các cách triển khai khác nhau này liên quan đến chi phí, sự dễ dàng trong lập trình và tính linh hoạt. ASIC rất hiệu quả về chi phí và có thể mang lại hiệu suất trên giá tốt nhất, nhưng nó hạn chế về tính linh hoạt. Mặc dù một NIC dựa trên ASIC (như Mellanox ConnectX-5) có thể có một đường dẫn dữ liệu có thể lập trình được tương đối đơn giản để cấu hình, nhưng cuối cùng sẽ có những hạn chế phụ thuộc vào những chức năng nào được xác định trong ASIC và điều đó có thể ngăn cản một số khối lượng công việc (workload) nhất định khỏi việc được hỗ trợ. Một FPGA NIC (như Mellanox Innova-2 Flex) lại có khả năng lập trình cao, với đủ thời gian và nỗ lực có thể được thực hiện để hỗ trợ hầu hết mọi chức năng một cách tương đối hiệu quả (trong giới hạn của các cổng có sẵn). Tuy nhiên, FPGA nổi tiếng là khó lập trình và đắt tiền. Vì vậy, đối với các trường hợp sử dụng phức tạp hơn, SOC (như Mellanox BlueField DPU programmable SmartNIC) cung cấp những gì được cho tốt nhất về tùy chọn triển khai SmartNIC dựa trên DPU: hiệu suất giá tốt, dễ lập trình và có tính linh hoạt cao.
Nhưng việc tập trung vào cách một nhà cung cấp cụ thể triển khai SmartNIC dựa trên DPU không thực sự công bằng để giải quyết chính xác những gì chúng có khả năng hoặc cách chúng nên được kiến trúc một cách lý tưởng. Trong trường hợp của Mellanox, chúng tôi thực sự có các sản phẩm có thể được phân loại là “DPU based SmartNIC” dựa trên từng kiến trúc này – và trên thực tế, khách hàng sử dụng từng sản phẩm này cho các khối lượng công việc khác nhau tùy thuộc vào nhu cầu của họ. Vì vậy, trọng tâm rơi vào việc triển khai – tức là ASIC so với FPGA so với SoC – đảo ngược triết lý “form follows function” làm nền tảng cho những thành tựu kiến trúc tốt nhất.
Vì vậy, thay vì tập trung vào việc triển khai, tôi nghĩ phần mở đầu của bài viết này là nên đưa ra một định nghĩa hoạt động rõ ràng nhất về những gì làm cho NIC trở thành một SmartNIC dựa trên DPU.
SmartNIC dựa trên DPU: Một Network Interface Card (Network Adapter) giúp giảm tải các tác vụ xử lý mà CPU hệ thống thường đảm nhiệm. Sử dụng bộ vi xử lý ngay trên bo mạch của nó, SmartNIC dựa trên DPU có thể thực hiện bất kỳ sự kết hợp nào giữa mã hóa/giải mã, chức năng tường lửa, xử lý TCP/IP và HTTP. Đặt biệt, các SmartNIC rất thích hợp cho các máy chủ Web có lưu lượng truy cập cao.
Có hai điều tôi thích về định nghĩa này. Một là nó tập trung vào chức năng nhiều hơn là form factor, hai là với tuyên bố “Sử dụng bộ vi xử lý trên bo mạch của chính nó… để thực hiện bất kỳ sự kết hợp nào của…” các tác vụ xử lý mạng. Vì vậy, bộ vi xử lý chính là chìa khóa đạt được sự linh hoạt để thực hiện hầu hết mọi chức năng mạng. Tôi chỉ muốn hiện đại hóa định nghĩa đó theo hai cách: Đầu tiên là các SmartNIC dựa trên DPU cũng có thể thực hiện ảo hóa mạng, lưu trữ hoặc GPU. Thứ hai là các SmartNIC cũng rất lý tưởng cho các máy chủ viễn thông của các telco, security, machine learning, software-defined storage và hyperconverged infrastructure — chứ không chỉ là máy chủ Web.
Vì vậy, chúng ta hãy xem xét một số chức năng mà các network adapter có thể hỗ trợ và sử dụng khả năng để tăng tốc các khối lượng công việc khác nhau để phân biệt ba loại NIC:
Ở đây, tôi đã xác định ba lớp NIC: NIC nền tảng (foundational NIC), NIC thông minh (intelligent NIC) và SmartNIC dựa trên DPU, dựa trên khả năng tăng tốc chức năng cụ thể của chúng. Basic NIC hay Foundational NIC chỉ đơn giản là di chuyển lưu lượng mạng và giảm tải rất ít hoặc thậm chí không, ngoài việc có thể là SRIOV và tăng tốc TCP cơ bản, vì vậy nó không lưu bất kỳ chu kỳ CPU nào và không thể giảm tải packet steering hoặc luồng lưu lượng. Tại Mellanox, chúng tôi thậm chí không còn bán bất kỳ NIC nền tảng nào nữa. Và với dòng sản phẩm ConnectX Adapter của chúng tôi kết hợp đường dẫn dữ liệu có thể lập trình và tăng tốc một loạt các chức năng đã lần đầu tiên trở nên quan trọng trong các trường hợp sử dụng public cloud. Vì lý do này, tôi đã định nghĩa loại NIC này là “NIC thông minh” (iNIC) mặc dù doanh nghiệp on-premise, telco và private cloud cũng như các nhà cung cấp public cloud cần loại chức năng lập trình và tăng tốc này. Vì vậy, một tên khác của nó có thể là “smart NIC” hoặc “smarter NIC” mà không viết hoa chữ “S”.
Trong nhiều trường hợp, khách hàng cho chúng tôi biết họ cần các khả năng của SmartNIC dựa trên DPU cái mà đang được cung cấp bởi đối thủ cạnh tranh với FPGA hoặc một NIC kết hợp với các công cụ xử lý tùy chỉnh, độc quyền. Nhưng khi khách hàng thực sự xem xét các chức năng họ cần cho khối lượng công việc cụ thể của họ thì họ quyết định rằng dòng ConnectX của các iNIC cung cấp tất cả chức năng, hiệu suất và tính linh hoạt của những cái gọi là SmartNIC khác với một phần nhỏ sức mạnh và chi phí. Vì vậy, theo định nghĩa về SmartNIC mà một số đối thủ cạnh tranh sử dụng – các NIC ConnectX của chúng tôi thực sự là SmartNIC, mặc dù chúng ta có thể gọi chúng là các intelligent NIC hoặc các smarter NIC. FPGA NIC (Innova) của chúng tôi cũng là SmartNIC theo nghĩa cổ điển và SoC NIC (sử dụng bộ xử lý BlueField) của chúng tôi là thông minh nhất trong số các SmartNIC, đến mức chúng tôi có thể gọi chúng là các Genius NIC.
Vậy SmartNIC là gì? SmartNIC dựa trên DPU là bộ chuyển đổi mạng (Network Adapter) giúp tăng tốc chức năng và giảm tải tác vụ khỏi CPU máy chủ (hoặc thiết bị lưu trữ).
Nhưng về cách người ta nên xây dựng một SmartNIC dựa trên DPU và SmartNIC nào là tốt nhất cho từng khối lượng công việc — điều quan trọng là nằm ở chi tiết và phải tìm hiểu chính xác những giải pháp tăng tốc ảo hóa và đường dẫn dữ liệu nào có sẵn và cách chúng được sử dụng.
→ Tham khảo về các ConnectX SmartNIC của Mellanox tại đây.
Bài viết liên quan
- Hyperscale computing: Làm cách nào để đạt được năng lực điện toán quy mô lớn tốt hơn
- Máy chủ tăng tốc cho AI thúc đẩy tăng trưởng chi tiêu cho trung tâm dữ liệu
- Cluster Computing – Thế nào là điện toán cụm?
- Xây dựng hệ thống dữ liệu hiệu suất cao cho AI với VAST Data Platform
- CPU cho các hệ thống hiệu suất cao: Số lượng nhân so với tốc độ xung nhịp
- Máy chủ Supermicro X14: Hiệu suất mạnh mẽ, hiệu quả tối đa cho AI, Cloud, Storage, 5G/Edge