Rumah Peranti teknologi AI Pengkompil ini boleh membuat Python sepantas C++: sehingga 100 kali lebih pantas, dihasilkan oleh MIT

Pengkompil ini boleh membuat Python sepantas C++: sehingga 100 kali lebih pantas, dihasilkan oleh MIT

Apr 07, 2023 pm 05:50 PM
python menyusun

Sejak kebangkitan pembelajaran mendalam, Python telah menjadi salah satu bahasa pengaturcaraan yang paling popular ia menguasai bidang sains data dan pembelajaran mesin, malah memainkan peranan utama dalam saintifik dan pengkomputeran matematik. Pada masa kini, anda boleh mencari pakej Python yang sepadan untuk hampir semua projek yang anda boleh bayangkan.

Walau bagaimanapun, walaupun sintaks yang dipermudahkan bagi bahasa peringkat tinggi menjadikannya mudah dipelajari dan digunakan, ia lebih perlahan berbanding dengan bahasa peringkat rendah seperti C atau C++.

Penyelidik di Makmal Sains Komputer dan Kecerdasan Buatan (CSAIL) MIT berharap untuk mengubahnya dengan Codon, penyusun berasaskan Python yang membolehkan pengguna Menulis kod Python yang berfungsi dengan cekap seperti C atau program C++, tetapi boleh disesuaikan dan disesuaikan dengan keperluan dan persekitaran yang berbeza.

Kertas terkini penyelidikan ini, "Codon: A Compiler for High-Performance Pythonic Applications and DSLs", telah diterbitkan pada Persidangan Antarabangsa ACM SIGPLAN ke-32 mengenai Pembinaan Pengkompil pada bulan Februari.

Pengkompil ini boleh membuat Python sepantas C++: sehingga 100 kali lebih pantas, dihasilkan oleh MIT

  • Pautan projek: https://github.com/exaloop/codon
  • Kertas: https://dl.acm.org/doi/abs/10.1145/3578360.3580275

Dalam kerja-kerja pembangunan , orang perlu menggunakan pengkompil untuk menukar kod sumber kepada kod mesin yang boleh dilaksanakan oleh pemproses komputer Codon boleh membantu pembangun mencipta bahasa khusus domain (DSL) baharu dalam Python sambil masih mendapat faedah prestasi bahasa lain.

"Regular Python disusun menjadi apa yang dipanggil bytecode, yang dilaksanakan dalam mesin maya, yang menjadikannya lebih perlahan," kata Codon, pengarang utama kertas Ariya Shajii. , "Dengan Codon, kami menyusun secara asli, supaya anda boleh menjalankan hasil akhir terus pada CPU - tanpa melalui mesin maya atau penterjemah perantaraan."

Pengkompil ini boleh membuat Python sepantas C++: sehingga 100 kali lebih pantas, dihasilkan oleh MIT

Saluran kompilasi Codon termasuk pemeriksaan jenis, membolehkannya menjalankan kod Python dengan lebih cekap.

Pengkompil berasaskan Python disertakan dengan binari pra-bina untuk Linux dan macOS, dan anda juga boleh membina atau menjana boleh laku daripada sumber. "Dengan Codon, anda boleh mengedarkan kod sumber seperti Python, atau anda boleh menyusunnya menjadi binari," kata Shajii. "Jika anda ingin mengedarkan binari, ia akan sama dengan bahasa seperti C++, seperti binari Linux atau binari Mac

Untuk menjadikan Codon lebih pantas, selidiki Orang." memutuskan untuk melakukan pemeriksaan jenis pada masa penyusunan. Pemeriksaan jenis melibatkan penugasan jenis data (seperti integer, rentetan, aksara atau apungan, dll.) kepada nilai. Sebagai contoh, nombor 5 boleh ditetapkan sebagai integer, huruf c boleh ditetapkan sebagai aksara, perkataan hello boleh ditetapkan sebagai rentetan, dan nombor perpuluhan 3.14 boleh ditetapkan sebagai nombor titik terapung.

"Dalam Python biasa, semua jenis diberikan kepada runtime," kata Shajii. "Menggunakan Codon, kami melakukan semakan taip semasa penyusunan, yang membolehkan kami mengelakkan semua operasi jenis mahal pada masa jalankan, Saman Amarasinghe, penyelidik utama di MIT CSAIL, menambah, " Jika anda mempunyai bahasa dinamik (seperti Python), setiap kali anda mempunyai beberapa data, anda perlu menyimpan banyak metadata tambahan di sekelilingnya untuk menentukan jenis pada masa jalanan menghapuskan metadata ini, jadi kod itu lebih pantas dan lebih kecil >Menurut Shajii, Codon tidak mempunyai sebarang data yang tidak diperlukan atau pemeriksaan jenis pada masa jalan, jadi tiada overhed sifar. Dari segi prestasi, "Codon secara amnya setanding dengan C++. Kami biasanya melihat peningkatan kelajuan 10x hingga 100x berbanding Python."

Codon, sebaliknya Pendekatan ini mempunyai dagangannya. -off. "Kami melakukan semakan jenis statik ini dan tidak membenarkan penggunaan beberapa ciri dinamik Python, seperti menukar jenis secara dinamik pada masa jalan," kata Shajii.

“Masih terdapat beberapa perpustakaan Python yang kami belum laksanakan lagi.” Amarasinghe menambah, “Python sebenarnya telah diuji oleh ramai orang, dan Codon masih belum mencapai tahap itu untuk mendapatkan Lebih banyak maklum balas, dan lebih pengerasan Ia akan mengambil sedikit masa untuk mencapai tahap stabil Python biasa 》

Kodon pada asalnya direka untuk kerja genomik dan bioinformatik. Para penyelidik mencuba kira-kira 10 aplikasi genomik biasa yang ditulis dalam Python dan menyusunnya menggunakan Codon, mencapai kelajuan 5 hingga 10 kali berbanding pelaksanaan asal yang dioptimumkan secara manual.

“Set data dalam medan ini telah menjadi sangat besar hari ini, dan bahasa peringkat tinggi seperti Python dan R terlalu lambat untuk mengendalikan terabait data bagi setiap set penjujukan,” Shajii berkata. "Itulah jurang yang ingin kami isi - dengan membina cara untuk memproses data besar tanpa perlu menulis kod C atau C++, dengan itu memperkasakan pakar domain yang bukan pembangun sains komputer atau profesional." 🎜>

Pengkompil ini boleh membuat Python sepantas C++: sehingga 100 kali lebih pantas, dihasilkan oleh MIT

Carta di atas membandingkan prestasi Python (CPython 3), PyPy, Codon dan C++ pada beberapa penanda aras. Paksi-y menunjukkan kelajuan pelaksanaan Kodon berbanding dengan pelaksanaan CPython. MIT/EXALOOP/UNIVERSITY OF VICTORIA/ACM

Selain genomik, Codon juga boleh digunakan pada aplikasi serupa yang mengendalikan set data besar-besaran, serta Python pengaturcaraan GPU kompilasi berasaskan dan pengaturcaraan selari yang disokong oleh pemproses. Malah, Codon kini digunakan secara komersial dalam bioinformatik, pembelajaran mendalam dan kewangan kuantitatif melalui Exaloop permulaan, yang Shajii diasaskan untuk mengubah Codon daripada projek akademik kepada aplikasi industri.

Untuk membolehkan Codon menyesuaikan diri dengan medan yang berbeza, pasukan membangunkan sistem pemalam. "Ia seperti penyusun yang boleh diperluaskan," kata Shajii. "Anda boleh menulis pemalam untuk genomik atau medan lain, dan pemalam ini boleh mempunyai perpustakaan baharu dan pengoptimuman pengkompil baharu."

Selain itu, syarikat dan institusi boleh menggunakan Codon untuk prototaip dan membangunkan aplikasi anda sendiri. "Salah satu corak yang kami lihat ialah orang menggunakan Python untuk membuat prototaip dan ujian kerana ia mudah digunakan, tetapi apabila ia berkaitan dengan sesuatu yang penting, mereka perlu menulis semula aplikasi atau meminta orang lain melakukannya dalam C atau C++ dan menguji pada set data yang lebih besar," kata Shajii. "Dengan Codon, anda boleh menggunakan Python sepenuhnya dan mendapatkan yang terbaik dari kedua-dua dunia." Pelaksanaan pustaka Python, serta pengoptimuman khusus perpustakaan untuk membantu orang ramai mendapat prestasi yang lebih baik daripada perpustakaan ini. Mereka juga merancang untuk mencipta ciri popular: Bahagian belakang WebAssembly Codon untuk menyokong kod berjalan pada pelayar web.

Atas ialah kandungan terperinci Pengkompil ini boleh membuat Python sepantas C++: sehingga 100 kali lebih pantas, dihasilkan oleh MIT. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Arahan sembang dan cara menggunakannya
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

PHP dan Python: Membandingkan dua bahasa pengaturcaraan yang popular PHP dan Python: Membandingkan dua bahasa pengaturcaraan yang popular Apr 14, 2025 am 12:13 AM

PHP dan Python masing -masing mempunyai kelebihan mereka sendiri, dan memilih mengikut keperluan projek. 1.PHP sesuai untuk pembangunan web, terutamanya untuk pembangunan pesat dan penyelenggaraan laman web. 2. Python sesuai untuk sains data, pembelajaran mesin dan kecerdasan buatan, dengan sintaks ringkas dan sesuai untuk pemula.

Bagaimana Debian Readdir Bersepadu Dengan Alat Lain Bagaimana Debian Readdir Bersepadu Dengan Alat Lain Apr 13, 2025 am 09:42 AM

Fungsi Readdir dalam sistem Debian adalah panggilan sistem yang digunakan untuk membaca kandungan direktori dan sering digunakan dalam pengaturcaraan C. Artikel ini akan menerangkan cara mengintegrasikan Readdir dengan alat lain untuk meningkatkan fungsinya. Kaedah 1: Menggabungkan Program Bahasa C dan Pipeline Pertama, tulis program C untuk memanggil fungsi Readdir dan output hasilnya:#termasuk#termasuk#includeintMain (intargc, char*argv []) {dir*dir; structdirent*entry; if (argc! = 2) {

Python dan Masa: Memanfaatkan masa belajar anda Python dan Masa: Memanfaatkan masa belajar anda Apr 14, 2025 am 12:02 AM

Untuk memaksimumkan kecekapan pembelajaran Python dalam masa yang terhad, anda boleh menggunakan modul, masa, dan modul Python. 1. Modul DateTime digunakan untuk merakam dan merancang masa pembelajaran. 2. Modul Masa membantu menetapkan kajian dan masa rehat. 3. Modul Jadual secara automatik mengatur tugas pembelajaran mingguan.

Cara mengkonfigurasi pelayan https di debian openssl Cara mengkonfigurasi pelayan https di debian openssl Apr 13, 2025 am 11:03 AM

Mengkonfigurasi pelayan HTTPS pada sistem Debian melibatkan beberapa langkah, termasuk memasang perisian yang diperlukan, menghasilkan sijil SSL, dan mengkonfigurasi pelayan web (seperti Apache atau Nginx) untuk menggunakan sijil SSL. Berikut adalah panduan asas, dengan mengandaikan anda menggunakan pelayan Apacheweb. 1. Pasang perisian yang diperlukan terlebih dahulu, pastikan sistem anda terkini dan pasang Apache dan OpenSSL: sudoaptDateSudoaptgradesudoaptinsta

Panduan Pembangunan Plug-In Gitlab di Debian Panduan Pembangunan Plug-In Gitlab di Debian Apr 13, 2025 am 08:24 AM

Membangunkan plugin Gitlab pada Debian memerlukan beberapa langkah dan pengetahuan tertentu. Berikut adalah panduan asas untuk membantu anda memulakan proses ini. Memasang GitLab terlebih dahulu, anda perlu memasang GitLab pada sistem Debian anda. Anda boleh merujuk kepada manual pemasangan rasmi GitLab. Dapatkan token akses API sebelum melakukan integrasi API, anda perlu mendapatkan token akses API Gitlab terlebih dahulu. Buka papan pemuka Gitlab, cari pilihan "AccessTokens" dalam tetapan pengguna, dan menghasilkan token akses baru. Akan dijana

Perkhidmatan apa yang Apache Perkhidmatan apa yang Apache Apr 13, 2025 pm 12:06 PM

Apache adalah wira di belakang internet. Ia bukan sahaja pelayan web, tetapi juga platform yang kuat yang menyokong lalu lintas yang besar dan menyediakan kandungan dinamik. Ia memberikan fleksibiliti yang sangat tinggi melalui reka bentuk modular, yang membolehkan pengembangan pelbagai fungsi seperti yang diperlukan. Walau bagaimanapun, modulariti juga membentangkan cabaran konfigurasi dan prestasi yang memerlukan pengurusan yang teliti. Apache sesuai untuk senario pelayan yang memerlukan keperluan yang sangat disesuaikan dan memenuhi keperluan kompleks.

Bahasa apa yang ditulis Apache? Bahasa apa yang ditulis Apache? Apr 13, 2025 pm 12:42 PM

Apache ditulis dalam C. Bahasa ini menyediakan kelajuan, kestabilan, mudah alih, dan akses perkakasan langsung, menjadikannya sesuai untuk pembangunan pelayan web.

PHP dan Python: Contoh dan perbandingan kod PHP dan Python: Contoh dan perbandingan kod Apr 15, 2025 am 12:07 AM

PHP dan Python mempunyai kelebihan dan kekurangan mereka sendiri, dan pilihannya bergantung kepada keperluan projek dan keutamaan peribadi. 1.PHP sesuai untuk pembangunan pesat dan penyelenggaraan aplikasi web berskala besar. 2. Python menguasai bidang sains data dan pembelajaran mesin.

See all articles