Russian Qt Forum
Апрель 23, 2024, 13:06 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 [2] 3   Вниз
  Печать  
Автор Тема: Расширения процессоров  (Прочитано 19677 раз)
Old
Джедай : наставник для всех
*******
Online Online

Сообщений: 4349



Просмотр профиля
« Ответ #15 : Октябрь 23, 2014, 10:11 »

Предположу, что у вас 4 физ ядра. Быть может HyperThreading внёс как-то свою роль? (Не знаю, на каком уровне он работает.)
Была бы какая нибудь XP, можно было бы предположить, что венда не умеет какие технологии i7, в то время как linux умеет. Но у m_ax семерка.
Записан
m_ax
Джедай : наставник для всех
*******
Online Online

Сообщений: 2094



Просмотр профиля
« Ответ #16 : Октябрь 23, 2014, 10:36 »

Для чистоты эксперимента, нужно попробовать воспроизвести эту ситуацию на другой машине с теми же осями..
Есть комп (проц AMD FX 8350) с линуксом (компилятор gcc 4.8.2) но винды нет. Нужно на него винду 7 рядышком поставить и посмотреть что там будет..

На днях попробую, потом отпишусь о результатах)
 
 
Записан

Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..

Arch Linux Plasma 5
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #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
Джедай : наставник для всех
*******
Online Online

Сообщений: 2094



Просмотр профиля
« Ответ #18 : Октябрь 23, 2014, 10:46 »

Гы. А Linux 64bit? А Windows 64 bit? А приложение скомпилено и там и там под 32/64 бит? А размер оперативки <= / >= 4 GB (а сколько доступно системе?)? А жесткие диски одинаковые (или на одном диске две системы)? Улыбающийся
Да, обе оси 64 bit, оперативки 8 GB (дело не в памяти), обе оси на одном диске (но это тоже не должно влиять..))
Записан

Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..

Arch Linux Plasma 5
__Heaven__
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2130



Просмотр профиля
« Ответ #19 : Октябрь 23, 2014, 10:53 »

Для чистоты эксперимента, нужно попробовать воспроизвести эту ситуацию на другой машине с теми же осями..
Есть комп (проц AMD FX 8350) с линуксом (компилятор gcc 4.8.2) но винды нет. Нужно на него винду 7 рядышком поставить и посмотреть что там будет..

На днях попробую, потом отпишусь о результатах)
 
 
m_ax, можно вас заранее попросить сделать замер с -march=native и без него?
Рад бы сам поэксперементировать, но нет возможности.
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #20 : Октябрь 23, 2014, 10:59 »

Давно заметил такую вещь: На работе комп 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 Offline

Сообщений: 11445


Просмотр профиля
« Ответ #21 : Октябрь 23, 2014, 11:07 »

m_ax, можно вас заранее попросить сделать замер с -march=native и без него?
Рад бы сам поэксперементировать, но нет возможности.
"Включение бубочек" не даст какого-то принципиального прироста, ну выиграете порядка 10%, это не компенсирует неудобств с версионностью. Нужно затачивать приложение под инструкции. Напр низкоуровневая обработка имеджа - там получается здорово, в разы.
Записан
m_ax
Джедай : наставник для всех
*******
Online Online

Сообщений: 2094



Просмотр профиля
« Ответ #22 : Октябрь 23, 2014, 12:23 »

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 Offline

Сообщений: 2130



Просмотр профиля
« Ответ #23 : Октябрь 23, 2014, 12:55 »

А вот если вместо -O2 выставить -Ofast, результат уже ощутим) у меня примерно в 1.22 раза быстрее с -Ofast
Так, на всякий случай выложу
Цитировать
-Ofast: Новое в GCC 4.7, состоит из -O3 плюс -ffast-math, -fno-protect-parens, и -fstack-arrays. Этот параметр нарушает строгое соответствие стандарту, и не рекомендуется для использования.
Записан
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #24 : Октябрь 23, 2014, 23:46 »

А какие компиляторы под виндой могут использовать аналог gcc -march=native?
В cmd выполнил mingw32-make --help. Опций оптимизации не нашёл. Поиск в гугле тоже не помог...

MinGW - это порт GNU утилит и не более того. minw32-make - это аналог make, а не gcc (который идёт под тем же именем что и в линуксе - gcc, g++ и т.д.). Опции оптимизации gcc соответственно абсолютно те же что и для линукс версии.
« Последнее редактирование: Октябрь 23, 2014, 23:48 от Alex Custov » Записан
__Heaven__
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2130



Просмотр профиля
« Ответ #25 : Октябрь 24, 2014, 11:54 »

А какие компиляторы под виндой могут использовать аналог gcc -march=native?
В cmd выполнил mingw32-make --help. Опций оптимизации не нашёл. Поиск в гугле тоже не помог...

MinGW - это порт GNU утилит и не более того. minw32-make - это аналог make, а не gcc (который идёт под тем же именем что и в линуксе - gcc, g++ и т.д.). Опции оптимизации gcc соответственно абсолютно те же что и для линукс версии.

А как тогда настраивать gcc под виндой? Так понимаю, что установка CXXFLAGS должна помочь?
Записан
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #26 : Октябрь 24, 2014, 18:37 »

А как тогда настраивать gcc под виндой? Так понимаю, что установка CXXFLAGS должна помочь?

Так как это предлагает используемый тобой тулкит или менеджер проектов (типа cmake). В qmake это можно сделать как-то так

Код:
win32-g++ {
    QMAKE_CXXFLAGS += -Ofast
    QMAKE_LFLAGS += -Wl,--no-undefined
}
Записан
m_ax
Джедай : наставник для всех
*******
Online Online

Сообщений: 2094



Просмотр профиля
« Ответ #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 Offline

Сообщений: 2130



Просмотр профиля
« Ответ #28 : Октябрь 30, 2014, 21:36 »

Очуметь!

Спасибо за тесты.
Записан
m_ax
Джедай : наставник для всех
*******
Online Online

Сообщений: 2094



Просмотр профиля
« Ответ #29 : Октябрь 30, 2014, 21:48 »

Очуметь!

Спасибо за тесты.
Да не за что)
Но ещё раз повторюсь, это только в моём конкретном случае (типичная числодробилка, расспараллеленная на 8 потоков), где вся нагрузка идёт на вычисления с double.. 
Записан

Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..

Arch Linux Plasma 5
Страниц: 1 [2] 3   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.058 секунд. Запросов: 23.