ไม่ว่าคุณจะทำอะไรก็ตามการคำนวณสถานะถัดไปสำหรับหุ่นยนต์เซลลูล่าร์จะทำการคำนวณให้มากขึ้นกว่าที่มีเซลล์ในหุ่นยนต์ ดังนั้นเพื่อให้ได้เวลาที่คงที่คุณต้องใช้คอมพิวเตอร์เป็นจำนวนมากเช่นเดียวกับเซลล์
จำนวนของ GPU เหล่านี้ในปัจจุบันมีอยู่ไม่กี่พันตัวในขณะที่การคำนวณสถานะถัดไปนั้นง่ายมากที่ฉันคาดหวังว่าผลลัพธ์ที่ได้จะถูกผูกไว้กับ IO นั่นคือคุณจะได้รับเวลาที่ดีโดยประมาณเพียง จำเป็นต้องมีการเคลื่อนย้ายข้อมูล (และหากไม่ใช่การประมาณที่ดีการปรับใช้อาจไม่มีประสิทธิภาพหรือสถาปัตยกรรมไม่เหมาะ แต่ก็น่าแปลกใจมาก)
สำหรับ FPGA คำถามนั้นยากขึ้นและอาจขึ้นอยู่กับการผสมผสานระหว่างหน่วยความจำและหน่วยคำนวณที่มี ถ้าฉันไม่ไกลเกินไปคุณจะไม่มีหน่วยความจำเพียงพอที่จะทำให้ทุกหน่วยงานไม่ว่างและถ้าคุณพึ่งพาหน่วยความจำภายนอกคุณจะอยู่ในตำแหน่งเดียวกับ GPU, แบนด์วิดธ์หน่วยความจำจะเป็นปัจจัย จำกัด และฉันจะไม่ จะประหลาดใจถ้าข้อสรุปคือไม่มีข้อได้เปรียบกว่า GPU (โปรดทราบว่าในขณะที่ฉันทำงานกับ FPGA เป็นเมื่อหลายปีก่อนตอนนี้อาจมีรุ่น FPGA ที่มีการผสมผสานที่เหมาะสม)
ASIC ให้ความยืดหยุ่นมากกว่า คุณสามารถมี systolic เช่นการนำไปใช้ (แต่ด้วยการไหลของข้อมูลแบบสองทิศทาง systolic บางคนมักจะถูก จำกัด การไหลของข้อมูลทิศทางเดียว) แต่ละเซลล์ทางกายภาพเป็นหนึ่งตรรกะหนึ่ง: บิตของหน่วยความจำและตรรกะที่จำเป็นในการคำนวณสถานะถัดไป เพื่อให้มันเป็นเพื่อนบ้านทางกายภาพมันเป็นตรรกะอย่างใดอย่างหนึ่ง คุณอยู่ในขอบเขตเวลาที่แน่นอน คุณอาจจะดีกว่าที่จะเห็นได้ชัดน้อยกว่าและมีเซลล์ทางกายภาพที่จัดกลุ่มโลจิคัลหลาย ๆ ตัวขึ้นอยู่กับว่าคุณมีมาโครตัวแข็งแบบใด เป้าหมายคือการเพิ่มสิ่งที่ทำในชิปหนึ่งให้มากที่สุดอีกนัยหนึ่งเพื่อลดการสื่อสารกับด้านนอกของชิปให้น้อยที่สุดทันทีที่ความต้องการการสื่อสารของคุณเป็นสัดส่วนกับจำนวนเซลล์คุณจะมีแบนด์วิดท์ จำกัด ใช่นั่นหมายความว่าถ้าคุณต้องการดูเซลล์ทั้งหมดสำหรับแต่ละขั้นตอน คุณอาจจะไม่เก่งกว่า GPU มากนัก (กำหนดเองเต็มรูปแบบจะให้การรวมที่ดีขึ้นเท่านั้นเช่นมีจำนวนเซลล์ต่อชิปมากขึ้น)
สรุป: - หากคุณต้องการดูสถานะตัวกลางทั้งหมด GPU เป็นวิธีที่มีประสิทธิภาพมากที่สุด - ถ้าคุณไม่ต้องการปริมาณที่จะพิสูจน์ว่า ASIC มีสิ่งที่ดีกว่า FPGA อาจไม่มีข้อได้เปรียบเพียงพอ มี