StableHLO 사양 체크리스트

이 문서에서는 사양 변경사항을 검토하기 위한 가이드라인을 요약합니다. 현재 이러한 변경에는 일반적으로 여러 소스에서 여러 항목을 확인해야 하므로 이 문서에서는 검토를 간소화하기 위해 모든 항목을 요약합니다.

  1. status.md의 '사양' 열에 '예'라고 표시되는지 확인합니다.
  2. 섹션 제목이 ODS에서 작업의 연상 기호와 일치하는지 확인합니다.
  3. '시맨틱' 섹션이 XLA의 작업 시맨틱스와 일치하는지 확인합니다.
  4. '입력' 및 '출력' 섹션이 다음 상태인지 확인합니다.
    1. ODS와 동일한 항목을 나열합니다.
    2. HloDirection::CreateFromProto와 동일한 항목을 나열합니다.
    3. ODS와 동일하게 주문됩니다.
    4. 불일치가 있는 경우 해당하는 티켓이 있는지 확인합니다.
  5. 'Constraints' 섹션이 다음과 같은 상태인지 확인합니다.
    1. XLA의 shape_inference.cc와 일치합니다.
    2. XLA의 hlo_verifier.cc와 일치합니다.
    3. ODS와 일치합니다.
    4. StablehloOps.cpp와 일치합니다.
    5. 불일치가 있는 경우 해당하는 티켓이 있는지 확인합니다. 가능한 한 구체적인 위치에서 사양에 있는 모든 티켓을 연결합니다. 예를 들어 구현되지 않은 제약조건에 관한 티켓인 경우 해당 제약조건에서 바로 티켓을 연결합니다.
    6. ODS 및 StablehloOps.cpp의 상응하는 부분이 사양과 일치하면 status.md의 '인증' 및 '유형 추론' 열이 '예'라고 표시되는지 확인합니다.
  6. '예시' 섹션에 다음 내용이 있는지 확인합니다.
    1. 예시가 1개만 있습니다. (이후에는 StableHLO 인터프리터 테스트 모음의 더 많은 예를 링크할 예정입니다.)
    2. 코드 예시에서 stablehlo-opt를 실행하여 유효한 MLIR 구문을 사용합니다.
    3. stablehlo-opt -mlir-print-op-generic를 실행하여 얻을 수 있는 일반 MLIR 구문을 사용합니다. Prettyprinter 변경 시 사양을 변경할 필요가 없도록 사양의 일반 구문을 고수합니다.
  7. 작업의 ODS에서 description를 확인합니다.
    1. 사양의 첫 번째 문장이 포함됩니다.
    2. 그런 다음 사양의 해당 섹션으로 연결됩니다.
    3. 그런 다음 사양과 동일한 예를 사용하지만 stablehlo-opt를 실행하여 얻을 수 있는 Pretty 구문을 통해 사용합니다.
  8. 인증 및 유형 추론 제약 조건 구현과 관련된 파일이 아래 언급된 가이드라인을 준수하는지 확인합니다.
    1. StablehloOps.td 가이드라인 1을 따릅니다.
    2. TypeInference.cppStablehloOps.cpp는 가이드라인 #2를 따릅니다.
    3. ops_stablehlo.mlir의 경우 가이드라인 #5를 따르세요.
    4. infer_stablehlo.mlir의 경우 가이드라인 #6을 따르세요.