ฉันเคยมีประสบการณ์เกี่ยวกับการเขียนโปรแกรม CUDA และหมากรุก (ไม่ใช่การเขียนโปรแกรม) คำถามนี้ก็มาถึงใจฉันหลายครั้ง นี่คือความคิดเห็นของฉันฉันไม่เคยศึกษาเรื่องนี้เลย
ก่อนอื่นมันค่อนข้างแน่นอนว่าด้วยการออกแบบเครื่องมือหมากรุกในปัจจุบันมันเป็นไปไม่ได้ ไม่เช่นนั้นบางคนก็แค่ทำ
ไม่ว่าคุณจะสามารถใช้มันในการออกแบบใหม่ได้หรือไม่นั่นเป็นคำถามที่ใหญ่กว่า ไม่มีปัญหากับการดำเนินการจำนวนเต็ม แต่ชัดเจนว่ามีสิ่งใหญ่ที่คุณต้องเรียกใช้โค้ดดั้งเดิมโดยไม่มีการแยกสาขาที่ร้ายแรงในเอนทิตีหลายแห่ง
ในความคิดของฉันการคำนวณแบบทรีควรรันบน CPU
แต่ฉันสามารถจินตนาการได้ (ฉันไม่ได้บอกว่าเป็นไปได้) ฟังก์ชั่นการประเมินผลบางส่วนที่เพิ่งประเมินตำแหน่งมากที่สุดเท่าที่จะเป็นไปได้เพื่อให้ CPU มีเวลามากขึ้นเพื่อช่วยเขาสร้างต้นไม้ในวิธีที่ดีกว่า หนึ่งฟังก์ชั่นดังกล่าวสามารถคำนวณว่าควรคำนวณอย่างจริงจังในแต่ละตำแหน่ง
คุณสามารถคำนวณจำนวนสี่เหลี่ยมที่ถูกโจมตีชิ้นส่วนที่ถูกโจมตีอาวุธรอบตัวและในบางส่วนย่อยบนกระดานโครงสร้างสิ่งจำนำที่เกี่ยวข้องคุณอาจสร้างโค้ด GPU ที่เหมาะสมสำหรับสิ่งเหล่านี้ คุณอาจได้รับข้อมูลที่เป็นประโยชน์มากมายฟรี (ไม่มีเวลา CPU, ไม่ต้องรอ CPU) แต่คุณต้องเป็นอัจฉริยะที่แท้จริงเพื่อใช้แรงม้าเต็มรูปแบบของ GPU สมัยใหม่สำหรับสิ่งเล็ก ๆ น้อย ๆ
อาจไม่น่าสนใจมากนักที่จะสร้างการออกแบบใหม่ของเครื่องยนต์เพื่อให้ได้ความเร็วที่เพิ่มขึ้น 30% และเพื่อให้สมมุติว่าการเร่งความเร็ว 20x สำหรับ GPU ที่ทันสมัยคุณจะต้องทำให้ฟังก์ชั่นการประเมินผลนั้นเป็นคนต่างด้าวจริงๆ
และสิ่งสุดท้ายที่ฉันเห็นว่าเป็นปัญหา คุณสามารถเรียกใช้รหัสเดียวบน CPU ด้วยความคิดไม่มาก แต่ในสถานการณ์ CPU + GPU คุณจะต้องจัดการกับอัตราส่วนที่แตกต่างกันของ CPU และ GPU ความเร็วและจำนวนหลัก คุณจะต้องใช้รหัสที่แตกต่างกันสำหรับ 16 คอร์คลัสเตอร์ที่มี GPU ที่อ่อนแอกว่าบน CPU ที่ช้าด้วย GPU ที่เร็วที่สุดเพื่อใช้ความสามารถของฮาร์ดแวร์อย่างเต็มรูปแบบ การเปรียบเทียบเบนช์มาร์กกับ GPU และจากนั้นรันโค้ดเพิ่มเติมบนเครื่องที่เร็วกว่าจะเป็นที่ต้องการ แต่ถึงกระนั้นฉันคิดว่าคุณจะได้ใกล้ชิดกับการให้อาหารสัตว์ 3000 แกนเพียงแค่ฟังก์ชั่นการประเมินผล
แก้ไข: เพื่อทำให้สิ่งต่าง ๆ ชัดเจน CPU จะส่งตำแหน่งอาร์เรย์ของ GPU เป็นประจำเพื่อทำการประเมินบางส่วน อาจไม่ชัดเจนจากสิ่งที่ฉันเขียน
ปัญหามากมายที่ทำให้งานนี้