stillwater-sc/universal
Large collection of number systems providing custom arithmetic for mixed-precision algorithm development and optimization for AI, Machine Learning, Computer Vision, Signal Processing, CAE, EDA, control, optimization, estimation, and approximation.
何を解決するか
Universalは、ネイティブの整数および浮動小数点型をカスタム算術型に置き換えるために設計されたC++テンプレートライブラリです。これにより、開発者は特定の精度と動的範囲の要件に合わせてアルゴリズムを最適化できます。これは、標準的なIEEE-754浮動小数点型が過剰であったり非効率であったりする場合がある組み込みシステムやディープラーニング(Deep Learning)アプリケーションにおいて、パフォーマンスとエネルギー効率を向上させるために極めて重要です。
仕組み
パラメータ化された計算カーネルで使用できる、プラグイン式の置換型を提供するヘッダーオンリー(header-only)ライブラリです。doubleやfloatを使用する代わりに、開発者は半精度(half)、bfloat16、または固定小数点型のような特化されたフォーマットを使用できます。このライブラリには、異なるアーキテクチャ(x86, ARM, RISC-V, GPUs)間で汎用的なハードウェアサポートが不足しているフォーマットの高速な実装が含まれています。
対象ユーザー
このライブラリは、AI、デジタル信号処理(DSP)、ハイパフォーマンス・コンピューティング(HPC)、および高頻度取引(HFT)の分野で、混合精度アルゴリズムの実験や実装をが必要とする開発者を対象としています。
ハイライト
- 幅広いフォーマット: quarter、half、およびquad精度、ならびにNVIDIA TensorFloatおよびGoogleのbfloat16をサポートしています。
- カスタム数値システム: staticおよびelastic整数、小数、固定小数点、有理数、linear floats、tapered floats、logarithmic、およびadaptive-precision型が含まれます。
- ハードウェアに依存しない: すべてのハードウェアでネイティブにサポートされていないフォーマットのソフトウェア実装を提供します。
- 低摩擦: ヘッダーオンリー設計により、テンプレートパラメータ化を通じて既存のC++プロジェクトへの容易な統合が可能です。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト