![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| phprus |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 129 Регистрация: 22.8.2006 Репутация: 1 Всего: 3 |
Доброго времени суток!
Потребовалось оптимизировать расчеты в приложении с использованием современных технологий вида SSE* и подобных. Так как приложение должно работать и на CPU, где таких технологий нет я подумал написать несколько реализаций алгоритмов и вызывать их в зависимости от того, какие функции процессор поддерживает. Но оказалось, что в GCC соответствующие группы intrinsic-функций становятся доступны только при включении соответствующей опции оптимизатора, позволяющей использовать эти инструкции в генерируемом коде, однако глобально для всего приложения мне это не нужно. Подскажите пожалуйста, можно-ли в GCC включить соответствующие intrinsic-функции, но запретить компилятору использовать эти инструкции при работе штатного оптимизатора? И если нет, то возможно-ли в используемой мною системе сборки cmake задавать параметры компилятора для отдельных файлов (чтобы -msse* и подобные действовали только на соответствующие файлы с кодом, а не на весь проект)? |
|||
|
||||
| boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
прочти: http://gcc.gnu.org/ml/gcc-patches/2010-08/msg01417.html
там говорится и о проблемах.. но ветка годовалой версии, и возможно все это дело давно исправлено. |
|||
|
||||
| phprus |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 129 Регистрация: 22.8.2006 Репутация: 1 Всего: 3 |
Также была найдена ссылка на баг http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39840 в котором говориться о том, чего я хочу.
Если я все правильно понял, то GCC это поддерживает совсем не так, как компилятор Intel, а можно сказать что никак. Тогда на первый план выходит вопрос о разных опциях компилятора для разных файлов в cmake. Так как писать все варианты функций полностью на ассемблере мне очень не хочется, а поддержки только компилятора Intel мне недостаточно. |
|||
|
||||
| boostcoder |
|
|||
![]() pattern`щик ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5458 Регистрация: 1.4.2010 Репутация: 49 Всего: 110 |
лучше, напиши свой вопрос в [email protected]. там тебе точно скажут что и как.
и ссылку на трэд выложи плиз. |
|||
|
||||
| phprus |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 129 Регистрация: 22.8.2006 Репутация: 1 Всего: 3 |
В cmake оказывается есть set_source_files_properties http://www.cmake.org/cmake/help/cmake2.6do...iles_properties , при помощи которого можно указывать разные флаги для разных файлов. Это может помочь указывать разные -m* для различных реализаций.
boostcoder С английским у меня к сожалению проблема, говорить на нем не умею, только читаю. |
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 63 Всего: 196 |
||||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |