LINUX.ORG.RU

ICC \ GCC для x86_64

 , ,


0

0

Доброго времени суток всем. Пишу программу, реализующую кое-какую математику. Целевая система - двухпроцессорная x86_64 машина. С учетом того, что расчеты довольно громоздки, а с -Ofast под gcc я ловил расхождения на одних и тех же входных данных (нет, моделируемая система не хаотична) - использую сборку с -O2 и -march=native. Время исполнения - ~3200 секунд. Даст ли хоть какой-то профит использование icc? И, если даст, где его сейчас можно достать под GNU/Linux? Upd: распараллеливать уже некуда. При работе есть равномерная загрузка всех ядер системы, если верить htop-у.



Последнее исправление: tvldslv (всего исправлений: 1)

главное ускорение дают алгоритмы, а не оптимизации.

я однажды чужой алгоритм распознавания QR кода, на машинке с армом разогнал с полутора минут…до 0.7 секунды. гы.

alysnix ★★★
()

Равномерная загрузка ядер не говорит ни о чём кроме того, что вы просто загрузили процессор работой, что сделать в общем-то не сложно например взяв или реализовав плохой алгоритм или запустив бесконечный цикл. Касательно перехода на icc - вообще мало что даст, его единственное достоинство заключается в том, что иногда может увидеть потенциал в узких случаях с оптимизацией и бывает сговорчивее в вопросе оптимизации. Как минимум нормальная оптимизация предполагает сначала выбор наиболее адекватного алгоритма, оптимизации работы с памятью, повышения локальности данных и операций, векторизациии затем уже распараллеливание на многоядерную или многопроцессорную систему. И распараллеливание увы даёт один из самых малых приростов производительности, наибольший обычно дают алгоритм и оптимизация работы с памятью, хотя бывают и исключения.

AKonia ★★
()
Последнее исправление: AKonia (всего исправлений: 1)

Даст ли хоть какой-то профит использование icc?

С Интелом на Интеле тягаться сложно. Я думаю - Вы увидите циферки порядка 10-20% прироста. Но гнаться нужно не за этим - улучшайте алгоритмы.

ПыСы: очень большое начальство в какой то момент сказало: «мы готовы заплатить 20% perf за возможность нормальной отладки», это было задолго до того как icc был нормально понимаем gdb.

bugfixer ★★★★
()