Перейти к содержанию
    

предыдущий пост был для тек кто "в танке", для нормальных людей собрал в кучу сборки для хоста x86_64-linux-gnu

runtime сошки лежат в каждой сборке в ./lib64 - их надо прокешировать ldconfig'ом

 

arm-kgp-eabi http://klen.org/Files/DevTools/linux-x86_6...110619.tar.lzma

 

это для тех кто глумится с PIC32

mips-kgp-eabi http://klen.org/Files/DevTools/linux-x86_6...110619.tar.lzma

 

это для тех кто не "в танке" но упорно перед ним бежит и никак не может свернуть

i686-kgp-mingw32 http://klen.org/Files/DevTools/linux-x86_6...110619.tar.lzma

x86_64-kgp-mingw32 http://klen.org/Files/DevTools/linux-x86_6...110619.tar.lzma

 

это для КОМДИВЧИКА 5890ВЕ1Т от предыдущего поста отличается добавкой C++ и Fortran, все собрано с -march=r3000 -mhard-float -ffast-math , с такимиже ключами по умолчанию будет генерится новый код который ВЫ подсуните компиллеру.

comdiv32-kgp-elf http://klen.org/Files/DevTools/linux-x86_6...110619.tar.lzma

 

чето я седня разошелся...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

 

Ура! :08: Наконец-то arm-kgp-eabi научился компилять мои проекты! :08: Теперь у меня есть kgp под линуксом:)

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ура! :08: Наконец-то arm-kgp-eabi научился компилять мои проекты! :08: Теперь у меня есть kgp под линуксом:)

теперь точно пивопровод из Уфы ждать будем!

 

2_Ash_snz

товарищи! отзовитесь что у Вас получилось. Я с дуру в НИИСИ РАН позвонил, пообщался за 5890ВЕ1Т и комдивы вообще. говорят штатно нету С++/Fortran а теперь возможно есть :08: но нада проверить!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2_Ash_snz

товарищи! отзовитесь что у Вас получилось. Я с дуру в НИИСИ РАН позвонил, пообщался за 5890ВЕ1Т и комдивы вообще. говорят штатно нету С++/Fortran а теперь возможно есть :08: но нада проверить!

Вот это во истину влеикие новости!

Наша благодарность не знает границ, времени и пространства :biggrin: . :yeah:

Щас усё опробуем!

 

Основная задача - заставить считать и делать это - БЫСТРО!

Кстати. почему при работе с кешем оптимизации "-О", "-О2" и др. не работают? (они делают бинарник в 2 раза меньше и при переходе на С сегмент дазнт фанкшин)

 

зы мы бы с радостью подогнать проц, но увы...

 

2 не маленьких просьбы:

 

- 2 Klen, научите билдить библиотеки, а то понадобится другой/какой ключ - надо бы самим уметь.

 

- 2 All, Подкиньте ссылочку - где почитать про создание ld файлов?

Изменено пользователем Ash_snz

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Основная задача - заставить считать и делать это - БЫСТРО!

а че? пока даже считать не получается заставить ;)

с быстро ответ класический - какие бы у женщины небыли красивые сиськи - больше чем у нее при себе она вам дать не сможет ;)

 

Кстати. почему при работе с кешем оптимизации "-О", "-О2" и др. не работают? (они делают бинарник в 2 раза меньше и при переходе на С сегмент дазнт фанкшин)

это очень интересно, я бы хотел понять что происходит. дело в том что кеш это аппаратная вещь (за исключением того что иногда есть совершенно боковые инструкции проца по управлению этой штукой на подобии переферийного модуля) и для программы это прозрачно как стекло. если кусок не влез в кеш или промах - проц ждет обмена по шине, на выполнение трассы это никак не влияет, худшее что Вы можете словить - джитер времени выполнения заданного участка кода.

пока ситуация мутная - мне ничего не понятно что происходит. оптимизация тут мне кажется нипричем. после получения бинаря уже низвестно - была эта оптимизация или Вы на асме руками написали - это просто программа в машинных кодах.

жду пояснений также что такое С сегмент - это сегмент чего?

 

зы мы бы с радостью подогнать проц, но увы...

знаю. пирожки с повидлом штучные именные - только для тех детей кто хорошо кушал в течении года, и имеют прописку....

 

2 не маленьких просьбы:

- 2 Klen, научите билдить библиотеки, а то понадобится другой/какой ключ - надо бы самим уметь.

- 2 All, Подкиньте ссылочку - где почитать про создание ld файлов?

какие библиотеки?

билдятся просто - компиляете исходники библиотеки, собираете в либу с помощью утилиты ar. получаете файл с лиьы который можно подлинковывать к проекту

те которые libc и libm - они уже сбилдены, libc автоматом линкуется, для подлинковки libm воткните ключ -lm. но Вы это наверно и без меня знаеет.

 

ненавязчивая рекомендация: пигмеи!!! бросте винду и поставте линукс. будете как люди разработку вести.

 

по поводу ld - ВСЕ ТУТ!! http://sourceware.org/binutils/docs-2.21/ld/index.html

 

я так понимаю что пока Вы это все прочтете потухнет солнце а комдив устаеет. поэтому давайте я Вам помогу сделать ld скрипт - мне хочется на Вас потренироватся с мипсом и скорее узнать результаты, а если все заработает то будете уже сами разбиратся в природе работающих явлений.

сообщите карту адресного пространства проца, флеш то в нем есть или только ОЗУ?

почту тоже неплохо былобы узнать.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Первый билд (mips-kgp-elf-comdiv32-x86_32-20110619.7z) ругается на чем свет:

(standart input): Assembler message:
(standart input): Internal error!
Assertion failure inpute_file_open
../../../../../src/bu/gas/input-file.c line 167
please report this bug.

Второй билд (comdiv32-kgp-elf-20110619.tar.lzma) под линукс, по этому взяли с него только библиотеку(как собственно и с первого) увеличений в быстродействии не получили...

 

а че? пока даже считать не получается заставить

считает. но хотелось бы быстрее ;)

 

зы make может влиять на сборку? а то у нас непойми откуда и зовется cs-make.

Изменено пользователем Ash_snz

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

target arm (AT91SAM7Sxxx), host x86: работает.

Память (с -flto):

new version:

Program: 23464 bytes

(.text + .data + .bootloader)

 

Data: 2416 bytes

(.data + .bss + .noinit)

previous version:

Program: 23668 bytes

(.text + .data + .bootloader)

 

Data: 2412 bytes

(.data + .bss + .noinit)

 

Last version without "-flto":

Program: 29872 bytes

(.text + .data + .bootloader)

 

Data: 3520 bytes

(.data + .bss + .noinit)

 

Только сейчас заметил, что ПЗУ за счёт ОЗУ уменьшилось... не понимаю, что со скриптами.

upd: убрал свои ramfunc

 

ненавязчивая рекомендация: пигмеи!!! бросте винду и поставте линукс. будете как люди разработку вести.

Я полагаю, поведение линкскрипта не меняется от операционной системы?

Изменено пользователем Genadi Zawidowski

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я полагаю, поведение линкскрипта не меняется от операционной системы?

неа, не меняется, одна и таже сборка для разных хостов должна давать байт в байт одинаковый выход - алгоритмы теже, меняется экосистема в которой работаеш.

 

судя по цифрам LTO дает однозначный эффект в плюс.

 

2_Ash_snz

1. то что ругаеся это хорошо - значит дышит.

2. первый раз вижу чтоб бинутилс вываливался - это относительно довольно примитивный инструмент (в данном случае ассемблер). непонятно.

3. дайте контрольный кусок кода - желательно обрезаный по минимуму Ваш проект, после выкидывания всего кроме одной процедуры с вычислениями на плавучке. я соберу - посмотрим асм, и увидим - можно еще быстрее чтото сделать или нет.

 

я перед выкладыванием тестил и под виндой и под линуксом - формулы компилялись с использованием инструкций плавучки. может у Вас тот не мой компиллер

и так все на плавучке делат?

 

я пересоберу для винды полную сборку, первая была пробная

 

в любом случае необходим короткий контрольный пример.

 

ни make ни cs-make повлиять не могут - это всеголиг инструменты, повлиять может содержимое скриптов в которых написано как и что этим инструментам делать. посмотрите в логи компеиляции и линковке - там видны опции компилятора и линкера - это конечная информации которая влияет на выдаваемый код.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Коллеги, а кто как делает ramfunc - и как оно с -flto уживается?

 

Как я понял, секции с именами отличающимися от стандартных при -flto не оптимизируются и не удаляются из результирующего файля (или пару раз копируются в .data).

 

У кого работает - как выглядит линкскрипт и имя секции?

 

Ещё, у кого-нибудь -flto с кортексами дружит? Как помирили?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

освеженная сборка для комдивчика на x86_32 масдай

 

http://klen.org/Files/DevTools/comdiv32-kg..._32-20110622.7z

 

тестовый проект на котором я проверял. для примера реализован функционал квадратурного ЧМ демодулятора.

в примере демострируется совместная компиляция С, С++ и Fortran исходника и залинковывание в один бинарь. Это демострация того что можно например перемешивать в одном проекте вычислительные библиотеки на фортране, GUI написанные на С++ и например системные и иные библиотеки реалисзованные на С. Какой другой не GCC компиллер позволит сделать теже действия ?

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

 

http://klen.org/Files/DevTools/comdiv32_c_...fortran_test.7z

 

 

есть вопросы по обходу глюков инструкции cvt если она идет за abs neg mov. но подозреваю что это старые кристаллы и может быть проблема сейчас не актуальна. в любом случае можно будет добавит окучивание этой неприятности если она вдруг окажется в наличии.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ещё, у кого-нибудь -flto с кортексами дружит? Как помирили?

У меня не заработало. Размер убавился изрядно, но результат не дышит.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У меня не заработало. Размер убавился изрядно, но результат не дышит.

у меня тоже с LTO весело - кода становится больше но работает!!! :)

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

 

... если полумать то что мешает из либ разложить функции на ровном столе и правильно отсортировать... нада смотреть код LTO!

 

 

неее... у меня нынче LTO не работает, при линковке выкидывает:

lto1.exe: error: FPA is unsupported in the AAPCS

 

у меня не собирается, у Вас собирается.. где разница вот в чем вопрос. я ликеру и компиллеру -flto добавил, мож чтот еще нада ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

у меня не собирается, у Вас собирается.. где разница вот в чем вопрос. я ликеру и компиллеру -flto добавил, мож чтот еще нада ?

Ещё зачем-то надо передать линкеру уровень оптимизации:

ifeq ($(USE_LTO),YES)
    CFLAGS    += -flto
    CXXFLAGS    += -flto
    LD_FLAGS    += -flto $(OPTIMIZE)
endif

 

lto1.exe: error: FPA is unsupported in the AAPCS

lto1.exe?! А как же

ненавязчивая рекомендация: пигмеи!!! бросте винду и поставте линукс. будете как люди разработку вести.

? :biggrin:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

не помогло

у меня также lto1 ругается - FPA is unsupported in the AAPCS

пытаюсь понять смысл и куда лезть

 

.. понял

 

с незапямятных времен в тестовом проекте остался ключ линкеру -mfpu=fpa, компиллеру когдато убрал а линкеру нет и оно работало до сейчас.

теперь lto1.exe просто падает :) это уже приятней - хоть понятно что происходит, известно куда ковырять

 

Ещё зачем-то надо передать линкеру уровень оптимизации:

попробывал на MIPS в частности на сборке для комдива - подтверждаю

линкеру зачемто это нужно - без проталкиваня ключа оптимизации размер наооборот больше чем без LTO

это надо будет происследовать...

 

 

 

ОБЪЯВЛЕНИЕ:

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

 

FORTRAN в армах ктонибудь реально использует? были случаи?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

НАсчёт архива сборок... Где смотреть? На страничке http://klen.org/Projects/Embeded-gnu-tools...cc_archive.html только новости от 2006 года...

 

Маленький код с -flto с кортексом - у меня аналогично - в результат попадает только стартап, остальное, похоже, опитмизируется в ноль как суетное и бесполезное...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...