Maison Périphériques technologiques IA Ce compilateur peut rendre Python aussi rapide que C++ : jusqu'à cent fois plus rapide, produit par le MIT

Ce compilateur peut rendre Python aussi rapide que C++ : jusqu'à cent fois plus rapide, produit par le MIT

Apr 07, 2023 pm 05:50 PM
python 编译

Depuis l'essor du deep learning, Python est l'un des langages de programmation les plus en vogue, dominant les domaines de la science des données et de l'apprentissage automatique, et jouant même un rôle vedette dans le calcul scientifique et mathématique. De nos jours, vous pouvez trouver un package Python correspondant à presque tous les projets que vous pouvez imaginer.

Cependant, bien que la syntaxe simplifiée d'un langage de haut niveau le rende facile à apprendre et à utiliser, il est plus lent que les langages de niveau inférieur comme le C ou le C++.

Des chercheurs du Laboratoire d'informatique et d'intelligence artificielle du MIT (CSAIL) espèrent changer cela avec Codon, un compilateur basé sur Python qui permet aux utilisateurs d'écrire des programmes aussi efficacement que C ou C++. Le code Python qui s'exécute peut être personnalisé et adapté aux différents besoins et environnements.

Le dernier article de cette recherche, "Codon: A Compiler for High-Performance Pythonic Applications and DSLs", a été publié lors de la 32e conférence internationale ACM SIGPLAN sur la construction de compilateurs en février.

Ce compilateur peut rendre Python aussi rapide que C++ : jusquà cent fois plus rapide, produit par le MIT

  • Lien du projet : https://github.com/exaloop/codon
  • Papier : https://dl.acm.org/doi/abs/10.1145/3578360.3580275

Dans le travail de développement, les gens doivent utiliser des compilateurs pour convertir le code source en code machine pouvant être exécuté par un processeur informatique. Codon peut aider les développeurs à créer de nouveaux langages spécifiques à un domaine (DSL) en Python tout en obtenant d'autres. Avantages en termes de performances du langage.

"Le Python standard sera compilé en ce qu'on appelle le bytecode, qui est exécuté dans une machine virtuelle, ce qui le rendra beaucoup plus lent", a déclaré Ariya Shajii, l'auteur principal de l'article Codon "Avec Codon, nous compilons". de manière native, vous pouvez donc exécuter le résultat final directement sur le processeur - sans passer par une machine virtuelle ou un interpréteur intermédiaire. Le pipeline de compilation de Codon inclut une vérification de type, ce qui lui permet d'exécuter du code Python plus efficacement.

Ce compilateur peut rendre Python aussi rapide que C++ : jusquà cent fois plus rapide, produit par le MIT

Le compilateur basé sur Python est livré avec des binaires prédéfinis pour Linux et macOS, et vous pouvez également créer ou générer des exécutables à partir des sources. "Avec Codon, vous pouvez distribuer du code source comme Python, ou vous pouvez le compiler en binaires", a déclaré Shajii. "Si vous souhaitez distribuer un binaire, ce sera la même chose qu'un langage comme C++, comme un binaire Linux ou un binaire Mac."

Pour rendre Codon plus rapide, les chercheurs ont décidé d'effectuer une vérification de type au moment de la compilation. . La vérification de type consiste à attribuer un type de données (tel qu'un entier, une chaîne, un caractère ou un flottant, etc.) à une valeur. Par exemple, le nombre 5 peut être attribué comme nombre entier, la lettre c peut être attribuée comme caractère, le mot bonjour peut être attribué comme chaîne et le nombre décimal 3.14 peut être attribué comme nombre à virgule flottante. "En Python standard, tous les types sont donnés au runtime", a déclaré Shajii. "En utilisant Codon, nous effectuons une vérification de type lors de la compilation, ce qui nous permet d'éviter toutes les opérations de type coûteuses au moment de l'exécution."

Saman Amarasinghe, chercheur principal au MIT CSAIL, a ajouté : "Si vous disposez d'un langage dynamique (tel que Python). ), chaque fois que vous avez des données, vous devez conserver beaucoup de métadonnées supplémentaires pour déterminer le type au moment de l'exécution, donc le code est plus rapide et les données sont plus petites.

Selon Shajii. , Codon n'a pas de données inutiles ou de vérification de type au moment de l'exécution, il n'y a donc aucune surcharge. En termes de performances, "Codon est généralement à égalité avec C++. Nous constatons généralement des améliorations de vitesse de 10 à 100 fois par rapport à Python."

D'un autre côté, l'approche de Codon a ses compromis. "Nous effectuons cette vérification de type statique et n'autorisons pas l'utilisation de certaines fonctionnalités dynamiques de Python, telles que le changement dynamique de type au moment de l'exécution", a déclaré Shajii.

"Il y a encore quelques bibliothèques Python que nous n'avons pas encore implémentées." Amarasinghe a ajouté : "Python a été testé par d'innombrables personnes, et Codon n'a pas encore atteint ce niveau. Il doit exécuter plus de programmes et obtenir plus de retours. . , et durcir davantage. Il faudra un certain temps pour atteindre un niveau stable de Python régulier. "

Codon a été conçu à l'origine pour les travaux de génomique et de bioinformatique. Les chercheurs ont essayé environ 10 applications génomiques courantes écrites en Python et les ont compilées à l’aide de Codon, atteignant des accélérations de 5 à 10 fois par rapport à l’implémentation originale optimisée manuellement.

«Les ensembles de données dans ces domaines sont devenus très volumineux aujourd'hui, et les langages de haut niveau comme Python et R sont trop lents pour gérer les téraoctets de données par ensemble de séquençage», a déclaré Shajii. "C'est la lacune que nous voulons combler - en créant un moyen de traiter le Big Data sans avoir à écrire du code C ou C++, permettant ainsi aux experts du domaine qui ne sont pas des informaticiens ou des développeurs professionnels." Le tableau ci-dessus compare les performances de Python (CPython 3), PyPy, Codon et C++ sur plusieurs benchmarks. L'axe des y montre l'accélération de l'implémentation de Codon par rapport à l'implémentation de CPython. MIT/EXALOOP/UNIVERSITY OF VICTORIA/ACM

Ce compilateur peut rendre Python aussi rapide que C++ : jusquà cent fois plus rapide, produit par le MIT

En plus de la génomique, Codon peut également être appliqué à des applications similaires traitant d'ensembles de données massifs, ainsi qu'à des domaines tels que la programmation GPU et la programmation parallèle prises en charge par Python. compilateurs basés. En fait, Codon est désormais utilisé commercialement dans la bioinformatique, l’apprentissage profond et la finance quantitative par le biais de la startup Exaloop, fondée par Shajii pour transformer Codon d’un projet académique en une application industrielle. Pour permettre à Codon de s'adapter à différents domaines, l'équipe a développé un système de plug-in. "C'est comme un compilateur extensible", a déclaré Shajii. "Vous pouvez écrire des plug-ins pour la génomique ou d'autres domaines, et ces plug-ins peuvent avoir de nouvelles bibliothèques et de nouvelles optimisations de compilateur."

De plus, les entreprises et les institutions peuvent utiliser Codon pour prototyper et développer leurs propres applications. « L’une des tendances que nous constatons est que les gens utilisent Python pour le prototypage et les tests parce qu’il est facile à utiliser, mais lorsqu’il s’agit de quelque chose d’important, ils doivent réécrire l’application ou demander à quelqu’un d’autre de la réécrire et de la tester en C ou C++. sur un ensemble de données plus vaste", a déclaré Shajii. "Avec Codon, vous pouvez utiliser pleinement Python et tirer le meilleur parti des deux mondes."

Concernant l'avenir de Codon, Shajii et son équipe travaillent actuellement sur des implémentations natives de bibliothèques Python largement utilisées, ainsi que sur des bibliothèques spécifiques. optimisations, pour aider les gens à obtenir de meilleures performances de ces bibliothèques. Ils prévoient également de créer une fonctionnalité populaire : le backend WebAssembly de Codon pour prendre en charge l'exécution de code sur un navigateur Web.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Commandes de chat et comment les utiliser
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

PHP et Python: comparaison de deux langages de programmation populaires PHP et Python: comparaison de deux langages de programmation populaires Apr 14, 2025 am 12:13 AM

PHP et Python ont chacun leurs propres avantages et choisissent en fonction des exigences du projet. 1.Php convient au développement Web, en particulier pour le développement rapide et la maintenance des sites Web. 2. Python convient à la science des données, à l'apprentissage automatique et à l'intelligence artificielle, avec syntaxe concise et adaptée aux débutants.

Comment Debian Readdir s'intègre à d'autres outils Comment Debian Readdir s'intègre à d'autres outils Apr 13, 2025 am 09:42 AM

La fonction ReadDir dans le système Debian est un appel système utilisé pour lire le contenu des répertoires et est souvent utilisé dans la programmation C. Cet article expliquera comment intégrer ReadDir avec d'autres outils pour améliorer sa fonctionnalité. Méthode 1: combinant d'abord le programme de langue C et le pipeline, écrivez un programme C pour appeler la fonction readdir et sortir le résultat: # include # include # include # includeIntmain (intargc, char * argv []) {dir * dir; structDirent * entrée; if (argc! = 2) {

Python et temps: tirer le meilleur parti de votre temps d'étude Python et temps: tirer le meilleur parti de votre temps d'étude Apr 14, 2025 am 12:02 AM

Pour maximiser l'efficacité de l'apprentissage de Python dans un temps limité, vous pouvez utiliser les modules DateTime, Time et Schedule de Python. 1. Le module DateTime est utilisé pour enregistrer et planifier le temps d'apprentissage. 2. Le module de temps aide à définir l'étude et le temps de repos. 3. Le module de planification organise automatiquement des tâches d'apprentissage hebdomadaires.

Comment configurer le serveur HTTPS dans Debian OpenSSL Comment configurer le serveur HTTPS dans Debian OpenSSL Apr 13, 2025 am 11:03 AM

La configuration d'un serveur HTTPS sur un système Debian implique plusieurs étapes, notamment l'installation du logiciel nécessaire, la génération d'un certificat SSL et la configuration d'un serveur Web (tel qu'Apache ou Nginx) pour utiliser un certificat SSL. Voici un guide de base, en supposant que vous utilisez un serveur Apacheweb. 1. Installez d'abord le logiciel nécessaire, assurez-vous que votre système est à jour et installez Apache et OpenSSL: SudoaptupDaSuDoaptupgradeSudoaptinsta

Guide de développement du plug-in de Gitlab sur Debian Guide de développement du plug-in de Gitlab sur Debian Apr 13, 2025 am 08:24 AM

Développer un plugin Gitlab sur Debian nécessite des étapes et des connaissances spécifiques. Voici un guide de base pour vous aider à démarrer avec ce processus. Installation de GitLab Tout d'abord, vous devez installer GitLab sur votre système Debian. Vous pouvez vous référer au manuel d'installation officiel de Gitlab. Obtenez un jeton d'accès API avant d'effectuer l'intégration de l'API, vous devez d'abord obtenir le jeton d'accès API de GitLab. Ouvrez le tableau de bord GitLab, recherchez l'option "AccessTokens" dans les paramètres utilisateur et générez un nouveau jeton d'accès. Sera généré

Quel service est Apache Quel service est Apache Apr 13, 2025 pm 12:06 PM

Apache est le héros derrière Internet. Ce n'est pas seulement un serveur Web, mais aussi une plate-forme puissante qui prend en charge un trafic énorme et fournit un contenu dynamique. Il offre une flexibilité extrêmement élevée grâce à une conception modulaire, permettant l'expansion de diverses fonctions au besoin. Cependant, la modularité présente également des défis de configuration et de performance qui nécessitent une gestion minutieuse. Apache convient aux scénarios de serveur qui nécessitent des besoins complexes hautement personnalisables.

Dans quelle langue Apache est-elle écrite? Dans quelle langue Apache est-elle écrite? Apr 13, 2025 pm 12:42 PM

Apache est écrit en C. La langue offre la vitesse, la stabilité, la portabilité et l'accès direct au matériel, ce qui le rend idéal pour le développement du serveur Web.

PHP et Python: exemples de code et comparaison PHP et Python: exemples de code et comparaison Apr 15, 2025 am 12:07 AM

PHP et Python ont leurs propres avantages et inconvénients, et le choix dépend des besoins du projet et des préférences personnelles. 1.Php convient au développement rapide et à la maintenance des applications Web à grande échelle. 2. Python domine le domaine de la science des données et de l'apprentissage automatique.

See all articles