Все потоки
Поиск
Написать публикацию
Обновить
26
0
Ануфриенко Андрей Владимирович @andrei_an

Пользователь

Отправить сообщение
Вы слегка поменяли мою мысль. Я спрашиваю, можно ли сделать заключение о том, может или нет производительность быть улучшена, измерив какие-то процессорные события. И привожу в качестве примера оптимизацию автовекторизация — которая действительно значительно улучшает производительность, но заключения о том может ли она быть сделана или нет нельзя получить без исследования кода программы.
Вы же мне показываете, что из сравнения двух рапортов Amplifierа можно понять за счет чего получен положительный эффект. С этим вашим рассуждением я абсолютно согласен. В данном случае можно. Мне было проще. Я когда подбирал тест уже знал чего хочу достичь и сразу использовал опцию -Qvec_report, чтобы увидеть автовекторизацию.
Что же касается сравнений автовекторизации разных компиляторов, то эта хорошая тема для отдельного исследования.
Компилятор умеет кое-что делать для таких случаев, в основном пытаясь повысить компактность используемых данных. Есть оптимизации перестановки полей, вынесения холодных полей в отдельные структуры и т.д. Только для этого нужно массу требований выполнить. Т.е. простые оценки опять не помогают — нужно исследовать каждый конкретный случай.
Прирост производительности конечно можно объяснить, но нельзя сказать, без анализа алгоритмов приложения, можно или нет получить какой-то выигрыш от векторизации. Нельзя сказать — нет SSE инструкций, значит возможен выигрыш от векторизации. В какой-то совсем оторванной от жизни теории — это так. Но в реальности нужно исследовать есть ли правильные циклы, есть ли в них цикловые зависимости. Ну и обрабатываемые данные должны правильно лежать в памяти, чтобы от векторизации был толк. Разве не так?

Информация

В рейтинге
Не участвует
Откуда
Новосибирская обл., Россия
Дата рождения
Зарегистрирован
Активность