ホームページ テクノロジー周辺機器 AI このコンパイラーは、Python を C++ と同じくらい高速にできます。最大 100 倍高速になります。MIT によって作成されました。

このコンパイラーは、Python を C++ と同じくらい高速にできます。最大 100 倍高速になります。MIT によって作成されました。

Apr 07, 2023 pm 05:50 PM
python コンパイル

ディープ ラーニングの台頭以来​​、Python は最も注目されているプログラミング言語の 1 つであり、データ サイエンスと機械学習の分野を支配しており、科学と数学の分野でも主役の役割を果たしています。計算中です。現在では、想像できるほぼすべてのプロジェクトに対応する Python パッケージを見つけることができます。

ただし、高水準言語の構文が簡略化されているため、学習と使用は簡単ですが、C や C などの低水準言語よりも遅くなります。

MIT コンピューター科学人工知能研究所 (CSAIL) の研究者らは、ユーザーが C や人工知能と同じくらい効率的に実行できる Python コードを作成できる Python ベースのコンパイラーである Codon でこの状況を変えたいと考えています。 C プログラムはカスタマイズ可能であり、さまざまなニーズや環境に適応できます。

この研究の最新論文「Codon: A Compiler for High-Performance Pythonic Applications and DSLs」は、2 月の第 32 回 ACM SIGPLAN International Conference on Compiler Construction で発表されました。

このコンパイラーは、Python を C++ と同じくらい高速にできます。最大 100 倍高速になります。MIT によって作成されました。

  • プロジェクトリンク: https://github.com/exaloop/codon
  • 論文: https://dl.acm.org/doi/abs/10.1145/3578360.3580275

開発作業では、人々は次のことを行う必要があります。コンパイラーを使用して、ソース コードをコンピューター プロセッサーで実行できるマシン コードに変換します。Codon は、開発者が他の言語のパフォーマンス上の利点を活かしながら、Python で新しいドメイン固有言語 (DSL) を作成するのに役立ちます。

「通常の Python は、いわゆるバイトコードにコンパイルされ、仮想マシンで実行されるため、処理速度が大幅に遅くなります」と、論文の筆頭著者であるコドン氏は述べています。 , 「Codon ではネイティブにコンパイルするため、中間の仮想マシンやインタープリターを経由せずに、最終結果を CPU 上で直接実行できます。」

このコンパイラーは、Python を C++ と同じくらい高速にできます。最大 100 倍高速になります。MIT によって作成されました。

#Codon のコンパイル パイプラインには型チェックが含まれており、Python コードをより効率的に実行できます。

Python ベースのコンパイラには、Linux および macOS 用のビルド済みバイナリが付属しており、ソースから実行可能ファイルをビルドまたは生成することもできます。 「Codon を使用すると、Python のようなソース コードを配布したり、バイナリにコンパイルしたりできます」と Shajii 氏は言います。 「バイナリを配布したい場合は、Linux バイナリや Mac バイナリなどの C 言語と同じになります。」

Codon を高速化するには、People を調べてください。コンパイル時に型チェックを実行することにしました。型チェックには、データ型 (整数、文字列、文字、浮動小数点など) を値に割り当てることが含まれます。たとえば、数値 5 を整数として、文字 c を文字として、単語 hello を文字列として、10 進数 3.14 を浮動小数点数として割り当てることができます。

「通常の Python では、すべての型がランタイムに与えられます」と Shajii 氏は言いました。 「Codon を使用すると、コンパイル中に型チェックが行われるため、実行時に高価な型操作をすべて回避できます。」

MIT CSAIL の主任研究員である Saman Amarasinghe 氏は、次のように付け加えました。動的言語 (Python など) を使用すると、データを取得するたびに、ランタイムのタイプを決定するために、その周囲に多くの追加のメタデータを保持する必要があります。Codon はこのメタデータを排除するため、コードが高速になります。

Shajii 氏によると、Codon には実行時に不要なデータや型チェックがないため、オーバーヘッドはゼロです。パフォーマンスの点では、「Codon は一般に C と同等です。通常、Python と比較して 10 倍から 100 倍の速度向上が見られます。」

一方、Codon のアプローチにはトレードオフもあります。 -オフ。 「私たちはこの静的な型チェックを行っており、実行時に型を動的に変更するなど、Python の動的機能の一部の使用を許可していません」と Shajii 氏は述べています。

「まだ実装していない Python ライブラリがいくつかあります。」アマラシンハ氏はさらに、「Python は数え切れないほどの人によって実際にテストされていますが、Codon はまだそのレベルに達していません。さらに多くのプログラムを実行する必要があります。」 「より多くのフィードバックとより多くの強化を得るために。通常の Python の安定したレベルに達するには、しばらく時間がかかります。」

Codon は、もともとゲノミクスとバイオインフォマティクスの研究のために設計されました。研究者らは、Python で書かれた約 10 の一般的なゲノミクス アプリケーションを試し、Codon を使用してコンパイルしたところ、元の手動で最適化された実装と比較して 5 ~ 10 倍の高速化を達成しました。

「これらの分野のデータセットは現在非常に大規模になっており、Python や R などの高級言語ではシーケンス セットあたり数テラバイトのデータを処理するには遅すぎます」と Shajii 氏言った。 「これが私たちが埋めたいギャップです。コンピューター サイエンスやプロの開発者ではない分野の専門家を支援するために、C や C コードを書かなくてもビッグ データを処理する方法を構築することで、このギャップを埋めたいのです。」

このコンパイラーは、Python を C++ と同じくらい高速にできます。最大 100 倍高速になります。MIT によって作成されました。

上のグラフは、Python (CPython 3)、PyPy、Codon、および C のパフォーマンスをいくつかのベンチマークで比較しています。 y 軸は、CPython 実装と比較した Codon 実装の高速化を示します。 MIT/EXALOOP/UNIVERSITY OF VICTORIA/ACM

ゲノミクスに加えて、Codon は、Python だけでなく、大規模なデータセットを処理する同様のアプリケーションにも適用できます。 -ベースのコンパイル プロセッサによってサポートされる GPU プログラミングと並列プログラミング。実際、Codon は現在、Codon を学術プロジェクトから産業アプリケーションに変えるために Shajii が設立したスタートアップ Exaloop を通じて、バイオインフォマティクス、ディープラーニング、定量的金融で商業的に使用されています。

Codon がさまざまな分野に適応できるようにするために、チームはプラグイン システムを開発しました。 「拡張可能なコンパイラのようなものです」とシャジイ氏は言う。 「ゲノミクスやその他の分野向けのプラグインを作成でき、これらのプラグインには新しいライブラリや新しいコンパイラ最適化を含めることができます。」

さらに、企業や機関は Codon を使用してプロトタイプを作成できます。そして独自のアプリケーションを開発してください。 「私たちが目にするパターンの 1 つは、Python は使いやすいため、プロトタイピングやテストには Python を使用しますが、重要なことになると、アプリケーションを書き直すか、他の人に C または C で書き直してテストしてもらう必要があるというものです。より大きなデータセットです」とシャジイ氏は語った。 「Codon を使用すると、Python を完全に使用して、両方の長所を活用できます。」

Codon の将来に関して、Shajii と彼のチームは現在、広く使用されている Python のネイティブ バージョンの開発に取り組んでいます。 Python ライブラリの実装、およびこれらのライブラリからより良いパフォーマンスを得るのに役立つライブラリ固有の最適化。彼らはまた、Web ブラウザ上でのコードの実行をサポートする人気の機能である Codon の WebAssembly バックエンドを作成することも計画しています。

以上がこのコンパイラーは、Python を C++ と同じくらい高速にできます。最大 100 倍高速になります。MIT によって作成されました。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PHPおよびPython:コードの例と比較 PHPおよびPython:コードの例と比較 Apr 15, 2025 am 12:07 AM

PHPとPythonには独自の利点と短所があり、選択はプロジェクトのニーズと個人的な好みに依存します。 1.PHPは、大規模なWebアプリケーションの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンスと機械学習の分野を支配しています。

CentosでPytorchモデルを訓練する方法 CentosでPytorchモデルを訓練する方法 Apr 14, 2025 pm 03:03 PM

CentOSシステムでのPytorchモデルの効率的なトレーニングには手順が必要であり、この記事では詳細なガイドが提供されます。 1。環境の準備:Pythonおよび依存関係のインストール:Centosシステムは通常Pythonをプリインストールしますが、バージョンは古い場合があります。 YumまたはDNFを使用してPython 3をインストールし、PIP:sudoyumupdatepython3(またはsudodnfupdatepython3)、pip3install-upgradepipをアップグレードすることをお勧めします。 cuda and cudnn(GPU加速):nvidiagpuを使用する場合は、cudatoolをインストールする必要があります

Python vs. JavaScript:コミュニティ、ライブラリ、リソース Python vs. JavaScript:コミュニティ、ライブラリ、リソース Apr 15, 2025 am 12:16 AM

PythonとJavaScriptには、コミュニティ、ライブラリ、リソースの観点から、独自の利点と短所があります。 1)Pythonコミュニティはフレンドリーで初心者に適していますが、フロントエンドの開発リソースはJavaScriptほど豊富ではありません。 2)Pythonはデータサイエンスおよび機械学習ライブラリで強力ですが、JavaScriptはフロントエンド開発ライブラリとフレームワークで優れています。 3)どちらも豊富な学習リソースを持っていますが、Pythonは公式文書から始めるのに適していますが、JavaScriptはMDNWebDocsにより優れています。選択は、プロジェクトのニーズと個人的な関心に基づいている必要があります。

CentosのPytorchのGPUサポートはどのようにサポートされていますか CentosのPytorchのGPUサポートはどのようにサポートされていますか Apr 14, 2025 pm 06:48 PM

Pytorch GPUアクセラレーションを有効にすることで、CentOSシステムでは、PytorchのCUDA、CUDNN、およびGPUバージョンのインストールが必要です。次の手順では、プロセスをガイドします。CUDAおよびCUDNNのインストールでは、CUDAバージョンの互換性が決定されます。NVIDIA-SMIコマンドを使用して、NVIDIAグラフィックスカードでサポートされているCUDAバージョンを表示します。たとえば、MX450グラフィックカードはCUDA11.1以上をサポートする場合があります。 cudatoolkitのダウンロードとインストール:nvidiacudatoolkitの公式Webサイトにアクセスし、グラフィックカードでサポートされている最高のCUDAバージョンに従って、対応するバージョンをダウンロードしてインストールします。 cudnnライブラリをインストールする:

Dockerの原則の詳細な説明 Dockerの原則の詳細な説明 Apr 14, 2025 pm 11:57 PM

DockerはLinuxカーネル機能を使用して、効率的で孤立したアプリケーションランニング環境を提供します。その作業原則は次のとおりです。1。ミラーは、アプリケーションを実行するために必要なすべてを含む読み取り専用テンプレートとして使用されます。 2。ユニオンファイルシステム(UnionFS)は、違いを保存するだけで、スペースを節約し、高速化する複数のファイルシステムをスタックします。 3.デーモンはミラーとコンテナを管理し、クライアントはそれらをインタラクションに使用します。 4。名前空間とcgroupsは、コンテナの分離とリソースの制限を実装します。 5.複数のネットワークモードは、コンテナの相互接続をサポートします。これらのコア概念を理解することによってのみ、Dockerをよりよく利用できます。

Centosの下でPytorchバージョンを選択する方法 Centosの下でPytorchバージョンを選択する方法 Apr 14, 2025 pm 02:51 PM

CentOSでPytorchバージョンを選択する場合、次の重要な要素を考慮する必要があります。1。CUDAバージョンの互換性GPUサポート:NVIDIA GPUを使用してGPU加速度を活用したい場合は、対応するCUDAバージョンをサポートするPytorchを選択する必要があります。 NVIDIA-SMIコマンドを実行することでサポートされているCUDAバージョンを表示できます。 CPUバージョン:GPUをお持ちでない場合、またはGPUを使用したくない場合は、PytorchのCPUバージョンを選択できます。 2。PythonバージョンPytorch

ミニオペンCentosの互換性 ミニオペンCentosの互換性 Apr 14, 2025 pm 05:45 PM

MINIOオブジェクトストレージ:CENTOSシステムの下での高性能展開Minioは、Amazons3と互換性のあるGO言語に基づいて開発された高性能の分散オブジェクトストレージシステムです。 Java、Python、JavaScript、Goなど、さまざまなクライアント言語をサポートしています。この記事では、CentosシステムへのMinioのインストールと互換性を簡単に紹介します。 Centosバージョンの互換性Minioは、Centos7.9を含むがこれらに限定されない複数のCentosバージョンで検証されています。

NginxをCentosにインストールする方法 NginxをCentosにインストールする方法 Apr 14, 2025 pm 08:06 PM

NGINXのインストールをインストールするには、次の手順に従う必要があります。開発ツール、PCRE-Devel、OpenSSL-Develなどの依存関係のインストール。 nginxソースコードパッケージをダウンロードし、それを解凍してコンパイルしてインストールし、/usr/local/nginxとしてインストールパスを指定します。 nginxユーザーとユーザーグループを作成し、アクセス許可を設定します。構成ファイルnginx.confを変更し、リスニングポートとドメイン名/IPアドレスを構成します。 nginxサービスを開始します。依存関係の問題、ポート競合、構成ファイルエラーなど、一般的なエラーに注意する必要があります。パフォーマンスの最適化は、キャッシュをオンにしたり、ワーカープロセスの数を調整するなど、特定の状況に応じて調整する必要があります。

See all articles