Go 1.27 引入了實驗性的跨平台 SIMD API,能夠在 SVE 和 RVV 等多種架構上實現可移植的向量運算,而無需依賴特定架構的內建函式。此功能讓開發者能夠編寫出在不同 CPU 架構和固定長度向量實現之間無縫運作的程式碼。 這項進展解決了可移植 Go 二進制文件在計算密集型任務(如 AI/ML 推論和媒體處理)中的性能瓶頸,帶來了顯著的速度提升。透過減少對每個平台進行手動優化的需求,Go 在系統程式設計領域的競爭力得到了增強。 新的介面以 Google 的 Highway 函式庫為模型,目前支援 AVX、AVX2、AVX-512、Arm NEON 和 WASM SIMD 指令。基準測試顯示,可移植 SIMD 的性能可接近非可移植的特定架構 SIMD,部分測試顯示其比純量運算快約 5 倍。
事件背景
SIMD(單指令多資料)是一種平行處理技術,單一指令可同時對多個資料點進行運算,從而大幅提升影像處理或數值模擬等任務的性能。過去,在 Go 中編寫 SIMD 程式碼需要使用特定架構的內建函式(例如 x86 的 AVX 或 ARM 的 NEON),這使得維護可移植的二進制文件變得困難。平台無關 API 的引入抽象了這些差異,讓開發者無需為每個目標架構重寫程式碼即可利用向量運算。
社群觀察
社群成員對此功能持樂觀態度,認為它簡化了對 SVE 和 RVV 等非固定長度向量的支援。使用者在語音轉文字模型中報告了主觀的性能提升,並將其與 C++ 即將推出的 std::simd 進行比較,強調了 Go 作為高階系統語言的承諾。



