เหตุที่ EvoX สามารถรองรับการสำรวจวิวัฒนาการแบบขนานความเข้มข้นสูงรากฐานของมันสรุปได้เป็นประโยคเดียวว่า:จากรายการตัวเลือกสู่กราฟการคำนวณแบบเทนเซอร์การทดลองวิวัฒนาการแบบดั้งเดิมมองแต่ละปัจเจกเป็นออบเจ็กต์ Python ที่แยกกัน สร้างโมเดลและประเมินทีละตัว;เมื่อขนาดของตัวเลือกขยายไปถึงหลักพันหลักหมื่น คอขวดที่แท้จริงมักไม่ใช่อัลกอริทึมอีกต่อไป แต่เป็นการจัดตารางเวลา การซิงโครไนซ์ และค่าใช้จ่าย I/O ต่อตัวเลือก วิธีของ EvoX คือ:จัดระเบียบประชากร การประเมิน และสถานะขณะรันใหม่ให้เป็นเทนเซอร์ที่คำนวณได้ทั้งชุด แล้วให้ Runtime แบบรวมศูนย์จัดตารางไปยัง GPU และพลังประมวลผลแบบต่างสถาปัตยกรรมเพื่อรันเป็นชุด จึงรองรับการค้นหาวิวัฒนาการแบบขนานขนาดใหญ่ หลายวัตถุประสงค์ และหลายคำตอบพร้อมกัน
สามวัตถุหลักที่ทำเป็นเทนเซอร์
การทำเป็นเทนเซอร์ไม่ใช่การปรับแต่งจุดใดจุดหนึ่ง แต่ครอบคลุมสามชั้นตลอดวงจรวิวัฒนาการ หากชั้นใดชั้นหนึ่งย้อนกลับไปใช้ลูปทีละออบเจ็กต์ ระดับความขนานก็จะติดขัดที่ชั้นนั้น
- การทำประชากรเป็นเทนเซอร์:พารามิเตอร์ ยีน หรือกลยุทธ์ของปัจเจกไม่วนลูปทีละออบเจ็กต์ Python อีกต่อไป แต่จัดตามมิติ批次ให้เป็นเทนเซอร์ ความแตกต่างระหว่างปัจเจกถูกแบกไว้โดยมิติหนึ่งของเทนเซอร์
- การทำการประเมินเป็นเทนเซอร์:ค่าความเหมาะสม ข้อจำกัด ตัวชี้วัดหลายวัตถุประสงค์ ตลอดจนผลการประเมินจากการจำลองหรือโมเดลสามารถคำนวณเป็นชุดได้ ตัวเลือกในชุดเดียวกันใช้การเรียกอุปกรณ์เพียงครั้งเดียว ช่วยลดค่าใช้จ่ายการจัดตารางและ I/O ต่อตัวเลือกได้อย่างมีนัยสำคัญ
- การทำสถานะเป็นเทนเซอร์:สถานะขณะรัน เช่น รุ่นของวิวัฒนาการ ซีดสุ่ม แคช และตัวชี้วัดการมอนิเตอร์ ถูกบริหารแบบรวมศูนย์ ทำให้การทดลองหลังการเร่งความเร็วแบบขนานยังคงทำซ้ำได้และติดตามได้。
การทำเป็นกราฟการคำนวณและสถาปัตยกรรมรวม
การยกระดับรายการตัวเลือกให้เป็นกราฟการคำนวณแบบเทนเซอร์แล้ว โอเปอเรเตอร์ขนานและการปรับแต่งการคอมไพล์จึงมีพื้นที่ให้ทำงาน:ขนาดประชากรและระดับความขนานของการประเมินสามารถขยายตามพลังประมวลผลได้ แทนที่จะถูกล็อกตายด้วยลูปของอินเทอร์พรีเตอร์ สิ่งที่มาคู่กันคือสถาปัตยกรรมรวม——อัลกอริทึม ปัญหา เวิร์กโฟลว์และการมอนิเตอร์ ตัวจัดตาราง Runtime แยกจากกัน:อัลกอริทึมประกอบได้ ปัญหาเสียบปลั๊กได้ พลังประมวลผลต่างสถาปัตยกรรมบริหารแบบรวมศูนย์ ผู้ใช้ไม่ต้องกังวลเรื่องการจัดตารางระดับล่างขณะเขียนอัลกอริทึม
ผลประโยชน์ที่ตรงที่สุดของฐานรากนี้คือก้าวข้ามคอขวดแบบอนุกรม:แทนที่ลูป CPU แบบอนุกรมดั้งเดิม บรรลุการเร่งความเร็วขนาดใหญ่บน GPU และพลังประมวลผลต่างสถาปัตยกรรม มอบพื้นฐาน吞吐ที่มั่นคงให้กับการสำรวจความเข้มข้นสูง;ในเวลานาฬิกาเดียวกัน สามารถสำรวจตัวเลือก กลุ่มวัตถุประสงค์ หรือการทำซ้ำแบบสุ่มได้มากขึ้น
ตัวอย่างเช่น สมมติการทดลองวิวัฒนาการหนึ่งครั้งต้องประเมินตัวเลือกจำนวนมาก วิธีดั้งเดิมคือเรียกฟังก์ชันประเมินทีละตัวบน CPU การจัดตาราง การซิงโครไนซ์ และลูป Python อาจครองเวลาเกือบทั้งหมด;EvoX ส่งเมทริกซ์ตัวเลือกเข้าอุปกรณ์เป็นชุด ให้ Runtime จัดตารางโอเปอเรเตอร์และการประเมิน พร้อมบันทึกสถานะและตัวชี้วัดการมอนิเตอร์แบบรวมศูนย์ ทำให้ในเวลานาฬิกาเดียวกันสามารถสำรวจตัวเลือก กลุ่มวัตถุประสงค์ หรือการทำซ้ำแบบสุ่มได้มากขึ้น นี่คือการสนับสนุนเชิงวิศวกรรมที่จำเป็นเมื่อปัญหา Multi-objective ในโลกจริง (เช่น การออกแบบปีกแบบ Supercritical ที่อัตราส่วนแรงยกต่อแรงต้านขณะครูซกับค่าสัมประสิทธิ์แรงยกวิกฤต Buffet ต่างช่วงชิงกัน) ต้องเก็บชุดตัวเลือกที่หลากหลาย
