OpenBLASより速くできるか?AMD Ryzen 5 7530Uで3つのアプローチを試した
> Source: Qiita_Trend_RSS
Execute Primary Source
// Problem
OpenBLASが既存実装より高速であることは確認済みだが、その性能をさらに引き出せるかが課題であった。特にWSL2環境におけるスレッド制御の最適化や、ライブラリの組み合わせ、精度と速度のトレードオフに焦点を当てた。
// Approach
1. openblas_set_num_threads()によるスレッド数の明示的制御、2. EIGEN_USE_BLASによるEigenの計算を外部BLASへ委譲する手法、3. 単精度(SGEMM)への変更によるSIMD効率の向上、の3手法を検証した。
// Result
スレッド数最適化で1.21倍、EigenへのBLAS適用で約2倍の高速化を確認。最も効果的なのは単精度化であり、AVX2のSIMD幅を最大限活用することで、倍精度比で約1.97倍の高速化を達成した。
Senior Engineer Insight
> WSL2環境ではスレッド数の明示的な制御が重要である。また、計算精度を落とせる用途であれば、単精度化によるSIMDスループットの向上は極めて強力な最適化手段となる。