Então eu finalmente tive a chance de olhar para Mojo / Modular. Não é o que eu pensava que era, é um substituto OpenCL + implementações de kernels, não um compilador de IA. Embora isso torne muito mais fácil obter desempenho total rapidamente, acho que a completude de Turing é um erro para essas coisas. Finalmente temos a chance de viver em um mundo de fluxo de dados puro, por que não a aproveitaríamos? Linguagens como essa não separam a definição da computação do agendamento da computação. Leia o Halide PhD, estou obcecado com essa ideia. À medida que as redes neurais se tornam cada vez melhores na programação, o que queremos é a maneira mais concisa de expressar *exatamente* o que o programa faz sem nos preocupar com os detalhes de como. Deixe isso para as máquinas. Observe o parâmetro "maybe_epilogue_func" aqui. E se você quiser que duas funções de epílogo sejam armazenadas em buffers diferentes ou reduções encadeadas? O loop está dentro dessa função conv, então é tarde demais para mudar. Leia o conv tinygrad para contraste. "Em minhas décadas de construção de compiladores, nunca vi o mito de um "compilador suficientemente inteligente" realmente funcionar!" - @clattner_llvm Estamos apostando que, com técnicas modernas de pesquisa (leia-se: IA), isso finalmente mudará. Embora seja uma aposta totalmente justa para o outro lado, e se não der certo nos próximos 10 anos, Mojo é provavelmente o ponto certo no espaço de trade-off.