CUDA ve satranç programlama ile ilgili bazı deneyimlerim var (motor programlama değil). Bu soru da aklıma birçok kez geldi. İşte benim görüşüm, bunu hiç çalışmadım.
Öncelikle, satranç motorlarının mevcut tasarımı ile imkansız olduğu neredeyse kesindir. Aksi takdirde birisi bunu yapardı.
Tamamen yeni bir tasarımda kullanabilirsiniz, bu daha büyük bir soru. Tamsayı işlemleriyle ilgili bir sorun yoktur, ancak açıkça, varlıkların çoğunda ciddi dallanma olmadan ilkel kod çalıştırmanız gereken çok büyük bir şey vardır.
Bence tüm ağaç hesaplamaları CPU üzerinde yapılmalıdır.
Ama tahmin edebiliyorum (mümkün olduğunu söyleyemem), pozisyonlarda mümkün olduğunca fazla değerlendirme yapan, CPU'ya daha fazla zaman vermek, ağacın daha iyi bir şekilde inşa edilmesine yardımcı olmak için bazı kısmi değerlendirme işlev (ler) i düşünebilirim. böyle bir fonksiyon her pozisyonda ne kadar ciddi hesaplamalar yapılması gerektiğini hesaplayabilir.
Saldıran karelerin sayısını, saldırıya uğrayan parçaları, kralların etrafındaki ateş gücünü ve gemideki bazı alt bölgelerde, piyon yapısıyla ilgili şeyleri hesaplayabilir, muhtemelen bunlar için GPU optimize edilmiş kod yapabilirsiniz. Muhtemelen ücretsiz olarak çok fazla yararlı bilgi alabilirsiniz (CPU zamanı yok, CPU bekleme yok), ancak bu tür küçük şeyler için modern GPU'ların tam beygir gücünü kullanmak için gerçek bir dahi olmanız gerekir.
% 30 ekstra hız diyelim ki tamamen yeni bir motor tasarımı oluşturmak için muhtemelen çok ilginç bir şey değil. Ve en son teknoloji GPU'larda 20 kat hızlanma diyelim, değerlendirme fonksiyonlarını gerçekten yabancı hale getirmelisiniz.
Ve bu konuda son olarak bir sorun olarak gördüğüm şey. CPU üzerinde çok fazla düşünmeden bir kod çalıştırabilirsiniz, ancak CPU + GPU senaryosunda gerçekten farklı CPU ve GPU oranları ile uğraşmanız gerekir. hızlar ve çekirdek sayımları. Donanımın tüm özelliklerini kullanmak için zayıf GPU'lu 16 çekirdekli küme için süper hızlı GPU'lu yavaş CPU'dan farklı bir koda ihtiyacınız olacaktır. CPU ve GPU karşılaştırması yapmak ve daha hızlı makinede daha fazla kod çalıştırmak istenir. Ama yine de, sadece değerlendirme işlevleriyle 3000 çekirdek canavarı beslemeye hiçbir yere varamayacağınızı düşünüyorum.
Düzenleme: Sadece şeyleri netleştirmek için, CPU düzenli olarak kısmi değerlendirmeler yapmak için pozisyon GPU dizileri gönderir. Belki de yazdıklarımdan belli değildi.
Bu işi yapmak için birçok sorun.