Danh sách kiểm tra về VHLO

Hãy xem vhlo.md để biết thông tin về VHLO.

Đóng góp các thay đổi không tương thích

Mọi thay đổi liên quan đến khả năng tương thích đều phải trải qua quy trình RFC. Điều này bao gồm việc thêm, ngừng sử dụng hoặc đổi tên một tính năng. Sau khi RFC được được phê duyệt, thì bạn phải hoàn thành các bước sau:

1. Thay đổi Số phiên bản trong Version.h và Cập nhật nhật ký phiên bản

Trước khi cập nhật hoạt động, thuộc tính, loại hoặc chuyển đổi VHLO, hãy tăng số phiên bản nhỏ trong Version.h, và cập nhật nhật ký phiên bản trong VhloDialect.td

Mọi tính năng VHLO mới được thêm vào sẽ sử dụng phiên bản được tăng cường này, chẳng hạn như sau gặp 0.10.0 --> 0.11.0, một hoạt động mới trong VhloOps.td sẽ sử dụng:

VHLO_Op<"abs_v2", "0.11.0", "current">

2. Thêm hoạt động triển khai và lượt chuyển đổi VHLO bắt buộc

Mã chính xác cần thiết để tích hợp một tính năng mới sẽ khác nhau, nhưng chủ yếu những điều sau đây sẽ cần thay đổi:

3. Thêm / cập nhật bài kiểm thử đơn vị

Nguyên nhân gây ra thay đổi không tương thích chịu trách nhiệm về cả tích cực và kiểm thử đơn vị âm của tính năng, cũng như kiểm thử đơn vị tương thích.

Kiểm thử đơn vị tương thích bao gồm việc cập nhật stablehlo_legalize_to_vhlo.mlir để đảm bảo rằng các chuyến đi khứ hồi StableHLO với phiên bản VHLO mới nhất, cũng như vì cần phải kiểm thử khả năng tương thích ngược hoặc chuyển tiếp. Ví dụ: nếu thêm một hoạt động mới ở phiên bản X bằng Y = X - 1, hãy thêm một tệp kiểm thử như vhlo_to_version_downgrade_invalid.0_Y_0.mlir cho thấy hoạt động này không được hỗ trợ trước phiên bản X. Nếu thêm phiên bản mới của hoạt động, hãy thêm một tệp thử nghiệm như vhlo_to_version_downgrade.0_Y_0.mlir cho thấy rằng bạn có thể hạ cấp hoạt động đó thành công.

Nếu vận hành của bạn có các thuộc tính mặc định, hãy bao gồm các kiểm thử cho thấy rằng các giá trị mặc định là được chuyển đổi tuần tự và giải tuần tự một cách chính xác.

4. Thêm kiểm thử chuyển đổi tuần tự theo phiên bản

Sau khi thêm chương trình kiểm thử vào stablehlo_legalize_to_vhlo.mlir, hãy sao chép chương trình kiểm thử có phiên bản tệp có phiên bản lớn nhất vào một tệp mới ở phiên bản mới và thêm kiểm thử mới cho tệp đó. Bạn cũng cần tạo một tài khoản tệp mã byte sử dụng stablehlo-translate:

export TARGET_VERSION=1.X.0
export TARGET_FILENAME=${TARGET_VERSION//./_}
stablehlo-translate --serialize --target=$TARGET_VERSION --strip-debuginfo stablehlo/tests/vhlo/stablehlo_legalize_to_vhlo.$TARGET_FILENAME.mlir > stablehlo/tests/vhlo/stablehlo_legalize_to_vhlo.$TARGET_FILENAME.mlir.bc