Danh sách kiểm tra về VHLO

Xem vhlo.md để biết thông tin về VHLO.

Góp phần 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 phê duyệt, bạn phải hoàn tất 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 các thao tác, thuộc tính, loại hoặc lượt chuyển đổi VHLO, hãy tăng số phiên bản phụ 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 đã nâng cấp này, ví dụ: sau khi nâng cấp 0.10.0 --> 0.11.0, một toán tử 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 đối với hầu hết các phần, bạn cần thay đổi những nội dung sau:

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

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

Kiểm thử đơn vị về khả năng tương thích bao gồm việc cập nhật stablehlo_legalize_to_vhlo.mlir để đảm bảo rằng StableHLO thực hiện các chuyến đi khứ hồi với phiên bản VHLO mới nhất, cũng như mọi kiểm thử khả năng tương thích ngược hoặc xuôi cần thiết. Ví dụ: nếu thêm một hoạt động mới tạ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 biết hoạt động đó không được hỗ trợ trước phiên bản X. Nếu thêm phiên bản mới của một vận hành, hãy thêm một tệp kiểm thử như vhlo_to_version_downgrade.0_Y_0.mlir để cho biết rằng bạn có thể hạ cấp hoạt động đó thành công.

Nếu toán tử của bạn có các thuộc tính mặc định, hãy đưa vào các chương trình kiểm thử cho thấy các thuộc tính mặc định được chuyển đổi tuần tự và chuyển đổi tuần tự lại 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 các chương trình kiểm thử vào stablehlo_legalize_to_vhlo.mlir, hãy sao chép tệp kiểm thử phiên bản 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 các chương trình kiểm thử mới vào tệp đó. Bạn cũng cần tạo một tệp mã byte liên kết bằ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