MLIR

Tổng quan

MLIR, hay Biểu diễn trung gian đa cấp, là một định dạng biểu diễn và thư viện các tiện ích trình biên dịch nằm giữa biểu diễn mô hình và trình biên dịch/trình thực thi cấp thấp tạo mã dành riêng cho phần cứng.

Về cốt lõi, MLIR là một cơ sở hạ tầng linh hoạt dành cho các trình biên dịch tối ưu hóa hiện đại. Điều này có nghĩa là nó bao gồm đặc tả cho các biểu diễn trung gian (IR) và bộ công cụ mã để thực hiện các phép biến đổi trên biểu diễn đó. (Theo cách nói của trình biên dịch, khi bạn chuyển từ biểu diễn cấp cao hơn sang biểu diễn cấp thấp hơn, những phép biến đổi này có thể được gọi là “giảm dần”)

MLIR chịu ảnh hưởng lớn từ LLVM và không ngần ngại sử dụng lại nhiều ý tưởng tuyệt vời từ nó. Nó có một hệ thống kiểu linh hoạt và cho phép biểu diễn, phân tích và chuyển đổi các biểu đồ kết hợp nhiều mức độ trừu tượng trong cùng một đơn vị biên dịch. Những sự trừu tượng hóa này bao gồm các hoạt động TensorFlow, các vùng vòng lặp đa diện lồng nhau và thậm chí cả các lệnh LLVM cũng như các loại và hoạt động phần cứng cố định.

Chúng tôi hy vọng MLIR sẽ được nhiều nhóm quan tâm, bao gồm:

  • Các nhà nghiên cứu và triển khai trình biên dịch đang tìm cách tối ưu hóa hiệu suất và mức tiêu thụ bộ nhớ của các mô hình học máy
  • Các nhà sản xuất phần cứng đang tìm cách kết nối phần cứng của họ với TensorFlow, chẳng hạn như TPU, phần cứng thần kinh di động trong điện thoại và các ASIC tùy chỉnh khác
  • Những người viết các ràng buộc ngôn ngữ muốn tận dụng tối ưu hóa trình biên dịch và tăng tốc phần cứng.

Hệ sinh thái TensorFlow chứa một số trình biên dịch và trình tối ưu hóa hoạt động ở nhiều cấp độ của ngăn xếp phần mềm và phần cứng. Chúng tôi hy vọng việc áp dụng MLIR dần dần sẽ đơn giản hóa mọi khía cạnh của hệ thống này.

Sơ đồ tổng quan MLIR