Современные оптимизация кода компиляторами

Разговоры на любые темы: вы можете обсудить здесь какой-либо сайт, найти единомышленников или просто пообщаться...
jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Современные оптимизация кода компиляторами

Сообщение jangle » 16.12.2011 (Пт) 20:57

Где можно почитать про хитрые оптимизации кода компилятором. Гуглится тривиальщина и копипаста. Может есть какие-то секретые доки от разработчиков MS или Intel

FireFenix
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1640
Зарегистрирован: 25.05.2007 (Пт) 10:24
Откуда: Mugen no Sora

Re: Современные оптимизация кода компиляторами

Сообщение FireFenix » 16.12.2011 (Пт) 23:57

Присоединяюсь к вопросу.
Сейчас копаю исходники gcc, пока бесполезно :(
Птицей Гермеса меня называют, свои крылья пожирая... сам себя я укрощаю
私はヘルメスの鳥 私は自らの羽根を喰らい 飼い慣らされる

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Современные оптимизация кода компиляторами

Сообщение Хакер » 17.12.2011 (Сб) 0:49

С какой целью интересуешься?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Re: Современные оптимизация кода компиляторами

Сообщение jangle » 17.12.2011 (Сб) 12:11

Для написания оптимизированного кода. Например ms vc++ не разворачивает циклы с неопределенным количеством параметров, а intel c++ разворачивает. Значит на vc следует избегать таких циклов. Ну в общем понятно что нужно.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Современные оптимизация кода компиляторами

Сообщение Хакер » 17.12.2011 (Сб) 12:12

Так ты уж пожалуйста уточни: тебя интересует сама задача оптимизации, как если бы ты писал свой компилятор, или тебя интересуют техники, которые приводят к оптимальности x86-кода на соотв. Intel-процессоре?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Re: Современные оптимизация кода компиляторами

Сообщение jangle » 17.12.2011 (Сб) 12:23

Меня интересуют техники, которые приводят к максимальной производительности вычислительных задач и обработки строк на x86 процессорах.

FireFenix
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1640
Зарегистрирован: 25.05.2007 (Пт) 10:24
Откуда: Mugen no Sora

Re: Современные оптимизация кода компиляторами

Сообщение FireFenix » 17.12.2011 (Сб) 15:20

jangle писал(а):Меня интересуют техники, которые приводят к максимальной производительности вычислительных задач и обработки строк на x86 процессорах.

Если именно заточка кода к максимально быстродействию под x86, то у интела и у АМД на офф сайтах есть Optimization Manual'ы

типа
http://download.intel.com/design/pentiu ... 281603.pdf
http://download.intel.com/design/Pentiu ... 512701.pdf
Птицей Гермеса меня называют, свои крылья пожирая... сам себя я укрощаю
私はヘルメスの鳥 私は自らの羽根を喰らい 飼い慣らされる

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Re: Современные оптимизация кода компиляторами

Сообщение jangle » 17.12.2011 (Сб) 16:07

Один из вариантов написание оптимального кода, это максимально использовать конвейерную архитектуру современных процессоров.
А это значит надо максимально исключать ветвления в алгоритме, поскольку это разрушает набор команд в кэше процессора и вызывает кэш промахи

FireFenix
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1640
Зарегистрирован: 25.05.2007 (Пт) 10:24
Откуда: Mugen no Sora

Re: Современные оптимизация кода компиляторами

Сообщение FireFenix » 17.12.2011 (Сб) 23:04

Раз тут пошёл разговор о кеше...

Товарищи знатоки, скажите или укажите место, где почитать.
Что происходит с кешем во время запуска программ?
При запуске программы начальный участок программы копирует в самый "жирный" уровень, а уровни пониже используются в ходе работы процессора?
А если учесть, что процессор переключается между процессами/потоками, то после переключения он заново копирует память в кеш? или часть данных оставляет?
И как я понимаю - программного доступа к кешу нету, можно только управлять расположением данных в ОЗУ?
Птицей Гермеса меня называют, свои крылья пожирая... сам себя я укрощаю
私はヘルメスの鳥 私は自らの羽根を喰らい 飼い慣らされる


Вернуться в Народный треп

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 54

    TopList