Phương ngữ VHLO

Hãy xem vhlo_checklist.md để biết các bước cần làm khi tạo thành VHLO.

Phương ngữ VHLO là gì?

Phương diện VHLO (Versioned StableHLO) được dùng để chuyển đổi tuần tự và ổn định. Nó cung cấp ảnh chụp nhanh của phương ngữ Ổn địnhHLO tại một thời điểm nhất định bằng cách tạo phiên bản cho các yếu tố của chương trình riêng lẻ.

VHLO là phương ngữ chỉ thêm với hoạt động, loại và thuộc tính được tạo phiên bản, điều đó có nghĩa là một khi một đối tượng được thêm vào phương ngữ, đối tượng đó không thể sửa đổi được theo bất kỳ cách nào tác động đến ngữ nghĩa.

Bất kỳ thay đổi nào đối với hoạt động, loại hoặc thuộc tính đều cần có một phiên bản mới để được thêm vào phương ngữ. Ví dụ: nếu một my_op giả định đã được thêm vào StableHLO trong 0.9.0, nhưng đã được thay đổi trong 0.11.0, chúng ta sẽ có như sau trong VHLO:

// This represents the StableHLO version of the op from 0.9.0 -> 0.10.0
// Both the lower and the upper bound of versions are inclusive
def VHLO_MyOpV1 : VHLO_Op<"my_op_v1", "0.9.0", "0.10.0"> {
  let arguments = (ins
    VHLO_AnyType:$operand
  );
  let results = (outs VHLO_AnyType:$result);
}

// This represents the StableHLO version of the op from 0.11.0 -> current
def VHLO_MyOpV2 : VHLO_Op<"my_op_v2", "0.11.0", "current"> {
  let arguments = (ins
    VHLO_AnyType:$operand,
    VHLO_AnyAttr:$attr  // New attribute added to StableHLO in 0.11.0
  );
  let results = (outs VHLO_AnyType:$result);
}

Phương ngữ StableHLO chỉ có phiên bản hoạt động mới nhất. Đang chạy ví dụ: phương ngữ StableHLO tại phiên bản 0.11.0 sẽ chỉ có StableHLO_MyOpoperandattr, trong khi VHLO ghi lại từng giai đoạn của hoạt động tiến hoá.

Tại sao VHLO lại hữu ích?

Việc có một phương ngữ được tạo phiên bản cho phép chúng ta nhắm mục tiêu các phiên bản trước của Chế độ ổn định HLO. Điều này đóng gói khả năng tương thích tiến và ngược trong chuyển đổi giữa các hoạt động hoạt động bằng phương ngữ VHLO.

Khả năng tương thích chuyển tiếp: Khả năng tương thích chuyển tiếp được cung cấp bằng cách chuyển đổi xuống VHLO và hạ cấp hoạt động xuống phiên bản mục tiêu. Nếu mỗi hoạt động/loại/thuộc tính trong một Bạn có thể hạ cấp chương trình VHLO xuống phiên bản đích và đảm bảo sẽ có thể gỡ bỏ và có thể chuyển đổi sang StableHLO trên thiết bị dành cho người tiêu dùng đang chạy một phiên bản lớn hơn hoặc bằng phiên bản mục tiêu, vì VHLO có ảnh chụp nhanh của tại thời điểm đó.

Hình ảnh có khả năng tương thích chuyển tiếp

Việc chuyển đổi hạ cấp này sẽ không thành công nếu hoạt động hoặc các tính năng không tồn tại trong phiên bản trước của tổ hợp đều được sử dụng. Điều này có nghĩa là khả năng tương thích chuyển tiếp được phát hiện trên thực thể sản xuất chứ không phải tại thời gian chạy.

Khả năng tương thích ngược: Khả năng tương thích ngược có được khi nâng cấp VHLO hoạt động sang phiên bản mới nhất (nếu cần), sau đó chuyển đổi hoạt động trở lại Ổn địnhHLO. Tất cả chương trình VHLO trong cửa sổ tương thích đều có thể nâng cấp thành StableHLO, tức là các phiên bản khác nhau của người tiêu dùng có thể giải tuần tự như nhau Tải trọng VHLO từ một phiên bản trước.

Hình ảnh có khả năng tương thích ngược

Quan trọng hơn, VHLO bị loại bỏ khỏi quá trình chuyển đổi tuần tự. Điều này có nghĩa là công nghệ học máy khung (nhà sản xuất) chỉ cần nhắm mục tiêu hoạt động ổn định HLO và trình biên dịch chương trình phụ trợ (người tiêu dùng) chỉ cần hỗ trợ phiên bản mới nhất, đó là Chế độ hoạt động ổn địnhHLO. Việc chuyển đổi đến và từ VHLO được xử lý bằng máy móc được duy trì trong kho lưu trữ StableHLO.

Phiên bản định dạng mã byte MLIR

Để duy trì khả năng tương thích chuyển tiếp, các phiên bản StableHLO có một phiên bản Định dạng mã byte MLIR được liên kết. Ngoài ra, phiên bản mới nhất của StableHLO sẽ sử dụng phiên bản mới nhất của Định dạng mã byte MLIR. Khi Phiên bản MLIR Bytecode Format được tăng lên, bản phát hành StableHLO tiếp theo sẽ tăng phiên bản nhỏ và cập nhật Version.cpp để sử dụng phiên bản MLIR Bytecode Format mới nhất.

Để biết thông tin chi tiết về Định dạng mã byte MLIR và lý do sử dụng định dạng này trong StableHLO, hãy xem bytecode.md.