Re[15]: За счет чего выстреливают языки?
От: BulatZiganshin  
Дата: 16.07.15 11:05
Оценка:
Здравствуйте, alex_public, Вы писали:

BZ>>вот-вот. ты хоть знаешь, сколько сложений за такт может выполнить этот хасвел? или думаешь, что раз avx2 то всё должно быть тупо в 8 раз быстрей?


_>Я бы сказал раз в 6. Т.е. само сложение именно что в 8 раз быстрее,


за такт хасвел может выполнить 4 скалярных сложения или 2 simd плюс два скалярных

_>но есть накладные расходы на загрузку и выгрузку данных.


за такт хасвел может выполнить 2 загрузки, причём любого размера — хоть 4 байта, хоть 32. плюс ещё есть куча ньюансов. в результате скорость загрузки ограничивает производительность скалярного, а не векторного кода, как ты думал. а точнее, её ограничивает то что за такт можно выполнить лишь 4 макрооперации (load, add или load+add), причём не более двух из них могут использовать загрузку. в векторном же как раз всё очень просто — лепим две load+add каждый такт, store совершенно бесплатен, 1 такт уходит на cmp+blend
Люди, я люблю вас! Будьте бдительны!!!
Отредактировано 16.07.2015 12:10 BulatZiganshin . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.