jfalcou/eve
Expressive Vector Engine - SIMD in C++ Goes Brrrr
解決的問題
EVE 是一個高效率的 C++20 庫,專為簡化 SIMD(Single Instruction, Multiple Data)程式設計模型而設計。它為多種硬體架構的 SIMD 擴充指令集提供基於型別的封裝,讓開發者無需手動為每個目標撰寫特定架構的組合語言或內建函數,即可在保持高抽象層次的同時撰寫高效能的底層程式碼。
工作原理
該庫利用 C++20 特性——如 Concepts、模板 lambda 和 if constexpr——建立 SIMD 操作的通用介面。它作為現代 CPU 指令集的封裝,廣泛支援 Intel(SSE、AVX、AVX512)與 ARM(NEON、SVE)架構,同時對 PowerPC(VMX、VSX)提供部分支援。
適用對象
主要針對需要在多個硬體目標上最大化 CPU 吞吐量與效能的高階運算(HPC)與底層系統程式設計開發者。
主要亮點
- 廣泛的架構支援:積極支援從 Intel SSE2 到 AVX512,以及 ARM NEON/SVE。
- 現代 C++ 標準:專為 C++20 設計,充分運用現代設計模式,推進 SIMD API 設計的極限。
- 高抽象層次:在維持高階、具表現力的 API 的同時,提供實現高效 SIMD 程式碼的方式。
- 研究導向:作為一項研究計畫開發,旨在探索 SIMD 庫的最佳設計與實作決策。
相關
- 專案
- 專案
- 專案
- 專案