Перейти к содержимому

Per p core control что это

  • автор:

What is the Perl Core?

When I use the term “Perl Core” I mean the standard library of modules (distributions actually) that ship with the perl interpreter, and I think that’s what most people mean when they use that term. Knowing which modules are in the Perl Core is useful; it enables developers to build programs without external dependencies over which the developer has little control. The perldoc site has a handy alphabetized list of core modules and I generally check there first to browse which modules are in core. The problem though, is that it can be wrong.

What modules are included in the Perl Core?

Did you know that HTTP::Tiny has shipped with Perl since 2011 (version 5.14.0)? It’s not listed on perldoc (although that is on the list to be fixed at the next QA Hackathon). Luckily there is a better solution: the corelist program. This is supplied with Module::CoreList. Let’s see when Module::CoreList first shipped with Perl:

I’ve truncated the output and kept the key details. It shows that Module::CoreList has been included since Perl version 5.8.9. At home I run Fedora 23, which comes with Perl version 5.22.1. Running the system Perl corelist :

The program doesn’t exist; the Fedora team didn’t include it for some reason. Not only that, but great core modules like Time::Piece aren’t included either!

If you don’t have corelist , but want to view a list of distributions that should have been bundled with your version of Perl, you can read perldoc perlmodlib .

Which modules do I have?

Sometimes instead of asking which modules are in the Perl Core what we really mean is: “which modules do I have installed?” For non-core modules, I use perldoc.

perldoc won’t show us the core modules that we already have, and in the case of missing core modules, Module::CoreList can’t help either (its results are based on internal lists of modules that should be there, not which files are actually present). A simple way I handle this is to use the following script to search the contents of @INC ; the directories which perl searches for modules:

I run it like this:

I’m using the absolute path /usr/bin/perl to ensure I get my system’s perl and not the local one I manage with plenv. One downside of this approach is it lists every module ( .pm file) rather than every distribution, (see this explanation if you’re not familiar with the distinction). Another issue is it will list duplicate modules when the system uses symlinks. So the program output needs to be tidied up in a text editor.

What about programs? To search for Perl programs I prepared a list of Perl programs from the source for Perl 5.22, called perl522_programs :

Then I used the following script, called find_binary to check for the programs:

I run it like this:

This line calls the find_binary script on every program listed in the file perl522_programs . I chomp the line before searching for it to remove the trailing newline character. This method isn’t perfect though; sneaky Ubuntu ships with a program called perldoc but if you run it the system prints:

Core modules and programs missing from system perls

Using the code above I did a comparison of the modules and programs shipped with Perl and those shipped with the following systems. Here’s what missing:

Fedora 23 Ubuntu 14.04 LTS OSX Yosemite 10.10.5
B::Debug CGI::Fast GDBM_File
Config::Perl::V ODBM_File
CPANPLUS perldoc
DB_File
Devel::PPPort
ExtUtils::Embed
ExtUtils::MakeMaker::Locale
ExtUtils::Miniperl
File::Fetch
File::Spec::VMS
Filter::Simple
IO::Compress::Adapter::Bzip2
IO::Uncompress::Adapter::Bunzip2
Math::BigFloat
Math::BigInt
Math::BigRat
Math::Complex
Math::Trig
Module::Loaded
PerlIO
Text::Balanced
Time::Piece
Time::Seconds
Unicode::Collate
autodie
bigint
bignum
bigrat
experimental
perlfaq
corelist
enc2xs
libnetcfg

Ubuntu and OSX ship with Perl 5.18 so I looked for missing programs and modules against the 5.18 source code. For Fedora I compared the system perl against the 5.22 source. These results show that Fedora is missing quite a few modules and programs: experimental, corelist, autodie, the Math:: modules and Time::Piece strike me as significant omissions (they are supplied by the perl-core package, which is must be installed separately). For Ubuntu, excluding perldoc is a real shame. OSX came away gleaming though: nearly all core modules and programs were present.

Conclusion

When writing programs that use core Perl modules be careful, especially if you’re using any of the modules or programs found to be missing earlier. One way around this is the use App::FatPacker to compile all the modules used into a single file. Another way would be to use pp to create a compiled binary. Finally for modules like Time::Piece, you could always consider wrapping Perl’s built-in functions like gmtime and localtime in subroutines that give the behavior you need, rather than using the module.

Of course it’s always easier to work with a locally-installed perl than the system version. The local Perls provided by perlbrew and plenv contain all the core modules and utilities. You can always compile your own Perl too, it’s easy. Strawberry Perl for Windows even comes with some useful extra modules and C libraries. If you do have to rely on the system Perl, you may find a core module isn’t there at all.

Alder Lake: в зависимости от производителя материнской платы, поддержка AVX-512 после обновления BIOS будет потеряна (обновление 2)

alder-lake-reviewНедавно мы опубликовали новость о том, что Intel отключила поддержку набора инструкций AVX-512 на процессорах Alder Lake с новыми версиями BIOS. Ранее мы не могли проверить функцию в лаборатории, но теперь мы подтвердили ее на практике.

Официально настольные процессоры Alder Lake набор инструкций AVX-512 не поддерживают, что объясняется отсутствием валидации Intel. Но функциональные блоки в производительных ядрах есть, и отключение в BIOS эффективных ядер приводило к активации AVX-512. Мы проверили эту возможность в наших тестах новых процессоров. Ходит много слухов по поводу того, почему набор команд AVX-512 официально не поддерживается. Но, по крайней мере, его можно было активировать указанным способом.

Факт заключается в том, что до сегодняшнего дня набор инструкций AVX-512 можно было активировать. Мы использовали в тестах процессоров Alder Lake материнскую плату ASUS ROG Maximus Z690 Hero с версией BIOS 0702. После отключения в BIOS эффективных ядер, производительные ядра начинали поддерживать AVX-512. И в некоторых тестах Core i9-12900K показывал преимущества от поддержки AVX-512. Мы также проверили материнскую плату MSI Z690 Unify, на которой с версией BIOS 1.13 тоже получилось включить AVX-512. Для этого в пункте «Advanced CPU Configuration» следовало выключить через «Per E-Core Control» все эффективные ядра. Затем в опциях разгона нужно было включить опцию «AVX-512 Support».

BIOS des MSI Z690 Unify

BIOS des MSI Z690 Unify

CPU-Z показывает наличие поддержки набора инструкций AVX-512:

AVX-512 aktiv

Мы подготавливали платформу к тесту Core i5-12400, который получили сегодня, поэтому установили самую свежую версию BIOS 1.21, которая содержит те же самые функции. Мы отключили эффективные ядра и включили опцию AVX-512, но после загрузки поддержка набора инструкций AVX-512 исчезла:

kein AVX-512

Обновление BIOS содержит новую версию микрокода 18 вместо старой 15. Похоже, через микрокод Intel заблокировала активацию AVX-512. На материнской плате ASUS ROG Maximus Z690 способ активации AVX-512 оставался даже с последней версией BIOS 0811. Причем, как указывает ASUS, версия BIOS 0811 совместима со свей линейкой процессоров Alder Lake.

Мы поинтересовались у Intel, почему поддержка AVX-512 была отключена «задним числом». Однако пока не получили никакой официальной информации. На практике набор инструкций AVX-512 обычным пользователям вряд ли требуется, поскольку его поддерживают только профессиональные приложения. Но все равно несколько странно, зачем Intel потребовалось вносить подобную блокировку, тем более процессоры Alder Lake работали с AVX-512 вполне успешно.

Новый BIOS также заблокировал множитель на планке x51 при использовании AVX2. Процессор просто не выставляет более высокие тактовые частоты. И обойти блокировку через BIOS невозможно.

Подписывайтесь на группы Hardwareluxx ВКонтакте и Facebook, а также на наш канал в Telegram (@hardwareluxxrussia).

Включить AVX-512 на B660 невозможно вообще

BIOS des MSI MAG B660M MORTAR WIFI DDR4

BIOS des MSI MAG B660M MORTAR WIFI DDR4

В ходе тестирования материнской платы MSI MAG B660M MORTAR WIFI DDR4 мы попытались активировать AVX-512. Однако опций в BIOS для отключения эффективных ядер и активации AVX-512 просто не было. Можно было отключать одиночные ядра, но одно всегда оставалось активным. То есть включить поддержку AVX-512 не представляется возможным, по крайней мере, для ранее вышедших процессоров Alder Lake с эффективными ядрами. Будет интересно посмотреть, как все изменится ситуация в случае процессоров без ядер E.

Обновление: ASUS со следующим обновлением тоже уберет поддержку

Мы получили ответ от ASUS, на чьих материнских платах мы как раз успешно активировали AVX-512. Соответственно, версия BIOS 0811 все еще поддерживает AVX-512. Но следующие версии BIOS лишатся поддержки AVX-512 из-за нового микрокода процессоров Core 12-го поколения. Материнские платы на чипсетах H670, B660 и H610 изначально поставляются без поддержки AVX-512.

Обновление: ASUS отключает, MSI возвращает AVX-512

Через несколько недель мы вновь возвращаемся к теме AVX-512. Как мы и опасались, ASUS с версии BIOS 1003 установила новый микрокод Intel, поэтому активация функции AVX-512 в BIOS и отключение эффективных ядер не помогает. Набор инструкций AVX-512 больше на нашей материнской плате ASUS ROG Maximus Z690 Hero не работает.

Но MSI схитрила и добавила в версию BIOS A22 новый переключатель, который был протестирован на MEG Z690 Unify-X. Переключатель «AVX-512 Trial» активирует старый микрокод, инструкции AVX-512 вновь работают.

Производители материнских плат, а именно MSI в данном случае, продолжают искать способы обойти блокировку AVX-512. Пока неизвестно, будет ли похожая реализация от ASUS. По поводу материнских плат других производителей информации у нас нет.

Еще одна «фича», которую Intel вряд ли хотела получить в таком виде, касается разгона процессоров не-К поколения Alder Lake через базовую частоту. Мы успешно разогнали Core i5-12400 на материнской плате Z690, а также на модели B660 (тоже от ASUS), затем мы разогнали Core i3-12100F.

Core Ratio Limit — что это, сколько ставить?

Позволяет задать максимальный множитель определенного ядра при работе технологии Turbo Boost.

Перед названием Core Ratio Limit идет цифра — это номер ядра (core).

Настройка активна только если выбрано Per Core в CPU Core Ratio.

  • Auto — будет выставлено стандартное значение.
  • 8..Max — значение указывается вручную.

Присутствуют некоторые тонкости:

Источник информации (оверы).

Опция в биосе материнки ASUS Rog (Republic of Gamers):

Пункт Sync All Cores предположительно активирует увеличение частоты всех ядер, насколько это возможно. Пункт Auto — автоматически, как и задумано производителем. Per Core — соответственно индивидуальная настройка каждого ядра.

Core Ratio Limit — простыми словами

По факту данная опция позволяет указать, какой будет множитель у конкретного ядра процессора (CPU) при активации турборежима.

Сперва разберемся — турбо режим, это когда процессор повышает частоту при высоких нагрузках. Однако повышение частоты зависит от процессора, обычно повышается частота только одного ядра, у остальных — повышается меньше или вообще нет. Поэтому настройка опции учитывает также настройку других ядер.

При помощи множителя можно регулировать частоту процессора. Например представим процессор 3 ГГц. Данная частота представляет из себя множитель x30. x1 — это соответственно 100 МГц. Если указать множитель x40 — будет частота 4 ГГц, получается разгон. В опции Core Ratio Limit — вы указываете максимальный множитель для конкретного ядра, который активируется при включении турборежима, соблюдая тонкости настройки.

Указывать вручную можно по разным причинам, например чтобы еще больше увеличить эффективность турборежима или наоборот — снизить, чтобы уменьшить нагрев.

Надеюсь данная информация оказалась полезной. Удачи и добра, до новых встреч друзья!

Per p core control что это

60 тыс. (точные данные не помню, т.к. пишу по памяти). Если кому будет это интересно, то смогу выложить скриншоты позже.
После того, как стабильность разгона ОЗУ была проверена множеством тестов и 20 часами игры в Elden Ring, настало время заняться разгоном процессора.
Собственно в настоящий момент я и нахожусь на данном этапе и стараюсь найти, изучить и понять информацию;)
Т.к. автор статьи пишет, что для разгона используется особенности кривой V/f, то в сначала мне надо каким-то образом ее построить. Первым делом по совету автора скачал утилиту от Intel, называемую Intel XTU, но с ней ничего сделать не получилось. Программа при построении всегда выдавала ошибку и через пару секунд появлялся троттлинг ЦП. Причем XTU начинала строить кривую, но после 3-х точек выдавала ошибку. Так же я обратил внимание, что при построении кривой V/f программой от Intel, значение напряжения 3-й точки было ниже, чем значение на второй точке, что так же внесло некое сомнение в результатах работы программы. Для охлаждения ЦП у меня используется Arctic Liquid Freezer II — 280 (с заводским крепежом для LGA1700), термопаста Thermal Grizzly Kryonaut. Чтобы испытать свою систему охлаждения и для исключения возможного троттлинга, я зафиксировал множитель процессора на 48 для всех P-ядер и установил режим напряжения Override со значением 1.3 В. В Prime95 в режиме Small FFT и с отключенными AVX инструкциями самое горячее ядро было не горячее 85 градусов. Если на такой частоте и при таком напряжении подключить AVX, то температура по некоторым ядрам достигает 100 градусов, а потребляемая мощность ЦП приближается к 290 Вт по результатам данных HWInfo64.
В интернете я нашел информацию, как вручную можно построить кривую v/f на одном из иностранных сайтов. Посмотреть вы ее можете здесь . Статья большая, хорошая, но и она у меня вызывает несколько вопросов, т.к. автор тоже упустил некоторые моменты. (Если статья вам не понятна, то вы можете включить ее автоматический перевод в браузере.) Автор подробно рассказывает о кривой v/f в разделе "V/f Curve Deep Dive". Кроме того автор там так же подробно рассказывает о принципе подачи напряжения от VRM для процессора. Такое напряжение по спецификациям Intel называется VccIA и оно соответствует показаниям Vcore в программе HWInfo64. VRM — это "система подачи напряжения для процессора" (регулятор напряжения).

Попытаюсь перевести и перефразировать своими словами как формируется напряжение VccIA:
1. На первом этапе VRM материнской платы говорит процессору о параметрах нагрузочной линии AC DC (AC DC loadline). Это те параметры, которые автор этой статьи указывает в разделе "Настройка LLC". (IA AC Load Line, IA DC Load Line). Эти параметры очень важные, т.к. позволяют регулировать напряжение процессора в зависимости от его "качества".
Кстати, очень хорошо эти параметры и их влияние описаны на немецком сайте .
*В BIOS материнских плат MSI этот параметр выставляется в разделе Advanced CPU Configuration\CPU Lite Load Control-> Advanced и далее в графах CPU AC Loadline и CPU DC Loadline задаются значения. Данные значения меняются от 1. Значения даны в 1/100 мОм. Параметрами по умолчанию на моей материнской плате являются цифры 80 для CPU AC Loadline и CPU DC Loadline, что равно 0,8 мОм.
Считаю важным повторить, что единицы измерения в материнских платам MSI — 1/100 мОм (милли Омы) и минимальное значение равно 1/100 мОм=0,00001 Ом.
?И вот тут у меня был первый вопрос к автору данной статьи, но теперь я понял, что сам был не внимателен. И соответственно значение указанное к примеру в данной статье 0,7 в материнских платах Asus, соответствует значению 70 в материнских платах MSI.

Так же важно то, что линия нагрузки AC Load Line работает ТОЛЬКО на автоматическом режиме регулировки напряжения. И вот тут была еще моя одна ошибка (или по крайней мере я этого не увидел в этой статье от автора ksof): нигде не указано, что для настройки LLC необходимо в режиме VRM установить адаптивную регулировку напряжения. А у меня в настройках материнской платы все стояло в AUTO и это не позволяло достигать необходимого результата. Адаптивная регулировка нужна в том случае, если вы хотите производить разгон используя параметры V/f кривой. И это очень важно, сразу я этого не понял.
*В BIOS материнских плат MSI этот параметр выставляется в разделе CPU Core Voltage Mode-> Adaptive Mode (или Adaptive+Offset Mode). Вариант в скобках дает возможность помимо параметров V/f кривой задавать так же смещение напряжения подаваемого на процессор (как в большую, так и в меньшую сторону).
Судя по проведенным мной небольшим тестам Offset влияет на напряжение процессора, пропорционально увеличивая или уменьшая его на заданную величину. И все это так же с учетом кривой V/f. Т.е. если, к примеру, для моего процессора напряжение Base VID (что это такое я пишу чуть ниже) по V/f кривой для множителя 48 равно 1,268 В, а для множителя 50 равно 1,366 В, то если я задам отрицательное смещение 0,03 В, то получится:
а) если в настройках BIOS я поставлю множитель всем ядрам 48, то фактически подаваться на процессор уже будет не 1,268 В, а 1,268-0,03 = 1,238 В
б) если в настройках BIOS я поставлю множитель всем ядрам 50, то фактически подаваться на процессор уже будет не 1,366 В, а 1,366-0,03 = 1,336 В
И напряжения эти надо проверять в момент нагрузки процессора.
Собственно как пример я указал параметры своего 12700K (но это просто пример, а не указания к действию и повторению. Тем более, что я разгоном только начинаю заниматься, а не завершил его)

2. На втором этапе процессор запрашивает напряжение у VRM:
В общем случае запрашиваемое процессором напряжение в режиме Adaptive+Offset Mode выражается следующей формулой:

Requested VID = Base VID + Offset + (AC loadline x Current) + AVX Guardband – TVB voltage optimization, где
Requested VID — напряжение, запрашиваемое процессором после уточнения параметров VRM на первом шаге
Base VID — базовое напряжение зашитой в кривой V/f для конкретного множителя.
Offset — напряжение смещения (задается вручную пользователем как положительная или отрицательная величина)
AC loadline x Current — напряжение на нагрузочной линии переменного тока (высчитывается как заданное значение в графе CPU AC Loadline, умноженное на протекающий ток). Вот как этот ток вычислить я так и не нашел нигде. Но понял, что вроде бы посмотреть этот ток можно в AIDA64 (но где я так и не нашел). Ну либо попытаться применить формулу расчета тока исходя из текущей потребляемой мощности Current = Квадратный корень (Потребляемая мощность / CPU AC Loadline). Потребляемую мощность так же можно посмотреть в AIDA64 (или HWInfo64) во время нагрузки. Не знаю корректно ли применить данную формулу в этом конкретном случае, но все же ее написал. В общем случае для себя надо уяснить, что чем больше мы задаем значение CPU AC Loadline, тем больше будет напряжение в момент нагрузки процессора. Это именно и указывается в текущем гайде по настройке LLC.
AVX Guardband — я так понял, что это добавочное напряжение в момент AVX нагрузок процессора. В BIOS материнской плате MSI значения регулируются настройкой AVX Voltage Guardband Scale (величины от 0 до 255). подробного описания значений и их величин я не нашел в интернете, но по умолчанию стоит значение 128. Думаю это некий коэффициент к напряжению. На форумах люди пишут, что при значении 0 напряжение при AVX нагрузке не увеличивается вовсе. Сам этот параметр я тоже еще не тестировал. На первом этапе настройки он у меня тсоит в значении Auto.
TVB Voltage Optimization — это напряжение используемое при работе функции Thermal Velocity Boost и в зависимости от температуры. Тоже точного описания я на нашел. Но здесь есть информация о TVB на форуме Asus. Но в общем читая в интернете для себя я понял, что при разгоне лучше отключать эту функцию. И все (кроме Asus) производители материнских плат по умолчанию отключают TVB.
НО став настраивать параметры регулирования напряжения для процессора для себя понял, что лучше включить TVB Voltage Optimization. Поясню почему далее в части "Настройка параметров LLC"

Может быть уважаемый ksof пояснит почему он оставил Thermal Velocity Boost Voltage Optimizations = Enabled и при этом выключил Overclocking TVB?

3. На третьем этапе процессор считывает напряжение подаваемое VRM:
И это напряжение выражается формулой:
Readback VID = Requested VID – (DC loadline X Current), где
Readback VID — считываемое напряжение процессором
DC loadline x Current — напряжение на нагрузочной линии постоянного тока (высчитывается как заданное значение в графе CPU DC Loadline, умноженное на протекающий ток). Так вот параметр CPU DC Loadline влияет только на считывание значения, а не на его фактическое значение, которое определяется CPU AC Loadline. Но в общем рекомендуется значения CPU AC Loadline и CPU DC Loadline ставить одинаковыми.

И если в результате всех этих шагов Readback VID < Base VID, то процессор будет динамически увеличивать Requested VID.
Вроде бы это все с вопросом формирования напряжений (Пояснения и правки приветствуются).

Настройка параметров LLC
В дополнение к информации, указанной уважаемым ksof тем, кто хочет посмотреть работу режимов LLC на примерах и графиках с осциллографа, хочу посоветовать посмотреть эту информацию здесь . Кстати, так же в этой статье показывается наглядно, как формируется и рассчитывается напряжение в нагрузке (Vdroop) и как оно связано с линией нагрузки (Loadline). Вот только не понятно то, о какой именно зависимости говорится в этом материале: о зависимости от CPU AC Loadline или в целом о режиме LLC?
Так же в этой статье указана таблица, из которой видно, что режимы LLC у Asus и MSI так сказать "разнонаправлены": т.е. у Asus самый сильный уровень регулирования LLC — 1, а у MSI — 8. Т.е. у Asus в режиме 1 идет самая сильная просадка по напряжению в момент нагрузки, но при это самые низкие значения недонапряжения (undershoot) или перенапряжения (overshoot) в периоды перехода работы процессора из режима простоя в режим нагрузки и наоборот, а у MSI такая ситуация должна наблюдаться в режиме 8.

Теперь о частоте работы VRM. Вопрос достаточно сложный и зависит от платы к плате. В теории чем больше частота работы VRM, тем по идее должно быть стабильнее подаваемое VRM напряжение, но при этом так же должны увеличиться температуры работы VRM.
Однако не на всех платах режимы с высокими частотами VRM работают лучше, чем с низкими. И если следовать тому, что говорит человек в прикрепленном ниже видео, то на платах MSI серии Z690 лучше выбирать режим работы VRM 500 кГц, т.к. остальные режимы работают неправильно (либо вообще сделаны для галочки). Возможно в новых прошивках BIOS это изменится, но мне это не чем будет проверить и за базовую величину я буду брать 500 кГц в своих дальнейших действиях.

Кроме того автор этого видео советует для плат MSI использовать 3 или 4 режим работы LLC (Mode 3 или Mode 4).
*В BIOS материнских плат MSI указанные выше параметры выставляется в разделе DigitALL Power-> CPU Loadline Calibration Control (настройка уровня LLC) и CPU Switching Frequency (частота работы VRM)

Теперь зная за что это за параметры и играясь (варьируя) различными их конфигурациями мы должны подобрать необходимое нам в нагрузке напряжение соответствующее напряжению на кривой V/f (либо даже несколько (немного) ниже, но при этом что бы была стабильность).

Начиная с этого момента у меня теперь только одни вопросы:
?1. Почему автор этой статьи (ksof) выбрал за базовую точку при настройке режима LLC точку 6 на кривой V/f?
?2. Как быть тем, кто не может узнать номера этих кривых?;) Если честно, то я в интернете не нашел ни одного примера кривой V/f для процессора 12700K с материнской платы Asus, чтобы понять какой множитель должен соответствовать номеру точки на кривой V/f. (Вероятно обладатели дорогих плат Asus берут только 12900 K:)) Зная множители кривой V/f для любого процессора 12700K можно далее самому определить параметры напряжений для этих точек. Делается это так же по методике указанной в этой статье. (см. раздел "V/f Curve: P-core").

Но уже позже покопавшись в BIOS моей материнской платы я обнаружил что в качестве настроек режима подачи напряжения для процессора есть такой режим как "Advanced Offset Mode (VF Point", где указано, что можно задать смещение напряжения отдельно для определенных точек кривой V/f для процессора. И оказалось, что первые 6 точек (х8, х18, х36, х40, х42, х48) процессора 12700K соответствуют первым 6 точкам процессора 12900К. Но это касается только множителей! Еще раз повторюсь, что базовые напряжения на этих точка индивидуальны для каждого процессора. А 7 и последующие точки для процессоров 12700К и 12900К различны: Для 12700К — это х50, а для 12900К — х53.

Режим Advanced Offset Mode (VF Point) я так понял появился уже в последних прошивках BIOS. Вроде бы ранее этого варианта не было.

?3. Когда ksof пишет : ". под нагрузкой датчик должен рапортовать напряжение максимально приближенное к 1.199 вольт. " имеется ввиду нагрузка Cinebench R15? Тест Single core? Если так, то этот тест очень короткий и напряжение успевает несколько раз за этот период измениться. Какое значение напряжения в момент теста Cinebench R15 необходимо смотреть: текущее или максимальное? (по логике это должно быть максимальное напряжение в столбце Current программы HWInfo64, т.к. максимальное обычно будет выше в простое, чем в нагрузке).

Но по результатам своих небольших тестирований у меня получилось следующее:
Во-первых расскажу о практике применения TVB Voltage Optimizations, о котором обещал рассказать выше.
Начав подбирать параметры LLC для своего экземпляра ЦП у меня получилось следующее:
Параметры, которые я выставил:
— CPU Loadline Calibration Control — Mode 4
— CPU Switching Frequency — 500 kHz
— CPU AC Loadline = 1
— CPU DC Loadline = 1
— P-core Ratio Apply Mode = All core
— P-core Ratio = x48— Advanced CPU Configuration \ IA CEP Support — Disable
И сначала TVB Voltage Optimizations я включил (Enable).
Напряжение Base VID для кривой моего процессора на множителе x48 равно 1,268 В. Следовательно примерно этого напряжения я и должен был добиваться в нагрузке.
В результате, если считывать показания Vcore и VID из HWinfo64 (VID буду указывать в скобках. Под VID уже подразумевается Readback VID, о котором я писал выше), я получил Vcore = 1,260 В (1,263 В) в нагрузке при тесте CPU в Cinebench R15. Т.е. практически с первого раза получается, что я подобрал идеальные параметры VRM для моей материнской платы и процессора.
Если же в BIOS все выше параметры оставить прежними, а TVB Voltage Optimizations выключить (Disable), то я получил Vcore = 1,286 В (1,288 В) в нагрузке при тесте CPU в Cinebench R15.
По факту TVB Voltage Optimizations добавила к напряжению 0,026 В. Собственно это и подтверждает формулу Requested VID, о которой я писал выше.

Далее соответственно все тесты я проводил с включенной функцией TVB Voltage Optimizations.

Кроме того я заметил, что само напряжение на процессоре (Vcore) не под нагрузкой ниже, чем в момент нагрузки. Возможно это из-за Mode 4 LLC (но пока будем тестировать).

По логике вещей вроде бы то, что у меня получилось даже лучше. Ведь получается, что в момент простоя процессор не получает ненужного повышенного напряжения (когда оно ему не нужно), а в момент нагрузки получает именно то, что надо. Но эти результаты в корне отличны от тех, что я находил в интернете. И это меня несколько смущает. Еще один недостаток такого поведения напряжения — это потенциально высокое перенапряжение (overshoot), которое появляется в период переходя процессора из нагрузки к простою.

?4. Почему в качестве нагрузки для определения этого уровня напряжения применялся именно Cinebench R15? Дело в том, что я заметил, что если запустить тест более серьезный (к примеру Cinebench R23 или Prime95) то текущее напряжение под нагрузкой уже будет иное.
В моем примере при тестировании (с параметрами указанными выше) под нагрузкой Prime95 в тесте SmalFFT и отключенными инструкциями AVX я уже получил Vcore = 1,270 В (1,273 В)

Так вот какое напряжение под нагрузкой (имеется ввиду при нагрузке в какой программе) в процессе настройки режима LLC необходимо считать приближенным к напряжению кривой V/f и для конкретного множителя процессора?

Я понимаю, что теперь моей первой задачей после настройки регулятора напряжения является:
1. Определить какой максимальный множитель будет использоваться для всех ядер (и сможет ли мои желания поддержать конкретный экземпляр процессора:)). Причем на первом этапе максимальную частоту надо определить не для AVX нагрузок, т.к. они очень сильно греют процессор.
2. Установив желаемый множитель для всех P-ядер, я должен подобрать для них соответствующее минимальное напряжение для стабильной их работы в режиме Adaptive + Offset, где Offset будет регулировать недостаток и наоборот излишек напряжения под нагрузкой.

Но я не пойму как определить какой максимально можно ставить множитель для всех ядер. только методом подбора?

?5. Почему ksof делает настройки андервольта для множителя 51, а далее начинает искать стабильной на множителе 53?

Далее я не могу понять, чем руководствовался ksof, когда выставлял для поиска стабильности режим Per Core OC для Р-ядер 1-7 множитель 53, а я всех P-ядер множитель 48? Почему именно 53 и именно для 7-ми ядер? Для меня не ясна логика действий, а это не дает возможность мне систематизировать эти данные и выработать определенный алгоритм действий для людей, которым можно было бы помочь и облегчить задачу по разгону ЦП в будущем.

?6. Почему ища стабильность в режиме All Core мы в результате начального тестирования в OCCT проводим тесты только с двумя ядрами и 4-мя потоками? И выбираем при этом конкретные ядра, выбор которых тоже ни чем не обоснован. Разве не логично тестировать нагрузку сразу на все ядра?

Я думаю было бы логично на первом этапе поиска стабильности All Core сначала подбирать максимально стабильные частоты при минимальном напряжении для НЕ AVX нагрузок. Т.к. дальше, используя настройки BIOS, для AVX нагрузок можно задавать отдельные смещения множителя процессора (в меньшую сторону) и повышение напряжения (используя AVX Guardband) тем самым регулировать разгон для AVX.
А тестировать стабильность и нагрузку в режиме All Core сначала для не AVX нагрузок, а потом уже до настраивать/регулировать эти параметры с AVX нагрузками.
Для себя я понял, что лучше всего нагружает и греет (!) процессор — это Prime95 (тест SmalFFTs). В нем можно отключать AVX нагрузки и он нагружает и греет процессор гораздо сильнее, чем любой Cinebench. И тем самым вы запросто поймете как сильно может нагреться ваш процессор в разгоне под нагрузкой без AVX и с AVX. Конечно понятно, что в реальной жизни таких сильных нагрузок, как в Prime95, не будет, но ведь мы хотим понимать как сильно может греться процессор.

?7 Как на материнских платах Asus задается режим смещения (offset) в адаптивном режиме работы VRM? В меню кривой V/f задается offset вручную для каждой точки кривой или смещение задается только одно? Не видя этого я не могу перенести этот опыт для работы с материнскими платами MSI.

После того как мы стабилизировали разгон для одновременно максимальных частот всех P-ядер может быть было бы лучше сначала заняться поиском стабильных максимальных частот для одноядерных нагрузок, чем переходить на разгон E-ядер? Думаю это логичнее, т.к. судя по всем ранее указанным материалам, в качестве максимального напряжения на процессоре VccIA (Vcore) используется максимально требуемое напряжение из V/f кривых для P-core, E-core или Ring. А напряжение для P-core на множителях более х50 обычно самое большое.
Как пример можно посмотреть на фото ниже:

Далее по тексту ksof, мы должны приступить к разгону процессора в режиме Single Core. Я понимаю, что тем самым мы должны найти максимальную рабочую частоту для одного ядра, которое будет работать еще на более высоких частотах в случае однопоточной нагрузки, чем в режиме All Core.
Но дальше ksof начинает задавать повышенные множители частот не для одного (лучшего) ядра, а для группы ядер. Попрошу объяснить почему был сделан выбор в пользу группы из 4-х и 2-х групп по 2 ядра? И почему были приняты такие множители как 56, 55, 54? (понятно, что 51 установили т.к. ранее мы определили, что все ядра у нас стабильно будут работать на множителе 51).
Кстати, этот вопрос не освещается ни ну одного автора. Все задают совершенно произвольные коэффициенты для группы P-ядер и при этом не объясняют как они их выбрали и почему они выбрали эти частоты.. И это меня ставит в ступор.

Так же прошу сделать скриншот экрана с меню AI Features, где указаны VID P-ядер для вашего процессора. (Чтобы иметь представление о чем вы говорите).

Допустим даже если мы выставили множители группам из P-ядер, то как дальше их тестировать? Как задавать и проверять стабильность этих групп ядер?
Делать это через OCCT задавая нагрузку к примеру на 4 ядра или группы из 6 или 7 ядер? Но ведь в OCCT мы выбираем конкретные ядра и не факт, что множители именно этих ядер будут повышенными в соответствии с выбранной группы. Или здесь алгоритм другой и я не правильно понимаю текущую ситуацию?

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *