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

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

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

И причём тут это к нашей теме? )

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

BZ>за такт хасвел может выполнить 2 загрузки, причём любого размера — хоть 4 байта, хоть 32. плюс ещё есть куча ньюансов. в результате скорость загрузки ограничивает производительность скалярного, а не векторного кода, как ты думал. а точнее, её ограничивает то что за такт можно выполнить лишь 4 макрооперации (load, mul или load+mul), причём не более двух из них могут использовать загрузку. в векторном же как раз всё очень просто — лепим две load+mul каждый такт, store совершенно бесплатен, 1 такт уходит на cmp+blend

Очаровательно. ) Куча информации из документации и при этом ровно ноль информации по делу. Я вот так даже и не понял, ты собственно согласен с моим предположением, что векторизацию в том примере можно провести эффективнее, чем это делает gcc или не согласен? ) Если согласен, то к чему ты вообще всё это написал? ) А если не согласен, то где какие-нибудь аргументы? )
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.