HPVM, một Trình biên dịch LLVM cho CPU, GPU, FPGA và Bộ tăng tốc phần cứng

Dự án gần đây LLVM đã thông báo về việc phát hành phiên bản mới của trình biên dịch HPVM 2.0 (Máy ảo song song không đồng nhất), có mục tiêu là đơn giản hóa việc lập trình cho các hệ thống và cung cấp các công cụ để tạo mã cho CPU, GPU, FPGA và bộ tăng tốc phần cứng dành riêng cho miền cụ thể.

Việc lập trình các hệ thống song song không đồng nhất rất phức tạp do sự hiện diện trong một hệ thống các thành phần sử dụng các mô hình khác nhau để đạt được tính song song (lõi CPU, lệnh vectơ, GPU, v.v.), các tập lệnh khác nhau và phân cấp bộ nhớ khác nhau. Mỗi hệ thống sử dụng sự kết hợp riêng của các thành phần này.

Ý tưởng chính của dự án HPVM là sử dụng đại diện thống nhất của các chương trình thực thi song song khi biên dịch, có thể được sử dụng cho nhiều loại phần cứng khác nhau hỗ trợ tính toán song song, bao gồm GPU, lệnh vectơ, bộ xử lý đa lõi, FPGA và các chip tăng tốc chuyên dụng khác nhau.

Không giống như các hệ thống khác, HPVM đã cố gắng kết hợp ba khả năng để tổ chức tính toán không đồng nhất: biểu diễn trung gian (IR), kiến ​​trúc tập lệnh ảo (V-ISA) và lập trình thời gian chạy, bất kể ngôn ngữ lập trình và phần cứng.

Đại diện trung gian của HPVM mở rộng biểu diễn trung gian của các lệnh LLVM bằng cách sử dụng biểu đồ luồng dữ liệu phân cấp để nắm bắt tính song song ở cấp độ nhiệm vụ, dữ liệu và đường ống tính toán. Biểu diễn trung gian của HPVM cũng bao gồm các lệnh vectơ và bộ nhớ dùng chung. Mục tiêu chính của việc sử dụng biểu diễn trung gian là tạo mã hiệu quả và tối ưu hóa cho các hệ thống không đồng nhất.

Kiến trúc tập lệnh ảo (V-ISA) tóm tắt phần cứng cấp thấp và thống nhất các dạng kiến ​​trúc bộ nhớ và song song khác nhau chỉ sử dụng mô hình đồng thời cơ bản, biểu đồ luồng dữ liệu.

V-ISA cho phép tính di động giữa các loại phần cứng khác nhau để tính toán song song và giúp không bị mất hiệu suất khi sử dụng các phần tử khác nhau của hệ thống không đồng nhất. ISA ảo cũng có thể được sử dụng để cung cấp mã thực thi chương trình chung có thể chạy trên CPU, GPU, FPGA và các bộ tăng tốc khác nhau.

Các chính sách lập lịch trình tính toán linh hoạt được áp dụng trong thời gian chạy và được thực hiện dựa trên thông tin về chương trình (cấu trúc đồ họa) và bằng cách biên dịch các nút chương trình riêng lẻ để thực thi trên bất kỳ thiết bị tính toán mục tiêu nào có sẵn trong hệ thống.

Các trình tạo mã do dự án phát triển có khả năng dịch các nút ứng dụng được xác định bởi ISA ảo để chạy trên GPU NVIDIA (cuDNN và OpenCL), lệnh vectơ Intel AVX, FPGA và CPU đa lõi x86. Cần lưu ý rằng hiệu suất đầu ra của trình dịch HPVM có thể so sánh với mã OpenCL viết tay cho GPU và thiết bị tính toán vectơ.

Các tính năng mới chính của HPVM 2.0

Về phần trong số những điều mới lạ được trình bày Trong phiên bản mới này, những điểm nổi bật sau:

  • Giao diện người dùng của ngôn ngữ Hetero-C ++ được đề xuất, đơn giản hóa việc song song hóa mã ứng dụng trong các ngôn ngữ C / C ++ để biên dịch trong HPVM. Hetero-C ++ định nghĩa các phần mở rộng cho tính song song mức dữ liệu và các tác vụ phân cấp ánh xạ tới đồ thị luồng HPVM.
  • Một chương trình phụ trợ FPGA đã được thêm vào để hỗ trợ chạy mã trên Intel FPGA. Để sắp xếp việc thực thi, Intel FPGA SDK cho OpenCL được sử dụng.
  • Khung DSE (Design Space Exploration) đã được thêm vào, bao gồm tối ưu hóa trình biên dịch và cơ chế phát hiện nút cổ chai để tự động điều chỉnh các ứng dụng cho một nền tảng phần cứng nhất định.
  • Khung chứa một mô hình hiệu suất vượt trội cho Intel FPGA và cho phép bạn kết nối các bộ xử lý của riêng mình để tối ưu hóa bất kỳ thiết bị hỗ trợ HPVM nào.
  • Các tối ưu hóa có thể được áp dụng ở cả mức đồ thị luồng dữ liệu HPVM và mức LLVM.
  • Đã cập nhật các thành phần LLVM lên phiên bản 13.0.
  • Mã đã được tổ chức lại để giúp điều hướng dễ dàng hơn qua cơ sở mã, thư viện và tiện ích.
  • Cơ sở hạ tầng phục vụ xét nghiệm đã được cải thiện, các xét nghiệm mới đã được bổ sung cho các thành phần HPVM khác nhau.

Cuối cùng, Nếu bạn muốn tìm hiểu thêm về HPVM, bạn có thể kiểm tra các chi tiết trong liên kết sau.


Để lại bình luận của bạn

địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu bằng *

*

*

  1. Chịu trách nhiệm về dữ liệu: AB Internet Networks 2008 SL
  2. Mục đích của dữ liệu: Kiểm soát SPAM, quản lý bình luận.
  3. Hợp pháp: Sự đồng ý của bạn
  4. Truyền thông dữ liệu: Dữ liệu sẽ không được thông báo cho các bên thứ ba trừ khi có nghĩa vụ pháp lý.
  5. Lưu trữ dữ liệu: Cơ sở dữ liệu do Occentus Networks (EU) lưu trữ
  6. Quyền: Bất cứ lúc nào bạn có thể giới hạn, khôi phục và xóa thông tin của mình.