Кросспост из
блога автора. Комментировать лучше
там, но можно и тут
Армянское радио Нас
спрашивают:
Как измениться производительность intrinsic варианта на Core-i7, если поменять
_mm_dp_ps на _mm256_dp_ps
_mm_blend_ps на _mm_blend256_ps
То-есть насколько вырастить производительность если мы совсем на AVX переедем и будет обрабатывать по 8 float
(
Read more... )
Comments 13
Вроде ж писали, что регистры по 256, но каждую половинку по факту обрабатывает свой блок.
Reply
И _mm256_dp_ps() делает именно это - умножает зараз две половинки.
Reply
; Processing speed on Core i7 2630QM (2GHz, Signle-Channel DDR3-1333 (PC3-10700 ( ... )
Reply
Reply
Reply
1) Идея отличная, работать должно быстро.
Но
2) То что мы 16 входных значений упаковали в 12 выходных - это для каких-то применений хорошо, а для последующей обработки в FP - категорически неудобно. Поэтому в моих реализациях 4-й компонент выхода обнулялся и это было спецально.
3) Конкретно в этом коде кажется есть ошибка (проверил дважды, вроде в _mm я все правильно перенес) от которой в ymm4 на выходе неправильно.
Reply
Leave a comment