Поясните за гипертрединг. Я так понял, что однажды инженеры поняли, что предел частоты 5 ГГц (из-за скорости электронов?) и чтобы сделать мощный комп, нужно увеличивать количество процессоров, так появились материнки на два процессора, но потом подумали, что это неудобно и стали просто делать несколько процессоров на одном кристалле. И каждое ядро могло выполнять свою программу или по частям одну программу, если она поддерживает многопоток.
Но потом появилась какая-то странная штука - потоки. Я так понимаю, это аппаратный эмулятор ещё одного ядра в каждом физическом ядре? То есть, тупо наёб системы? Ядер четыре, но винда видит якобы восемь? Или как-то хитрее это работает?
>>261990234 (OP) HT это когда ты на одно ядро посылаешь два потока команд как будто для двух разных ядер. Для того что бы современному ядру было проще распараллеливать между хуялиардом своих execution units эти инструкции.
>>261990234 (OP) Hyper-threading works by duplicating certain sections of the processor—those that store the architectural state—but not duplicating the main execution resources.
>>261990652 Но ведь ядро не может одновременно вычислять оба потока? Там эти всякие транзисторы, триггеры, что там ещё, заняты уже одним потоком. То есть, придётся ждать?
И чем это отличается от того, что у меня на одноядерном однопоточном открыт браузер с двачем и плеер с аниме? Тоже две программы по очереди используют ядро.
>>261990833 Не все. Execution units много, твои команды обычно не утилизируют их и на половину. Пока один твой поток крутит в цикле p++, ему больше одного ALU нечем занять. А их там очень более одного.
>>261990234 (OP) Прикол в том, что "ядро" в современном процессоре - это не дохуя сложная штука, состоящая из кучи компонентов. Если на него поступает один поток команд, то часть этих компонентов всегда простаивает. А если подать два потока команд, то удается более полно загрузить их.
Условно говоря, внутри ядра есть "складыватель" и "вычитатель". Поскольку команда процессора это или сложение или вычитание, то у тебя или "вычитатель" или "складыватель" будут суммарно половину времени ничего не делать. А вот если будешь посылать одновременно две команды, то появится шанс, что они смогут выполниться параллельно. Понятное дело, что если попадутся, например, два складывания одновременно, то это не прокатит и придется одному из потоков инструкций задержаться, но в среднем все равно получится быстрее.
>>261990234 (OP) >>странная штука - потоки. Я так понимаю, это аппаратный эмулятор ещё одного ядра в каждом физическом ядре
В процессоре нихуя не изменилось, количество вычислительных блоков осталось тем же, добавили просто еще один конвеер на ядро, который в зависимости от того, что на процессоре выполняется, позволяет лучше загрузить вычислительные блоки(меньше простаивают). Но эффект от этого - прирост производительности 0-15% и очень сильно зависит от обстоятельств, так что чаще около 0
>>То есть, тупо наёб системы Наеб людей. Назвали потоками эту херню, типа два конвеера означает 2 потока, гои купились. Думают, что при включении гипертрейдинга у них прирост производительности сразу x2. Никто не задумывается, что 2 конвеера конкурируют за один и тот же набор вычислительных блоков.
>>261991038 Ну, допустим, одна программа умножает, другая складывает. А если они обе захотят умножить? И схема, неверно, очень хитрая нужна, которая позволяет одновременно две команды считывать для управления процессором.
>>261990833 Ждать процессору в любом случае приходится 90 процентов времени, если у тебя не вычислительная задача, оптимизированная поколениями программистов. Ждать пока из памяти в кэш приедет порция данных, ждать пока изменения из кэша уедут в память. Хочется чем то заняться пока он ждёт. Заняться можно выполнением чего нибудь. Либо всех веток кода заранее, либо второго потока. Обычно и то и другое.
>>261991340 Схема хитрее чем ты думаешь. В современном процессоре control unit занимает больше площади на кристалле чем все вычислительные блоки вместе взятые. Больше только кэш.
>>261991410 А разве оперативка не так работает: проц подаёт на шину адреса 0х00000001, например, и тут же на шине данных видит нужный байт. То есть, за 1/5000000000 секунды, если частота процессора 5ггц.
>>261991576 > Представь себе завод где заводоуправление больше чем все цеха. И зачем так делать? Лучше бы сделали много маленьких и простых ядер. Сколько транзисторов нужно для ядра, которое умеет делать все основные операции с 64 разрядными данными? Миллиона хватит? Тогда можно несколько тысяч ядер на одном проце сделать. Пусть они будут не столь эффективно использовать свои ресурсы, но возьмут числом.
>>261990234 (OP) >что предел частоты 5 ГГц Повышение частоты не обязательно даёт прирост производительности, в своё время продавали гигагерцы, т.е. это был маркетинговый ход. >Но потом появилась какая-то странная штука - потоки. Это более общаяя концепция - многопоточная обработка. Может быть 1 ядро(процессор), с несколькими потоками >Я так понимаю, это аппаратный эмулятор ещё одного ядра в каждом физическом ядре? Можно сказать, да, это не полный процессор/ядро, это архитектурное состояние + часть микроархитектурного, например, какие-нибудь tlb. >То есть, тупо наёб системы? Нет, всё по честному, потоки позволяют повысить пропускную способность конвеера, т.е. минимизировать время простоя вычислительной аппаратуры в ядре. >хитрее это работает Это работает хитро, советую почитать книжку Хенесси Патерсон Количественный подход 5 изд 3.12 вводная про многопоточную обработку и 5 глава уже подробнее.
>>261991766 > Пусть они будут не столь эффективно использовать свои ресурсы, но возьмут числом. Ты только что видеокарту Также не все задачи можно распараллелить
>>261991575 Память работает не на 5 ГГц, а меньше. Хотя ddr4 может и приближается к этому значению.
Но даже если так, там задержка в 10 тактов, + - в зависимости от таймингов.И получается что два разных адреса считываются в 10 раз медленнее. И из оперативы читают не байты а сразу 8-16 байт в зависимости от типа ОЗУ.
>>261990234 (OP) >потом появилась какая-то странная штука - потоки Даже конкретно интелловская технология HT появилась раньше многоядерных процессоров.
>>261991263 >Но эффект от этого - прирост производительности 0-15% и очень сильно зависит от обстоятельств, так что чаще около 0 В игорах-то пиздец помогает нынче.
>>261992507 >simultaneous multithreading was first researched by IBM in 1968 as part of the ACS-360 project. The first major commercial microprocessor developed with SMT was the Alpha 21464 (EV8).
гипертрединг это недоядра, точнее даже недо недо ядра где только часть вычислительных блоков работает как бы как два проца, потому что иначе сложно было придумать как заправить процессор инструкциями для выполнения
и вот пока одно ядро занято другой поток может что-то сделать на своих свободных вычислительных блоках например перемещать данные в памяти
>>261992198 А эти всякие ддр2, ддр4 только частотой отличаются? Зачем тогда делать несовместимость на физическом уровне? А ещё поддерживаемый тип памяти зависит и от проца, и от чипсета. Жесть.
>>261990234 (OP) > что предел частоты 5 ГГц (из-за скорости электронов?) Не предел и не скорость электронов, блин, а банальное тепловыделение
И нет, ядро это не процессор, потому что в процессоре есть значительная внеядерная часть - как минимум линии коммуникации, шины, кэш память третьего уровня. А суть потоков очень проста. Допустим, процессорное ядро выполняет задачу. И вдруг для ее выполнения понадобились данные откуда-нибудь из озу, или вообще с накопителя. Задача начинает простаивать, ибо скорость доступа к озу значительно ниже скоростей работы процессора. Поэтому простаивающие мощности выделяются другому процессу, например данные для которого оказались в кэше, поэтому данный процесс исполняется пока первый ожидает поступления данных
>>261993003 > До 9ггц разогнали же, какой ещё предел. Ну там какие-то космические технологии, азот жидкий. Или даже так всего в два раза. Вот если бы до 50 ГГц. А когда-то частоты очень быстро росли.
>>261992922 Там по контактам начиная с 100 МГц идёт уже не сколько напряжение, сколько радиоволна. Вдумайся, 800 МГц у DDR2 это частота на которой мобильники первые работали. Вот и приходится устраивать новый стандарт, чтобы извернуться и очередной диапазон волн получше передать.
>>261993227 >насколько быстро откроется вкладка с харкачем? Порофлил, очевидно, что у тебя основная задержка тут будет из-за сети инторнет, а не из-за процессора.
>>261993294 > > насколько быстро откроется вкладка с харкачем? > Если это все твои запросы, то вообще забудь про гипертрединг Ну это пример. Да и Абу может столько зондов впихнуть лет через пять, что современный сейчас проц подохуеет. >>261993317 Допустим, я напрямую подключен к серверам мейла и можно пренебречь.
>>261993343 BJTs have the pleasing property that they react faster when operated at higher bias currents. This lets us tune BJT circuits to be very fast at the expense of consuming more power.
>>261993427 > Можно андроид на комп поставить Я ещё слышал, что несмотря на довольно высокие частоты и 8 ядер даже в бюджетке, телефонный процессор хуже, потому что у компа х86, а у телефона arm. Я так понял, arm меньше команд поддерживает и приходится одну и ту же вещь делать за несколько команд?
For the record, the Telum processor will run at a base clock rate of more than 5 GHz and has a die that is 530 square millimeters. (The z15 ran at 5.2 GHz.) By contrast, the Power10 chip has twice as many cores in SMT8 mode and four times as many cores in SMT4 mode, with one of the cores held back to improve yields; it is slightly larger at 602 square millimeters but has slightly fewer circuits at 18 billion transistors. The z16 core only supports SMT2 multithreading, by the way. So the fatness of its cores has more to do with registers and branch tables and other things that make a fast and deep pipeline work well.
>>261993655 Арм из телефона при этом холодный, а комп нужно охлаждать вентилятором. x86 внутри сам уже как арм (x86 преобразуется внутри в микрокод наподобие Арм и выполняется как арм за несколько инструкций), он выигрывает за счёт того что может больше энергии тратить. Иначе бы его ставили в мобилы.
>>261990234 (OP) Для общей образованности вкину. В советское время делали полупроводниковые вычислительные элементы основанные на других металлах, которые могли работать на высоких частотах и температурах. Если б эта технология эволюционировала до наших дней для них был бы не предел в 5 гигагерц и 100 градусов. Но советы не знали как делать высокотехнологичную индустрию, а Intel смог.
>>261993731 Частота внутри любой микросхемы вещь искусственная, просто чтобы упростить разработку. Любая схема работает на задержках переключения. Если транзистор не успевает переключиться, то он все время открыт, а это короткое замыкание. Но если бы производители просчитывали отдельно каждую задержку, то они бы 400 лет один проц делали, вместо этого они ставят планку 5 ГГц = 200 пс, и просто подгоняют все под нее. А то и просто подгоняют как получится, а потом смотрят какая частота получилась.
>>261994392 Единичные модели, не выдержавшие конкуренции из-за энергопотребления. Да и на десктопе он нужен из-за легаси. Так что да, хуй86 в мобилы не ставят.
>>261990234 (OP) Ты хоть немного пошерсти интернет на предмет вопроса. многопоточность и hyperthreading это разные термины.
hyperthreading это маркетинговая хуйня от интела. Представь что у нас одноядерный процессор, который выполняет свои функции на 8 АЛУшках (арифметическое логическое устройство, ну такая параша которая 8+2 складывает). Иногда, половина этих алушек простаивает, и можно их запараллелить. Одна половина считает одну задачу, другая вторую, вот и гипертрединг.
Потоки это симуляция параллельности. Читай кооперативная и вытесняющая многозадачности.
>>261995207 >>261995642 The GA144 can do something like 100 billion 18-bit integer additions per second, or two billion 17×17-bit integer multiplications.
>>261995497 Это что, как два кишечника с одними ртом и жопой? Пока высераешь из одного, во втором подготавливается и ждет, когда будет свободное окно в анусе?
Вообще потоки - это 2 отдельных процесса, обьедененных общей памятью. Ранше нужны были только для создания параллельно работающих компонентов одной программы, например процесс принимающий сигналы и посещающий их в очередь к процессу обрабатыващему сигналу. Это нужно было, чтобы сигналы поступающие во время обработки сигнала, присланного до этого, не пропадали. Ускорение за счёт потоков появилось только вместе с многоядерными процессорами, и если количество потоков у программы меньше количества ядер, то её можно ускорить, создав отдельный поток. Если же потоков больше, чем ядер, то прироста производительности действительно не получить.
>>261995749 So why would anyone use a CPLD or an FPGA or an MCU when they could use a GA144? Because you can program the MCU in C or Python, and you can program the CPLD or FPGA in Verilog, but if you want to use the GA144 you have to program it in Forth. Worse, until recently you had to program the GA144 in a dialect of colorForth. With an FPGA nextpnr does the floorplanning for you; with arrayForth you have to do the floorplanning. There are efforts to improve this situation, like Chlorophyll ("Compared to MSP430, GA144 is 19 times more energy efficient and 23 times faster when running this [accelerometer-based hand-gesture recognition] application"), but they're still research projects, and they still require you to learn new languages.
C was a research project in 1972, Verilog was a research project in 1986, and yosys was a research project in 2014 (and still is if you want to use the 5M40ZE64C5N), but now they're battle-tested tools that lots of people know how to use. The GreenArrays tools to allow you to program at a higher level are not there yet, because Chuck Moore doesn't think that's the way to do things.
>>261995300 Лампы в хайрез технике это вообще топ кек. У них искажений на порядок больше. Любая транзисторная схема в режимах а/аб ебет их в щель и гриву.
Лампы, по уму, надо ставить только туда, где эти искажения действительно нужны - гитарное усиление, например. Потому что там такой звук считается эталонным. А мамкины аудиофилы с лампавами усилитилими везде где можно это просто отличный пример промытых каргокультистов и нитакусиков. И серьезный бизнес для солидных господ, стригущих этих лохов.
>>261995818 Ну примерно так. А вытесняющая многопоточность — это когда у тебя кишечник вообще представляет собой мешок с единственным отверстием по типу как у коралла пикрелейтед, так что ты в принципе не можешь одновременно есть и срать. Но если подпустить совсем чуть-чуть подливы, потом схавать ложечку, потом подпустить ещё чуть-чуть подливы и перемежать эти две стадии достаточно быстро — то с точки зрения пользователя это то же самое, как если б ты жрал и срал одновременно
>>261990234 (OP) у тебя процессорные инструкции проходят по конвейеру. Условно, в каждый момент времени выполнение команды находится на определенном этапе конвейера, а остальные простаивают. Логично, что нужно нагружать конвейер другими командами так, чтобы он не стоял без дела. Но если это делать все в одном потоке, то заебешься оптимизировать такой код. Поэтому создаются еще потоки, которые думают, что владеют процессором безраздельно, хотя по факту все одновременно выполняются на одном и том же конвейере, только на разных его этапах