이 글을 작성하는 시점에서 StableHLO는 컴파일러 인터페이스로 MHLO/HLO를 대체할 준비가 되었습니다. TensorFlow, JAX, PyTorch에서 생성할 수 있으며 XLA 및 여러 서드 파티 PJRT 플러그인에서 사용할 수 있습니다. 또한 MHLO/HLO에서 제공하는 모든 공개 기능과 추가 기능을 갖추고 있습니다.
이 문서에서는 문제 추적기에 반영된 진행 중인 작업을 분류하고 이 작업을 계획된 결과물로 정렬하는 StableHLO 프로젝트의 다음 단계를 설명합니다.
현재 마일스톤
현재 주요 기록은 다음 두 가지 주요 동향을 따릅니다.
- 전체 OpenXLA 커뮤니티에 StableHLO의 이점을 극대화합니다.
- 모든 OpenXLA 회원을 위한 개발자 환경을 통합합니다.
- MHLO 지원 중단: 2024년 4분기에 정규화 및 폴더 패턴을 비롯한 유용한 패스를 StableHLO로 이전하여 MHLO의 내부 지원 중단을 모색하기 시작했습니다. 이전 프로세스가 내부적으로 간단한 것으로 확인되면 StableHLO로의 외부 이전 일정이 포함된 RFC를 공유할 계획입니다. 이는 2025년 1분기에 이루어질 가능성이 높으며, 2025년 상반기에 StableHLO로 이전할 수 있도록 팀에 충분한 시간과 지원을 제공할 계획입니다.
- 하드웨어 독립형 최적화를 StableHLO로 이전: 위의 추세에 따라 StableHLO가 하드웨어 독립형 그래프 단순화를 통합할 수 있는 최적의 위치가 되기를 바랍니다. 그러면 StableHLO에서 XLA가 아닌 컴파일러 IR로 변환하는 PJRT 플러그인을 비롯한 모든 PJRT 플러그인이 최대의 이점을 누릴 수 있습니다. 이 목표의 일부는 Google AI Edge, JAX-Enzyme 프로젝트, 기타 프로젝트에서 사용되는 패턴을 모두 StableHLO 저장소에 통합하는 것입니다. 일부 통합은 이미 시작되었지만 대부분의 워크스트림은 2025년 1분기에 시작되어 완료될 예정입니다.
- OpenXLA 구성요소화: StableHLO 저장소 설정(참조)과 유사한 HLO용 openxla/xla에서 전용 구성요소를 만들기 시작했으며 모든 OpenXLA 백엔드를 PJRT 플러그인 뒤로 이동하기 시작했습니다. 또한 이러한 PJRT 플러그인에서 발견되는 주요 UX 문제를 해결하는 데 추가로 투자하고 있습니다. 여기에는 StableHLO 플러그인에서 정확한 StableHLO 버전 통신을 제공하는 것과 같은 사항이 포함되어 있어 새로운 기능을 새 플러그인에서 즉시 사용할 수 있습니다(참조).
- 합성물의 엔드 투 엔드 작동: 2024년 3분기에 HLO에 합성물을 추가하여 추상화에 대한 전체 컴파일러 스택 지원을 사용 설정했습니다. 2024년 4분기에 XLA 인라인러에 컴포지트에 관해 가르치고 HLO/StableHLO에 알 수 없는 컴포지트를 분해와 함께 인라인 처리하기 위한 패스를 추가했습니다. 현재 프레임워크에서 컴포지트를 생성하기 위한 전용 JAX API (PyTorch API는 이미 있음)를 추가하고 컴포지트를 올바르게 사용하는 방법에 관한 Colab 문서를 추가하는 작업을 조사하고 있으며, 2024년 4분기에 완료될 예정입니다.
지난 마일스톤
2024년 상반기에 Google은 공개 opset 사양, 참조 인터프리터 완료, 호환성 단위 테스트를 통한 기기 내 배포 지원을 위해 전방 및 후방 호환성 확장, 복합 연산을 통한 확장성, 사양화된 동적 지원, 평가된 골드 결과가 포함된 전체 테스트 데이터 모음 출시 등 우선순위가 높은 개선사항을 구현한 StableHLO v1.0을 출시했습니다.