Вопрос № 144671: Инструкции SSE и многопроцессорность (многоядерность). Уважаемые господа, помогите пожалуйста разобраться в проблеме. Есть процессор с 4-мя ядрами. Программа запускает 4 потока заставляя каждый поток работать только на одном процессоре (Process...
Вопрос № 144.671
Инструкции SSE и многопроцессорность (многоядерность). Уважаемые господа, помогите пожалуйста разобраться в проблеме. Есть процессор с 4-мя ядрами. Программа запускает 4 потока заставляя каждый поток работать только на одном процессоре (ProcessorAffinity). Программа производит вычисления (в данном случае ищет максимум по массиву float). Итак 4 потока работающие на соответствующем номере процессора, каждый считает максимум в массиве при помощи инатрукций SSE (массивы не пересекаются), Результат 2800 мсек. Объем
данных небольшой, а время выполнения получается очень большое. По этому я решил потестировать и вместо метода с использованием SSE1, вызываю метод FPU в нескольких потоках прикрепленных к определенному процессору, результат получился 250 мсек (разница на порядок). Я снова включил метод SSE1 но убрал процессорные потоки, и все выполняю в одном потоке без привязки к ядру, результат: 500 мсек. Я включил FPU и все выполняю в одном потоке без привязки к ядру,
результат: 600 мсек. Получается что SSE не может одновременно работать на нескольких ядрах (разница с FPU на порядок), однако время выполнения в одном потоке не привязанном к процессору при помощи SSE получается выше чем время выполнения в одном потоке при помощи FPU. А время работы на нескольких ядрах при помощи SSE непомерно велико (блокировок нет). Поясните мне пожалуйста, неужели нельзя работать с SSE на нескольких ядрах одного процессора одновременно? Или в чем причина такого странного поведения
системы? Может что-то с кэшированием?
Отправлен: 22.09.2008, 16:29
Вопрос задал: Andrik77 (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 10)
Отвечает: Airyashov
В данном случае причина: либо логика вашей программы, либо неправильно используете SSE. Без кода труно что-то комментировать, но fpu явно медленнее работает. Мне интересна ваша задача, если нужен результат вот координаты.
airyashov@inbox.ru icq: 317748666
Ответ отправил: Airyashov (статус: 8-ой класс)
Ответ отправлен: 22.09.2008, 16:47