Saya memiliki beberapa pengalaman dengan pemrograman CUDA dan catur (bukan pemrograman mesin). Pertanyaan ini juga muncul di benak saya beberapa kali. Inilah pendapat saya, saya tidak pernah mempelajarinya.
Yah, pertama, hampir pasti bahwa dengan desain mesin catur saat ini, itu tidak mungkin. Kalau tidak, seseorang hanya akan melakukannya.
Apakah Anda bisa menggunakannya dalam desain yang sama sekali baru, itu pertanyaan yang lebih besar. Tidak ada masalah dengan operasi integer, tetapi jelas ada hal besar yang harus Anda jalankan kode primitif tanpa percabangan serius pada banyak entitas.
Menurut pendapat saya semua perhitungan pohon harus berjalan pada CPU.
Tapi saya bisa membayangkan (saya tidak mengatakan itu mungkin) beberapa fungsi evaluasi parsial (s) yang hanya membuat sebanyak mungkin penilaian pada posisi, untuk memberi CPU lebih banyak waktu, untuk membantunya membangun pohon dengan cara yang lebih baik, katakanlah satu fungsi tersebut dapat menghitung seberapa serius perhitungan harus dilakukan pada setiap posisi.
Anda dapat menghitung jumlah kotak yang diserang, potongan diserang, daya tembak di sekitar raja dan di beberapa subregional di papan, hal-hal terkait struktur gadai, Anda mungkin bisa membuat kode GPU yang dioptimalkan untuk ini. Anda mungkin bisa mendapatkan banyak informasi berguna secara gratis (tanpa waktu CPU, tanpa menunggu CPU), tetapi Anda harus benar-benar jenius untuk menggunakan tenaga kuda penuh GPU modern untuk hal-hal kecil seperti itu.
Ini mungkin bukan hal yang sangat menarik untuk dilakukan untuk menciptakan desain mesin yang sepenuhnya baru untuk mendapatkan katakanlah 30% kecepatan ekstra. Dan untuk mendapatkan katakanlah 20x percepatan pada GPU canggih, Anda harus membuat fungsi evaluasi benar-benar asing.
Dan hal terakhir yang saya lihat adalah masalah. Anda dapat menjalankan satu kode pada CPU tanpa banyak berpikir, tetapi dalam skenario CPU + GPU Anda harus berurusan dengan rasio CPU dan GPU yang sangat berbeda. kecepatan dan jumlah inti. Anda akan membutuhkan kode yang berbeda untuk klaster 16 core dengan GPU lemah daripada pada CPU lambat dengan GPU super cepat untuk menggunakan kapabilitas penuh perangkat keras. Membandingkan CPU dengan GPU dan menjalankan lebih banyak kode pada mesin yang lebih cepat akan diinginkan. Tapi tetap saja, saya pikir Anda tidak akan bisa memberi makan 3000 core beast hanya dengan fungsi evaluasi.
Sunting: Hanya untuk memperjelas, CPU akan secara teratur mengirim susunan posisi GPU untuk melakukan evaluasi parsial. Mungkin itu tidak jelas dari apa yang saya tulis.
Banyak masalah untuk membuat ini berfungsi.