Lộ trình ổn định HLO

Tại thời điểm viết, StableHLO đã sẵn sàng thay thế MHLO/HLO làm giao diện trình biên dịch. Nền tảng này có thể do TensorFlow, JAX và PyTorch sản xuất, XLA và IREE sử dụng và có tất cả các tính năng công khai do MHLO/HLO cung cấp cũng như các chức năng bổ sung.

Tài liệu này mô tả các bước tiếp theo cho dự án StableHLO, phân loại công việc hiện tại được phản ánh trong công cụ theo dõi lỗi và sắp xếp công việc này thành những nội dung phân phối theo kế hoạch.

Mốc quan trọng

Vào năm 2023, chúng tôi dự định có 2 mốc quan trọng lớn: 1) StableHLO phiên bản 0.9 sẽ cung cấp phiên bản ban đầu của opset và đảm bảo khả năng tương thích ban đầu, 2) StableHLO phiên bản 1.0 sẽ triển khai các điểm cải tiến có mức độ ưu tiên cao và bắt đầu đảm bảo khả năng tương thích đầy đủ.

StableHLO phiên bản 0.9 sẽ phản ánh MHLO/HLO, được tăng cường bằng thông số kỹ thuật cho hoạt động vận hành hình tĩnh và đảm bảo khả năng tương thích ban đầu. Theo RFC khả năng tương thích, bản phát hành này sẽ cung cấp khả năng tương thích xuôi và ngược trong 1 tháng. Những đảm bảo khiêm tốn này sẽ cho phép có được kinh nghiệm với sự tiến hoá của phương ngữ và cho phép một thời gian để dọn dẹp trước khi đảm bảo hoàn toàn có hiệu lực. Chúng tôi dự định phát hành StableHLO phiên bản 0.9 vào Quý 1 năm 2023.

StableHLO phiên bản 1.0 sẽ triển khai các điểm cải tiến có mức độ ưu tiên cao, bao gồm dọn dẹp hợp đồng giao diện người dùng (với mục tiêu rằng các chương trình StableHLO chỉ bao gồm các hoạt động từ phương ngữ StableHLO, thay vì hỗn hợp phương ngữ và thuộc tính chưa đăng ký hiện nay) và cung cấp triển khai tham chiếu. Chúng tôi dự định phát hành StableHLO phiên bản 1.0 vào nửa cuối năm 2023.

Luồng công việc

Để sắp xếp quá trình phát triển theo các mốc quan trọng nói trên, chúng tôi đã phân loại các phiếu yêu cầu hỗ trợ trong công cụ theo dõi lỗi thành nhiều luồng công việc và gắn những luồng công việc này với các mốc quan trọng. Một số lượng phiếu yêu cầu hỗ trợ có giới hạn (dưới 10%) không được chỉ định cho bất kỳ luồng công việc cụ thể nào và không thuộc bất kỳ mốc cụ thể nào.

(P0) Luồng công việc Triển khai khả năng tương thích dành riêng cho việc triển khai RFC tương thích cùng với bộ kiểm thử khả năng tương thích. Hầu hết công việc này dự kiến sẽ được hoàn thành trong StableHLO phiên bản 0.9 và phần còn lại sẽ được thực hiện trong StableHLO phiên bản 1.0.

(P0) Luồng công việc Hợp đồng giao diện người dùng bao gồm việc triển khai 100% tính năng mà giao diện người dùng StableHLO sử dụng nhưng chưa có trong thông số kỹ thuật của StableHLO. Mục tiêu của quy trình này là đảm bảo rằng các chương trình StableHLO chỉ bao gồm các hoạt động từ phương ngữ StableHLO, thay vì kết hợp các phương ngữ và thuộc tính chưa đăng ký hiện nay. Chúng tôi dự định hoàn thành toàn bộ hoặc gần như toàn bộ công việc trong quy trình này ở StableHLO phiên bản 1.0.

(P0) Luồng công việc Triển khai tham chiếu sắp xếp công việc triển khai trình thông dịch cho 100% hoạt động StableHLO như đã xác định trong thông số kỹ thuật StableHLO. Chúng tôi đang lên kế hoạch hoàn thành toàn bộ hoặc gần như toàn bộ công việc trong luồng công việc này ở StableHLO phiên bản 1.0.

(P0) Luồng công việc Tài liệu chuyên cung cấp tất cả thông tin mà nhà sản xuất hoặc người tiêu dùng StableHLO có thể cần. Thông số kỹ thuật StableHLO là một yếu tố quan trọng, đồng thời là tài liệu tham khảo cho định dạng chuyển đổi tuần tự StableHLO và StableHLO. Các phần quan trọng của luồng công việc sẽ được phân phối trong phiên bản StableHLO phiên bản 1.0, trong đó có các mục có mức độ ưu tiên thấp hơn được giải quyết trên cơ sở luân phiên.

(P1) Luồng công việc trong Bộ tuân thủ bao gồm việc cung cấp một bộ kiểm thử để so sánh quy trình triển khai tham chiếu với hoạt động triển khai do phần phụ trợ StableHLO cung cấp. Các hoạt động kiểm thử để triển khai tệp tham chiếu sẽ cung cấp một bộ sắp xếp tuân thủ, vì vậy, luồng công việc này không có mức độ ưu tiên P0. Tuy nhiên, việc bổ sung thêm các trường hợp kiểm thử thú vị bổ sung cho bộ công cụ này có thể sẽ là một công cụ hữu ích cho công việc trong tương lai.

(P1) Luồng công việc Tuân thủ thông số kỹ thuật đảm bảo rằng 100% hoạt động của StableHLO được triển khai trong phương ngữ StableHLO như được xác định trong thông số kỹ thuật StableHLO. Phương ngữ StableHLO đã tuân thủ một cách hợp lý, vì vậy, luồng công việc này không có mức độ ưu tiên P0, nhưng vẫn còn nhiều mục nhỏ vẫn còn (đặc biệt là trong các trường hợp góc của quá trình triển khai trình xác minh) và sẽ được giải quyết liên tục.

(P1) Luồng công việc Tính năng mới kết thúc lộ trình StableHLO và bao gồm một bộ sưu tập ragtag chức năng mới cho nhóm ngừng sử dụng StableHLO (không phải phương ngữ StableHLO hoặc các liên kết StableHLO – mà sẽ là các luồng công việc khác). Một vài tính năng mới trong số này được lên kế hoạch phân phối trong StableHLO phiên bản 1.0, nhưng phần lớn hiện tại là các mục có mức độ ưu tiên thấp hơn và không thuộc bất kỳ mốc cụ thể nào.

(P1) Luồng công việc API công khai dành riêng cho việc phân phối các liên kết C/C++/Python cho phương ngữ StableHLO. Các liên kết C++/Python hiện có đã khá hợp lý, vì vậy, luồng công việc này không có mức độ ưu tiên P0. Tuy nhiên, vẫn còn khá nhiều việc cần phải làm, đặc biệt là về việc đảm bảo tính ổn định cho các liên kết này – đây là vấn đề hiện chưa được RFC tương thích hỗ trợ nhưng có thể sẽ là một khu vực hữu ích cho công việc trong tương lai.