Member
Статус: Не в сети Регистрация: 08.07.2010 Откуда: VRN
nedelhof писал(а):
Не совсем так. Ядро способно выполнять за такт одинаковое количество инструкций, независимо от HT. Просто выполнение потоков при HT идет с чередованием. Если в одном из потоков происходит сбой (ошибка предсказания перехода, например), то второй поток грузит ядро по полной, ресурсы не простаивают. Два потока динамически делят ресурсы, получается.
правильно! если бы HT позволял выполнять в два раза больше инструкций за такт, то тогда 2600к должен быть быстрее 2500к на равных частотах в многопоточных приложениях как минимум в 2 раза (как минимум потому что кеш все-таки побольше)
Member
Статус: Не в сети Регистрация: 25.02.2008 Откуда: Ижевск
nedelhof писал(а):
Просто выполнение потоков при HT идет с чередованием.
Правда? Не чередование, а параллельные вычисления. В FAQ опять же есть, не надо "изобретать колесо". Для применения технологии необходимы оптимизированная ОСь, процессор с поддержкой HT, BIOS/UEFI c поддержкой HT и, самое главное, рассчитанное/оптимизированное под многопоточность приложение.
Member
Статус: Не в сети Регистрация: 23.11.2010 Откуда: DE
izhrunner писал(а):
Правда? Не чередование, а параллельные вычисления. В FAQ опять же есть, не надо "изобретать колесо".Для применения технологии необходимы оптимизированная ОСь, процессор с поддержкой HT, BIOS/UEFI c поддержкой HT и, самое главное, рассчитанное/оптимизированное под многопоточность приложение.
Извините, но два предложения в FAQ мало отражают принцип работы HT. Параллельно - не значит одновременно. Если говорить строго, то есть блоки процессора, которые исполняют потоки по очереди, по тактам (весь фронт конвейера, планировщик), а есть те, которые делятся динамически между потоками (ФУ, кэши). При промахе или ожидании данных в одном из потоков второй может на некоторые время использовать ресурсы целиком. Если потоки работают с разными вычислительными блоками, достигается наибольший выигрыш производительности, потому что нет "конкуренции" между потоками. Вот подробнее про работу HT в Nehalem и Sandy Bridge:
Цитата
Hyper-Threading
Разделение между потоками блоков и стадий конвейера: Дублируются: TLB L1I для стр. по 2 МБ, IQ, RSB, IDQ, архитектурное состояние ядра, АРФ для старших половин ymm; Делятся пополам: TLB L1I для стр. по 4 КБ, L0m, ROB, обе очереди в LSU, буфер простого предзагрузчика в L1 (?); Делятся динамически: BTB, резервация, все ФУ, вся подсистема памяти (кроме её блоков, указанных выше); Чередуются по тактам (кроме случаев срыва одного из потоков): все стадии фронта, размещение мопов в планировщике и отставка.
Поясним, что такое «делятся динамически»: это значит, что блок не знает о существовании двух потоков и никак бы не изменился, если бы в ЦП не было многопоточности. Это особенно наглядно в случае планировщика: ROB делится между потоками, т. к. надо соблюдать очерёдность размещений и отставок соответственно адресам каждого потока. Но когда мопы попадают в резервацию, адресов в них уже нет, а есть номера ячеек в ROB и ФРФ. Учитывая, что некий регистр-приёмник N при переименовании получит в одном потоке физический регистр X, а в другом — Y (что равносильно двум записям в N в одном потоке), то резервации всё равно, чьи мопы одновременно запускать, а для ФУ всё равно, чьи исполнять.
Наличие дублируемых и статически делящихся пополам ресурсов и чередование потоков по всей поочерёдной части конвейера говорит о том, что лучше всего Nehalem и SB чувствуют себя при исполнении пары почти одинаковых по объёму кода потоков. Причём если это 2 одинаковых потока, то обеспечить загрузку разных ФУ и прочих динамически разделяемых блоков будет трудно — общий алгоритм будет спотыкаться примерно в тех же местах, даже работая с разными данными. А подобрать две разные программы с примерно одинаковом темпом использования кода может оказаться ещё труднее — тем более, что это всецело зависит от ядра ОС, которая почти ничего не знает о внутренних событиях ЦП и загрузке его блоков.
Возможно, Intel не использовала динамическое разделение в TLB L1I (как в остальных TLB, особенно, учитывая, что сам кэш L1I разделяется так же), потому что его нет и у кэша мопов, а эти две структуры при вытеснении срабатывают одновременно. Впрочем, глядя на список пункта «Делятся пополам» (а в этих блоках, напомним, 3 цифры размеров из 4 в SB увеличились), можно сделать вывод, что ускорение от включения HT если не увеличится, то хотя бы с меньшей вероятностью станет отрицательным, что изредка бывало у Nehalem.
Member
Статус: Не в сети Регистрация: 25.02.2008 Откуда: Ижевск
nedelhof писал(а):
два предложения в FAQ мало отражают принцип работы HT... ...Вот подробнее про работу HT в Nehalem и Sandy Bridge:
Супер ремарка! Позволю себе пояснить лишь следующее: 1. FAQ - от "Наиболее часто задаваемые вопросы", а принципы работы HT - как раз наиболее редко задаваемый на таком уровне в данной теме. 2. При цитировании сторонних статей принято давать ссылки на первоисточник. Не ЭТОТ случайно? Если да, то забыли процитировать самое главное:
Цитата:
Какие изменения в реализации этой технологии — также не было раскрыто, поэтому будем отталкиваться от того, что́ на этот счёт известно из описания Nehalem... ...Проверить это можно будущими тестами.
Результаты тестов по Sandy есть? Будут - добро пожаловать А пока закрыли вопрос.
Подскажите пожалуйста, только не кидайте помидорами, проц 2500к, пока его не гнал, просто протестил LinX, в нагрузке множитель становился х34, так и должно быть? не должен ли он быть х37?
Member
Статус: Не в сети Регистрация: 23.11.2010 Откуда: DE
izhrunner писал(а):
FAQ - от "Наиболее часто задаваемые вопросы", а принципы работы HT - как раз наиболее редко задаваемый на таком уровне в данной теме.
Если уж на то пошло, то то, что написано про HT в FAQ вообще вводит в заблуждение и необъективно. Например "В большинстве случаев HT не дает никакой прибавки, а иногда и снижает производительность" ведь абсолютная неправда, не забывайте, что HT есть также у i3. Купит человек i3, отключит HT и потеряет лишнюю производительность в большинстве задач, потому что 4 потока - это не редкость сейчас в программах. А LinX - это вообще не показатель, как уже выше обсуждалось. Все что написано в FAQ в полной мере относится к временам Pentium с HT, но никак не к современным процессорам.
izhrunner писал(а):
Результаты тестов по Sandy есть? Будут - добро пожаловать А пока закрыли вопрос.
Мы ведь обсуждали сам принцип работы HT, а не его особенности в Sandy Bridge. Поэтому написанное мной в полной мере применимо к Sandy Bridge. И вопрос заслуживает внимания, потому что вокруг HT ходит масса слухов, все из-за непонимания принципа работы. Мы все-таки на техническом форуме, или где? И Ваша реакция, как куратора, меня по крайней мере удивила. Несомненно, указать нецитирование источника куда проще, чем разбираться в работе какого-то HT. Так держать!
Advanced member
Статус: Не в сети Регистрация: 02.01.2007 Откуда: Николаев
I.N. писал(а):
Изменения и дополнения к FAQ обсуждаются в ЛС с куратором темы izhrunner, обсуждение FAQ в теме - оффтоп!
nedelhof обратите внимание на цитату выше. На счет двухядерных камней внесу поправку, хотя на моей памяти в этой ветке i3 большая редкость. По остальному - если хотите правок, давайте пруфы о полезности HT в повседневной работе-играх (непосредственно куратору или мне в личку).
Advanced member
Статус: Не в сети Регистрация: 07.10.2004 Откуда: Сыктывкар
Технология HT весьма полезна для двухьядерных процессоров. Причем серьезный прирост дается даже в играх. Соответствующие статьи на тему есть у нас на сайте. 4х сами по себе мощные. Преимущество на и на них мало заметно. Но опять же в силу достаточной производительности, заниматься включением-отключением НТ большого смысла нет. Если возможность есть - можно включить. Отключают то в основном только по причине возрастающего тепловыделения. Из-за чего падает разгон. А прирост виден не везде. Вот и недолюбливают.
_________________ Если не знаешь что делать, делай хоть что-нибудь.
Member
Статус: Не в сети Регистрация: 27.01.2006 Откуда: Санкт-Петербург
Ну да, i3 НТ помогает:Прогресс налицо? Обзор и тестирование Intel Core i3-2100 А когда игры будут больше 4-х ядер использовать, может и у 2600К прибавку будет видно. Этот процессор для работы в соответствующих его возможностям приложениях. Если посмотреть в статистике результаты по гигафлопам, то иногда может мешать. Но это синтетика. Кто-бы проверил на практике...
Member
Статус: Не в сети Регистрация: 06.01.2011 Фото: 21
Ещё в этой ветке спрошу нубский вопрос: что за напряжение VID показывается в Real Temp? У меня сейчас напряжение Vcore в биосе - Normal; DVID -0,020; LLC - Enabled
Вот что показывают всякие программы мониторинга: Vcore по версии HW Monitor и AIDA64 равно 1,34 В, при максимальной загрузке в Linx (и то не всегда, а изредка, в основном же 1,32). А вот VID в Real Temp доходил вообще до 1,4011 (опять же в Linx). Множитель установлен х45. В простое всё снижается до 0,88-0,91 В. Стоит так оставлять на постоянку? Просто не совсем понимая, что такое за VID, его показания в 1,4011 В кажется пугающими ))) А цифра в 4,5 Ггц смотрится красиво... Просветите пожалуйста! Спс заранее.
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения