Оптимизация исходников при компиляции
Приветствую!
Интересиют оптимизация исходников ядра и софта при компиляции. Как это
можно зделать? Какие опции оптимизации посоветуете для камня Athlon XP
2400+? Дистр - Mdk10.1
За последние 60 дней ни разу не выходила
Сайт листа:
http://www.linuxrsp.ru
Открыт:
25-07-2003
Пре-модерация: Нет
Адрес для писем в лист: comp.soft.linux.discuss-list@subscribe.ru
Адрес
модератора: comp.soft.linux.discuss-owner@subscribe.ru
Приветствую!
Интересиют оптимизация исходников ядра и софта при компиляции. Как это
можно зделать? Какие опции оптимизации посоветуете для камня Athlon XP
2400+? Дистр - Mdk10.1
Hi ZevS! On Sun, Dec 12, 2004 at 08:22 +1000, you wrote:
:)) Светлая голова и прямые руки :)
А как эту переменную указать? Ядро тоже так компилить? Есть еще
какие-нить опции чтобы задействовать доп. возможности камня?
Sun, 12 Dec 2004 13:18:09 +0500 ко мне пришло письмо, в котором...
АРТ <art@v*****.ru> писал(а):
export CFLAGS="-mcpu=athlon-xp -march=athlon-xp"
В некоторых исходниках нужно в Makefile указать вместо
CFLAGS = "что-то" - так твоя переменная не используется
CFLAGS += "что-то" - а так используется
-march - флаг указывающий компилятору на команды вашего процессора.
-mcpu - флаг указывающий на оптимизацию получаемого кода под
особенности конкретного процессора
Например если программа откомпилина с "-march=i486 -cpu=athlon-xp" то
она будет запускаться на всех камнях не ниже i486 (на 486 уже не
пойдет:)) а на athlon-xp она продемонстрирует свою наивысшую
производительность, хотя не будет пользоваться многими специфичными
командами athlon-xp процессоров.
Если с "-march=athlon-xp -mcpu=athlon-xp" то она не будет запускаться на
других процессорах кроме athlon-xp (и на некоторых duron'ах), даже на
Pentium 4.
Конечно. Если есть желание то можешь и сам компилятор перекомпилить с
оптимизацией, только тут есть небольшой подводный камень:
mcpu -->mtune (вроде)
man gcc
Hi ZevS! On Mon, Dec 13, 2004 at 22:21 +1000, you wrote:
Скомпилил ядро с ключами -mcpu=athlon-xp -march=athlon-xp -mmx -m3dnow
-O3. Оно все это проглатило даже не ругавшись. Стал собирать софт с
этими же ключами и он начал ругаться на компилятор. Оказалось, что ключа
-mmx не существует, вместо него есть ключ -mmmx. Почему ядро не
ругалось? Что-то я сомневаюсь, что оно собралось с этими ключами. Можно
как-нибудь проверить?
Я состарюсь и ослепну прежде чем все это прочитаю. Да и в процессорах я
не разбираюсь.
АРТ wrote:
В документации к ядру написано куда прописывать эти опции чтобы при
сборке они были задействовваны. Там же написано про оптимизацию по
умолчанию. Проверить - сохранить вывод ядра при компиляции в лог и
посмотреть какие флаги использовались реально.
Andrew Gusev
-*Название листа "Linux: разрешение вопросов, перспективы и общение";
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Адрес правил листа http://subscribe.ru/catalog/comp.soft.linux.discuss/rules
Номер письма: 14306; Возраст листа: 507; Участников: 1275
Адрес сайта рассылки: http://www.linuxrsp.ru
Адрес этого письма в архиве: http://subscribe.ru/archive/comp.soft.linux.discuss/msg/280099
-*Информационный канал Subscribe.Ru
Подписан адрес:
Код этой рассылки: comp.soft.linux.discuss
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Отписаться: mailto:comp.soft.linux.discuss--unsub@subscribe.ru?subject=comp.soft.linux.discuss
http://subscribe.ru/ http://subscribe.ru/feedback
Hi Andrew Gusev! On Tue, Dec 14, 2004 at 01:22 +0300, you wrote:
Вы хотя бы сказали путь до этой доки. Многое посмотрел, но про
оптимизацию не нашел.
В ядрах 2.6.X? Они вроде ничего кроме
CC drivers/ide/pci/generic.o
LD drivers/ide/pci/built-in.o
CC drivers/ide/ide.o
CC drivers/ide/ide-default.o
CC drivers/ide/ide-io.o
CC drivers/ide/ide-iops.o
CC drivers/ide/ide-lib.o
не выводят.
АРТ wrote:
Да я тоже только упоминание об этом нашел в Documentation/Changes, хотя
вроде где-то об этом много было написано.
Нашел статью
http://www.openna.com/documentations/articles/kernel/part3.php, где
автор для этих целей редактирует Makefile, но остается вопрос принимимо
ли это к сегодняшним ядрам. При конфигураци там есть вопросы по которым
и должны определяться опции -mcpu(-mtune) -mmarch.
Andrew Gusev
-*Название листа "Linux: разрешение вопросов, перспективы и общение";
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Адрес правил листа http://subscribe.ru/catalog/comp.soft.linux.discuss/rules
Номер письма: 14340; Возраст листа: 508; Участников: 1276
Адрес сайта рассылки: http://www.linuxrsp.ru
Адрес этого письма в архиве: http://subscribe.ru/archive/comp.soft.linux.discuss/msg/280709
-*Информационный канал Subscribe.Ru
Подписан адрес:
Код этой рассылки: comp.soft.linux.discuss
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Отписаться: mailto:comp.soft.linux.discuss--unsub@subscribe.ru?subject=comp.soft.linux.discuss
http://subscribe.ru/ http://subscribe.ru/feedback
Доброго времени суток.
On Mon, 13 Dec 2004 22:21:18 +1000
ZevS <subscribe***@y*****.ru> wrote:
Ээ, тут случайно очепятки нет? Я так понимаю, что на 486 с этим флагом должно
идти, иначе в чем их смысл?
А что касается более новых процессоров AMD (Sempron, Athlon64, Opteron) - на
них же, наверное, будет?
Mon, 13 Dec 2004 23:52:58 +0200 ко мне пришло письмо, в котором...
Rygoravich <rygoravi***@o*****.info> писал(а):
Действительно тут опячатка "на 386 уже не пойдет"
Athlon64 - это уже совсем другая архитектура, хотя новые процы знают все
команды предыдущих покалений -> запускаться будут
Так же можно использовать только march=athlon-xp - тогда
mtune=athlon-xp будет считаться по дефолту.
Здравствуйте, ZevS.
Вы писали 13 декабря 2004 г., 22:21:18:
Здравствуйте, товарищи.
Не совсем понятно, если я оптимизирую под конкретный процессор (athlon-xp),
и мне не нужна поддержка других камней зачем указывать -mcpu=. Свой Дженту
я собирал с CFLAGS="-march=athlon-xp -fomit-frame-pointer -O3 -pipe".
Вопрос для Джентулюбов. При сборки ядра флаги оптимизации будут взяты из
/etc/make.conf, или должны быть указаны в ручную? Вообще, при сборке
программ без помощи партежей, будет действовать /etc/make.conf?
У меня есть замечательная русскоязычная дока по GCC, с описанием всех
опций оптимизации, автор сам товарищ Столлман (великий теоретик и
основатель гну идеологии). Кому интересно, могу выслать в личку.
Владимир Власенко пишет на днях:
Пришлите пожалуйста мне:
satur***@m*****.ru
-*Название листа "Linux: разрешение вопросов, перспективы и общение";
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Адрес правил листа http://subscribe.ru/catalog/comp.soft.linux.discuss/rules
Номер письма: 14367; Возраст листа: 509; Участников: 1272
Адрес сайта рассылки: http://www.linuxrsp.ru
Адрес этого письма в архиве: http://subscribe.ru/archive/comp.soft.linux.discuss/msg/281360
-*Информационный канал Subscribe.Ru
Подписан адрес:
Код этой рассылки: comp.soft.linux.discuss
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Отписаться: mailto:comp.soft.linux.discuss--unsub@subscribe.ru?subject=comp.soft.linux.discuss
http://subscribe.ru/ http://subscribe.ru/feedback
В Чтв, 16/12/2004 в 02:46 +0500, saturas пишет:
И мне :) Будте так добры :)
kasper_w***@m*****.ru
-*Название листа "Linux: разрешение вопросов, перспективы и общение";
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Адрес правил листа http://subscribe.ru/catalog/comp.soft.linux.discuss/rules
Номер письма: 14371; Возраст листа: 509; Участников: 1274
Адрес сайта рассылки: http://www.linuxrsp.ru
Адрес этого письма в архиве: http://subscribe.ru/archive/comp.soft.linux.discuss/msg/281416
-*Информационный канал Subscribe.Ru
Подписан адрес:
Код этой рассылки: comp.soft.linux.discuss
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Отписаться: mailto:comp.soft.linux.discuss--unsub@subscribe.ru?subject=comp.soft.linux.discuss
http://subscribe.ru/ http://subscribe.ru/feedback
Здравствуйте, ZevS.
Вы писали 12 декабря 2004 г., 1:22:31:
Не подскажете ли, как влияет на производительность использование обоих
флагов, ведь, насколько знаю, mcpu - это с возможностью запускать на
более ранних моделях, что, по идее, должно увеличивать обьём кода, и ,
возможно, уменьшать производительность, а march - без этой
возможности.
По отдельности вроде ясно, а вместе?
ЗЫ не нашёл в гугле:(
ЗЗЫ
Вообще, флагов оптимизации много. --fomit-frame-pointer, развёртка
циклов, 3dnow для athlon. И ещё много чего. Ищите в манах и гугле. Я,
помнится, даже на русском находил, только ссылку не помню:(.
У меня проц Pentium4 3Ghz с HT.Че мне стоит поставить в CFLAGS?
И еще..я чето слышал про ntpl но так и не понял че это за феня...че это такое?
Дистр у меня Gentoo Linux
Hi Andrey I. Klaus! On Mon, Dec 13, 2004 at 10:19 +0300, you wrote:
А вместе компилятор стал ругать, что вместо mcpu надо использовать mtune или
march.
Tue, 14 Dec 2004 20:10:13 +0500 ко мне пришло письмо, в котором...
АРТ <art@v*****.ru> писал(а):
раньше использовался mcpu, а в последних версиях компилятора этот флаг
переименовали в mtune
Sun, 12 Dec 2004 00:05:34 +0500 ко мне пришло письмо, в котором...
АРТ <art@v*****.ru> писал(а):
На счет оптимизации исходников низнаю:) Но вот компилить с оптимизацией
получаемого кода для конкретного процессора можно указав в
переменной CFLAGS="-mcpu=athlonxp -march=athlonxp"