Thứ Ba, tháng 4 12, 2016

Bộ thư viện NVIDIA GPU REST Engine (GRE)

GPU thực chất cũng là một bộ vi xử lý song song cực kỳ hiệu quả có thể cung cấp dịch vụ có độ trễ thấp đáp ứng các yêu cầu gửi riêng rẽ không trùng lắp.



NVIDIA GPU REST Engine (GRE) là một cấu phần quan trọng cho các nhà phát triển xây dựng các dịch vụ web có độ trễ thấp. GRE bao gồm một máy chủ đa luồng HTTP cung cấp dịch vụ web RESTful và phân tải các yêu cầu đó một cách hiệu quả trên nhiều bộ xử lý đồ họa NVIDIA. Tổng thời gian đáp ứng cơ bản sẽ chỉ phụ thuộc vào mức độ nhu cầu tính toán của người dùng, còn bản thân GRE không làm nặng thêm mấy và còn có thể giải quyết các yêu cầu rỗng (null-request) dưới 10 micro giây.



Các dịch vụ web trên nền tảng GRE nhận yêu cầu được gửi đến, tìm nạp dữ liệu đầu vào và lập lịch lượng tử cho các đầu việc xếp trên một hàng đợi theo phương thức dịch vụ không đồng bộ. Một luồng xử lý riêng biệt dành cho quản lý công việc trên mỗi GPU và đảm bảo rằng tất cả các GPU trong hệ thống được cấp liên tục các yêu cầu từ hàng đợi không đồng bộ.

GRE sử dụng một kỹ thuật gọi là "độ trễ ẩn" cho hiệu năng thông lượng cao. Tức là, khi các dữ liệu cho một yêu cầu cụ thể đang được xử lý bởi một GPU thì cùng lúc đó, dữ liệu cho các yêu cầu tiếp theo được chuẩn bị và kết quả từ các yêu cầu trước đó nữa được trả về cho bên gửi yêu cầu. Tất cả diễn ra song song. Toàn bộ hàng đợi được sắp xếp một cách hiệu quả nhất có thể. Ở rất nhiều tình huống, GPU không bao giờ phải chờ đợi dữ liệu đầu vào.

Các nhân xử lý hình ảnh Nvidia (ICE: Nvidia Image Compute Engine) là điển hình cho thể thức vi dịch vụ cung cấp bởi GRE thông qua khả năng tăng tốc GPU trong xử lý và điểu chỉnh kích cỡ hình ảnh dành riêng cho dịch vụ web và các ứng dụng di động.

Các lập trình viên có thể tự xây dựng các dịch vụ này và tăng tốc theo cùng phương thức.  Khởi đầu với GRE, LTV có thể tập trung vào việc thực hiện các thuật toán cho các dịch vụ đang cần được tăng tốc. LTV sẽ phải xác định được các dữ liệu cần thiết gửi cho thuật toán của mình qua URL là gì. Sau đó, LTV chỉ cần tạo các hàm số chạy trên dữ liệu đó. Ví như bạn định tiến hành xử lý âm thanh nào đó, bạn có thể chỉ cần viết một hàm GPU hoặc gọi một chức năng thư viện tăng tốc GPU hiện tại từ các bộ thư viện nguyên mẫu NPP (NVIDIA Performance Primitives) để có mẫu đầu vào cùng với một vài thông số điều chỉnh rồi áp dụng các chuyển đổi.

Bản thử nghiệm bộ công cụ GRE hiện giờ đã cho phép bạn xem xét thành phần tạo lịch và chạy thử các thuật toán riêng của bạn. Bản thử nghiệm này đã gồm sẵn một máy chủ HTTP đơn giản được viết bằng ngôn ngữ Go kèm theo một dịch vụ phân loại hình ảnh cung cấp bởi thư viện học sâu cuDNN (Deep Learning). Các bản GRE thử nghiệm này nhằm đưa ra demo sớm ở góc độ khái niệm học thuật là chính.

(Theo Google Translate có hiệu đính qua qua bằng mắt người từ bản tin cộng đồng Nvidia Developers: https://developer.nvidia.com/gre)

Không có nhận xét nào:

Đăng nhận xét