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:
- Đối với hoạt động mới:
- Thêm cơ hội trong VhloOps.td
- Thêm StableHLO → lượt chuyển đổi VHLO trong StablehloLegalizeToVhlo.cpp
- Thêm VHLO → lượt chuyển đổi StableHLO trong VhloLegalizeToStablehlo.cpp
- Đối với phiên bản mới của hoạt động hiện tại:
- Thêm cơ hội trong VhloOps.td
- Cập nhật bản đồ ánh xạ StableHLO thành VHLO trong MapStablehloToVhlo.h
- Thêm lượt chuyển đổi giữa các phiên bản hoạt động mới và cũ trong VhloToVersion.cpp
- Đối với các loại hoặc thuộc tính mới:
- Thêm loại trong VhloTypes.td hoặc thuộc tính trong VhloAttrs.td
- Thêm StableHLO → lượt chuyển đổi VHLO trong StablehloLegalizeToVhlo.cpp
- Thêm VHLO → lượt chuyển đổi StableHLO trong VhloLegalizeToStablehlo.cpp
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