vector instrunctions
vector instrunctions 單位時間內比較耗電,產生較多熱量 Intel CPU workaround是把使用到的core降頻,減少熱量產生 是否會因為過熱降頻反而減少效能,需要實測才知道 AVX512的部分可以參考 https://lemire.me/blog/2018/09/07/avx-512-when-and-how-to-use-these-new-instructions/ 目前似乎不太推薦使用AVX512 AVX2也有類似的情況 舊型CPU降比較多,新的才會降比較少 AMD沒有這個問題,至少我的R5是這樣 因為Zen是用兩個cycle 128bit來做AVX2 (256bit),產生的熱沒那麼多 也許有降頻,沒有降到Intel那樣 還有一個問題,混用SSE2和AVX指令下會降低效能 (比只用SSE2還慢) 原因是CPU的狀態必須重置,會花費更多時間 (詳細的說明請自己去google) 不是說不能用SSE2指令,必須用AVX版本的SSE2指令 (叫做AVX-128?) compile成SSE2的和AVX的link起來,就無法避免這種情況發生 用設定強制支援AVX的用SSE2跑,或是重新compile成同樣版本指令集 https://software.intel.com/en-us/articles/avoiding-avx-sse-transition-penalties 看起來應該是同一個thread的程式內混用才有影響