StableHLO 로드맵

이 문서 작성 시점을 기준으로 StableHLO는 MHLO/HLO를 컴파일러 인터페이스로 대체할 수 있습니다. TensorFlow, JAX, PyTorch에서 생성할 수 있으며 XLA 및 IREE에서 사용할 수 있으며 MHLO/HLO에서 제공하는 모든 공개 기능과 추가 기능을 포함합니다.

이 문서에서는 StableHLO 프로젝트의 다음 단계를 설명하며, Issue Tracker에 반영된 진행 중인 작업을 분류하고 이 작업을 계획된 결과물로 정리합니다.

목표

2023년에는 1) opset의 초기 버전과 초기 호환성 보장을 제공하는 StableHLO v0.9와 높은 우선순위의 개선사항을 구현하고 완전한 호환성 보장을 시작하는 StableHLO v1.0의 두 가지 주요 일정을 계획하고 있습니다.

StableHLO v0.9는 정적 형태 연산 및 초기 호환성 보장을 위한 사양으로 강화된 MHLO/HLO를 미러링합니다. 호환성 RFC에 따라 이 출시는 1개월의 이후 버전과 하위 호환성을 제공합니다. 이러한 적당한 보장을 통해 언어 진화를 경험할 수 있으며 전체 보장이 적용되기 전에 정리하는 데 어느 정도 시간이 가능합니다. 2023년 1분기에 StableHLO v0.9를 출시할 계획입니다.

StableHLO v1.0은 프런트엔드 계약 삭제 (StableHLO 프로그램이 현재 방언과 등록되지 않은 속성이 혼합된 것이 아니라 StableHLO 언어의 작업만 포함하는 것을 목표로) 등 높은 우선순위 개선사항을 구현합니다. StableHLO v1.0은 2023년 하반기에 출시될 예정입니다.

업무 흐름

앞서 언급한 마일스톤에 맞게 개발을 진행하기 위해 Issue Tracker의 티켓을 여러 워크스트림으로 분류하고 이러한 워크스트림을 마일스톤에 연결했습니다. 제한된 수의 티켓(10% 미만)은 특정 워크스트림에 할당되지 않으며 특정 마일스톤에 포함되지 않습니다.

(P0) 호환성 구현 워크플로는 호환성 테스트 모음과 함께 호환성 RFC를 구현하는 데 사용됩니다. 이 작업의 대부분은 StableHLO v0.9에서 완료되며 나머지 작업은 StableHLO v1.0에서 완료될 것으로 예상됩니다.

(P0) 프런트엔드 계약 워크플로는 StableHLO 프런트엔드에서 사용하는 기능을 100% 구현하지만 아직 StableHLO 사양에 포함되지 않은 기능을 구현합니다. 이 워크플로의 목표는 StableHLO 프로그램에 오늘날의 언어 및 등록되지 않은 속성이 혼합된 것이 아니라 StableHLO 언어의 작업만 포함하도록 하는 것입니다. Google은 StableHLO v1.0에서 이 워크로드의 전체 또는 거의 모든 작업을 완료할 계획입니다.

(P0) 참조 구현 작업 스트림은 StableHLO 사양에 정의된 대로 StableHLO 작업의 100% 를 위한 인터프리터를 구현하는 작업을 구성합니다. Google은 StableHLO v1.0에서 이 워크스트림의 전체 또는 거의 모든 작업을 완료할 계획입니다.

(P0) 문서 워크스트림은 StableHLO 생산자 또는 소비자가 필요로 할 수 있는 모든 정보를 제공하는 데 사용됩니다. StableHLO 사양은 주요 결과물이며 StableHLO API 및 StableHLO 직렬화 형식의 참조입니다. 워크스트림의 중요한 부분은 StableHLO v1.0에서 제공되며 우선순위가 낮은 항목은 순차적으로 처리됩니다.

(P1) 적합성 도구 모음 워크플로는 참조 구현을 StableHLO 백엔드에서 제공하는 구현과 비교하는 테스트 모음을 제공하는 것으로 구성됩니다. 참조 구현 테스트는 일종의 적합성 묶음을 제공하므로 이 워크플로에는 P0 우선순위가 없습니다. 그러나 추가 흥미로운 테스트 사례로 이 도구 모음을 더 강화하는 것은 향후 작업에 유용한 영역이 될 수 있습니다.

(P1) 사양 규정 준수 워크플로는 StableHLO 사양에 정의된 대로 StableHLO 작업의 100% 가 StableHLO 언어로 구현되도록 합니다. StableHLO 언어는 이미 합리적으로 호환되므로 이 작업 스트림에 P0 우선순위가 없지만 많은 사소한 항목이 여전히 남아 있으며 (특히 인증기 구현의 특수한 경우) 순차적으로 처리됩니다.

(P1) 새로운 기능 워크스트림은 StableHLO 로드맵을 마무리하고 StableHLO 명령 (StableHLO 언어 또는 StableHLO 바인딩이 아닌 다른 워크스트림이 아님)을 위한 새로운 기능의 ragtag 컬렉션으로 구성됩니다. 이러한 새로운 기능 중 일부는 StableHLO v1.0에 제공될 예정이지만 대부분은 현재 우선순위가 낮은 항목이며 특정 마일스톤에 포함되지 않습니다.

(P1) 공개 API 워크스트림은 StableHLO 언어의 C/C++/Python 바인딩을 제공하는 데 사용됩니다. 기존 C++/Python 결합은 이미 상당히 합리적이므로 이 작업 스트림에는 P0 우선순위가 없습니다. 그러나 특히 이러한 바인딩의 안정성 제공과 관련하여 아직 해야 할 작업이 상당히 남아 있습니다. 이는 현재 호환성 RFC에서는 다루지 않지만 향후 작업에 유용한 영역이 될 것입니다.