Является ли HyperThreading / SMT ошибочной концепцией?

Основная идея HT / SMT состояла в том, что, когда один поток останавливается, другой поток на том же ядре может использовать остальную часть времени простоя этого ядра и работать с ним прозрачно.

В 2013 году Intel отказалась от SMT в пользу неупорядоченного исполнения для своих процессорных ядер Silvermont, поскольку они обнаружили, что это дало лучшую производительность.

ARM больше не поддерживает SMT (по энергетическим причинам). AMD никогда не поддерживал это. В дикой природе у нас все еще есть различные процессоры, которые поддерживают его.

С моей точки зрения, если данные и алгоритмы создаются для того, чтобы избежать ошибок кэша и последующей остановки обработки любой ценой, конечно, HT является избыточным фактором в многоядерных системах? Хотя я понимаю, что переключение контекста сопряжено с небольшими накладными расходами, поскольку дискретное аппаратное обеспечение двух HyperThreads существует в одном физическом ядре, но я не вижу, что это лучше, чем переключение контекста вообще.

Я предлагаю что нибудьнеобходимость для HyperThreading указывает на ошибочный дизайн программного обеспечения. Есть ли что-то, что я здесь скучаю?

Ответы на вопрос(4)

Ваш ответ на вопрос