Nossa pilha de GPU para NVIDIA e AMD, além de peças mínimas de firmware assinado, é 100% de código aberto e Python puro, exceto para o compilador. Não está usando drivers, estruturas ou bibliotecas de fornecedores. É por isso que é tão fácil fazê-lo funcionar no Mac. Para compiladores, na AMD, usamos o LLVM upstream e, na NVIDIA, usamos o compilador NAK do projeto MESA. Planejamos substituir o compilador por tinygrad puro em um ou dois anos também. Com a fusão do RANGEIFY, nosso material de rebaixamento agora corresponde ao estado da arte, estilo TVM. Estamos estudando ThunderKittens e TileLang para velocidade nesse nível, e devemos ter tudo isso pronto em 200 dias para a data de vencimento do nosso contrato de treinamento AMD Llama 405B. Devido ao tamanho pequeno do tinygrad e à natureza pura do Python, é a biblioteca de ML mais fácil de progredir, também conhecida como a inclinação mais rápida de melhoria. Com o estilo Megakernel para agendamento, o estilo MODeL_opt para planejamento e o estilo E-graph para simbólico, devemos ultrapassar o estado da arte na velocidade PyTorch e JAX. Se fizermos isso, o fosso da NVIDIA acabou. São 1000 linhas no máximo para adicionar um novo acelerador ao tinygrad. E não pretendo adicionar um novo acelerador com a ajuda de um driver de kernel, compilador e bibliotecas. Apenas 1000 linhas de software para o acelerador * todo * falando diretamente nas barras PCIe, como o que o tinygrad está fazendo com as GPUs NVIDIA e AMD agora.
@geerlingguy Ou, na verdade, a AMD é ainda mais fácil. Basta instalar o driver 'extra/usbgpu/tbgpu' e AMD=1
@geerlingguy Ou, na verdade, a AMD é ainda mais fácil. Basta instalar o driver 'extra/usbgpu/tbgpu' e AMD=1. 0 planeja oferecer suporte à Intel neste nível.
50,31K