Tumpukan GPU kami untuk NVIDIA dan AMD, selain dari potongan minimal firmware yang ditandatangani, adalah 100% open source dan Python murni kecuali untuk kompiler. Ini tidak menggunakan driver vendor, kerangka kerja, atau pustaka. Itu sebabnya sangat mudah untuk membuatnya berfungsi di Mac. Untuk kompiler, di AMD, kami menggunakan LLVM hulu, dan di NVIDIA, kami menggunakan kompiler NAK dari proyek MESA. Kami berencana untuk mengganti kompiler dengan tinygrad murni dalam satu atau dua tahun juga. Dengan penggabungan RANGEIFY, hal-hal penurun kami sekarang cocok dengan gaya TVM yang canggih. Kami sedang mempelajari ThunderKittens dan TileLang untuk kecepatan pada level itu, dan harus menyiapkan semua hal ini dalam 200 hari untuk tanggal jatuh tempo kontrak pelatihan AMD Llama 405B kami. Karena ukuran tinygrad yang kecil dan sifat Python murni, ini adalah pustaka ML termudah untuk membuat kemajuan, alias kemiringan peningkatan tercepat. Dengan gaya Megakernel untuk penjadwalan, gaya MODeL_opt untuk perencanaan, dan gaya E-graph untuk simbolis, kita harus melewati keadaan seni dalam kecepatan PyTorch dan JAX. Jika kita melakukan itu, parit NVIDIA sudah berakhir. Ini paling banyak 1000 baris untuk menambahkan akselerator baru ke tinygrad. Dan saya tidak bermaksud menambahkan akselerator baru dengan bantuan dari driver kernel, kompiler, dan pustaka. Hanya 1000 baris perangkat lunak untuk akselerator *keseluruhan* yang berbicara langsung di PCIe BAR, seperti yang dilakukan tinygrad dengan GPU NVIDIA dan AMD sekarang.
@geerlingguy Atau sebenarnya, AMD bahkan lebih mudah. Cukup instal driver 'extra/usbgpu/tbgpu' dan AMD=1
@geerlingguy Atau sebenarnya, AMD bahkan lebih mudah. Cukup instal driver 'extra/usbgpu/tbgpu' dan AMD=1. 0 berencana untuk mendukung Intel pada level ini.
50,31K