Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > C/C++/С#


Ответ
 
Опции темы Опции просмотра
Старый 30.12.2012, 11:25   #1 (permalink)
Abraziv
Member
 
Регистрация: 28.07.2011
Сообщений: 275
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 193
По умолчанию SSE перемножение матриц

Все привет, есть код перемножения матриц на с++:

for(int j = 0; j < SIZE ; j++)
{
for(int i = 0; i < SIZE; i++)
{
for(int t = 0; t < SIZE; t++)
{
temp += A[j][t]*B[t][i];
}
file_result << temp;
file_result << " ";
temp = 0;
}
file_result << endl;
}

Подскажите пожалуйста, как оптимизировать с помощью SSE .
Прочитал про саму концепцию , про функции intrinsics , но в упор не вижу как это оптимизировать. Есть 8 регистров XMM по 128 бит , возможно загрузить 4 данных в 4 части ( по 32 бита) в один из MMX и как то работать. Для матрицы 4*4 всё понятно, загружаем один раз и перемножаем с чем угодно сколько потребуется. А тут как ? Хотя бы на пальцах объясните.
Abraziv вне форума   Ответить с цитированием

Старый 30.12.2012, 11:25
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Форум наполнен схожими обсуждениями

Samsung N220 Plus, совместимость матриц
Взаимозаменяемость матриц
Матрица. Как записать матрицу, составленную из трёх единичных матриц?
Обработка матриц. Паскаль
Обработка матриц

Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 13:16.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.