VHLO 체크리스트

VHLO에 대한 자세한 내용은 vhlo.md를 참조하세요.

호환되지 않는 변경사항 관련

호환성과 관련된 모든 변경사항은 RFC 프로세스를 거쳐야 합니다. 여기에는 지형지물의 추가, 지원 중단 또는 이름 변경이 포함됩니다. RFC가 승인받은 경우에는 다음 단계를 완료해야 합니다.

1. Version.h에서 버전 번호를 올리고 버전 로그를 업데이트하세요.

VHLO 작업, 속성, 유형 또는 전환을 업데이트하기 전에 Version.h의 부 버전 번호 VhloDialect.td에서 버전 로그를 업데이트합니다.

새로 추가된 VHLO 기능은 이 범퍼된 버전을 사용합니다. VhloOps.td의 새 작업인 0.10.0 --> 0.11.0를 범프하는 중입니다. 사용:

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

2. 필수 VHLO 구현 및 전환 추가

새로운 기능을 통합하는 데 필요한 정확한 코드는 다양하지만 대부분의 경우 다음 부분을 변경해야 합니다.

3. 단위 테스트 추가 / 업데이트

양립할 수 없는 변화의 주체는 긍정적이고 기능의 네거티브 단위 테스트 및 호환성 단위 테스트를 지원합니다.

호환성 단위 테스트에는 stablehlo_legalize_to_vhlo.mlir 업데이트가 포함됩니다. 최신 버전의 VHLO와 StableHLO를 왕복하도록 할 수도 있습니다. 필요에 따라 이전 버전과의 호환성 테스트가 필요할 수 있습니다. 예를 들어 Y = X - 1X 버전에 새 작업을 추가하는 경우 다음과 같은 테스트 파일을 추가합니다. 작업이 지원되지 않음을 보여주는 vhlo_to_version_downgrade_invalid.0_Y_0.mlir 버전 X 이전 새 버전의 작업을 추가하는 경우 작업을 다운그레이드할 수 있음을 보여주는 vhlo_to_version_downgrade.0_Y_0.mlir 있습니다.

작업에 기본 속성이 있는 경우 기본값이 직렬화 및 역직렬화를 거칠 수 있습니다

4. 버전이 지정된 직렬화 테스트 추가

stablehlo_legalize_to_vhlo.mlir에 테스트를 추가한 후 버전이 지정된 테스트를 복사합니다. 파일을 새 버전의 새 파일에 붙여넣고 새 테스트도 추가할 수 있습니다. 또한 해당 광고 소재와 연결된 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