169 похожих чатов

(Кстати, а на практике-то точно 1 такт получается у ОоО

RISC?

18 ответов

24 просмотра

В теории можно сделать 1 такт, но не уверен, что на практике где-то так работает. Скорее будет около 3 тактов.

Насчёт RISC не знаю, но в комментариях на хабре писали о 2-3 тактах на Интеле. У меня в замере 1.8, если не напортачил

Отключали бусты на время замера?

Нет. Руководствуюсь таким принципом: для однопоточности мне заявляют максимальную тактовую частоту. Я вижу, что под нагрузкой она быстро достигается и сохраняется на моих процессорах (не наблюдал троттлинга). Поэтому все расчёты беру по этой частоте. Ну и по опыту разброса, замер не меньше секунды, остальное нерепрезентативно на x86.

Так вы же хотите такты посчитать, а они должно быть на базовой частоте тикают.

В теории можно вообще сделать как говорит молодежь "тупо и решительно": прямо после команды перехода (условного или нет) вставлять ШК по адресу перехода. Тогда и команды подготовки перехода можно вообще избавиться сразу. Работать должно так: декодер считывает ШК с командой перехода и сразу считывает ШК за ней (это ШК по адресу перехода) и собственно сам адрес перехода. Эта ШК сразу направляется на дополнительный конвейер. Решение простое и эффективное )

Почему? Например, тест отработал 1 секунду и сделал n итераций. Процессор i7-7560U, частота базовая 2.4 ГГц, макс 3.8. Под нагрузкой быстро поднимается до макс и работает на ней. То есть за секунду выполняется около 3.8e9 тактов. Значит, на одну итерацию цикла уходит 3.8e9/n тактов.

Лучше всё же без бустов, так будет надёжнее. И желательно зафиксировать частоту на базовой. 1.8 / 3.0 = 0.6 3.8 * 0.6 = 2.28 Ghz

Мне пока было лень заниматься фиксацией частоты, в расчётах не подводило. Можете кинуть в меня инструкцией, тогда придётся учитывать в будущем :) но я подозреваю, что это через биос ставится. А что за тройка?

Я пытался как-то зафиксировать частоту в БИОСе, но у меня ничего не получилось. Все равно частота произвольно повышалась под нагрузкой.

throttlestop ом можно зафиксировать частоту

У вас 1.8 такта, а я предполагаю, что там должно быть 3 такта. Но я не истина в последней инстанции, лучше повторить без бустов. Я обычно делаю так: sudo cpupower frequency-set -g performance -u 2.4GHz Это ограничит потолок в 2.4GHz и зафиксирует. Можно поиграться с другими -g. Например -g userspace -f 2.4GHz. Но я обычно вместо performance ставлю ondemand, это позволяет сбрасывать частоту, но не поднимать выше выставленной.

Вместо 2.4GHz выставляете базовую для CPU.

В БИОСе нужно отключать ТУРБО-буст и некоторые другие фичи.

У меня буст можно отключать и программно.

Хм, но если предположить 3 такта на тело цикло, то всего должно выполниться 3n тактов. И это должно произойти за секунду. Тогда процессор должен работать на частоте 6.3 ГГц, что вроде как невозможно. Я посмотрю [вечером, наверное, осталось на ноутбуке дома], что я вообще замерял и пришлю, на всякий случай. Меня тоже очень сильно удивил результат в 1.8.

Для такого простого случая он, по крайней мере, должен быть приближен к целому числу. Так лучше повторить в контролируемой среде, чтобы не гадать на кофейной гуще.

Согласен, но придётся немного подождать :)

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта