RFC: `xpx.compile` as an abstraction for `torch.compile` and `jax.jit` decorators?
Mantenedores costumam responder em até 1 dia
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 5/5
- Tempo estimado
- Mais de uma semana
- Facilidade para iniciantes
- 25/100
- Tipo de issue
- Funcionalidade
- Clareza
- Precisa de esclarecimento
- Status de atividade
- Estagnada
- Domínio
- backend-api-design, machine-learning
Direção de pesquisa
Comece revisando a documentação vinculada de torch.compile e jax.jit e comparando seus parâmetros de decorador com a abstração de array-api-extra proposta aqui. Determine se a compilação padrão e os kwargs específicos do namespace são úteis e documente um design de API acordado e seu comportamento no-op para namespaces não suportados como definição de concluído.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
Has anybody investigated the possibility to allow for an array agnostic way to leverage the torch.compile and jax.jit decorators in array-api-extra?
This might be useful for array API consuming libraries such as SciPy or scikit-learn. For array API namespaces without JIT compiler support, xpx.compile would just result in a noop decorator. For torch and JAX it might, dispatching to an actual JIT compiler could unlock significant speed-ups and memory usage improvements.
However, the parameters of those decorators have many kwargs with seemingly very little overlap:
- https://docs.jax.dev/en/latest/_autosummary/jax.jit.html
- https://docs.pytorch.org/docs/stable/generated/torch.compile.html
Maybe xpx.compile could be made to accept arbitrary kwargs scoped by the underlying namespace name without attempting to map common compiler semantics together.
@xpx.compile(
torch=dict(options={"triton.cudagraphs": True}, fullgraph=True),
jax=dict(static_argnames=['n']),
)
def some_array_function(array, n):
...
I have little experience to tell whether calling those decorators with their default argument is useful or not in practice.
- Linguagem predominante
- Python
- Estrelas
- 33
- Forks
- 32
- Merge médio
- 1h 33min
- PRs com merge (30d)
- 40
Preparar o ambiente
Ainda não verificamos os arquivos de configuração deste projeto. Comece pelo README e veja nosso guia da primeira contribuição para os passos gerais.
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de data-apis/array-api-extra
-
ENH: new function `replace`Abertaenhancement new function
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
data-apis/array-api-extra#992 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
-
testing
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 55/100
data-apis/array-api-extra#901 · 3 comentários ·
Mantenedores costumam responder em até 1 dia
-
testing upstream issue
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 45/100
data-apis/array-api-extra#900 · 8 comentários ·
Mantenedores costumam responder em até 1 dia
-
blocked testing xpx.testing
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 30/100
data-apis/array-api-extra#833 · 1 comentário · 1 reação ·
Mantenedores costumam responder em até 1 dia
-
enhancement help wanted
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 55/100
data-apis/array-api-extra#811 · 1 comentário · 1 reação ·
Mantenedores costumam responder em até 1 dia
Todas as issues de data-apis/array-api-extra
Issues semelhantes
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 84/100
PedestrianDynamics/pyFDS-Evac#343 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 88/100
theskumar/python-dotenv#708 ·
-
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 88/100
Mantenedores costumam responder em até 2 dias
-
Docs Timedelta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
pandas-dev/pandas#69919 ·
Mantenedores costumam responder em até 1 dia
-
API documentation
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
zephyrproject-rtos/west#1009 · 2 comentários ·
Mantenedores costumam responder em até 3 dias