PythonをLLVMベースのJIT/AOTコンパイラで1000倍高速化するNumba

Python以外の言語にはJITコンパイラで高速化できるものが多くあります。

例えばC#のMonoランタイムは、JITコンパイラで実行時に中間言語のILアセンブリをネイティブアセンブリに変換しキャッシュします。LLVMをコード生成のバックエンドとして使用できます。

Pythonでも同様にnumbaというライブラリでPythonのバイトコードをLLVM IRに変換し、LLVMでネイティブアセンブリに変換するJITコンパイルを実現しています。JITだけではなくAOTコンパイルも可能です。

実行時コンパイル(JIT)は起動時にコンパイル時間がかかるようになります。それがボトルネックになる場合は事前コンパイル(AOT)を使います。また、全てのケースで高速化されるわけではありません。

導入方法は極めて簡単で、pip install numba してから from numba import jit でインポートして@jitデコレータを付けるだけです。

詳しい解説動画

Make Python code 1000x Faster with Numba – YouTube

PythonをNumbaでAOT (事前) コンパイルして高速化する – Qiita

Python を高速化する Numba, Cython 等を使って Julia Micro-Benchmarks してみた – Qiita

numbaでざっくりPython高速化 – Qiita

Mono LLVM を使用して、マイクロソフトの C# コンパイラよりもfaster.NETアプリケーションを生成できますか

コメントを残す

メールアドレスが公開されることはありません。

Next Post

ゲーム開発のグラフィックス最適化ヒント集

水 3月 16 , 2022
ゲーム開発のグラフィックス最適化ヒント集