Я маю певний досвід роботи з CUDA та шаховим програмуванням (не програмуванням двигуна). Це питання також мені спадало на думку багато разів. Ось моя думка, я цього ніколи не вивчав.
Ну, по-перше, практично впевнено, що при сучасній конструкції шахових двигунів це неможливо. Інакше хтось просто зробив би це.
Чи зможете ви використовувати його в абсолютно новому дизайні, це питання більше. Немає проблем з цілими операціями, але очевидно, що величезна річ, що ви повинні запустити примітивний код без серйозних розгалужень на багатьох об'єктах.
На мою думку, всі розрахунки з дерева повинні працювати на процесорі.
Але я можу собі уявити (я не кажу, що це можливо) якусь функцію часткового оцінювання, яка просто робить якомога більше оцінок по позиціях, щоб дати процесору більше часу, допомогти йому краще побудувати дерево, скажімо одна така функція могла підрахувати, наскільки серйозний розрахунок слід зробити для кожної позиції.
Ви можете обчислити кількість нападів квадратів, атаковані шматки, вогневу силу навколо королів, а в деяких субрегіонах на борту, речі, пов’язані зі структурою пішаків, ви могли, мабуть, зробити для них оптимізований GPU код. Напевно, ви можете отримати багато корисної інформації безкоштовно (немає часу на процесор, не чекає процесор), але вам доведеться бути справжнім генієм, щоб використовувати для таких дрібниць повну потужність сучасних графічних процесорів.
Мабуть, не дуже цікава річ зробити для створення абсолютно нового дизайну двигунів, щоб, скажімо, на 30% перевищили швидкість. І щоб сказати, що скажемо, 20-кратне прискорення на сучасних графічних процесорах, вам доведеться зробити функції оцінки справді чужими.
І останнє, що в цьому я вважаю проблемою. Ви можете запустити один код на процесорі, не думаючи, але в сценарії CPU + GPU вам доведеться мати справу з дійсно різними співвідношеннями CPU і GPU. швидкості та основні показники. Вам потрібен інший код для 16 ядер кластера зі слабким графічним процесором, ніж для повільного процесора з надшвидким графічним процесором, щоб використовувати всі можливості обладнання. Бажаним було б бенчмаркинг процесора проти графічного процесора, а потім запуск більшого коду на більш швидкій машині. Але все-таки, я думаю, ви ніде не наблизитесь до годування 3000 звірів тільки за допомогою функції оцінювання.
Редагування: Просто для того, щоб зрозуміти, CPU регулярно надсилатиме масиви позицій GPU для часткових оцінок. Можливо, це було не ясно з того, що я написав.
Багато проблем, щоб зробити цю роботу.