ตัวอย่างเช่นหนึ่งสามารถมีปฏิบัติการที่ใช้คุณสมบัติสำหรับโปรเซสเซอร์ Core 2 และจากนั้นเลือกใช้คุณสมบัติอื่น ๆ สำหรับโปรเซสเซอร์เก่า? หรือมันเป็นความต้องการในการรวบรวมปฏิบัติการที่แตกต่างกัน? และถ้าไม่เป็นเช่นนั้นจริงหรือ?
ตัวอย่างเช่นหนึ่งสามารถมีปฏิบัติการที่ใช้คุณสมบัติสำหรับโปรเซสเซอร์ Core 2 และจากนั้นเลือกใช้คุณสมบัติอื่น ๆ สำหรับโปรเซสเซอร์เก่า? หรือมันเป็นความต้องการในการรวบรวมปฏิบัติการที่แตกต่างกัน? และถ้าไม่เป็นเช่นนั้นจริงหรือ?
คำตอบ:
เป็นไปได้ทั้งหมดขึ้นอยู่กับคุณสมบัติที่คุณอ้างอิงถึงวิธีการนั้นแตกต่างกันเล็กน้อย
ตัวอย่างเช่นสำหรับแอปพลิเคชันคณิตศาสตร์คุณสามารถตรวจสอบจำนวนโปรเซสเซอร์และ / หรือแกนประมวลผลจากนั้นให้แต่ละแกนจัดการส่วนต่าง ๆ ของการคำนวณ ส่วนที่ยากคือการทำให้แน่ใจว่าข้อมูลข้อมูลซิงโครนัสหรืออะซิงโครนัสขึ้นอยู่กับงานในมือ
และตามที่ระบุไว้ก่อนสิ่งต่าง ๆ เช่น MMX, SSE2 สามารถตรวจสอบได้และจากนั้นเรียกใช้ผ่านเส้นทางรหัสที่แตกต่างกันเช่น:
if (CPU.Supports SSE2) {then use SSE2 Libraries}
else if (CPU.Supports SSE) {Then use SSE Libraries}
else {use pre-SSE LIbraries}
นอกจากนี้สำหรับสิ่งต่าง ๆ เช่นการจัดวางองค์ประกอบ (x86 กับ x64) มีวิธีการเล็กน้อยที่สามารถจัดการได้ หากคุณใช้ JAVA หรือ C # ตัวอย่างเช่น JIT คอมไพเลอร์สามารถปรับโค้ดให้เหมาะสมสำหรับสถาปัตยกรรมทั้งสองเมื่อแอปพลิเคชันเปิดใช้งานมันอาจไม่เร็วเท่าแอปพลิเคชัน C ++ ที่เนทีฟและเหมาะสม แต่การแลกเปลี่ยนคือ C ++ คุณ เพื่อแยก x64 และ x86 ออกจากกัน
คุณสามารถเรียกใช้งานได้หนึ่งไฟล์ซึ่งรันไทม์ตรวจจับซีพียูที่ใช้แล้วเลือกวิธีที่ดีที่สุดในการใช้งาน Ofc แต่ละวิธี 'ที่ดีที่สุด' เหล่านี้จะถูกรวบรวมไว้ล่วงหน้า ดังนั้นคุณจึงใช้โปรแกรมที่เตรียมไว้เพื่อใช้โปรเซสเซอร์ / ชุดคำสั่งที่เลือกสรรอย่างเหมาะสมที่สุด
มีโปรแกรมไม่มากที่ดูเหมือนจะทำหรืออย่างน้อยไม่มากที่บอกผู้ใช้เกี่ยวกับมัน ยังคงมีอย่างน้อยสองสามอย่างเช่นไฟล์dnetc ที่เรียกใช้งานได้
หากคุณต้องการคุณสามารถเปรียบเทียบกับหนังสือหรือแผ่นพับโดยมีดัชนีระบุ:
หน้า 10-20:
หน้าอังกฤษ21-42: ดัตช์
หน้า 43-54: US อังกฤษ
หน้า 55-70: เดนมาร์ก
...
คุณจะต้องเขียนในภาษาที่เหมาะสม / ชุดคำสั่งสำหรับแต่ละเหล่านั้น
เคอร์เนล Linux ใช้เทคนิคที่น่ากลัวเช่นการแพ็ตช์เคอร์เนลที่ทำงานอยู่เพื่อเลือกอัลกอริทึมที่ดีที่สุดสำหรับฟังก์ชั่นที่ใช้งานมาก