2500K, 4,9GHz, который уже год сижу, перейти не на что.
У меня такой же камень, только с частотами не стал выёживаться 8) Думаю все же, что на разлоченный Вroadwell какой-нибудь на рубеже 2015/2016 года перебраться всетаки уже можно будет.
_________________ i7-6700K 4.5GHz/GTX 1080/DDR4 16GB/Asus Z170 PRO/Acer Nitro XF252Q/Xtrfy M42 Wireless/Jet.A Panteon T1 Windows 10 Pro x64
не все машинные команды имеют одинаковое время исполнения, некоторые например исполняются в полтакта
про полтакта сказано сильно )) как вы себе это представляете?! это же не шина передачи данных, где можно на фронте импульса передавать по 2 бита причём и на росте и на спаде. хотя может оно и так, так как за такт транзисторы процессора переключаются 2 раза. некоторые инструкции можно выполнить используя только одно переключение, т.е. те самые полтакта. но отношения к рассматриваемому вопросу это не имеет. вообще то фишка НТ заключается в следующем: ядро процессора исторически это блоки целочисленных вычислений (целочисленные конвейеры). таких конвейеров в ядре процессора несколько. к примеру в ядре феномов и старых атлонов (К8, К10) их по 3, в ядре core (начиная с core2duo по сей день) их по 4, в ядре бульдозеров и Ко их по 2 и по 4 на модуль. ещё во времена Р4 интеловцы выяснили, что наращивание количества целочисленных конвейеров в ядре только в начале даёт хорошие плоды, а потом толку всё меньше и меньше (что-то вроде кривой намагничивания), т.е. обрабатываемые процессором инструкции не могут задействовать все конвейеры. а ещё нужно принять во внимание, что некоторые инструкции могут использовать только 1 конвейнер, некоторые уже 2, а некоторые особо навороченные целых 3. естественно в коде встречаются все виды инструкций и их интенсивность зависит от типа приложения. экспериментально установлено, что 2 целочисленных конвейера могут быть без проблем загружены на 100% (линейная зона кривой), 3 - только частично (зона перегиба кривой), а 4 очень редко (зона насыщения). интел уже весьма давно использует в своих процессорах 4 целочисленных конвейера и чтоб они не простаивали они и придумали посылать на ядро не 1 а 2 инструкции параллельно (несколько упрощённо сказано). в среднем скорость выполнения каждой инструкции падает, т.к. для исполнения она использует только 2 конвейера, но в сумме получается прирост производительности. амд в бульдозерах в модуле тоже использует 4 конвейера, но они сгруппированы по 2 в 2 ядра. в результате в многопотоке процессоры амд имеют ту же производительность, что и процессоры интел (ядро+НТ vs модуля), но вот при одном потоке на модуль для выполнения инструкций всё те же 2 конвейера (у фенома 3), что и вызывает такое дикое отставание в скорости. вероятно, когда рассматривали сколько нужно делать конвейеров 3 или 2, то были качели: или высокие частоты или 3 конвейера. видать победили маркетинговые частоты.
В любом случае, второй поток называют параллельным ядром, так как говорят, что 4 ядра + 4 ядра "Hyper-Threading" - это 8 виртуальных ядер.. Именно поэтому давайте перестанем умничать на эту тему!
В любом случае, второй поток называют параллельным ядром
кроме вас так ни кто не называет
Jeter писал(а):
Да? Я и не знал. Ну а это "гипер-бургер" что ли?
а это мобильный процессор. в десктопе ему не быть выше i3. среди мобильных можно найти и i7 без НТ. лично я вообще презрительно отношусь к мобильным процессорам.
про полтакта сказано сильно )) как вы себе это представляете?! это же не шина передачи данных, где можно на фронте импульса передавать по 2 бита причём и на росте и на спаде. хотя может оно и так, так как за такт транзисторы процессора переключаются 2 раза. некоторые инструкции можно выполнить используя только одно переключение, т.е. те самые полтакта. но отношения к рассматриваемому вопросу это не имеет. вообще то фишка НТ заключается в следующем: ядро процессора исторически это блоки целочисленных вычислений (целочисленные конвейеры). таких конвейеров в ядре процессора несколько. к примеру в ядре феномов и старых атлонов (К8, К10) их по 3, в ядре core (начиная с core2duo по сей день) их по 4, в ядре бульдозеров и Ко их по 2 и по 4 на модуль. ещё во времена Р4 интеловцы выяснили, что наращивание количества целочисленных конвейеров в ядре только в начале даёт хорошие плоды, а потом толку всё меньше и меньше (что-то вроде кривой намагничивания), т.е. обрабатываемые процессором инструкции не могут задействовать все конвейеры. а ещё нужно принять во внимание, что некоторые инструкции могут использовать только 1 конвейнер, некоторые уже 2, а некоторые особо навороченные целых 3. естественно в коде встречаются все виды инструкций и их интенсивность зависит от типа приложения. экспериментально установлено, что 2 целочисленных конвейера могут быть без проблем загружены на 100% (линейная зона кривой), 3 - только частично (зона перегиба кривой), а 4 очень редко (зона насыщения). интел уже весьма давно использует в своих процессорах 4 целочисленных конвейера и чтоб они не простаивали они и придумали посылать на ядро не 1 а 2 инструкции параллельно (несколько упрощённо сказано). в среднем скорость выполнения каждой инструкции падает, т.к. для исполнения она использует только 2 конвейера, но в сумме получается прирост производительности. амд в бульдозерах в модуле тоже использует 4 конвейера, но они сгруппированы по 2 в 2 ядра. в результате в многопотоке процессоры амд имеют ту же производительность, что и процессоры интел (ядро+НТ vs модуля), но вот при одном потоке на модуль для выполнения инструкций всё те же 2 конвейера (у фенома 3), что и вызывает такое дикое отставание в скорости. вероятно, когда рассматривали сколько нужно делать конвейеров 3 или 2, то были качели: или высокие частоты или 3 конвейера. видать победили маркетинговые частоты.
Про инструкции и пайплайны, мне кажется, вы загнули: я не представляю инструкций, которые могут одновременно использовать 2 пайплайна. Скорее вы имели ввиду суперскалярные процессоры(у которых есть несколько пайплайнов) и out-of-order(OOO) выполнение, которое возможно благодаря instruction level parallelism. ILP возможен, но далеко не всегда. Теперь насчет НТ: когда не хватает ILP, то пайпы простаивают. Но так как у нас не однозадачная среда, а многозадачная, то можно использовать thread level paralellism: пускать на пайплайне инструкции, которые принадлежат другим тредам. В этом случае могут быть как минусы(возросшее число кэшмисов и тлбмисов, если задачи работают над разными данными), так и плюсы(когда работают над одними).
я не представляю инструкций, которые могут одновременно использовать 2 пайплайна
поправьте меня, если я ошибаюсь, но инструкции - это штука сложная, инструкция кодирует в себе несколько простых математических операций, которые должны быть реализованы на ALU или FPU ядра по определённой схеме (что-то параллельно, что-то последовательно). вот именно простые математические операции и могут использовать несколько блоков ALU. ну а в остальном вы ни сколько не противоречите моему высказыванию.
Jeter писал(а):
"8 виртуальных ядер" - это не моя придумка!
про историю появления термина "виртуальные" я вам уже рассказал - это во-первых, а во-вторых, не заменяйте исторический термин "виртуальные" на ваш собственный термин "параллельные", т.к. они явно носят разный функциональный смысл.
Jeter писал(а):
Многие вообще отключают "Hyper-Threading", так как из-за него падает производительность в некоторых приложениях, и еще с ним выше энергопотребление.
слышал, что НЕКОТОРЫЕ, а не многие, отключают НТ. лично не мне посчастливилось найти приложение, которое бы выполнялось медленее при включённом НТ. список таких приложений исчезающе мал.
Member
Статус: Не в сети Регистрация: 20.03.2011 Откуда: Москва
Koschey Bessmertniy писал(а):
про полтакта сказано сильно )) как вы себе это представляете?! это же не шина передачи данных, где можно на фронте импульса передавать по 2 бита причём и на росте и на спаде. хотя может оно и так, так как за такт транзисторы процессора переключаются 2 раза. некоторые инструкции можно выполнить используя только одно переключение, т.е. те самые полтакта. но отношения к рассматриваемому вопросу это не имеет.
Многие инструкции в гайдлайнах интела используют дробное число тактов, я в свое время тоже очень этому удивился.
_________________ I would tell you a joke about UDP, but you probably wouldn't get it.
Кому хочу, тому и поклоняюсь! Geekbench показывает все точно! Что вы имеете против него?
да поклоняйтесь, только не кричите на всех углах, что его показания - это истина в последней инстанции. 1. я не доверяю бенчам в целом, т.к. при сверке большинства их с быстродействием в реальных приложениях оказывается, что результаты бенчей не очень то и коррелируют с результатами в реальных приложениях, а то порой и вовсе показывают погоду на марсе. даже внутренние тесты в архиваторах не коррелируют с их реальной скоростью работы. 2. ваш любимый кроссплатформенный бенч невозможно поверить по скорости работы в реальном ПО, т.к. не существует единого ПО для кроссплатформы. я не могу на своём планшете установить и запустить архиватор 7-zip к примеру, причём не адаптированную какую-нибудь версию для андройда, а десктопную. пока этого не будет, результаты кроссплатформенных бенчей можно смотреть только из любопытства, но лучше не делать из них каких-то серьёзных далеко идущих выводов.
Member
Статус: Не в сети Регистрация: 29.01.2008 Фото: 0
Koschey Bessmertniy писал(а):
лично я вообще презрительно отношусь к мобильным процессора
Зря вы так, я сравнивал производительность своего мобильного проца (i7-3630QM)и настольного(i7-2600K) без разгона, разницы большой не увидел, т.к. мобильный при питании от сети на 3.2-3.4ГГц молотит, при этом имеет 4ядрас НТ, т.е. 8 потоков. Конечно настольный хорошо гонится, но его с собой не возмешь, на диване с ним не посидишь)))
Koschey Bessmertniy писал(а):
про полтакта сказано сильно )) как вы себе это представляете?! это же не шина передачи данных, где можно на фронте импульса передавать по 2 бита причём и на росте и на спаде. хотя может оно и так, так как за такт транзисторы процессора переключаются 2 раза. некоторые инструкции можно выполнить используя только одно переключение, т.е. те самые полтакта. но отношения к рассматриваемому вопросу это не имеет.
Не буду так глубоко как вы ковырять, но еще со времен x80 (еще вроде и FSB не было как таковой) каждая команда выполнялась за определенное количество тактов проца(тех самых МГц), и реальная производительность (млн. операций в сек.) вычислялась именно в совокупности частоты тактового генератора и усредненное количество тактов на команды, в итоге получалось примерно 600~800млн.оп.сек при 1.2~1.5МГц. Современные процессоры способны производить ~4х операций за такт, и для того чтобы загрузить проц полностью и появился HT. По сути выполнение 2х операций за такт и выполнение операции за полтакта равнозначно (по крайней мере с точки зрения программирования). Давным давно где-то в просторах интернета видел наглядное объяснение принципа работы HT
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 10
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения