Введение
Intel впервые использовала термин Hyper-Threading при объявлении процессора Pentium 4 “Northwood” на частоте 3,06 ГГц и Xeon MP “Foster” в 2002 году. Эта технология является проприетарной для Intel, основная цель заключается в улучшении использования процессора через увеличение параллельной нагрузки. У последнего процессора Core i7-980X с шестью физическими ядрами технология Hyper-Threading удваивает количество ядер до 12 виртуальных ядер на настольных ПК.
В результате возникает вопрос: может ли программное обеспечение получить преимущество от более чем восьми потоков? Как технология Hyper-Threading сказывается на эффективности энергопотребления? И не имеет ли больше смысла придерживаться шести физических ядер вместо того, чтобы рисковать распределением потоков многопоточных приложений на виртуальные ядра?
Нажмите на картинку для увеличения.
Процессор Intel Gulftown (Intel Core i9-980X Extreme) поддерживает технологию Hyper-Threading, обеспечивая 12 виртуальных ядер. Однако преимущество по производительности мы обнаружили лишь в немногих специфических приложениях.
История Hyper-Threading
Позвольте нам начать с того, что объявление Hyper-Threading было фактически необходимым: поскольку у процессоров поколения Pentium 4 использовался очень длинный конвейер, было очень важно увеличивать тактовые частоты, чтобы сохранять конвейер постоянно занятым. По этой причине Intel продублировала блоки, которые хранят архитектурное состояние, в результате чего ядро процессора с поддержкой Hyper-Threading выглядело для операционной системы как два логических ядра. Планировщик мог одновременно распределять на выполнение два потока или процесса, и если система предсказания ветвлений Intel работала хорошо, это гарантировало эффективную загрузку и выполнение инструкций.
Преимущества для Pentium 4 заключались, в основном, в повышенной отзывчивости системы на одноядерных процессорах и небольшом приросте производительности в некоторых приложениях. Впрочем, это касается настольных ПК. В серверах, где параллельное выполнение давно стало ключевой особенностью, технология Hyper-Threading показала себя намного лучше.
С появлением процессоров Core 2 технология Hyper-Threading исчезла, но Intel решила вернуть её с архитектурой Nehalem, которая является основой для всех современных процессоров Core i7, i5 и i3 – включая только что объявленный 6-ядерный Core i7-980X.
Впрочем, ситуация сегодня совсем иная. AMD сегодня уже не может давить на Intel в производительном сегменте, да и технология Hyper-Threading превратилась в приятный бонус, различающий разные линейки процессоров, чем в обязательную для реализации новинку. Действительно, есть ли смысл в Hyper-Threading, когда процессор и так имеет шесть физических ядер?
Мы решили сравнить четырёхъядерный Core i7-975 и новый шестиядерный Core i7-980X, оценить производительность процессоров и эффективность энергопотребления с нашими обновлёнными тестами.
Как работает Hyper-Threading
Если у Pentium III длина конвейера составляла 10 ступеней, то у процессора Pentium 4 она была увеличена до 20 ступеней у ядер Willamette (180 нм) и Northwood (130 нм). У последующего ядра Prescott (90 нм) длина конвейера увеличилась до 31 ступени. И последние процессоры на архитектуре NetBurst, а именно 65-нм Cedar Mill, сохраняли данную структуру конвейера.
Базовая идея конвейера заключается в том, чтобы разбить выполнение на независимые ступени, а добавление ступеней в конвейер приводит к более высокой производительности выполнения программ, особенно на высоких тактовых частотах. Однако если конвейер частично пустой, или он заполнен ошибочными инструкциями (из-за неверных предсказаний ветвления, например), то мы получим падение производительности. Самым важным фактором является как раз ветвление в программах, когда блок предсказания ветвления CPU пытается “угадать” ту или иную ветвь кода, чтобы заранее загрузить все нужные инструкции.
Длинные конвейеры Prescott и Cedar Mill из 31 ступени очень сильно зависели от эффективной рабочей загрузки. Поэтому Intel добавила так называемый блок переигрывания/replay, который позволял процессору прерывать операции, ошибочные отправленные на выполнение, и повторно выполнять их, когда будут соблюдены должные условия выполнения.
Все процессоры Core i7 и большинство моделей Core i5 для верхнего сегмента массового рынка поддерживают Hyper-Threading. Нажмите на картинку для увеличения.
Сегодня блок Hyper-Threading позволяет физическому ядру выглядеть как два логических. Причём технически возможно реализовать Hyper-Threading с большим количеством логических блоков. Если ресурсы выполнения не загружены текущей задачей, то планировщик процессора может выполнить ещё какие-либо задачи, чтобы повысить эффективность выполнения или предотвратить простой конвейера из-за неверного предсказания ветвлений, промахов кэша или других причин.
Всё, что нужно для Hyper-Threading – поддержка SMP (symmetrical multi processing) в вашей платформе и операционной системе. Впрочем, таковая поддержка стала обязательной ещё во времена Windows NT.
В прошлом мы видели, как технология Hyper-Threading обеспечивает дополнительную производительность, но также сказывается и на энергопотреблении. Приложения с интенсивной многопоточной нагрузкой обычно могут выигрывать от нескольких виртуальных ядер и одновременного выполнения нескольких потоков. В отличие от обычных программ, которые в той или иной степени оптимизированы под использование нескольких ядер.
Программы, оптимизированные под многопоточность
Intel предоставила список программ, оптимизированных под многопоточность. Мы знакомы со многими программами (если не с большей частью списка), но мы не проверяли детально, сколько потоков могут использовать эти программы. Помните, что список предоставлен Intel, и он перечисляет любые приложения, которые могут выиграть от многопоточности. Мы отметили программы, присутствующие в нашем тестовом пакете звёздочкой. Игры мы не стали включать, поскольку преимущество от множества ядер будет видно только в случае поддержки ускорения физики или сложной системы просчёта искусственного интеллекта. Подавляющее большинство современных игр получат больший прирост от установки быстрой видеокарты, чем от перехода на 4 или 6 вычислительных ядер, не говоря уже о 12 потоках.
Игры, игровые движки и прочие движки
- Activision Ghostbusters
- Capcom Lost Planet Colonies
- Capcom Resident Evil 5
- CJ Internet Prius Online
- Codemasters GRID (with patch)
- Codemasters Operation Flashpoint: Dragon Rising
- Crytek Crysis Warhead (Windows XP only)
- EA Need for Speed: SHIFT
- Havok SDK v5.5 (Tool / Middleware)
- Illuminate Labs Beast 5 (Tool/Middleware)
- Geomerics Enlighten
- Kingsoft Mission Against Terror
- Kingsoft JX Online III
- NC Soft Aion
- NC Soft Lineage II
- Neowiz Alliance of Valiant Arms
- Sega Football Manager 2009
- Sega Football Manager 2010
- Sega Empire: Total War (with patch)
- Simul Software Ltd Simul Weather (Middleware)
- THQ Relic Company of Heroes
- Trinigy Vision Engine v7 (Middleware)
- Ubisoft Assassin’s Creed
- Ubisoft Far Cry 2 (with patch)
- Ubisoft HAWK
- Ubisoft World in Conflict: Soviet Assault
- Winking Sakura
Приложения мультимедиа и продуктивности
- Abbyy Fine Reader
- Adobe After Effects
- Adobe Photoshop *
- Adobe Photoshop Lightroom
- Adobe Premiere Pro
- Arcsoft Total Media Showbiz DVD
- AutoDesk 3ds Max *
- Autodesk Maya
- Avid Pinnacle Studio
- Bibble Labs Bibble
- Blender
- Cakewalk Sonar Producer
- Cineform Prospect HD
- Corel DVD Factory in Digital Studio
- Corel Video Studio
- Cyberlink MediaShow & MediaShow Espresso
- Cyberlink Power Director
- Cyberlink Power Producer
- HandBrake *
- Ichikawa Soft Laboratory SILKYPIX
- Kolor Autopano Pro & Giga
- Magix Video Deluxe / Movie Edit Pro
- Main Concept Reference Encoder and Decoder *
- Maxon Cinema 4D & Cinebench *
- Microsoft Excel
- Microsoft Expressions Encoder
- Microsoft Windows Live Movie Maker
- Movavi Video Converter
- Nero Multimedia Suite
- Newtek Lightwave
- Nik Software Silver Efex Pro
- On2 Technology True Motion VP8
- Pegasys TMPEGEnc Xpress
- Persistence of Vision Raytracer
- Photodex Proshow Gold
- RARLAB WinRAR*
- Sonic Roxio Creator
- Sonic Solutions Cineplayer
- Sony ACID Music Studio
- Sony Sound Forge Audio Studio
- Sony Sound Forge Pro
- Sony Vegas Pro
- Sony Acid Pro
- Sorenson Media Squeeze
- Steinberg Cubase
- Steinberg Nuendo
- VirtualDub w/Divx
- XtraSens Retina
- 3ivx MPEG-4
Конечно, список не претендует на абсолютный охват: мы обнаружили, что Intel не указала в нём утилиту 7-Zip, которую мы добавили в наш тестовый набор из-за её великолепной эффективности в многопоточном окружении.
Тестовая конфигурация
Аппаратное обеспечение | |
Материнская плата (Socket LGA1156) | Gigabyte EX58-UD4P (Rev. 1.0), чипсет: Intel X58, BIOS: F12 (02/11/2009) |
CPU Intel | Intel Core i7 Extreme 975 (45 нм, 3,33 ГГц, 4x 256 кбайт кэша L2 и 8 Мбайт кэша L3, TDP 130 Вт, Rev. D0) |
CPU Intel II | Intel Core i7 Extreme 980X (32 нм, 3,33 ГГц, 6x 256 кбайт кэша L2 и 12 Мбайт кэша L3, TDP 130 Вт) |
Память DDR3 | 3x 2 Гбайт DDR3-1600 (Corsair TR3X6G-1600C8D 8-8-8-24) |
Видеокарта | Sapphire Radeon HD 5850, GPU: Cypress (725 МГц), видеопамять: 1024 Мбайт GDDR5 (2000 МГц), потоковые процессоры: 1440 |
Жёсткий диск | Western Digital VelociRaptor, 300 Гбайт (WD3000HLFS), 10 000 об/мин, SATA/300, кэш 16 Мбайт |
Блок питания | PC Power & Cooling, Silencer 750EPS12V 750 Вт |
Операционная система и драйверы | |
Операционная система | Windows 7 Ultimate x64, обновлена 3 марта 2010 |
Драйверы и настройки | |
Intel Chipset Drivers | Chipset Installation Utility Ver. 9.1.1.1025 |
Intel Storage Drivers | Matrix Storage Drivers Ver. 8.9.0.1023 |
Синтетические тесты
Технология Hyper-Threading не влияет на арифметическую производительность.
256-битное шифрование AES в пакете Sandra 2010 Pro на новом процессоре выполняется намного быстрее, что связано с поддержками новых инструкций Intel AES.
Шифрование SHA256 не ускоряется за исключением того, что у Core i7-980X работают шесть ядер вместо четырёх. Технология Hyper-Threading, опять же, сказывается слабо.
Общая пропускная способность памяти у четырёхъядерного процессора чуть выше. Hyper-Threading здесь тоже не играет особой роли.
3DMark и PCMark Vantage
Результат CPU даёт существенную разницу по синтетической производительности процессоров. Четырёхъядерный процессор с технологией Hyper-Threading и восемью логическими ядрами почти что достигает производительности нового шестиядерного Gulftown.
Итоговый результат 3DMark показывает преимущества CPU с активной технологией Hyper-Threading. Улучшение можно приравнять к двум или трём приростам множителя Turbo Boost.
Тесты кодирования аудио/видео
Утилита iTunes по-прежнему не содержит оптимизации под множество вычислительных ядер. Впрочем, это не так и необходимо: на диаграмме показано время, необходимое для преобразования полного 74-минутного Audio CD в формат Apple AAC.
То же самое касается и последней версии кодировщика Lame: мы не видим заметного преимущества от поддержки Hyper-Threading.
Мы использовали кодировщик Mainconcept для преобразования видеоролика MPEG-2 Full-HD в формат H.264. В данном случае технология Hyper-Threading оказала существенное влияние на обоих процессорах, и вы можете сэкономить весьма заметное время при подобной нагрузке.
Утилита Handbrake тоже приятно масштабируется на дополнительных ядрах, она выигрывает от Hyper-Threading. Впрочем, преимущество Hyper-Threading на новом процессоре Gulftown не так и велико.
Офисные приложения и архивация
Создание документов PDF с помощью Adobe Acrobat через PowerPoint 2007 не выигрывает по времени от наличия Hyper-Threading. Либо для подобной нагрузки вычислительной мощности CPU уже более чем достаточно, либо Acrobat попросту не может её использовать – или мы упёрлись в ограничения пропускной способности, поскольку исходный файл довольно крупный.
Мы наблюдаем серьёзные преимущества в архиваторе 7-Zip.
Архиватор WinRAR оптимизирован под многопоточность, но не так сильно. Мы обнаружили, что Hyper-Threading на самом деле является недостатком, поскольку сжатие наших тестовых файлов при отключении Hyper-Threading на процессорах Bloomfield и Gulftown выполнялось быстрее.
Архиватор WinZIP пока не оптимизирован под поддержку нескольких ядер, что становится очевидным, стоит посмотреть на время сжатия. Файлы мы используем те же самые, что и в тесте WinRAR.
Профессиональные приложения
3DS Max также показывает впечатляющий прирост производительности при включении Hyper-Threading. Дополнительный прирост производительности, который мы видим, можно получить только довольно существенным увеличением тактовой частоты.
При использовании только одного ядра технологию Hyper-Threading можно включать или выключать – на результат это не влияет. Но давайте посмотрим на многопоточную версию теста.
Многопоточная версия теста Cinebench 11.5 демонстрирует прекрасный прирост производительности при включении Hyper-Threading.
Photoshop CS4 хорошо масштабируется при добавлении физических ядер. Впрочем, технология Hyper-Threading не очень сильно ускоряет нашу нагрузку с интенсивным использованием многопоточности.
Шахматная программа Fritz прекрасно показывает, на что способна Hyper-Threading в наиболее благоприятных условиях: больше логических ядер дают дополнительную производительность.
Энергопотребление
Энергопотребление при выключенной технологии Hyper-Threading оказывается ниже, но разница мизерная.
Результаты пикового энергопотребления весьма интересны, поскольку обе конфигурации при выключении Hyper-Threading начинают потреблять намного меньше энергии. Если ваше приложение может давать существенный прирост производительности с Hyper-Threading, то включать технологию нужно. Иначе лучше оставить её выключенной.
Наш тест эффективности включает все приложения, которые мы привели выше. Сначала мы оценим общую затраченную энергию, а затем – среднее энергопотребление. Далее мы рассчитаем эффективность (соотношение производительности на ватт) с активной и неактивной Hyper-Threading.
Суммарная потреблённая энергия, которая потребовалась на выполнение нашего теста, оказалась на шестиядерном процессоре ниже при отключённой технологии Hyper-Threading, но что касается четырёхъядерного процессора, то там энергия оказалась ниже с активной Hyper-Threading. Вполне понятно, что у шестиядерных процессоров возникают проблемы, поскольку лишь немногие приложения могут использовать такое количество логических ядер.
Среднее энергопотребление оказалось явно ниже при выключенной технологии Hyper-Threading.
Эффективность (производительность на ватт)
Наш прогон эффективности состоит из последовательного выполнения тестовых приложений.
Если взглянуть на суммарное время выполнения тестовых приложений, то Hyper-Threading даёт преимущества по сравнению с обычной конфигурацией. В случае Core i7-975 мы обнаружили, что Hyper-Threading имеет большее значение, чем у шестиядерного Core i7-980X. Дело в том, что лишь немногие приложения могут существенно выигрывать от шести дополнительных логических ядер.
Разница по финальному результату эффективности довольно мала. В случае нашей нагрузки Hyper-Threading улучшает общую производительность, но также увеличивает энергопотребление до уровня, снижающего общую эффективность. Важно помнить, что несколько тестов не выигрывают от многопоточного окружения. Иначе бы технология Hyper-Threading могла бы дать улучшенную эффективность. Для настольных и многих обычных приложений имеет смысл выключать Hyper-Threading и активировать эту технологию только тогда, когда нужно запустить требовательное приложение, которое сможет выиграть от функции Hyper-Threading.
Нажмите на картинку для увеличения.
Диаграмма эффективности показывает, сколько энергии требуется каждой конфигурации в тот или иной момент выполнения нашей нагрузки. Здесь же мы видим, какая конфигурация справилась с нашей задачей быстрее.
Заключение
Intel последовательно внедряет поддержку Hyper-Threading в свои high-end процессоры. Наш анализ показывает, что многие приложения действительно могут существенно выиграть от дополнительных ядер – пусть даже это будут только логические ядра. Приложения, интенсивно использующие расчёты, такие как шахматная программа Fritz, 3DSmax, Cinebench, Mainconcept или 7-zip, выигрывают значительно. Даже серьёзный прирост тактовой частоты не смог бы дать схожий прирост производительности (если, конечно, не заниматься экстремальным разгоном). В этом отношении технология Hyper-Threading прекрасно справляется со своей работой, ещё сильнее увеличивая производительность там, где она нужна больше всего.
Однако подобный тип приложений не очень широко распространён на настольных ПК, поэтому наш итог будет иным. Большинство приложений, которые мы использовали в статье, просто не могут получить преимущество от дополнительных ядер. Шесть ядер Gulftown уже обеспечивают значительную производительность, и будет технология Hyper-Threading включена или выключена, типичный настольный ПК не даст особой разницы – за исключением энергопотребления. Включение Hyper-Threading приводит к повышению пикового энергопотребления под нагрузкой. То есть перед нами ещё один аргумент – технологию Hyper-Threading можно отключать, чтобы снизить пиковое энергопотребление системы.
В итоге эффективность с технологией Hyper-Threading на четырёхъядерном процессоре Intel Core i7-975X увеличивается, поскольку многие приложения хорошо масштабируются вплоть до восьми ядер. Но у нового Core i7-980X пользы от Hyper-Threading мало, мы даже получили небольшое снижение эффективности. Большинству пользователей лучше оставить технологию Hyper-Threading на шестиядерном процессоре выключенной. И включать её только в тех приложениях, где она действительно будет нужна.