SSE и поточная обработка hyper

Я не уверен, какова проблема, но я вполне уверен, это зафиксирует ее.

for (i=0; i<arrChecks.length; i++)
    {
        var attribute = arrChecks[i].getAttribute("xid")
        if (attribute == elementName)
        {
            if (arrChecks[i].checked == 0)  
            {
                arrChecks[i].checked = 1;
            } else {
                arrChecks[i].checked = 0;
            }

        } else {
            arrChecks[i].checked = 0;
        }
    }
6
задан 9 October 2009 в 07:29
поделиться

2 ответа

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

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

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

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

5
ответ дан 10 December 2019 в 02:50
поделиться

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

4
ответ дан 10 December 2019 в 02:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: