numba/numba
NumPy aware dynamic Python compiler using LLVM
解決する課題
Pythonは、重い数値計算において低速であることがよくあります。Numbaは、PythonおよびNumPyコードを高速なマシンコードに変換することでこの問題を解決し、開発者がPython環境を離れることなく、CやFortranに近いパフォーマンスを実現できるようにします。
仕組み
LLVMコンパイラプロジェクトを使用して、Pythonの構文から直接最適化されたマシンコードを生成するJust-In-Time (JIT) コンパイラです。特にNumPyを認識するように設計されており、NumPyの配列や関数を含む操作を最適化できます。
対象者
数値中心のPythonコードの高速化が必要なデータサイエンティスト、研究者、エンジニア、特に大規模なデータセットや複雑な数学的演算を扱う方に適しています。
特徴
- ループの自動並列化
- GPUアクセラレーションによるコード生成
- ufuncsおよびCコールバックの作成サポート
- NumPyとの深い統合
関連
- プロジェクト
NVIDIA/warpWarpはNVIDIAが支援するPythonライブラリで、通常のPython関数を物理シミュレーション、ロボット工学、微分可能な計算向けの高速なCPU/GPUカーネルにJITコンパイルします。PyTorch/JAXと連携可能で、シンプルな`@wp.kernel`デコレータと`wp.launch` APIを提供し、`warp-lang`というPyPIパッケージとして配布されています。
- プロジェクト
numba/llvmliteLLVM の IR ビルダー、最適化ツール、JIT コンパイラ API への安定したインターフェースを提供する軽量な Python バインディング。JIT コンパイラの作成を簡素化します。
- プロジェクト
jax-ml/jaxアクセラレータ指向の配列計算とプログラム変換のための Python ライブラリ。高性能な数値計算および大規模機械学習向けに設計されています。
- プロジェクト
cupy/cupyCuPyは、NVIDIA CUDAおよびAMD ROCmプラットフォーム上で、Python向けのGPU加速数値計算を可能にするNumPyおよびSciPy互換の配列ライブラリです。
- プロジェクト
brainpy/BrainPy計算神経科学および脳型計算のためのJITコンパイルフレームワークであり、脳力学モデルの効率的なシミュレーション、トレーニング、および分析を可能にします。