Как настроить на лучшую производительность при майнине на CPU на алгоритмах yespowerАвтор этого алгоритма является -
Alexander PeslyakИсходники -
https://cvsweb.openwall.com/cgi/cvsweb.cgi/projects/yespower/Описание -
https://cvsweb.openwall.com/cgi/cvsweb.cgi/projects/yespower/README?rev=1.3;content-type=text%2FplainКак и сам автор -
https://cvsweb.openwall.com/cgi/cvsweb.cgi/projects/yespower/PERFORMANCE?rev=1.1;content-type=text%2FplainProper setting of thread affinities to run exactly one thread per
physical CPU core is non-trivial. In the above examples, it so happened
that the first 4 logical CPU numbers corresponded to different physical
cores, but this won't always be the case. This can vary even between
apparently similar systems. On Linux, the mapping of logical CPUs to
physical cores may be obtained from /proc/cpuinfo (on x86[-64] and MIC)
or sysfs, which an optimized implementation of e.g. a cryptocurrency
miner could use. If you do not bother obtaining this information from
the operating system, you might be better off not setting thread
affinities at all (in order to avoid the risk of doing this incorrectly,
which would have a greater negative performance impact) and/or running
as many threads as there are logical CPUs. Also, there's no certainty
whether different and future CPUs will run yespower faster using one or
maybe more threads per physical core.
Лучше использовать 1 поток на 1 физическое ядро, так это было год назад, так это и сейчас на новых ryzen.
т.е. процессоры Intel используют Hyper-threading (
https://ru.wikipedia.org/wiki/Hyper-threading) - это когда на одно физическое ядро получается 2 виртуальных. А алгоритм получает лучшую производительность при майнинге на физических ядрах, без виртуальных.
Это можно сделать несколькими путями:
1) Отключить HT в bios - и будут использоваться только физические ядра
2) Задать параметр в майнере, ели это cpuminer-opt или его производная то можно использовать параметры:
--cpu-affinity 5 -t 2
где cpu-affinity - это маска ядер, в винде 1 - физическое, 2 - виртуальное, 3 - физическое, 4 - виртуальное и т.д.
t - это кол-во потоков майнинга, оно должно соответсвовать выбранным физическим ядрам.
Удобный калькулятор есть внизу страницы -
http://matrix-pool.info/getting_startedИли использовать эту
Windows affinity, Physical cores
Windows enumerates cores differently than linux.
Cores 0,2
0x5
Cores 0,2,4
0x15
Cores 0,2,4,6
0x55
Cores 0,2,4,6,8
0x155
Cores 0,2,4,6,8,10
0x555
Cores 0,2,4,6,8,10,12
0x1555
Cores 0,2,4,6,8,10,12,14
0x5555
Cores 0,2,4,6,8,10,12,14,16
0x15555
Cores 0,2,4,6,8,10,12,14,16,18
0x55555
Cores 0,2,4,6,8,10,12,14,16,18,20
0x155555
Cores 0,2,4,6,8,10,12,14,16,18,20,22
0x555555
Cores 0,2,4,6,8,10,12,14,16,18,20,22,24
0x1555555
Cores 0,2,4,6,8,10,12,14,16,18,20,22,24,26
0x5555555
Cores 0,2,4,6,8,10,12,14,16,18,20,22,24,26,28
0x15555555
Cores 0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30
0x55555555
Т.е. если у вас шестиядерный ryzen, который имеет 12 потоков, подходит параметр
--cpu-affinity=0x555
Т.е. на ryzen 3600 получается
--cpu-affinity=0x555 -t 6
3) Способ для кнопкодавов:
запускаем майнер на нужное - кол-во потоков параметром -t и открывем диспетчер задач в винде, там правой кнопке на процессе майнера и выбираем пункт "задать соответсвие" и отмечаем ядра через одного: 0,2,4,6,8 и т.д.
4) Для администраторов винды, которые знает все его команды. Создаём батник
start /affinity # program.exe
где # - маска ядер
Т.е. для 4 ядерного процессора, у которого физически 2 ядра используем
0x5
= 0+2
Вот, вроде основные методы как майнить на физ ядрах описал. Это даёт прирост от 10 до 25%.
Также кто-то любит майнить на всех физических ядрах, кроме первого - чтобы не мешало работе, первое ядро - использует частенько винда для своих нужд.
p.s. у нас появились краны раздач монет, можно потестить как работают кошельки не дожидаясь выплат с пула. Краны поддерживают только bech32 адреса (это те, которые segwit но только покороче и покрасившеЮ про них бы тоже рассказал, но это не в рамках данного топика).