Як масштабується потужність двигуна з обладнанням?


14

Скажімо, я запускаю Komodo на моїй 4-х ядерній машині. Наскільки сильнішим буде Komodo, якби я використовував 8-ядерну машину? 40-ядерна машина? 4000-ядерна машина?

Чи існує загальне відношення до цього? Також, чи залежить це масштабування від того, який двигун використовується, і якщо так, то чому?


+1; також цікаво: як збільшується потужність із збільшенням доступності оперативної пам’яті.
GloriaVictis

1
Сьогодні відповіді на це сильно залежать від здатності програмного забезпечення ефективно використовувати декілька ядер. Це завжди питання зменшення віддачі, але чи буде відсікання 2, 4, 8 ... ядер, залежить від програмного забезпечення. Перегляньте кілька питань щодо

2
Дивіться закон Амдала . Будь-яка комп'ютерна програма може скористатися лише такою кількістю ядер, додавання більше не допоможе прискорити обчислення. Будь-яка шахова програма є комп’ютерною програмою і тому обмежена законом. Вони можуть відрізнятися за рівнем витонченості та оптимізації, але з упевненістю можна сказати, що ви не отримаєте набагато більшу продуктивність від 4000 ядер порівняно з 40 ядрами програми, запущеної на 4 ядрах.
Павло

Привіт, ця публікація, начебто, отримала гідні відповіді, якщо ви вважаєте, що це особливо задовільно, будь ласка, подумайте про її прийняття , оскільки важливо дати закриття добре адресованим публікаціям. Дякуємо, що розглянули.
user929304

Відповіді:


10

Multicore важливий для шахових двигунів, але він не масштабується назавжди.

  • На певну глибину, незалежно від того, яким обладнанням ви володієте, у вас просто не вистачає обчислювальної потужності
  • Так. Масштабування сильно залежить від впровадження. Наприклад, простий mutex значно полегшить програмування багатопотокових програм (будь-який порядний програміст погодиться тут), але це також зробить двигун набагато повільніше, ніж інший двигун без блокування mutex.
  • Машина на 40 ядер буде грати сильніше, ніж 8-ядерна машина, хоча важко сказати, на скільки. 4000-ядерна машина також повинна грати сильніше 40-ядерної, але важче виправдати витрати на менші вдосконалення Elo.

1
Чи можлива оцінка "скільки"? Скажіть, "подвоєння обчислювальної потужності приблизно ~ 50 ело"?
Алюр

4

Часткова відповідь: TCEC Stockfish грає з 43 ядрами і нитками, тоді як так званий двигун Kitbitzing Redfish (який, в основному, Stockfish на більш сильному обладнання), грає зі 192 ядрами та 256 нитками. Працюючи зі швидкістю 4 рази (вимірюється вузлами в секунду), Redfish на +50 ело сильніше, ніж TCEC Stockfish.


3

Я не робив експерименту, але думаю, що це має бути щось на кшталт введіть тут опис зображення

Як сказав @SmallChess у своїй відповіді : необхідна обчислювальна потужність зростає експоненціально, і на певній глибині це було б просто занадто великим.

для більш простого положення, проте це не так, тому що двигун вивчив би всі можливості, перш ніж досягти повної потужності (тобто: максимальної глибини)


Графік здається правильним (якщо припустити, що це збільшення сили проти збільшення ресурсів). Для простих позицій це не допомагає мати більше обчислень, але для складних позицій воно може перенести вас через переломний момент, тому я б залишав конкретні позиції поза дискусією.
Денніс Джахеруддін
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.