Tăng tốc mạnh mẽ lập trình động với Kiến trúc GPU NVIDIA Hopper

Kiến trúc GPU NVIDIA Hopper được công bố hôm nay tại GTC22 sẽ tăng tốc dynamic programming – một kỹ thuật giải quyết vấn đề được sử dụng trong các thuật toán về gen, tính toán lượng tử, tối ưu hóa định tuyến… lên đến 40 lần với các tập lệnh DPX mới.

Một tập lệnh được tích hợp trong GPU NVIDIA H100, DPX sẽ giúp các nhà phát triển viết mã để đạt được tốc độ trên các thuật toán lập trình động trong nhiều ngành, thúc đẩy quy trình làm việc để chẩn đoán bệnh, mô phỏng lượng tử, phân tích đồ thị và tối ưu hóa định tuyến.

Transformer Engine

Dynamic Programming – Lập trình động là gì? 

Được phát triển vào những năm 1950, lập trình động là một kỹ thuật phổ biến để giải các bài toán phức tạp với hai kỹ thuật chính: đệ quy (recursion) và ghi nhớ (memoization).

Đệ quy liên quan đến việc chia nhỏ một vấn đề thành các vấn đề con đơn giản hơn, tiết kiệm thời gian và công sức tính toán. Trong ghi nhớ, các câu trả lời cho những vấn đề phụ này – được sử dụng lại nhiều lần khi giải quyết vấn đề chính – được lưu trữ. Ghi nhớ làm tăng hiệu quả, vì vậy các vấn đề phụ không cần phải được tính toán lại khi cần thiết sau này trong vấn đề chính.

Các lệnh DPX tăng tốc các thuật toán lập trình động lên đến 7 lần trên GPU NVIDIA H100, so với các GPU dựa trên kiến ​​trúc NVIDIA Ampere. Trong một nút có bốn GPU NVIDIA H100, khả năng tăng tốc đó có thể được đẩy mạnh hơn nữa.

DPX Instructions

Các trường hợp sử dụng: Span Healthcare, Robotics, Máy tính lượng tử, Khoa học dữ liệu

Lập trình động thường được sử dụng trong nhiều thuật toán tối ưu hóa, xử lý dữ liệu và omics. Cho đến nay, hầu hết các nhà phát triển đã chạy các loại thuật toán này trên CPU hoặc FPGA – nhưng có thể mở khóa tốc độ đáng kể bằng cách sử dụng hướng dẫn DPX trên GPU NVIDIA Hopper.

Omics 

Omics bao gồm một loạt các lĩnh vực sinh học bao gồm genomics (tập trung vào DNA), proteomics (tập trung vào protein) và transcriptomics (tập trung vào RNA). Các lĩnh vực này, thông báo cho công việc quan trọng của nghiên cứu bệnh tật và phát hiện thuốc, tất cả đều dựa vào các phân tích thuật toán có thể được tăng tốc với các hướng dẫn DPX.

Ví dụ, các thuật toán lập trình động Smith-Waterman và Needleman-Wunsch được sử dụng để sắp xếp trình tự DNA, phân loại protein và gấp protein. Cả hai đều sử dụng phương pháp cho điểm để đo mức độ sắp xếp của các trình tự di truyền từ các mẫu khác nhau.

Smith-Waterman tạo ra kết quả chính xác cao, nhưng tốn nhiều tài nguyên và thời gian tính toán hơn các phương pháp căn chỉnh khác. Bằng cách sử dụng các lệnh DPX trên một nút có bốn GPU NVIDIA H100, các nhà khoa học có thể tăng tốc quá trình này lên 35 lần để đạt được quá trình xử lý thời gian thực, nơi công việc gọi cơ sở và căn chỉnh diễn ra với tốc độ tương tự như giải trình tự DNA.

Việc tăng tốc này sẽ giúp dân chủ hóa phân tích bộ gen trong các bệnh viện trên toàn thế giới, đưa các nhà khoa học đến gần hơn với việc cung cấp thuốc cá nhân hóa cho bệnh nhân.

Tối ưu hóa Tuyến đường

Việc tìm ra tuyến đường tối ưu cho nhiều mảnh chuyển động là điều cần thiết đối với các robot tự động di chuyển qua một kho động hoặc thậm chí một người gửi chuyển dữ liệu đến nhiều người nhận trong mạng máy tính.

Để giải quyết vấn đề tối ưu hóa này, các nhà phát triển dựa vào Floyd-Warshall, một thuật toán lập trình động được sử dụng để tìm khoảng cách ngắn nhất giữa tất cả các cặp điểm đến trong bản đồ hoặc đồ thị. Trong máy chủ có bốn GPU NVIDIA H100, khả năng tăng tốc Floyd-Warshall được tăng gấp 40 lần so với máy chủ chỉ sử dụng CPU ổ cắm kép truyền thống.

Được kết hợp với phần mềm hậu cần NVIDIA cuOpt AI, khả năng tăng tốc tối ưu hóa định tuyến này có thể được sử dụng cho các ứng dụng thời gian thực trong nhà máy, xe tự hành hoặc các thuật toán lập bản đồ và định tuyến trong đồ thị trừu tượng.

Mô phỏng lượng tử

Vô số thuật toán lập trình động khác có thể được tăng tốc trên GPU NVIDIA H100 với lệnh DPX. Một lĩnh vực đầy hứa hẹn là điện toán lượng tử, trong đó lập trình động được sử dụng trong các thuật toán tối ưu hóa tensor để mô phỏng lượng tử. Các hướng dẫn DPX có thể giúp các nhà phát triển đẩy nhanh quá trình xác định thứ tự co tensor phù hợp.

Tối ưu hóa truy vấn SQL

Một ứng dụng tiềm năng khác là trong khoa học dữ liệu. Các nhà khoa học dữ liệu làm việc với ngôn ngữ lập trình SQL thường cần thực hiện một số hoạt động “nối” trên một tập hợp các bảng. Lập trình động giúp tìm thứ tự tối ưu cho các phép nối này, thường tiết kiệm các thứ tự có độ lớn trong thời gian thực thi và do đó tăng tốc các truy vấn SQL.

____
Bài viết liên quan
Góp ý / Liên hệ tác giả