โฮมเพจ » ทำอย่างไร » ทำไมเรายังใช้ซีพียูแทน GPU?

    ทำไมเรายังใช้ซีพียูแทน GPU?

    มีการใช้ GPU มากขึ้นสำหรับงานที่ไม่ใช่แบบกราฟิกเช่นการคำนวณความเสี่ยงการคำนวณพลศาสตร์ของไหลและการวิเคราะห์แผ่นดินไหว มีอะไรจะหยุดเราไม่ให้ใช้อุปกรณ์ที่ขับเคลื่อนด้วย GPU?

    เซสชั่นคำถามและคำตอบในวันนี้มาถึงเราด้วยความอนุเคราะห์จาก SuperUser ซึ่งเป็นแผนกย่อยของ Exchange Exchange ซึ่งเป็นกลุ่มไดรฟ์ชุมชนของเว็บไซต์ถาม - ตอบ.

    คำถาม

    ผู้อ่าน SuperUser Ell ติดตามข่าวเทคโนโลยีและสงสัยว่าทำไมเราไม่ใช้ระบบที่ใช้ GPU มากขึ้น:

    สำหรับฉันแล้วดูเหมือนว่าการคำนวณในสมัยนี้จะใช้ GPU เป็นจำนวนมาก เห็นได้ชัดว่ามีกราฟิกอยู่ที่นั่น แต่ใช้ CUDA และเช่น AI, hashing algorithm (คิดว่า Bitcoins) และอื่น ๆ ก็ทำบน GPU เช่นกัน ทำไมเราไม่สามารถกำจัด CPU และใช้ GPU ด้วยตัวเองได้? อะไรทำให้ GPU เร็วกว่า CPU มาก?

    ทำไมเหรอ? สิ่งที่ทำให้ซีพียูไม่เหมือนใคร?

    คำตอบ

    ผู้สนับสนุน SuperUser DragonLord นำเสนอภาพรวมที่สนับสนุนอย่างดีเกี่ยวกับความแตกต่างระหว่าง GPU และ CPU:

    TL; DR คำตอบ: GPU มีแกนประมวลผลมากกว่าคอร์มาก แต่เนื่องจากแต่ละคอร์ GPU ทำงานช้ากว่าคอร์คอร์อย่างมากและไม่มีคุณสมบัติที่จำเป็นสำหรับระบบปฏิบัติการที่ทันสมัยจึงไม่เหมาะสำหรับการประมวลผลส่วนใหญ่ในการประมวลผลในชีวิตประจำวัน เหมาะที่สุดสำหรับการดำเนินการคำนวณที่เข้มข้นเช่นการประมวลผลวิดีโอและการจำลองทางฟิสิกส์.

    คำตอบโดยละเอียด: GPGPU ยังคงเป็นแนวคิดที่ค่อนข้างใหม่ เริ่มแรกใช้ GPU เพื่อแสดงกราฟิกเท่านั้น ในฐานะที่เป็นเทคโนโลยีขั้นสูงคอร์จำนวนมากใน GPUs ที่เกี่ยวข้องกับซีพียูถูกใช้ประโยชน์โดยการพัฒนาความสามารถในการคำนวณสำหรับ GPU เพื่อให้สามารถประมวลผลสตรีมข้อมูลขนานจำนวนมากพร้อมกันไม่ว่าข้อมูลนั้นจะเป็นอะไร ในขณะที่ GPU สามารถมีตัวประมวลผลสตรีมนับร้อยหรือพันตัวแต่ละตัวจะทำงานช้ากว่าซีพียูคอร์และมีคุณสมบัติน้อยลง (แม้ว่าจะเสร็จสมบูรณ์และสามารถตั้งโปรแกรมให้รันโปรแกรมใดก็ได้ที่ CPU สามารถทำงานได้) คุณสมบัติที่ขาดหายไปจาก GPUs ได้แก่ การขัดจังหวะและหน่วยความจำเสมือนซึ่งจำเป็นต้องใช้กับระบบปฏิบัติการที่ทันสมัย.

    กล่าวอีกนัยหนึ่งซีพียูและ GPU มีสถาปัตยกรรมที่แตกต่างกันอย่างมากซึ่งทำให้เหมาะกับงานที่แตกต่างกัน GPU สามารถจัดการข้อมูลจำนวนมากในสตรีมจำนวนมากซึ่งทำงานได้ค่อนข้างง่าย แต่ไม่เหมาะสำหรับการประมวลผลอย่างหนักหรือซับซ้อนในสตรีมข้อมูลเพียงหนึ่งหรือสองสามตัว CPU เร็วกว่ามากต่อหนึ่งคอร์ (ในแง่ของคำแนะนำต่อวินาที) และสามารถดำเนินการที่ซับซ้อนบนสตรีมข้อมูลหนึ่งหรือสองสามข้อมูลได้ง่ายขึ้น แต่ไม่สามารถจัดการสตรีมจำนวนมากได้อย่างมีประสิทธิภาพพร้อมกัน.

    ด้วยเหตุนี้ GPU จึงไม่เหมาะที่จะจัดการกับงานที่ไม่ได้รับประโยชน์อย่างมากจากหรือไม่สามารถขนานกันได้รวมถึงแอพพลิเคชั่นผู้บริโภคทั่วไปเช่นเวิร์ดโปรเซสเซอร์ นอกจากนี้ GPU ยังใช้สถาปัตยกรรมที่แตกต่างกันโดยพื้นฐาน จะต้องตั้งโปรแกรมแอปพลิเคชันเฉพาะสำหรับ GPU เพื่อให้ทำงานได้และต้องใช้เทคนิคที่แตกต่างกันอย่างมากในการโปรแกรม GPU เทคนิคที่แตกต่างกันเหล่านี้รวมถึงภาษาการเขียนโปรแกรมใหม่การปรับเปลี่ยนภาษาที่มีอยู่และกระบวนทัศน์การเขียนโปรแกรมใหม่ที่เหมาะสมกับการแสดงการคำนวณเป็นการดำเนินการแบบขนานที่จะดำเนินการโดยสตรีมโปรเซสเซอร์จำนวนมาก สำหรับข้อมูลเพิ่มเติมเกี่ยวกับเทคนิคที่จำเป็นสำหรับการโปรแกรม GPU ดูบทความ Wikipedia เกี่ยวกับการประมวลผลแบบสตรีมและการคำนวณแบบขนาน.

    GPU รุ่นใหม่มีความสามารถในการปฏิบัติการเวกเตอร์และเลขทศนิยมด้วยการ์ดล่าสุดที่สามารถจัดการตัวเลขจุดลอยตัวที่มีความแม่นยำสองเท่า เฟรมเวิร์กเช่น CUDA และ OpenCL ช่วยให้สามารถเขียนโปรแกรมสำหรับ GPU ได้และลักษณะของ GPU ทำให้พวกเขาเหมาะสมที่สุดสำหรับการดำเนินการแบบขนานได้อย่างมากเช่นในการคำนวณทางวิทยาศาสตร์ซึ่งชุดของการ์ดคำนวณ GPU เฉพาะสามารถทดแทนได้ คำนวณคลัสเตอร์เช่นเดียวกับใน NVIDIA Tesla Personal Supercomputers ผู้บริโภคที่มี GPU ที่ทันสมัยที่มีประสบการณ์กับ Folding @ home สามารถใช้พวกเขาเพื่อสนับสนุนลูกค้า GPU ซึ่งสามารถจำลองการพับโปรตีนด้วยความเร็วสูงมากและมีส่วนร่วมในโครงการมากขึ้น (โปรดอ่านคำถามที่พบบ่อยก่อนโดยเฉพาะที่เกี่ยวข้องกับ GPUs) GPU สามารถเปิดใช้งานการจำลองทางฟิสิกส์ที่ดีขึ้นในวิดีโอเกมโดยใช้ PhysX เร่งการเข้ารหัสและถอดรหัสวิดีโอและทำงานอื่น ๆ ที่เน้นการคำนวณ เป็นประเภทของงานเหล่านี้ที่ GPUs เหมาะสมที่สุดสำหรับการทำงาน.

    AMD เป็นผู้บุกเบิกการออกแบบตัวประมวลผลที่เรียกว่าหน่วยประมวลผลเร่ง (APU) ซึ่งรวมแกนประมวลผล x86 แบบดั้งเดิมกับ GPU สิ่งนี้จะทำให้องค์ประกอบของ CPU และ GPU ทำงานร่วมกันและปรับปรุงประสิทธิภาพของระบบที่มีพื้นที่ จำกัด สำหรับส่วนประกอบแยกต่างหาก ในขณะที่เทคโนโลยียังคงก้าวหน้าเราจะเห็นการบรรจบกันของชิ้นส่วนที่แยกออกมาเพิ่มขึ้น อย่างไรก็ตามงานจำนวนมากที่ดำเนินการโดยระบบปฏิบัติการ PC และแอพพลิเคชั่นยังคงเหมาะสมกับซีพียูมากขึ้นและจำเป็นต้องใช้งานจำนวนมากเพื่อเร่งความเร็วโปรแกรมโดยใช้ GPU เนื่องจากซอฟต์แวร์ที่มีอยู่จำนวนมากใช้สถาปัตยกรรม x86 และเนื่องจาก GPU ต้องการเทคนิคการเขียนโปรแกรมที่แตกต่างกันและขาดคุณสมบัติที่สำคัญหลายประการที่จำเป็นสำหรับระบบปฏิบัติการการเปลี่ยนจากซีพียูมาเป็น GPU โดยทั่วไปสำหรับการใช้คอมพิวเตอร์ในชีวิตประจำวันเป็นเรื่องยากมาก.


    มีสิ่งที่จะเพิ่มคำอธิบายหรือไม่ ปิดเสียงในความคิดเห็น ต้องการอ่านคำตอบเพิ่มเติมจากผู้ใช้ Stack Exchange คนอื่นหรือไม่ ลองอ่านหัวข้อสนทนาเต็มได้ที่นี่.