flashlight: JITカーネルコンパイルとネイティブなマルチドメインアプリを備えた高性能C++機械学習ライブラリ

flashlight: JITカーネルコンパイルとネイティブなマルチドメインアプリを備えた高性能C++機械学習ライブラリ

何を解決するか

Flashlightは、完全にC++で記述された、高速で柔軟、かつ軽量なフレームワークを必要とする研究者のために設計された高性能機械学習ライブラリです。新しい実験的なアルゴリズムやセットアップを迅速に反復試行する能力を犠牲にすることなく、C++の効率性とスケールを提供する必要性に答えます。

仕組み

Flashlightは、テープベースの自動微分システム(Variable抽象化を介して)と、高性能なデフォルト設定およびJITカーネルコンパイルのためのArrayFireテンソルライブラリ上に構築されたコアテンソルインターフェースを使用します。これは、コアニューラルネットワークライブラリ(fl)、スタンドアロンユーティリティ(lib)、ドメイン固有のパッケージ(pkg)、およびすぐに使用できるアプリケーション(app)に構造化されています。

対象者

主に、最大限のパフォーマンス、小さなメモリフットプリント、およびテンソル計算のための内部APIを修正する能力を必要とするAI研究者および開発者向けです。

ハイライト

  • C++ Native: 完全にC++で記述されており、完全な内部修正可能性と小さなコアフットプリント(10 MB未満)を提供します。
  • High Performance: JITカーネルコンパイルのためにArrayFireを利用し、CUDAとCPUの両方のバックエンドをサポートします。
  • Multi-Domain Support: 自動音声認識(ASR)、画像分類、物体検出、および言語モデリングのための組み込みアプリケーションを含みます。
  • Automatic Differentiation: 勾配を計算するための、シンプルなテープベースのautogradシステムを特徴としています。

Sources