Decoradores JIT do Python: Três Estratégias de Implementação
2025-02-03
Este artigo aprofunda o popular padrão de decorador JIT em Python, particularmente seu uso nas bibliotecas JAX e Triton. O autor implementa três decoradores JIT do zero usando um exemplo simplificado: baseado em AST, baseado em bytecode e baseado em rastreamento. A abordagem baseada em AST manipula diretamente a Árvore de Sintaxe Abstrata; a abordagem baseada em bytecode alavanca o interpretador de bytecode do Python; e a abordagem baseada em rastreamento constrói um IR de expressão rastreando a execução da função em tempo de execução. O artigo detalha as vantagens e desvantagens de cada abordagem e usa JAX e Numba como exemplos para ilustrar suas estratégias em aplicações do mundo real.
Desenvolvimento