Если сравнить все параметры, будет понятно что разница только в --param "l2-cache-size=8192" и --param "l2-cache-size=20480". И это как оказалось настоящая дилемма.
Тестовый бенчмарк показывает просадку из-за такой сборки (получается что она не нативна).
Задача в сборку гцц ../gcc_5_2_0_release/configure --prefix=/opt/gcc52_haswell --enable-languages=c,c++ --disable-multilib --with-cpu-64=haswell --with-arch-64=haswell --with-tune-64=haswell добавить ключ --param "l2-cache-size=20480". Т.е. я имею ввиду чтобы при подгруженном гцц52_хасвель оно по умолчанию там уже было
Гугл не помогает.
Может кто-то знает как?
это имеет значение когда я собираю под какую-либо целевую систему?
centos 7.1.1503
3.10.0-229.20.1.rt56.141.14.el7.centos.x86_64
все целевые системы такие, только процы разнятся.
базовая система centos 7.2.1511 (обновленная) со стоковым ядром 3.10.0-327.4.4.el7.x86_64
delvin-fil: я не согласен. ты же можешь сделать gcc -march=haswell -еще_куча_ключиков test.c.
у тебя оно соберется под конкретную систему, т.е. на своем westmere ты это не сможешь запустить.
если собрать гцц с преключами, а потом сделать gcc -march=native c путями этого гцц ты получишь разницу только в 1ом параметре от тех ключей с которыми ты этот гцц собрал, а именно l2-cache-size. но я нигде в конфигуре гцц не нашел как задать --param. нет там речи об этом. читал официальный ман.
delvin-fil: ну я и так могу в мейк запихнуть все флаги. суть в том что сборщик у челов qbs, и плодить они n кол-во qbs (читай мейк) файлов не хотят. хотят просто несколько окружений. вот я и бьюсь
alexander sm1ly: Хехе. Это совсем не то. Это файл конфигуратора ./configure. Я же предлагаю попробовать во вновь созданный конфигуратором Makefile вставить.
Вот даже как... itmages.ru/image/view/3981585/c34aeec9
Это сконфигуреный midnight commander - строчка CFLAGS без param, но с l2-cache-size.
Попробуйте "вручную добавить.
delvin-fil: вот мой мейк файл (с --param "l2-cache-size=20480") paste.org.ru/?ydplju (аккуратно, почти метр текста) в случае если использую -l2-cache-size=20480, то ошибка:
/usr/bin/ld: cannot find -l2-cache-size=20480
/usr/bin/ld: cannot find -l2-cache-size=20480
collect2: error: ld returned 1 exit status
я туда все воткнул? для таргета же?
оно еще собирается, ждем пока.
alexander sm1ly:
Эммм... У ld как бы другой параметр. Вот что говорит help
-z common-page-size=SIZE Set common page size to SIZE
-z max-page-size=SIZE Set maximum page size to SIZE
-z stacksize=SIZE Set size of stack segment
Посмотрите, man ld, ибо это уже и не gcc.
delvin-fil: если откроете ссылку на мейк, увидите что я в таргетовой части изменил CFlags на --param etc, до этого делал как советовали просто -l2-cache-size и оно так ругнулось.
alexander sm1ly: Я пас.
Вот за что я и не люблю "пакетные" дистрибутивы! В Gentoo/LFS/BSD указываешь целевую архитектуру в make.conf и все собирается нормально. Главное префиксы не давать в /usr/bin, чтоб собственную систему не запороть. А бубунты/альты/сюзи/федоры/сенты - как то не по мне.
Извиняюсь за оффтоп.
delvin-fil: так тут суть в том, что я собираю гцц 5.* на данном хосте с ключами по умолчанию (мтюн марч) для того чтобы оно мне билдило для другой системы. и я боюсь в генте ты тоже так не сможешь.
тут соль в том что когда ты экспортишь путь - то march=native - выдаст все ключи.
гента рулит. мелланокс под ней не едет только(
alexander sm1ly:
Mellanox? Так оно вроде(помидорами не закидывать - не знаю точно) под винду заточено больше.
В Gentoo DISTCC рулит. Но он с Mellanox действительно не совместимо.
delvin-fil: ненене. www.mellanox.com/page/products_dyn?product_family=...
mellanox это low latency (в нашем случае) сетевые карточки. так же у них есть оффлоадер (kernel bypass) libvma. аналог - openonload (для solarflare). так вот. для корректной работы libvma нужны официальные дрова от мелланокса (на ссылке выше, внизу есть вкладка downloads, можете глянуть поддерживаемые дистры).
там мало того что под генту оно не собирается, оно в последней версии не собирается на рт ядро центоса (только архивную можно). а для феди никакая версия под рт не собирается.