Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.08.2016, 17:10   #1
m3g4z0rdEX
Пользователь
 
Регистрация: 14.10.2015
Сообщений: 17
По умолчанию Вопрос по SSE

Доброго времени суток господа, вопрос такой:
Написал я значит, положим функцию умножения матриц на SSE / AVX, затем мне понадобилось умножить 4 матрицы, естественно каждое умножение я делаю отдельно, вопрос в том, а что будет, если я в каждом отдельном потоке буду выполнять эту функцию, которая внутри написана с SSE / AVX ?
Т.е у меня 8 ядер, хочу умножить 8 матриц параллельно, и с тем же преимуществом что дал мне SSE. Это возможно ? Будет ли прирост производительности ?
m3g4z0rdEX вне форума Ответить с цитированием
Старый 14.08.2016, 18:11   #2
Pavia
Лис
Старожил
 
Аватар для Pavia
 
Регистрация: 18.09.2015
Сообщений: 2,409
По умолчанию

Цитата:
Т.е у меня 8 ядер, хочу умножить 8 матриц параллельно,
Богатенький Буратино. Где вы процессор хай-енд класса достали?
А может вам напели про 8 ядер и вы поверили?
Ускорение будет. Но что-бы сказать во сколько раз, надо точно знать характеристики вашего процессора.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал .

Последний раз редактировалось Pavia; 14.08.2016 в 18:29.
Pavia вне форума Ответить с цитированием
Старый 14.08.2016, 20:48   #3
m3g4z0rdEX
Пользователь
 
Регистрация: 14.10.2015
Сообщений: 17
По умолчанию

Каюсь, 4 ядра, а процессор i7 4750HQ, 2ghz.
Но в целом, речь идет о общем ускорении
m3g4z0rdEX вне форума Ответить с цитированием
Старый 14.08.2016, 20:50   #4
m3g4z0rdEX
Пользователь
 
Регистрация: 14.10.2015
Сообщений: 17
По умолчанию

В своем вопросе я имею ввиду использование и сопроцессора и многопоточности.
m3g4z0rdEX вне форума Ответить с цитированием
Старый 14.08.2016, 21:21   #5
Pavia
Лис
Старожил
 
Аватар для Pavia
 
Регистрация: 18.09.2015
Сообщений: 2,409
По умолчанию

m3g4z0rdEX
http://www.intel.com/content/www/us/...on-manual.html
У вас 4 ядра. Согласно документации у вас в каждом ядре по своему конвейеру. В каждом конвейер по 2 порта, поддерживающих SSE и в каждом порту по 2 юнита для неспаренных команд. И SSE выполняет операции над вектором до 4 чисел.

Так что в вашем случае производительность будет 4*2*2*(2|4).


Что касается 8 потоков, на 4 ядра - HT. То можете не мечтать в вашем случае код скорее всего уже оптимизирован и влезьте в очередь конвейера практически невозможно. Но в принципе HT неплохо работает когда процессор скачет из класса в класс по абстракциям каркаса/движка.
Так что тут зависит от вашего каркаса. В вашем случае скорее всего HT даст отрицательный результат, так как код у вас оптимизирован.
Поэтому больше чем не получите 4*2*2*(2|4).
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал .

Последний раз редактировалось Pavia; 14.08.2016 в 21:27.
Pavia вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
SSE. Подение программы Bummmm Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 9 04.09.2013 18:58
SSE инструкции + ликбез Kukurudza Общие вопросы C/C++ 4 10.04.2012 19:26
оптимизация SSE ANsy Мультимедиа в Delphi 1 01.02.2011 20:08
статья - Введение в SSE Pblog Обсуждение статей 0 23.06.2010 05:13
SSE intrinsics C++ qpharm Общие вопросы C/C++ 1 13.11.2009 12:57