O StableHLO é um conjunto de operações para operações de alto nível (HLO, na sigla em inglês) em modelos de machine learning (ML). Essencialmente, é uma camada de portabilidade entre diferentes frameworks e compiladores de ML: os frameworks de ML que produzem programas StableHLO são compatíveis com os compiladores de ML que consomem programas StableHLO.
Nosso objetivo é simplificar e acelerar o desenvolvimento de ML, criando mais interoperabilidade entre vários frameworks de ML (como TensorFlow, JAX e PyTorch) e compiladores de ML (como XLA e IREE).
O StableHLO é baseado no dialeto MHLO e o aprimora com mais funcionalidades, incluindo a serialização e a versão. Usamos o bytecode MLIR como formato de serialização e oferecemos garantias de compatibilidade reversa e futura. Isso garante a compatibilidade entre frameworks e compiladores, mesmo que o StableHLO continue evoluindo.
Esse repositório inclui a especificação StableHLO (link em inglês) e uma implementação baseada em MLIR em C++ e Python, que pode ser usada para definir programas StableHLO para consumo por compiladores, como XLA e IREE.
Criar instruções
Consulte StableHLO no GitHub para ver instruções de build.
Comunidade
A criação de uma incrível camada de portabilidade entre frameworks e compiladores de ML requer colaboração em todo o setor de ML, por isso ficamos felizes em ter sua ajuda no projeto StableHLO.
Estamos usando problemas / solicitações de pull do GitHub para organizar o desenvolvimento e
openxla-discuss
para ter discussões mais longas. Também temos um canal #stablehlo
no servidor do Discord do OpenXLA.