LINUX.ORG.RU

ICC \ GCC для x86_64

 , ,


0

0

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



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

Теоретически, да. На практике, скорее больше пользы будет от использования MKL, VTune и прочего.

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

я ловил расхождения на одних и тех же входных данных

главное чтоб ты разогрев кэша не ловил, а то погоду на Марсе померяешь :)

slackwarrior ★★★★★
()

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

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

alysnix ★★★
()

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

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

Формулировка задачи ни об чем. Давайте исходный код и входные данные. Тогда более предметно можно говорить.

x22
()

емнип все значимые фичи icc сто лет как в gcc втащили, но пруфы не помню

Shadow ★★★★★
()

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

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

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

bugfixer ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.