ปัญหาหลักคืออัลกอริทึมการเรียงลำดับ (1) ต้องการความยืดหยุ่นมากและ (2) จะเร่งความเร็วได้ยากโดยใช้ฮาร์ดแวร์อย่างไรก็ตาม
สิ่งหนึ่งคืออัลกอริธึมการเรียงลำดับนั้นเร็วพอที่จะเร็วกว่าแบนด์วิดท์หน่วยความจำของโปรเซสเซอร์ - โปรเซสเซอร์จะใช้เวลาส่วนใหญ่ในการรอข้อมูลเพื่อเลื่อนถอยหลังและส่งต่อไปยังหน่วยความจำหลัก Co-processor การเรียงลำดับแบบเร่งด้วยฮาร์ดแวร์หรือคำสั่งการเรียงลำดับแบบพิเศษจะมีปัญหาเดียวกัน
วิธีที่แบนด์วิดท์หน่วยความจำนี้ได้รับการแก้ไขคือการใช้อัลกอริธึมและโครงสร้างข้อมูลที่ดีกว่าซึ่งมี "ตำแหน่ง" ที่ดีกว่าและยังคงมีงานที่สำคัญที่ดำเนินการในฟิลด์นี้โดยเฉพาะ "อัลกอริทึม โดยไม่คำนึงถึงรายละเอียดของการแคชในขณะที่อัลกอริทึม "แคชทราบ" ถูกปรับสำหรับขนาดหน้าแคชเฉพาะเป็นต้น)
ในทางตรงกันข้ามแอปพลิเคชั่นสื่อ (เสียงและกราฟิกโดยเฉพาะกราฟิก 3D) ใช้ประโยชน์จากโครงสร้างที่ซ้ำซ้อนบางอย่างแน่นอนว่ามันมีความยืดหยุ่น แต่มันถูกสร้างขึ้นบนรากฐานที่มีขนาดใหญ่ ที่ได้รับอนุญาตให้เร่งความเร็วกราฟิกเพื่อเริ่มต้นง่ายๆกับสิ่งต่าง ๆ เช่น Blitting (การดำเนินการคัดลอกบล็อกที่กำหนดค่าได้ แต่ยังมีโครงสร้างมาก) และการวาดเส้น / รูปหลายเหลี่ยม นั่นหมายความว่าเมื่อการประมวลผลกราฟิกและเสียงมีความซับซ้อนมากขึ้นการดำเนินงานของเวกเตอร์กลายเป็นเป้าหมายที่ชัดเจนสำหรับการปรับให้เหมาะสม - MMX แรก (เวกเตอร์จำนวนเต็ม) จากนั้น SSE (เวกเตอร์ของลอย) มันหมายถึงว่ามีโครงสร้างที่กำหนดไว้ค่อนข้างชัดเจนว่ากลไกกราฟิก 3D ทำงานอย่างไรเมื่อระบบกราฟิก 3D แบบเก่าที่ใช้ฟังก์ชั่นคงที่ถูกย้ายไปยังฮาร์ดแวร์กราฟิก 3D
ทว่าด้วยกราฟิกสามมิติสิ่งที่เคยทำในฮาร์ดแวร์เสร็จแล้วในตอนนี้คือซอฟต์แวร์เพื่อความยืดหยุ่น - shaders เป็นซอฟต์แวร์ตัวอย่างเช่นซึ่งเป็นวิธีที่เราได้รับความหลากหลายของเฉดสีที่หลากหลาย อย่างไรก็ตามซอฟต์แวร์ดังกล่าวยังคงทำงานในรูปแบบที่มีโครงสร้างมากกว่าซอฟต์แวร์ทั่วไปและดังนั้นจึงยังสามารถใช้แพลตฟอร์มฮาร์ดแวร์พิเศษได้อีกมาก นั่นเป็นสาเหตุที่การ์ดกราฟิกของคุณสามารถเร่งทุกอย่างตั้งแต่ฟิสิกส์จนถึงการถอดรหัสรหัสผ่าน - แอพพลิเคชั่นที่เหมาะกับรุ่นเดียวกันและสามารถใช้งานได้อย่างมีประสิทธิภาพโดยใช้ชุดคำสั่งที่โปรเซสเซอร์กราฟิกสมัยใหม่ให้
ขณะนี้โปรเซสเซอร์กราฟิกเป็นผู้สืบทอดทางจิตวิญญาณหรือที่เกิดขึ้นจริงของตัวประมวลผลสัญญาณดิจิตอลซึ่ง (และอาจยังคงเป็น) ตัวประมวลผลชนิดพิเศษสำหรับจัดการกับสัญญาณดิจิตอล (เช่นเสียง)
ซึ่งนำไปสู่จุดสุดท้าย - อัลกอริทึมการเรียงลำดับสามารถเร่งด้วยฮาร์ดแวร์ การเรียงลำดับสามารถจัดการได้โดยใช้คำสั่ง MMX หรือ SSE (คำสั่งเดียว - หลายข้อมูล) บนโปรเซสเซอร์ของคุณ แต่อาจมีประเด็นไม่มากนักเนื่องจากปัญหาแบนด์วิดท์หน่วยความจำ - บางทีคุณอาจมีประสิทธิภาพด้านพลังงานมากกว่าเล็กน้อย แม้ว่าจะเป็นเช่นนั้น อย่างไรก็ตามคุณสามารถใช้ฮาร์ดแวร์กราฟิกของคุณได้ ด้วยวิธีนี้คุณจะได้รับประโยชน์จากแบนด์วิดธ์หน่วยความจำที่ดีขึ้นสำหรับการ์ดกราฟิก คุณจะไม่สามารถแทนที่ด้วยวิธีนี้ได้ทุกประเภท แต่เป็นไปได้อย่างแน่นอนและอาจถูกทำตามความเหมาะสม
IOW เนื่องจากปัญหาทางเศรษฐกิจและการปฏิบัติที่หลากหลายการออกแบบฮาร์ดแวร์โดยเฉพาะเพื่อเร่งงานที่ค่อนข้างแคบเช่นการเรียงลำดับไม่สมเหตุสมผล คุณลักษณะที่เร่งความเร็วของงานที่กว้างขึ้นหรือทำให้ฮาร์ดแวร์เร่งความเร็วที่มีอยู่สามารถใช้งานได้กับงานที่กว้างขึ้นซึ่งมักจะเหมาะสมกว่า