2021 / 07 / 31
10:00 ~ 10:30
TR209
From Beginner to Gopher
在 Golang 召喚 SIMD 加速魔法
by
Yang Hau
SIMD 是常見的硬體加速手段,透過 SIMD 指令集的加速,我們可以將多筆資料進行平行運算,進而達到加速的效果。通常若是要使用 SIMD 的話我們都會透過 C 語言 inline 組合語言或者使用 C 語言的 intrinsics 去呼叫。相同的手法在 golang 中可以簡單地透過 cgo 完成,但是呼叫 cgo 所造成的時間成本在極度要求效率的場景下會造成不小的問題,好死不死會應用 SIMD 的場合就是需要極度在意效率的狀況,在此我們以 ARM64 為例子,以組合語言試著跟大家分享如何在 golang 中實做出 SIMD 的演算法,去避免 cgo 造成的時間成本。
About Yang Hau
前區塊鏈從業軟體工程師、現任聊天機器人新創 Zeals 菜鳥。正經的貢獻過 numpy 和 sse2neon,一點點正經的貢獻過 golang 官方函式庫,非常不正經的貢獻了 rust 的函式庫。當初學 golang 起因是覺得 gopher 也太可愛了吧!