Разработчики компании Google представили (http://google-opensource.blogspot.com/2008/11/whopr-scalable...) начальную реализацию нового механизма оптимизации для набора компиляторов GCC - WHOPR (http://gcc.gnu.org/wiki/whopr) (WHOle Program optimizeR). Традиционная реализация GCC оперирует только единичными файлами, компиляция которых производится независимо друг от друга, после чего производится связывание готовых объектных файлов в единый исполняемый файл. Данный подход имеет преимущество в том, что процесс сборки легко может быть распараллелен в несколько потоков, одновременно могут компилироваться несколько файлов. Но метод раздельной сборки имеет проблемы в плане оптимизации использования функций, которые, в случае определения в другом файле исходных текстов, не могут быть оптимизированы в зависимости от текущих условий их вызова.
Проект WHOPR реализует альтернативную схему LTO (Link-Time Optimization) оптимизации для GCC, не требующую в отличии от LTO...URL: http://google-opensource.blogspot.com/2008/11/whopr-scalable...
Новость: http://www.opennet.me/opennews/art.shtml?num=19027
useful
Что-то это напоминает :1. этап
# gcc -fprofile-generate -o hello hello.c
2. этап
# sh ./hello3 этап
# gcc -fprofile-use:)
И в чём отличие?!
На правах бреда:-fprofile-use не даёт возможности компилятору, например, подставить функцию из другого модуля в место вызова (inline) или "сократить" какие-нибудь ненужные параметры...
LTO в общем виде позволяет это сделать. Например, так делают icc с ключиком -ipo и llvm. Делает ли подобные фокусы gcc с гуглевскими патчами - вопрос. Надо идти по ссылке ;)
extern inline int блах-блах-блах(){;}
И так для всех функций. Прогрессивный подход.
Правильно, в проекте куча хедеров и один main.c. Только вот тут как раз компилятору будет требоваться куча памяти, а в топике сказано, что вроде как от этого избавились.
А Вы пробовали Linpak для Cell собрать
На самом дохлом Cell ( на 5.7GHz и 16Gb RAM) занимает около 12 часов.http://www.netlib.org/benchmark/hpl/IBM_README.txt
> Note: the "make" takes a *long* time! (e.g. 12 hours)Сколько время займет на Google GCC, и возможно ли это вообще.
Ну возьмите и проверьте :) А то странное какое-то замечание. Вообще я подозреваю, что эту фичу лучше юзать для релизов, а при разработки собирать обычной версией GCC.
Может, это целл такой волшебный, но у меня на amd64 атлас-3.8 собирается 3 часа, а атлас-3.9 - полчаса. И у него там внутри свои очень суровые оптимизации, так что вряд ли от смены компилятора можно получить выигрыш.
> Может, это целл такой волшебныйЗапросто - он как процессор приложений ничего такого крутого из себя не представляет.Если не используются SPE (а gcc когда-то умел ими пользоваться?) - ничего интересного Cell не продемонстрирует.Резонно слив обычным многоядерникам.А вот если софт SPE юзать будет - ну удачи его обогнать, ага.
Обсобенно круть, когда пароли подбирает :)8 потоков, да на 5.7GHz \m/
Кстати, кто надумает в компаниях брать, а может и домой :), - действительно распиареная штука,
без полной переделки софта пока бесполезная трата денег.КПД наверно больше у CUDA + Gforce 8800 GTX
>КПД наверно больше у CUDA + Gforce 8800 GTXа тут переделка софта не требуется? :-D
поживём-увидим... как только nvidia "подарит" сии возможности gcc ;-)
>>КПД наверно больше у CUDA + Gforce 8800 GTX
>
>а тут переделка софта не требуется? :-D
>поживём-увидим... как только nvidia "подарит" сии возможности gcc ;-)Да, но сколько стоит GF8800 и скока Целлка
>8 потоков, да на 5.7GHz \m/Да, какойнить MD5 на таком брутить - одно удовольствие и никакой 4-ядерник его пожалуй не натянет в этом вопросе.
>без полной переделки софта пока бесполезная трата денег.
Стопроцентно.Но у айбиэма грамотные доки на этот счет есть и софт есть (gcc и для основного ядра и для SPE).Так что в некоторых случаях при способности грамотно накодить - оно очень даже вариант.Скажем я могу себе представить как оно заменит ОДНИМ процом горку Xeon-ов кодировавших\декодировавших\шифровавших\расшифровавших видеопоток например.
>КПД наверно больше у CUDA + Gforce 8800 GTX
Без понятия - мне железки от нвидия неинтересны как класс.Извиняюсь, но закрытый блоб как драйвер для "процессора" - это на мое имхо более чем просто маразм.Может еще интель и амд для работы своих процов закрытые дрова будут делать?Наф-наф-наф такое "счастье" =).Я вообще в последнее время политику нвидии не понимаю.
В терминах компилятора Интел - различие между IPO и PGO
А где скачать-то, не найду никак....