Вопрос

Регистры SSE совместны или дублированы между логическими процессорами (гиперкопотения)? Могу ли я ожидать такого же ускорения от параллелизации для тяжелой программы SSE, что и для нормальной программы (Intel требует 30% для процессоров с гиперкотимом)?

Это было полезно?

Решение

Мне неясно из документации Intel, если процессоры гиперподборов поделились файлом регистра между потоками или имеют два разных (я бы предположил, что они на самом деле различны, так как в противном случае время переключения контекста между потоками HT было бы довольно высоким, но это исключительно. догадка).

Что касается ускорения - это будет зависеть от вашего микса инструкций и планирования. Помните, что ЦП HT не имеет дополнительных ресурсов выполнения (ALU, единицы загрузки/хранилища и т. Д.), Повышение производительности связано с улучшением использования этих ресурсов, поскольку типичный код, особенно на современном процессоре, тратит разумную сумму Время заблокировано в ожидании загрузки памяти и хранилища, которые будут завершены до выполнения. HT позволяет чередовать эти нагрузки и хранилища, чтобы один из одного потока на чтение на чтение можно было включить и начать использовать ресурсы выполнения, которые ранее сидели.

Я предполагаю, что какое повышение производительности вы увидите с помощью многопоточной программы SSE, будет зависеть от отношения памяти OPS к арифметическим OPS. Если, например, ваша программа SSE загружает 4 регистра SSE из памяти, выполняет 10 000 операций SSE на них, а затем записывает 4 регистра обратно, вы вряд ли увидите большую часть преимущества от HT, способного перекрывать доступ к памяти, потому что 99% ваших программ времени выполнения будут потрачены в Simd Alus, а не на доступ к памяти.

С другой стороны, если ваша программа очень тяжелая, то многопоточная программа может значительно повысить производительность на многоядерных процессорах и может дать вам намного лучше, чем улучшение 30%, поскольку в этом случае ваш код может получить доступ к полным ресурсам выполнения несколько ядер одновременно.

Другие советы

Они логически дублированы - каждый поток получает свое собственное состояние. Физически они могут быть переданы - зависит от вашей реализации гиперподбота.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top