auto-differentiation/xad
Fast, easy automatic differentiation in C++
解決的問題
XAD 是一個高性能的 C++ 庫,提供自動微分(AD),讓開發者能以高精度與高效率計算函數的微分。它特別設計用於大規模、性能關鍵的系統,這些系統要求極低的執行時間開銷與最小的記憶體使用量。
工作原理
XAD 使用運算子重載來實作前向與伴隨(反向)模式的自動微分。它能透過向量模式同時計算多個微分。對於蒙特卡洛模擬等重複性工作負載,它提供一個抽象的 JIT(即時)後端介面,以支援「一次記錄/多次重播」的執行模型。它也包含檢查點支援,以在大型應用中更有效地管理磁帶記憶體。
適用對象
建構性能關鍵數學模型的 C++ 開發者,特別是在量化金融領域(已有與 QuantLib 的整合案例),以及任何需要為大型系統提供高速自動微分工具的人。
主要特色
- 雙模式支援:同時支援前向與反向(伴隨)模式自動微分。
- 高效率:針對低執行時間開銷與最小記憶體佔用進行最佳化。
- JIT 後端:可選的基礎設施,支援可插入的 JIT 後端以提升吞吐量。
- 廣泛整合:與 Eigen 線性代數庫相容,並提供外部函數介面。
- 檢查點:為基於磁帶的微分提供高效的記憶體管理。
相關
- 專案
- 專案
- 專案
- 專案