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 浮點數可能過於龐大或效率低下。

工作原理

它提供了一個僅含標頭檔的插件式替代類型庫,可於參數化計算核心中使用。開發者不再使用 doublefloat,而是可以使用如半精度(half)、bfloat16 或固定點類型等專用格式。該庫包含針對不同架構(x86、ARM、RISC-V、GPU)缺乏通用硬體支援的格式的快速軟體實作。

適用對象

此庫適用於從事人工智慧(AI)、數位訊號處理(DSP)、高效能運算(HPC)和高頻交易(HFT)的開發者,他們需要試驗或實作混合精度演算法。

主要特色

  • 多樣化的格式支援:支援四分之一精度、半精度和四倍精度,以及 NVIDIA 的 TensorFloat 和 Google 的 bfloat16。
  • 自訂數值系統:包含靜態與彈性整數、小數、固定點、分數、線性浮點、漸變浮點、對數以及自適應精度類型的支援。
  • 硬體無關性:為所有硬體均未原生支援的格式提供軟體實作。
  • 低門檻整合:僅含標頭檔的設計,可透過模板參數化輕鬆整合至現有的 C++ 專案中。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案