스크립트
00:00:00Mojo, bahasa pemrograman tersebut, baru saja mencapai versi 1.0, dan waktunya terasa sedikit aneh.
00:00:05Bahasa ini diluncurkan dengan kompiler tertutup, tujuh hari kemudian mereka menjadikannya sumber terbuka,
00:00:09dan Qualcomm baru saja membeli perusahaan tersebut.
00:00:12Tapi mari lupakan semua itu sejenak.
00:00:14Hal utama dari Mojo adalah kode yang mirip Python tanpa harus meninggalkan C++ atau CUDA demi kecepatan.
00:00:20Jadi mari kita lihat apakah ini benar-benar terbukti.
00:00:27Inti dari Mojo adalah sebuah pertanyaan.
00:00:30Bagaimana jika Anda bisa menulis kode yang terasa dan terlihat persis seperti Python,
00:00:34tetapi menjalankan bagian yang benar-benar penting tanpa meninggalkan C++ atau CUDA?
00:00:39Satu bahasa yang mudah dibaca di seluruh CPU dan GPU.
00:00:42Itulah inti dari semuanya di sini.
00:00:43Dan sekarang setelah Mojo akhirnya mencapai versi 1.0, saya ingin melihat berapa banyak dari ini yang benar-benar nyata.
00:00:49Jadi sebelum kita membahas Qualcomm atau sumber terbuka, mari kita jalankan saja.
00:00:53Jika Anda menikmati alat coding untuk mempercepat alur kerja Anda, pastikan untuk berlangganan.
00:00:57Kami selalu merilis video baru setiap saat.
00:00:59Saya akan melakukannya di komputer saya, tetapi saya tidak akan membuat tutorial Mojo di sini.
00:01:03Jika Anda belum pernah melihatnya sebelumnya, ya, tampilannya memang akan mirip seperti Python,
00:01:07tetapi Anda akan melihat beberapa perbedaan utama.
00:01:10Di sisi kiri adalah Python.
00:01:12Di sisi kanan adalah Mojo.
00:01:13Ini adalah perulangan yang sama, kisi yang sama, batas iterasi yang sama.
00:01:17Saya tidak akan membahas satu pun perhitungan matematika dari ini.
00:01:20Perhatikan kedua perulangan while tersebut.
00:01:21Keduanya melakukan hal yang sama.
00:01:23Kita akan menjalankan Python terlebih dahulu di sini.
00:01:26Baiklah, bagus.
00:01:27Itu berjalan.
00:01:28Programnya tereksekusi.
00:01:28Sekarang, program yang sama dikompilasi dengan Mojo.
00:01:32Sekali lagi, mari kita jalankan.
00:01:35Dan, bum.
00:01:35Itu dia.
00:01:36Sekarang, nilai checksum tidak akan cocok pada digit terakhir.
00:01:39Keduanya berselisih beberapa ratus dari seperempat juta.
00:01:43Python melakukan perkalian, lalu penambahan.
00:01:45Kompilasi Mojo dapat menggabungkan itu menjadi satu instruksi.
00:01:49Beberapa piksel memerlukan iterasi tambahan.
00:01:51Anggap detik di sini sebagai angka yang sebenarnya.
00:01:54Dan ini bukan NumPy.
00:01:55Ini bukan sebuah model.
00:01:56Peningkatan performa bukan hanya pada perulangan CPU yang menjadi lebih cepat.
00:02:00Anda bisa mulai dengan Python karena itu mudah.
00:02:03Kemudian jalurnya beralih ke C++ atau CUDA.
00:02:06Sekarang Anda memiliki dua file dan keduanya mulai terpisah.
00:02:09Jadi, inilah pertanyaan yang diajukan oleh Mojo.
00:02:12Bisakah file yang Anda baca menjadi file yang sama yang berjalan di GPU?
00:02:17Fungsi ini adalah kernel.
00:02:18Setiap utas GPU menambahkan satu pasang angka.
00:02:20Itu saja.
00:02:21Saya tidak beralih ke Metal, Swift, atau CUDA.
00:02:24Kompilasi kodenya.
00:02:26Dan sekarang kodenya sudah berjalan.
00:02:28Jadi, ya.
00:02:30Mojo bisa melakukan sesuatu yang cukup menarik di sini.
00:02:32Dan saya baru saja mengompilasi kernel GPU yang berfungsi di MacBook menggunakan bahasa yang sama seperti saat saya menulis
00:02:38kode biasa, yaitu Python.
00:02:40Kode pembelajaran mesin Anda dimulai dengan Python karena Python mudah digunakan.
00:02:44Kita semua tahu ini.
00:02:45Kemudian, pada akhirnya, performa mulai menjadi hal yang penting.
00:02:48Jadi, bagian-bagian penting ditulis ulang dalam C++ atau CUDA.
00:02:52Sekarang, kita memelihara dua versi dari sistem yang sama.
00:02:55Dan sekali lagi, seiring waktu, hal itu justru menambah kebingungan.
00:02:58Hal utama dari Mojo adalah file yang mudah dibaca dan file yang cepat sebenarnya adalah hal yang sama.
00:03:03Sekarang, orang di balik semua ini adalah Chris Lattner.
00:03:06Ia membangun LLVM, lalu Clang, dan kemudian Swift.
00:03:10Tetapi membuat kernel GPU berjalan adalah satu hal.
00:03:14Menyebut bahasanya sebagai versi 1.0, itu adalah hal yang sedikit berbeda.
00:03:18Jadi, apa arti sebenarnya dari versi 1.0 di sini?
00:03:21Bukan berarti Mojo sudah selesai.
00:03:23Ini kurang lebih berarti stabilitas.
00:03:25Ada janji bahwa kode yang Anda tulis hari ini tidak akan rusak.
00:03:29Itulah arti dari rilis besar seperti ini.
00:03:30Tetapi kemudian Anda menemui bagian aneh yang pertama.
00:03:32Mojo mencapai versi 1.1 bahkan sebelum kompilernya bersumber terbuka.
00:03:37Pustaka standarnya sudah dibuka pada bulan Maret 2024.
00:03:40Kernel maks dibuka pada tahun 2025.
00:03:43Tetapi kompilernya, hal yang benar-benar melakukan kompilasi, tetap bersifat proprietari hingga 18 Agustus tahun ini.
00:03:50Apache 2.0, dan itu penting karena hanya tujuh hari sebelumnya ketika Mojo 1.0 dirilis, kompiler tersebut masih tertutup.
00:03:57Dan itu menjawab salah satu kritik terbesar yang diterima Mojo selama tiga tahun berturut-turut.
00:04:02Anda dulu bisa berkata, tentu saja, tetapi kompilernya tertutup.
00:04:05Kita tidak bisa benar-benar mengatakan itu lagi, yang terdengar seperti, baiklah, ini bergerak ke arah yang benar.
00:04:10Mungkin memang begitu.
00:04:10Sampai Anda melihat apa yang terjadi tiga minggu sebelumnya.
00:04:14Akuisisi Qualcomm selesai pada 29 Juli.
00:04:16Mojo 1.0 dirilis pada 11 Agustus.
00:04:19Kompilernya dibuka pada 18 Agustus.
00:04:21Jadi tonggak keterbukaan terbesar dalam sejarah Mojo terjadi kurang dari tiga minggu setelah Modular berhenti menjadi perusahaan independen.
00:04:29Dan itu langsung menciptakan dua cara pandang yang sangat berbeda.
00:04:33Pertama adalah Qualcomm membeli Modular karena mereka ingin Mojo ada di mana-mana.
00:04:37Sepertinya tidak.
00:04:37Atau Qualcomm membeli Modular, dan pada akhirnya seluruh hal ini diserap ke dalam perusahaan yang jauh lebih besar.
00:04:44Qualcomm membuat cip.
00:04:45Bahasa yang dikompilasi dengan baik untuk cip menjadi jauh lebih bernilai.
00:04:49Kita benar-benar dapat menggunakannya secara bebas.
00:04:50Jadi, langkah sumber terbuka itu masuk akal.
00:04:53Tetapi apakah Mojo berhasil atau tidak mungkin bukan ditentukan oleh Qualcomm.
00:04:57Hal itu akan ditentukan oleh apakah bahasanya benar-benar cukup bagus untuk membenarkan perpindahan sejak awal.
00:05:02Tetapi sekali lagi, di sinilah semua itu mulai menjadi rumit.
00:05:05Mojo memiliki masalah tolok ukur.
00:05:07Kembali pada tahun 2023, angka besarnya adalah Mojo bisa 68.000 kali lebih cepat daripada Python.
00:05:13Itu luar biasa.
00:05:14Ada juga unggahan yang masih ada yang mengklaim Mojo 50% lebih cepat daripada Rust pada penguraian DNA.
00:05:19Tolok ukur itu dibedah habis.
00:05:21Mereka menunjukkan bahwa tolok ukur tersebut tidak mengukur apa yang diklaimnya.
00:05:25Dan Anda masih akan melihat angka 35.000 kali beredar di luar sana.
00:05:29Itu berasal dari perkalian matriks.
00:05:31Tetapi yang mereka bandingkan adalah, yah,
00:05:34di satu sisi, implementasi Mojo yang sepenuhnya bervektor, diparalelkan, dan di-tiling.
00:05:40Di sisi lain, perulangan rangkap tiga Python murni.
00:05:44Ya, perulangan rangkap tiga.
00:05:45Bukan NumPy, hanya perulangan bersarang yang tidak akan pernah digunakan oleh siapa pun di dunia ini.
00:05:49Jadi saya tidak terlalu peduli dengan klaim 35.000 kali lebih cepat.
00:05:52Saya ingin angka dari mesin ini.
00:05:54Saya menggunakan M4 Pro dibandingkan dengan Python murni.
00:05:57Dibandingkan dengan Python murni, 26 setengah kali lebih cepat.
00:06:00Dibandingkan dengan NumPy, per operasi, mendekati sekitar dua kali lebih cepat.
00:06:05Sekarang, jelas angka 26 bukanlah 68.000.
00:06:08Tetapi 26 kali tetaplah angka yang bagus karena NumPy sudah menggunakan C di bagian dasarnya.
00:06:14Pada titik itu, Anda sebenarnya tidak mengalahkan Python.
00:06:16Anda mengalahkan C dengan perilaku memori yang lebih baik.
00:06:19Dan itulah hal yang membuat frustrasi tentang Mojo.
00:06:21Namun performa sebenarnya bukanlah alasan terbesar mengapa saya ragu menggunakan Mojo hari ini.
00:06:25Saya sudah mencoba menggunakannya sebelumnya.
00:06:27Saya menjalankannya di sini hari ini.
00:06:28Hal yang utama adalah kestabilan.
00:06:30Sekarang, seberapa stabilkah ini?
00:06:32Karena Mojo 1.0 dirilis dengan 41 peringatan API tidak stabil, termasuk int, print, dan len, yang merupakan fungsi bawaan inti.
00:06:40Fitur-fitur itu ditandai tidak stabil di dalam rilis yang disebut-sebut sebagai rilis stabilitas.
00:06:45Dan pada hari yang sama Mojo berjanji kode Anda tidak akan rusak, penghapusan kata kunci FN merusak sekitar 39 ekosistem paket.
00:06:52Sekarang, kata kunci FN yang sangat penting dalam cara kerja Mojo telah dihapus sepenuhnya.
00:06:58Tidak ada proses FC.
00:06:59Dan meskipun kompiler sekarang sudah bersumber terbuka, mereka belum menerima kontribusi untuk itu.
00:07:04Jadi Mojo 1.0 sudah stabil, sepertinya begitu.
00:07:07Tetapi mungkin tidak sesetabil seperti yang mereka katakan.
00:07:09Yang membawa kita pada satu-satunya pertanyaan yang benar-benar penting.
00:07:12Haruskah Anda menggunakannya?
00:07:13Sekarang, jika Anda menulis kernel GPU, CUDA, Triton, dunia semacam itu, saya pikir Mojo benar-benar layak dicoba selama sehari atau dua hari.
00:07:21Satu bahasa untuk CPU dan GPU, dan saya berhasil mengompilasi kernel GPU yang berfungsi di laptop.
00:07:27Tidak banyak hal lain yang dapat melakukan itu.
00:07:29Tetapi bahasa ini masih memiliki banyak ruang untuk berkembang.
00:07:31Jadi saya tidak akan memprioritaskan ini sama sekali untuk saat ini.
00:07:35Tiga tahun lalu, argumen menentang Mojo sangatlah sederhana.
00:07:38Bahasa baru yang keren, tetapi siapa yang akan menggunakannya?
00:07:40Itu adalah bahasa tertutup dari sebuah perusahaan rintisan yang meminta para pengembang mempertaruhkan segalanya pada hal ini.
00:07:44Hari ini, kompilernya menggunakan lisensi Apache 2.0.
00:07:47Bahasanya sudah berada di versi 1.0.
00:07:48Dan perusahaan rintisan tersebut kini menjadi bagian dari Qualcomm.
00:07:51Saya Josh dari BetterStack.
00:07:53Jika Anda menikmati kiat dan trik coding seperti ini, pastikan untuk berlangganan.
00:07:56Sampai jumpa di video lainnya.
커뮤니티 글
아직 글이 없습니다. 이 영상에 대한 첫 번째 글을 작성해 보세요!
이 영상에 대해 글쓰기