Russian Qt Forum
Ноябрь 23, 2024, 00:33
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Разное
>
Говорилка
>
Расширения процессоров
Страниц:
1
[
2
]
3
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Расширения процессоров (Прочитано 20501 раз)
Old
Джедай : наставник для всех
Offline
Сообщений: 4350
Re: Расширения процессоров
«
Ответ #15 :
Октябрь 23, 2014, 10:11 »
Цитата: __Heaven__ от Октябрь 23, 2014, 10:07
Предположу, что у вас 4 физ ядра. Быть может HyperThreading внёс как-то свою роль? (Не знаю, на каком уровне он работает.)
Была бы какая нибудь XP, можно было бы предположить, что венда не умеет какие технологии i7, в то время как linux умеет. Но у m_ax семерка.
Записан
m_ax
Джедай : наставник для всех
Offline
Сообщений: 2095
Re: Расширения процессоров
«
Ответ #16 :
Октябрь 23, 2014, 10:36 »
Для чистоты эксперимента, нужно попробовать воспроизвести эту ситуацию на другой машине с теми же осями..
Есть комп (проц AMD FX 8350) с линуксом (компилятор gcc 4.8.2) но винды нет. Нужно на него винду 7 рядышком поставить и посмотреть что там будет..
На днях попробую, потом отпишусь о результатах)
Записан
Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..
Arch Linux Plasma 5
kuzulis
Джедай : наставник для всех
Offline
Сообщений: 2812
Re: Расширения процессоров
«
Ответ #17 :
Октябрь 23, 2014, 10:36 »
Гы. А Linux 64bit? А Windows 64 bit? А приложение скомпилено и там и там под 32/64 бит? А размер оперативки <= / >= 4 GB (а сколько доступно системе?)? А жесткие диски одинаковые (или на одном диске две системы)?
«
Последнее редактирование: Октябрь 23, 2014, 10:39 от kuzulis
»
Записан
ArchLinux x86_64 / Win10 64 bit
m_ax
Джедай : наставник для всех
Offline
Сообщений: 2095
Re: Расширения процессоров
«
Ответ #18 :
Октябрь 23, 2014, 10:46 »
Цитата: kuzulis от Октябрь 23, 2014, 10:36
Гы. А Linux 64bit? А Windows 64 bit? А приложение скомпилено и там и там под 32/64 бит? А размер оперативки <= / >= 4 GB (а сколько доступно системе?)? А жесткие диски одинаковые (или на одном диске две системы)?
Да, обе оси 64 bit, оперативки 8 GB (дело не в памяти), обе оси на одном диске (но это тоже не должно влиять..))
Записан
Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..
Arch Linux Plasma 5
__Heaven__
Джедай : наставник для всех
Offline
Сообщений: 2130
Re: Расширения процессоров
«
Ответ #19 :
Октябрь 23, 2014, 10:53 »
Цитата: m_ax от Октябрь 23, 2014, 10:36
Для чистоты эксперимента, нужно попробовать воспроизвести эту ситуацию на другой машине с теми же осями..
Есть комп (проц AMD FX 8350) с линуксом (компилятор gcc 4.8.2) но винды нет. Нужно на него винду 7 рядышком поставить и посмотреть что там будет..
На днях попробую, потом отпишусь о результатах)
m_ax
, можно вас заранее попросить сделать замер с -march=native и без него?
Рад бы сам поэксперементировать, но нет возможности.
Записан
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Расширения процессоров
«
Ответ #20 :
Октябрь 23, 2014, 10:59 »
Цитата: m_ax от Октябрь 22, 2014, 22:45
Давно заметил такую вещь: На работе комп core i7 2600, две оси: винда 7 и linux.. Один и тот же код скомпилированный под линуксом (gcc 4.8.2) отрабатывает быстрее в 4 раза чем под виндой (mingw, не помню какая там версия: идёт с Qt 5.1).. В коде используется std::thread, причём никаких дата рейсингов нет - полное 100 процентное распараллеливание.. Я, допускаю, конечно, разницу в раза полтора, но чтоб в четыре..
В общем, забил я после этого на винду и на работе) Или в чём может быть причина?
А в 30-40 раз не хотели?
Вчера писал тот пример с табличным методом на MSVC, и наивно вызвал std::lower_bound - время в 4 раза
больше
Вашего. Там какая-то ужасная реализация std
Записан
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Расширения процессоров
«
Ответ #21 :
Октябрь 23, 2014, 11:07 »
Цитата: __Heaven__ от Октябрь 23, 2014, 10:53
m_ax
, можно вас заранее попросить сделать замер с -march=native и без него?
Рад бы сам поэксперементировать, но нет возможности.
"Включение бубочек" не даст какого-то принципиального прироста, ну выиграете порядка 10%, это не компенсирует неудобств с версионностью. Нужно затачивать приложение под инструкции. Напр низкоуровневая обработка имеджа - там получается здорово, в разы.
Записан
m_ax
Джедай : наставник для всех
Offline
Сообщений: 2095
Re: Расширения процессоров
«
Ответ #22 :
Октябрь 23, 2014, 12:23 »
Цитата: __Heaven__ от Октябрь 23, 2014, 10:53
m_ax
, можно вас заранее попросить сделать замер с -march=native и без него?
Рад бы сам поэксперементировать, но нет возможности.
Попробовал сравнить время с такими опциями (под линуксом gcc 4.8.2):
-m64 -pipe -march=native -O2 -std=c++11
и без -march=native:
-m64 -pipe -O2 -std=c++11
Результат один и тот же..
А вот если вместо -O2 выставить -Ofast, результат уже ощутим) у меня примерно в 1.22 раза быстрее с -Ofast
Записан
Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..
Arch Linux Plasma 5
__Heaven__
Джедай : наставник для всех
Offline
Сообщений: 2130
Re: Расширения процессоров
«
Ответ #23 :
Октябрь 23, 2014, 12:55 »
Цитата: m_ax от Октябрь 23, 2014, 12:23
А вот если вместо -O2 выставить -Ofast, результат уже ощутим) у меня примерно в 1.22 раза быстрее с -Ofast
Так, на всякий случай выложу
Цитировать
-Ofast: Новое в GCC 4.7, состоит из -O3 плюс -ffast-math, -fno-protect-parens, и -fstack-arrays. Этот параметр нарушает строгое соответствие стандарту, и не рекомендуется для использования.
Записан
Alex Custov
Джедай : наставник для всех
Offline
Сообщений: 2063
Re: Расширения процессоров
«
Ответ #24 :
Октябрь 23, 2014, 23:46 »
Цитата: __Heaven__ от Октябрь 22, 2014, 13:51
А какие компиляторы под виндой могут использовать аналог gcc -march=native?
В cmd выполнил mingw32-make --help. Опций оптимизации не нашёл. Поиск в гугле тоже не помог...
MinGW - это порт GNU утилит и не более того. minw32-make - это аналог make, а не gcc (который идёт под тем же именем что и в линуксе - gcc, g++ и т.д.). Опции оптимизации gcc соответственно абсолютно те же что и для линукс версии.
«
Последнее редактирование: Октябрь 23, 2014, 23:48 от Alex Custov
»
Записан
__Heaven__
Джедай : наставник для всех
Offline
Сообщений: 2130
Re: Расширения процессоров
«
Ответ #25 :
Октябрь 24, 2014, 11:54 »
Цитата: Alex Custov от Октябрь 23, 2014, 23:46
Цитата: __Heaven__ от Октябрь 22, 2014, 13:51
А какие компиляторы под виндой могут использовать аналог gcc -march=native?
В cmd выполнил mingw32-make --help. Опций оптимизации не нашёл. Поиск в гугле тоже не помог...
MinGW - это порт GNU утилит и не более того. minw32-make - это аналог make, а не gcc (который идёт под тем же именем что и в линуксе - gcc, g++ и т.д.). Опции оптимизации gcc соответственно абсолютно те же что и для линукс версии.
А как тогда настраивать gcc под виндой? Так понимаю, что установка CXXFLAGS должна помочь?
Записан
Alex Custov
Джедай : наставник для всех
Offline
Сообщений: 2063
Re: Расширения процессоров
«
Ответ #26 :
Октябрь 24, 2014, 18:37 »
Цитата: __Heaven__ от Октябрь 24, 2014, 11:54
А как тогда настраивать gcc под виндой? Так понимаю, что установка CXXFLAGS должна помочь?
Так как это предлагает используемый тобой тулкит или менеджер проектов (типа cmake). В qmake это можно сделать как-то так
Код:
win32-g++ {
QMAKE_CXXFLAGS += -Ofast
QMAKE_LFLAGS += -Wl,--no-undefined
}
Записан
m_ax
Джедай : наставник для всех
Offline
Сообщений: 2095
Re: Расширения процессоров
«
Ответ #27 :
Октябрь 30, 2014, 20:09 »
И так, поставил сегодня рядышком винду 8.1..
Проц: AMD FX 8350
Результаты теста у меня такие:
Linux (gcc 4.8.2)
(с ключом -Ofast) total time: 120 sec
(с ключом -O2) total time: 146 sec
Win 8.1 (gcc 4.8.2 (i686-w64-mingw32))
(с ключом -Ofast) tatal time: 240 sec
(с ключом -O2) total time: 845 sec
Для винды ключик -Ofast ускоряет аж чуть больше чем в 3.5 раза.. (не хило так)
Но всё равно под виндой результаты (240 sec) уступают в два раза, аналогичным замерам под линуксом (120 sec)..
В принципе, могу исходники приаттачить.. Может я что-то не правильно делаю)
«
Последнее редактирование: Октябрь 30, 2014, 20:11 от m_ax
»
Записан
Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..
Arch Linux Plasma 5
__Heaven__
Джедай : наставник для всех
Offline
Сообщений: 2130
Re: Расширения процессоров
«
Ответ #28 :
Октябрь 30, 2014, 21:36 »
Очуметь!
Спасибо за тесты.
Записан
m_ax
Джедай : наставник для всех
Offline
Сообщений: 2095
Re: Расширения процессоров
«
Ответ #29 :
Октябрь 30, 2014, 21:48 »
Цитата: __Heaven__ от Октябрь 30, 2014, 21:36
Очуметь!
Спасибо за тесты.
Да не за что)
Но ещё раз повторюсь, это только в моём конкретном случае (типичная числодробилка, расспараллеленная на 8 потоков), где вся нагрузка идёт на вычисления с double..
Записан
Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..
Arch Linux Plasma 5
Страниц:
1
[
2
]
3
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...