Efficiera SDK
Efficieraには、AIモデルのコンパイルと、本番環境でのAIアプリケーションの実装を可能にする総合的なAIソフトウェアスイートが付属しています
AIを実用化に繋げる、量子化モデルに最適化されたソフトウェア開発キット
Efficieraを使うためには、ソフトウェアが非常に重要です。ニューラルネットワークをどのように量子化するかは、重要な問題になります。
もちろん、ニューラルネットワークフレームワークのほとんどは、デフォルトで極端に低いビット数の量子化をサポートしていません。そのため、ニューラルネットワークの量子化器を実装する必要があります。
また、Efficieraのために独自のAIモデルコンパイラを実装する必要もあり、最高の性能を発揮できるように独自のネットワークアーキテクチャを設計する必要があります。Efficieraにとって、ハードウェアと同じくらいソフトウェアが重要になります。
LeapMindは、これらを自動的に最適化するソフトウェアスイートを用意しています。
FEATURES
Efficiera NDK
量子化モデルの構築・学習
極小量子化モデル用オペレータライブラリ
PyTorchをサポート
Efficiera Converter
モデルの最適化・変換
Efficieraが実行可能なインストラクション形式に変換
メモリ帯域の最適化
データ転送と演算の並列化
パフォーマンスプロファイルツールを提供
Efficiera Runtime Library
エッジデバイスでの実行
Runtime API(Python, C++)
複数モデルの実行状態管理
シミュレータ環境を提供
WORKFLOW
FUNCTIONS
Efficiera NDK
特徴
極小量子化ディープラーニングモデルを開発できる唯一の環境
Efficieraおよびランタイムライブラリにより実行可能なオペレータを定義した、ディープラーニングフレームワーク用ライブラリ
極小量子化の特徴である、量子化係数とスケーリング係数の学習に必要なオペレータを、特別に意識することなくモデルが構築可能
TensorBoardによる可視化など、PyTorchから利用できる機能をそのまま活用可能
学習結果はONNX形式でエクスポート
対応フレームワーク
PyTorch
動作環境
CUDA対応GPU搭載Ubuntu 18.04 もしくは20.04環境
Efficiera Converter
特徴
極小量子化ディープラーニングモデルをEfficiera用命令に変換できる唯一のツール
Efficiera NDKを使用して学習・エクスポートされたONNX形式をEfficiera IPが実行可能な命令列に変換
指定Efficiera構成のリソース制約やメモリ帯域制約に合わせた高度な最適化
データ転送と演算の並列実行による高速化
メモリアクセス削減による省電力化
指定Efficiera構成での実行サイクル数、メモリ帯域、メモリ使用量の見積もり
モデルの規模や構造に適したEfficieraの構成を選択可能
動作環境
Intel 64/AMD64プロセッサ用Ubuntu 18.04環境
Efficiera Runtime
特徴
Efficiera搭載ハードウェアの性能を最大限に引き出すアプリケーションのためのランタイムライブラリ
Efficiera Converterから出力された命令列をターゲット上で実行するためのAPIを提供
複数のディープラーニングモデルとEfficieraインスタンス、CPUスレッドの対応関係を管理可能
利用可能な場合はCPUのSIMD命令により高速化
C++およびPython用APIを定義
ホスト環境上のシミュレータも提供するため、ターゲットが未完成な状態でもアプリケーション開発が可能
動作環境
ターゲット(実機):Armv8-A AArch64およびArmv7-Aプロセッサ用Ubuntu環境
ホスト:Intel 64/AMD64プロセッサ用Ubuntu 18.04環境