brainpy/BrainPy
Brain Dynamics Programming in Python
解決する課題
BrainPyは、計算神経科学および脳型計算のための汎用プログラミングフレームワークを提供します。これにより、複数のスケールにわたる神経モデルの定義の難しさや、ネイティブのCまたはCUDAコードを記述することなく、そのダイナミクスを効率的にシミュレーション、トレーニング、分析する課題を解決します。
仕組み
このフレームワークは、JAXとXLAを介したJust-In-Time (JIT) コンパイルを活用しています。これにより、Pythonで定義された脳力学モデルが、CPU、GPU、TPUを含むさまざまなハードウェアに最適化されたバイナリ命令にコンパイルされ、ネイティブのCやCUDAに匹敵するパフォーマンスを実現します。
対象者
複雑な神経モデルの構築とシミュレーションのために、柔軟で拡張性の高いツールを必要とする計算神経科学の研究者や、脳型計算に従事する人々を対象としています。
ハイライト
- ハードウェアアクセラレーション: CPU、CUDA (12.x および 13.x)、およびTPUの実行をサポート。
- JITコンパイル: Pythonで定義されたモデルを高性能に実行するためにJAXとXLAを使用。
- 統合的なエコシステム: 脳力学の構築、シミュレーション、トレーニング、および分析のためのツールを含む。
- 拡張可能なアーキテクチャ: ユーザーが新しいインフラストラクチャ、ユーティリティ、および機械学習手法を容易に追加できるように設計。
関連
- プロジェクト
NVIDIA/warpNVIDIA Warp は、注釈付き関数を高速な CUDA/CPU カーネルに JIT コンパイルする Python ライブラリで、物理シミュレーションとジオメトリ処理を対象としています。そのカーネルは微分可能であるため、PyTorch、JAX などで使用でき、シミュレーションのエンドツーエンド学習を可能にします。`pip install warp-lang` でインストールし、`@wp.kernel` でカーネルを記述し、`wp.launch` で起動し、結果を NumPy またはテンソルに変換します。リポジトリには多くの例(パーティクル、流体、FEM、レイマーチング)が含まれ、ディープラーニングフレームワークと統合されています。
- プロジェクト
Jittor/jittorJittor は、計算グラフ全体を JIT コンパイルし、メタ演算子を使って特定のモデルに最適化された CUDA/C++ カーネルを生成する高性能ディープラーニングフレームワークです。PyTorch に似た Python API を提供し、CPU および GPU バックエンド(CUDA、ROCm、Hygon)をサポートしており、ビジョン、レンダリング、幾何学的学習、強化学習向けのモデルズーも備えています。
- プロジェクト
m4rs-mt/ILGPU.NETベースの言語で書かれた高性能GPUプログラム用のJITコンパイラで、C#開発者がネイティブ依存関係なしにCUDAに類似したパフォーマンスのコードを書けるようにします。
- プロジェクト
- プロジェクト
StanfordASL/fraxJAXによるJITコンパイルと自動微分を活用した、純Python製の高速な運動学・動力学ライブラリ。高性能なロボットコントローラーの設計を可能にします。