Доброго времени суток!
Столкнулся с проблемой, которую пока непонятно как оптимально решить. Итак,
есть программа на С, которая в основном занимается тем, что выполняет
вычисления с плавающей точкой. Время ее работы критично и поэтому приходится
крутить параметры компилятора на предмет оптимизаций под определенные
процессоры. Hо процессоров разных много, а пользователям хотелось бы
продложить на выбор не более 4-5 разных бинарников, оптимизированных под
разные _группы_ процов. Вот тут и возникает проблема, как составить такие
группы.
Если просмотреть на возможные значения параметра -march в gcc-4.3, то там их
приличное количество: i386,i486,i586,
pentium,pentium-mmx,pentiumpro,i686,pentium2,pentium3,
pentium3m,pentium-m,pentium4,
pentium4m,prescott,nocona,core2,k6,k6-2,k6-3,athlon, athlon-tbird,athlon-4,
athlon-xp, athlon-mp,k8, opteron, athlon64, athlon-fx,k8-sse3, opteron-sse3,
athlon64-sse3,amdfam10, barcelona,winchip-c6,winchip2,c3,c3-2,geode.
Все они, как я понимаю, различаются в том числе наборами инструкций и может
получиться так, что собрав прогу для одного проца, она не запустится на
другом.
Мне же нужно, чтобы определенная версия проги гарантированно запустилась на
процах определенной группы и про этом была оптимизированна для них. Hо не
совсем понятно какой критерий выбрать для разбивки процессоров на гуппы.
Видимо нужно смотреть, какие поддерживаются наборы инструкций (SSE, SSE2,
etc?), полезных для работы с числами с плавающей точкой?
По крайней мере одну группу я знаю как составить точно - это процы с x86
набором без расширений (или с ММХ). Бинарник с такими инструкциями запустится
на всём чём угодно.
Возможно еще одну группу можно составить по критерию поддержки набора SSE2?
Просто SSE мне не годится, так как в проге используются только double числа.
Что скажете?
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от calculator
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от alexsaa
Ответ на:
комментарий
от Rarruga
Ответ на:
комментарий
от alexsaa
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум [ELF? FatELF?] Один бинарник на несколько похожих процессоров (2010)
- Форум Проц (2007)
- Форум Хоккеисты разбились... (2011)
- Форум Разбить винт (2010)
- Форум Разбить СХД (2013)
- Форум разбить диапазон (2013)
- Форум Разбить pdf (2009)
- Форум Разбил фотик. (2007)
- Форум разбить винт (2008)
- Форум мобильник разбился... (2008)