FERRAMENTAS LINUX: O MIR JIT espera pelo o primeiro lançamento ainda este ano, por um desenvolvedor da Red Hat

terça-feira, 25 de agosto de 2020

O MIR JIT espera pelo o primeiro lançamento ainda este ano, por um desenvolvedor da Red Hat


Confira !!



Vladimir Makarov, da Red Hat, falou na Linux Plumbers Conference desta semana durante o GNU Tools Track sobre compiladores JIT leves e a eficácia (ou não) da implementação JIT do GCC, bem como do JIT do LLVM no contexto de suporte just-in-time para Ruby. Mas seguindo essas deficiências com o GCC / LLVM JIT, ele está trabalhando no MIR como um compilador JIT leve .

Cobrimos o MIR pela primeira vez no início do ano como a Representação Interna Média e visa ser um JIT leve inspirado pelas deficiências do suporte GCC e LLVM JIT. O MIR até agora permanece voltado para o uso do Ruby, embora haja trabalho na mudança do LLVM IR para o MIR.

Enquanto Makarov descobriu que Ruby com GCC ou LLVM JIT era cerca de 3x mais rápido que CRuby 2.0, GraalVM era muito mais rápido devido a especulação / desotimização muito agressiva e embutimento de métodos padrão Ruby. Mas as desvantagens do JIT baseado em GCC / LLVM são que eles são bastante grandes, a velocidade de compilação pode demorar mais em alguns casos, dificuldades para lidar com otimizações, algumas pessoas desconfortáveis ​​com o GNU Assembler / libgccjit / GCC em seus sistemas em uma produção ambiente, e foram encontradas muitas falhas de TLB para pequenos objetos gerados por GCC / libgccjit.

O tamanho do binário CRuby 2.6 é de 3,5 MB, enquanto o tamanho do binário GCC para seu JIT era de 25 MB e 63 MB para LLVM. Makarov acredita que os JITs baseados em GCC / LLVM não são bons para a compilação JIT de nível 1, mas podem ser muito melhores como compiladores de nível dois.

Makarov espera que seu compilador JIT leve possa funcionar bem como um compilador JIT de nível um e possa ser uma boa solução para o JIT MRuby na abertura do Ruby para os mercados de dispositivos móveis e IoT.

Seu compilador JIT leve agora está rendendo cerca de 70% da velocidade do código gerado do GCC (no nível de otimização de -O2), sendo "100 vezes" mais rápido para a velocidade de compilação e inicialização e 100 vezes menor para o tamanho do código. Seu código JIT não tem dependências externas, mas é código C puro.

O primeiro lançamento do MIR deve ser lançado antes do final do ano civil. O especialista em compilador Red Hat espera trabalhar no protótipo de um compilador JIT baseado em MIR para MRuby, suporte de especulação em nível de MIR e C e portabilidade de MIR para MIPS de 64 bits e RISC-V.

O código MIR mais recente pode ser encontrado no GitHub. Os interessados ​​na apresentação do LPC 2020 podem verificar o conjunto de slides em PDF para aqueles interessados ​​em compilação just-in-time leve.

Fonte

Até a próxima !!

Nenhum comentário:

Postar um comentário