อ่าน 6 นาที
สถาปัตยกรรมระบบที่หลากหลาย
สถาปัตยกรรมระบบเฮเทอโรจีนัส ( HSA ) คือชุดข้อกำหนดข้ามผู้จำหน่ายที่อนุญาตให้รวม หน่วยประมวลผลกลาง และ หน่วยประมวลผลกราฟิก บนบัสเดียวกัน โดยใช้ หน่วยความจำ และ งาน ร่วม กัน [ 1 ]...
สถาปัตยกรรมระบบที่หลากหลาย
สถาปัตยกรรมระบบเฮเทอโรจีนัส ( HSA ) คือชุดข้อกำหนดข้ามผู้จำหน่ายที่อนุญาตให้รวมหน่วยประมวลผลกลางและหน่วยประมวลผลกราฟิกบนบัสเดียวกัน โดยใช้หน่วยความจำและงาน ร่วม กัน[ 1 ] HSA กำลังได้รับการพัฒนาโดยมูลนิธิ HSAซึ่งรวมถึง (ในบรรดาบริษัทอื่นๆ อีกมากมาย) AMDและARMเป้าหมายที่ระบุไว้ของแพลตฟอร์มนี้คือการลดความหน่วงในการสื่อสารระหว่าง CPU, GPU และอุปกรณ์ประมวลผล อื่นๆ และทำให้อุปกรณ์ต่างๆ เหล่านี้เข้ากันได้มากขึ้นจากมุมมองของโปรแกรมเมอร์[ 2 ] : 3 [ 3 ]ช่วยลดภาระงานของโปรแกรมเมอร์ในการวางแผนการย้ายข้อมูลระหว่างหน่วยความจำที่ไม่ทับซ้อนกันของอุปกรณ์ (ดังที่ต้องทำในปัจจุบันด้วยOpenCLหรือCUDA ) [ 4 ]
CUDA และ OpenCL รวมถึงภาษาโปรแกรมขั้นสูงอื่นๆ ส่วนใหญ่สามารถใช้ HSA เพื่อเพิ่มประสิทธิภาพการทำงานได้[ 5 ]การประมวลผลแบบเฮเทอโรจีนัสถูกนำมาใช้กันอย่างแพร่หลายใน อุปกรณ์ ระบบบนชิปเช่นแท็บเล็ตสมาร์ทโฟนอุปกรณ์พกพาอื่นๆ และคอนโซลวิดีโอเกม [ 6 ] HSAช่วยให้โปรแกรมสามารถใช้โปรเซสเซอร์กราฟิกสำหรับ การคำนวณ จุดลอยตัวโดยไม่ต้องใช้หน่วยความจำหรือการจัดตารางเวลาแยกต่างหาก[ 7 ]
เหตุผล
แนวคิดเบื้องหลัง HSA คือการลดภาระของโปรแกรมเมอร์เมื่อทำการถ่ายโอนการคำนวณไปยัง GPU เดิมทีแนวคิดนี้ถูกพัฒนาโดย AMD เพียงอย่างเดียวและเรียกว่า FSA แต่ต่อมาได้ขยายไปครอบคลุมหน่วยประมวลผลอื่นๆ นอกเหนือจาก GPU เช่นDSP ของผู้ผลิตรายอื่นๆ ด้วยเช่นกัน
- ขั้นตอนที่ดำเนินการเมื่อถ่ายโอนการคำนวณไปยังGPUบนระบบที่ไม่รองรับ HSA
- ขั้นตอนที่ดำเนินการเมื่อถ่ายโอนการคำนวณไปยัง GPU บนระบบ HSA โดยใช้ฟังก์ชัน HSA
หน่วยประมวลผลกราฟิก (GPU) สมัยใหม่มีความเหมาะสมอย่างยิ่งสำหรับการประมวลผลคำสั่งเดียว ข้อมูลหลายชุด (SIMD) และคำสั่งเดียว เธรดหลายตัว (SIMT) ในขณะที่หน่วยประมวลผลกลาง (CPU) สมัยใหม่ยังคงอยู่ในช่วงการปรับปรุงประสิทธิภาพสำหรับการประมวลผลแบบแยกสาขา เป็นต้น
ภาพรวม
การแบ่งปันหน่วยความจำระบบโดยตรงระหว่างส่วนประกอบระบบหลายส่วน ทำให้การประมวลผลแบบไม่เป็นเนื้อเดียวกัน (Heterogeneous computing) กลายเป็นเรื่องปกติมากขึ้น โดยเริ่มแรกถูกนำมาใช้ในระบบฝังตัวเช่นCell Broadband Engine การประมวลผลแบบไม่เป็นเนื้อเดียวกันหมายถึงระบบที่มีหน่วยประมวลผลหลายหน่วย ได้แก่ หน่วยประมวลผลกลาง (CPU) หน่วยประมวลผลกราฟิก (GPU) หน่วยประมวลผลสัญญาณดิจิทัล (DSP) หรือวงจรรวมเฉพาะงาน (ASIC) ทุกประเภท สถาปัตยกรรมของระบบนี้ช่วยให้ตัวเร่งความเร็วใดๆ เช่นหน่วยประมวลผลกราฟิกสามารถทำงานในระดับการประมวลผลเดียวกันกับ CPU ของระบบได้
ในบรรดาคุณสมบัติหลัก HSA กำหนดพื้นที่แอดเดรสเสมือน แบบรวม สำหรับอุปกรณ์ประมวลผล: โดยทั่วไป GPU จะมีหน่วยความจำของตัวเองแยกต่างหากจากหน่วยความจำหลัก (CPU) HSA กำหนดให้อุปกรณ์เหล่านี้ใช้ตารางเพจ ร่วมกัน เพื่อให้อุปกรณ์สามารถแลกเปลี่ยนข้อมูลได้โดยการใช้พอยเตอร์ ร่วมกัน ซึ่งจะได้รับการสนับสนุนโดยหน่วยจัดการหน่วยความจำ แบบกำหนด เอง[ 2 ] : 6–7 เพื่อให้สามารถทำงานร่วมกันได้และเพื่ออำนวยความสะดวกในด้านต่างๆ ของการเขียนโปรแกรม HSA มีจุดประสงค์เพื่อให้ ไม่ขึ้นกับ ISAสำหรับทั้ง CPU และตัวเร่งความเร็ว และเพื่อรองรับภาษาการเขียนโปรแกรมระดับสูง
จนถึงปัจจุบัน ข้อกำหนดของ HSA ครอบคลุมถึง:
ชั้นกลาง HSA
HSAIL (Heterogeneous System Architecture Intermediate Language) คือชุดคำสั่งเสมือนสำหรับโปรแกรมแบบขนาน
- คล้ายกับLLVM Intermediate RepresentationและSPIR (ที่ใช้โดยOpenCLและVulkan )
- แปลงให้สมบูรณ์เป็นชุดคำสั่งเฉพาะโดยคอมไพเลอร์ JIT
- ตัดสินใจล่าช้าว่าควรใช้คอร์ใดในการประมวลผลงาน
- ขนานกันอย่างชัดเจน
- รองรับข้อยกเว้น ฟังก์ชันเสมือน และคุณสมบัติระดับสูงอื่นๆ
- การสนับสนุนการดีบัก
โมเดลหน่วยความจำ HSA
- ใช้งานร่วมกับโมเดลหน่วยความจำของC++11 , OpenCL, Javaและ.NET ได้
- ความสม่ำเสมอที่ผ่อนคลาย
- ออกแบบมาเพื่อรองรับทั้งภาษาโปรแกรมแบบจัดการ (เช่น Java) และภาษาโปรแกรมแบบไม่จัดการ (เช่นC )
- จะทำให้การพัฒนาคอมไพเลอร์จากภายนอกสำหรับผลิตภัณฑ์ที่หลากหลายซึ่งเขียนด้วยภาษาFortran , C++, C++ AMP , Java และอื่นๆ ทำได้ง่ายขึ้นมาก
ตัวจัดการและเวลาการทำงานของ HSA
- ออกแบบมาเพื่อรองรับการจัดคิวงานที่หลากหลาย: คิวงานต่อคอร์ การกระจายงานไปยังคิว และการปรับสมดุลโหลดโดยการแย่งงาน
- แกนประมวลผลใดๆ ก็สามารถกำหนดตารางงานให้กับแกนประมวลผลอื่นๆ ได้ รวมถึงตัวมันเองด้วย
- ลดภาระงานด้านการวางแผนตารางงานสำหรับระบบหลักได้อย่างมาก
อุปกรณ์เคลื่อนที่เป็นหนึ่งในพื้นที่การใช้งานของ HSA ซึ่งส่งผลให้ประสิทธิภาพการใช้พลังงานดีขึ้น[ 6 ]
แผนภาพบล็อก
ภาพประกอบด้านล่างเปรียบเทียบการประสานงานระหว่าง CPU และ GPU ภายใต้สถาปัตยกรรม HSA กับสถาปัตยกรรมแบบดั้งเดิม
- สถาปัตยกรรมมาตรฐานที่มีGPU แยกต่างหาก เชื่อมต่อกับบัสPCI Express ไม่สามารถ คัดลอกข้อมูลระหว่าง GPU และ CPU ได้เนื่องจากหน่วยความจำทางกายภาพแยกจากกัน
- HSA นำเสนอหน่วยความจำเสมือนแบบรวมศูนย์และอำนวยความสะดวกในการส่งผ่านตัวชี้ผ่าน PCI Express แทนการคัดลอกข้อมูลทั้งหมด
- ในหน่วยความจำหลักแบบแบ่งส่วน ส่วนหนึ่งของหน่วยความจำระบบจะถูกจัดสรรให้กับ GPU โดยเฉพาะ ส่งผลให้ไม่สามารถดำเนินการคัดลอกข้อมูลเป็นศูนย์ได้
- หน่วยความจำหลักแบบรวมศูนย์ ซึ่ง GPU และ CPU เปิดใช้งาน HSA ทำให้สามารถดำเนินการแบบ zero-copy ได้[ 8 ]
การสนับสนุนซอฟต์แวร์

คุณสมบัติเฉพาะของ HSA บางอย่างที่ใช้งานในฮาร์ดแวร์จำเป็นต้องได้รับการสนับสนุนจากเคอร์เนลระบบปฏิบัติการและไดรเวอร์อุปกรณ์เฉพาะ ตัวอย่างเช่น การสนับสนุนการ์ดกราฟิก AMD RadeonและAMD FireProและAPUที่ใช้Graphics Core Next (GCN) ได้ถูกรวมเข้าในเวอร์ชัน 3.19 ของเคอร์เนล Linux หลักซึ่งเผยแพร่เมื่อวันที่ 8 กุมภาพันธ์ 2015 [ 10 ] โปรแกรมจะไม่โต้ตอบโดยตรงกับamdkfdแต่จะจัดคิวงานโดยใช้รันไทม์ HSA [ 11 ] การใช้งานครั้งแรกนี้ ซึ่งรู้จักกันในชื่อamdkfdมุ่งเน้นไปที่ APU "Kaveri"หรือ "Berlin" และทำงานร่วมกับไดรเวอร์กราฟิกเคอร์เนล Radeon ที่มีอยู่
นอกจากนี้amdkfdยังรองรับการจัดคิวแบบไม่เป็นเนื้อเดียวกัน (HQ) ซึ่งมีจุดมุ่งหมายเพื่อลดความซับซ้อนของการกระจายงานคำนวณระหว่าง CPU และ GPU หลายตัวจากมุมมองของโปรแกรมเมอร์ การสนับสนุนการจัดการหน่วยความจำแบบไม่เป็นเนื้อเดียวกัน ( HMM ) ซึ่งเหมาะสำหรับฮาร์ดแวร์กราฟิกที่มี IOMMUเวอร์ชัน 2 ของ AMD เท่านั้นได้รับการยอมรับเข้าสู่เคอร์เนล Linux เวอร์ชันหลัก 4.14 [ 12 ]
มีการประกาศการสนับสนุนแบบบูรณาการสำหรับแพลตฟอร์ม HSA สำหรับ OpenJDKเวอร์ชัน "Sumatra" ซึ่งมีกำหนดวางจำหน่ายในปี 2015 [ 13 ]
AMD APP SDKเป็นชุดพัฒนาซอฟต์แวร์ที่เป็นกรรมสิทธิ์ของ AMD ที่มุ่งเน้นการประมวลผลแบบขนานมีให้ใช้งานสำหรับ Microsoft Windows และ Linux Bolt เป็นไลบรารีเทมเพลต C++ ที่ได้รับการปรับให้เหมาะสมสำหรับการประมวลผลแบบเฮเทอโรจีนัส[ 14 ]
GPUOpenเข้าใจเครื่องมือซอฟต์แวร์อื่นๆ ที่เกี่ยวข้องกับ HSA อีกหลายอย่างCodeXLเวอร์ชัน 2.0 มีโปรไฟล์ HSA [ 15 ]
การรองรับฮาร์ดแวร์
เอดีเอ็ม
ณ เดือนกุมภาพันธ์ 2558 มีเพียงหน่วยประมวลผลกราฟิก (APU) ตระกูล "Kaveri" A-series ของ AMD (เช่นหน่วยประมวลผลเดสก์ท็อป "Kaveri"และหน่วยประมวลผลมือถือ "Kaveri" ) และเครื่องเล่น เกม PlayStation 4ของ Sony เท่านั้น ที่อนุญาตให้GPU ในตัวเข้าถึงหน่วยความจำผ่านทาง IOMMU เวอร์ชัน 2 ของ AMD APU รุ่นก่อนหน้า (Trinity และ Richland) ก็มีฟังก์ชัน IOMMU เวอร์ชัน 2 เช่นกัน แต่ใช้ได้เฉพาะกับ GPU ภายนอกที่เชื่อมต่อผ่าน PCI Express เท่านั้น
APU รุ่น Carrizo และ Bristol Ridge ที่ผลิตหลังปี 2015 ยังมีฟังก์ชัน IOMMU เวอร์ชัน 2 สำหรับ GPU ในตัวอีกด้วย
ตารางต่อไปนี้แสดงคุณสมบัติของโปรเซสเซอร์ AMD ที่มีกราฟิก 3 มิติ รวมถึงAPU (ดูเพิ่มเติม: รายชื่อโปรเซสเซอร์ AMD ที่มีกราฟิก 3 มิติ )
| แพลตฟอร์ม | กำลังสูง กำลังมาตรฐาน และกำลังต่ำ | พลังงานต่ำและต่ำมาก | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ชื่อรหัส | เซิร์ฟเวอร์ | พื้นฐาน | โตรอนโต | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ไมโคร | เกียวโต | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| เดสก์ท็อป | ผลงาน | ราฟาเอล | ฟีนิกซ์ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| กระแสหลัก | ลลาโน | ทรีนิตี้ | ริชแลนด์ | กาเวรี | กาเวรี รีเฟรช (โกดาวารี) | คาร์ริโซ่ | บริสตอล ริดจ์ | เรเวน ริดจ์ | ปิกัสโซ | เรอนัวร์ | เซซานน์ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| รายการ | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| พื้นฐาน | คาบินี | ดาลี | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| มือถือ | ผลงาน | เรอนัวร์ | เซซานน์ | เรมแบรนด์ | ดราก้อนเรนจ์ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| กระแสหลัก | ลลาโน | ทรีนิตี้ | ริชแลนด์ | กาเวรี | คาร์ริโซ่ | บริสตอล ริดจ์ | เรเวน ริดจ์ | ปิกัสโซ | เรอนัวร์ลูเซียนน์ | เซซานบาร์เซโล | ฟีนิกซ์ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| รายการ | ดาลี | เมนโดซิโน | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| พื้นฐาน | เดสนา, ออนแทรีโอ, ซาคาเต้ | คาบินี เทมาช | บีมา, มัลลินส์ | คาร์ริโซ่-แอล | สโตนีย์ ริดจ์ | พอลล็อก | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ฝังตัว | ทรีนิตี้ | นกอินทรีหัวขาว | เหยี่ยวเมอร์ลิน , เหยี่ยวสีน้ำตาล | นกฮูกเขาใหญ่ | เกรย์ฮอว์ก | ออนแทรีโอ, ซาคาเต้ | คาบินี | นกอินทรีสเตปป์ , นกอินทรีมงกุฎ , ตระกูล LX | เหยี่ยวทุ่งหญ้า | เหยี่ยวลายแถบ | ริเวอร์ฮอว์ก | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ปล่อยแล้ว | สิงหาคม 2554 | ตุลาคม 2555 | มิถุนายน 2556 | มกราคม 2557 | 2015 | มิถุนายน 2558 | มิถุนายน 2559 | ตุลาคม 2560 | มกราคม 2562 | มีนาคม 2020 | มกราคม 2564 | มกราคม 2565 | กันยายน 2022 | มกราคม 2566 | มกราคม 2554 | พฤษภาคม 2556 | เมษายน 2557 | พฤษภาคม 2558 | กุมภาพันธ์ 2559 | เมษายน 2562 | กรกฎาคม 2020 | มิถุนายน 2565 | พฤศจิกายน 2022 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| สถาปัตยกรรมไมโครของซีพียู | เค10 | เครื่องตอกเสาเข็ม | รถบดถนน | รถขุด | " รถขุด+ " [ 16 ] | เซน | เซน+ | เซน 2 | เซน 3 | เซน 3+ | เซน 4 | บ็อบแคท | จากัวร์ | พูม่า | พูม่า+ [ 17 ] | " รถขุด+ " | เซน | เซน+ | " เซน 2+ " | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ISA | x86-64 v1 | x86-64เวอร์ชัน 2 | x86-64 v3 | x86-64 v4 | x86-64 v1 | x86-64เวอร์ชัน 2 | x86-64 v3 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ซ็อกเก็ต | เดสก์ท็อป | ผลงาน | ไม่มีข้อมูล | เอเอ็ม5 | ไม่มีข้อมูล | ไม่มีข้อมูล | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| กระแสหลัก | ไม่มีข้อมูล | เอเอ็ม4 | ไม่มีข้อมูล | ไม่มีข้อมูล | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| รายการ | เอฟเอ็ม1 | เอฟเอ็ม2 | เอฟเอ็ม2+ | FM2+ [ a ] , AM4 | เอเอ็ม4 | ไม่มีข้อมูล | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| พื้นฐาน | ไม่มีข้อมูล | ไม่มีข้อมูล | เอเอ็ม1 | ไม่มีข้อมูล | FP5 | ไม่มีข้อมูล | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| อื่น | เอฟเอส1 | FS1+ , FP2 | เอฟพี3 | เอฟพี4 | FP5 | เอฟพี6 | เอฟพี7 | เอฟแอล1 | FP7 FP7r2 FP8 | เอฟที1 | เอฟที3 | เอฟที3บี | เอฟพี4 | FP5 | เอฟที5 | FP5 | เอฟที6 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| เวอร์ชัน PCI Express | 2.0 | 3.0 | 4.0 | 5.0 | 4.0 | 2.0 | 3.0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ซีเอ็กซ์แอล | ไม่มีข้อมูล | ไม่มีข้อมูล | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| แฟบ ( นาโนเมตร ) | GF 32SHP ( HKMG SOI ) | GF 28SHP (HKMG แบบขายส่ง) | GF 14LPP ( FinFETแบบก้อน) | GF 12LP (FinFET แบบก้อน) | TSMC N7 (FinFET bulk) | TSMC N6 (FinFET bulk) | CCD: TSMC N5 (FinFET bulk) cIOD: TSMC N6 (FinFET bulk) | TSMC 4nm (FinFET bulk) | TSMC N40 (จำนวนมาก) | TSMC N28 (HKMG แบบขายส่ง) | GF 28SHP (HKMG แบบขายส่ง) | GF 14LPP ( FinFETแบบก้อน) | GF 12LP (FinFET แบบก้อน) | TSMC N6 (FinFET bulk) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| พื้นที่ แม่พิมพ์ (มม. ² ) | 228 | 246 | 245 | 245 | 250 | 210 [ 18 ] | 156 | 180 | 210 | CCD: (2x) 70 cIOD: 122 | 178 | 75 (+ 28 FCH ) | 107 | ? | 125 | 149 | ~100 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| TDPขั้นต่ำ(W) | 35 | 17 | 12 | 10 | 15 | 65 | 35 | 4.5 | 4 | 3.95 | 10 | 6 | 12 | 8 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| TDPสูงสุดของ APU (วัตต์) | 100 | 95 | 65 | 45 | 170 | 54 | 18 | 25 | 6 | 54 | 15 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ความเร็วสัญญาณนาฬิกาพื้นฐานสูงสุดของ APU (GHz) | 3 | 3.8 | 4.1 | 4.1 | 3.7 | 3.8 | 3.6 | 3.7 | 3.8 | 4.0 | 3.3 | 4.7 | 4.3 | 1.75 | 2.2 | 2 | 2.2 | 3.2 | 2.6 | 1.2 | 3.35 | 2.8 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| จำนวน APU สูงสุดต่อโหนด[ b ] | 1 | 1 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| จำนวนคอร์สูงสุดต่อซีพียู | 1 | 2 | 1 | 1 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| จำนวน CCX สูงสุดต่อชิปหลัก | 1 | 2 | 1 | 1 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| จำนวนคอร์สูงสุดต่อ CCX | 4 | 8 | 2 | 4 | 2 | 4 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| จำนวนคอร์CPUสูงสุด[ c ] ต่อ APU | 4 | 8 | 16 | 8 | 2 | 4 | 2 | 4 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| จำนวน เธรดสูงสุดต่อคอร์ CPU | 1 | 2 | 1 | 2 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| โครงสร้างไปป์ไลน์จำนวนเต็ม | 3+3 | 2+2 | 4+2 | 4+2+1 | 1+3+3+1+2 | 1+1+1+1 | 2+2 | 4+2 | 4+2+1 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| i386, i486, i586, CMOV, NOPL, i686, PAE , NX bit , CMPXCHG16B, AMD-V , RVI , ABMและ LAHF/SAHF 64 บิต | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| IOMMU [ d ] | ไม่มีข้อมูล | เวอร์ชัน 2 | ว1 | เวอร์ชัน 2 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| BMI1 , AES-NI , CLMULและF16C | ไม่มีข้อมูล | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| มูฟบี | ไม่มีข้อมูล | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| AVIC , BMI2 , RDRANDและ MWAITX/MONITORX | ไม่มีข้อมูล | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| SME [ e ] , TSME [ e ] , ADX , SHA , RDSEED , SMAP , SMEP , XSAVEC, XSAVES, XRSTORS, CLFLUSHOPT, CLZERO และ PTE Coalescing | ไม่มีข้อมูล | ไม่มีข้อมูล | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| GMET , WBNOINVD, CLWB, QOS, PQE-BW, RDPID, RDPRU และ MCOMMIT | ไม่มีข้อมูล | ไม่มีข้อมูล | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| เอ็มพีเค , วีเอส | ไม่มีข้อมูล | ไม่มีข้อมูล | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| เอสจีเอ็กซ์ | ไม่มีข้อมูล | ไม่มีข้อมูล | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| หน่วยประมวลผลทศลบต่อคอร์ | 1 | 0.5 | 1 | 1 | 0.5 | 1 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ท่อต่อ FPU | 2 | 2 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ความกว้างท่อ FPU | 128 บิต | 256 บิต | 80 บิต | 128 บิต | 256 บิต | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ชุดคำสั่ง CPU ระดับSIMD | SSE4a [ f ] | เอวีเอ็กซ์ | เอวีเอ็กซ์2 | เอวีเอ็กซ์-512 | เอสเอสเอสอี3 | เอวีเอ็กซ์ | เอวีเอ็กซ์2 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 3DNow! | 3DNow!+ | ไม่มีข้อมูล | ไม่มีข้อมูล | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| พรีเฟตช์/พรีเฟตช์ดับเบิลยู | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| จีเอฟเอ็นไอ | ไม่มีข้อมูล | ไม่มีข้อมูล | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| เอเอ็มเอ็กซ์ | ไม่มีข้อมูล | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| FMA4 , LWP, TBMและXOP | ไม่มีข้อมูล | ไม่มีข้อมูล | ไม่มีข้อมูล | ไม่มีข้อมูล | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| เอฟเอ็มเอ3 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| เอดีเอ็ม เอ็กซ์ดีเอ็นเอ | ไม่มีข้อมูล | ไม่มีข้อมูล | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| แคชข้อมูลL1 ต่อคอร์ (กิโลไบต์) | 64 | 16 | 32 | 32 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ความสัมพันธ์ของแคชข้อมูล L1 (วิธี) | 2 | 4 | 8 | 8 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| แคชคำสั่ง L1 ต่อคอร์ | 1 | 0.5 | 1 | 1 | 0.5 | 1 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| แคชคำสั่ง L1 รวมสูงสุดของ APU (กิโลไบต์) | 256 | 128 | 192 | 256 | 512 | 256 | 64 | 128 | 96 | 128 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| การเชื่อมโยงแคชคำสั่ง L1 (วิธี) | 2 | 3 | 4 | 8 | 2 | 3 | 4 | 8 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| แคช L2ต่อคอร์ | 1 | 0.5 | 1 | 1 | 0.5 | 1 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| แคช L2 รวมสูงสุดของ APU (MiB) | 4 | 2 | 4 | 16 | 1 | 2 | 1 | 2 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| การเชื่อมโยงแคช L2 (วิธี) | 16 | 8 | 16 | 8 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| แคช L3 on-die สูงสุดต่อ CCX (MiB) | ไม่มีข้อมูล | 4 | 16 | 32 | ไม่มีข้อมูล | 4 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ขนาดแคช 3 มิติสูงสุดต่อ CCD (MiB) | ไม่มีข้อมูล | 64 | ไม่มีข้อมูล | ไม่มีข้อมูล | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ขนาด แคช L3ใน CCD สูงสุดต่อ APU (MiB) | 4 | 8 | 16 | 64 | 4 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| สูงสุด 3D V-Cache ทั้งหมดต่อ APU (MiB) | ไม่มีข้อมูล | 64 | ไม่มีข้อมูล | ไม่มีข้อมูล | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ขนาดแคช L3 สูงสุด ต่อ APU (MiB) | ไม่มีข้อมูล | ไม่มีข้อมูล | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ขนาด แคช L3รวมสูงสุดต่อ APU (MiB) | 4 | 8 | 16 | 128 | 4 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ความสัมพันธ์ของแคช L3 ของ APU (จำนวนครั้ง) | 16 | 16 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| รูปแบบแคช L3 | เหยื่อ | เหยื่อ | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| แคช L4สูงสุด | ไม่มีข้อมูล | ไม่มีข้อมูล | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| รองรับDRAMสูงสุด | DDR3 -1866 | DDR3-2133 | DDR3-2133 , DDR4-2400 | DDR4-2400 | DDR4-2933 | DDR4-3200 , LPDDR4-4266 | DDR5 -4800, LPDDR5 -6400 | DDR5 -5200 | DDR5 -5600, LPDDR5x -7500 | DDR3L -1333 | DDR3L-1600 | DDR3L-1866 | DDR3-1866 , DDR4-2400 | DDR4-2400 | DDR4-1600 | DDR4-3200 | แอลพีดีอาร์5-5500 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| จำนวนช่อง DRAMสูงสุดต่อ APU | 2 | 1 | 2 | 1 | 2 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| แบนด์วิดท์DRAM สูงสุด(GB/s) ต่อ APU | 29.866 | 34.132 | 38,400 บาท | 46.932 | 68.256 | 102.400 | 83.200 | 120,000 บาท | 10.666 | 12,800 บาท | 14.933 | 19.200 | 38,400 บาท | 12,800 บาท | 51.200 | 88,000 บาท | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| สถาปัตยกรรมไมโครของ GPU | เทราสเกล 2 (VLIW5) | เทราสเกล 3 (VLIW4) | GCN รุ่นที่ 2 | GCN เจนเนอเรชั่นที่ 3 | GCN เจนเนอเรชั่นที่ 5 [ 19 ] | อาร์ดีเอ็นเอ 2 | อาร์ดีเอ็นเอ 3 | เทราสเกล 2 (VLIW5) | GCN รุ่นที่ 2 | GCN เจนเนอเรชั่นที่ 3 [ 19 ] | GCN เจนเนอเรชั่นที่ 5 | อาร์ดีเอ็นเอ 2 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ชุดคำสั่ง GPU | ชุดคำสั่งTeraScale | ชุดคำสั่ง GCN | ชุดคำสั่ง RDNA | ชุดคำสั่งTeraScale | ชุดคำสั่ง GCN | ชุดคำสั่ง RDNA | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ความเร็วสัญญาณนาฬิกาพื้นฐานสูงสุดของ GPU (MHz) | 600 | 800 | 844 | 866 | 1108 | 1250 | 1400 | 2100 | 2400 | 400 | 538 | 600 | ? | 847 | 900 | 1200 | 600 | 1300 | ปี ค.ศ. 1900 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ประสิทธิภาพสูงสุดของ GPU พื้นฐาน(GFLOPS) [ g ] | 480 | 614.4 | 648.1 | 886.7 | 1134.5 | 1760 | 1971.2 | 2150.4 | 3686.4 | 102.4 | 86 | ? | ? | ? | 345.6 | 460.8 | 230.4 | 1331.2 | 486.4 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| เอ็นจิ้น 3 มิติ[ h ] | สูงสุด 400:20:8 | สูงสุด 384:24:6 | สูงสุด 512:32:8 | จนถึง 704:44:16 [ 20 ] | สูงสุด 512:32:8 | 768:48:8 | 128:8:4 | 80:8:4 | 128:8:4 | สูงสุด 192:12:8 | สูงสุด 192:12:4 | 192:12:4 | สูงสุด 512:? | 128:?? | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| IOMMUv1 | ไอโอเอ็มเอ็มยูวี2 | IOMMUv1 | ? | ไอโอเอ็มเอ็มยูวี2 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ตัวถอดรหัสวิดีโอ | ยูวีดี 3.0 | ยูวีดี 4.2 | ยูวีดี 6.0 | VCN 1.0 [ 21 ] | VCN 2.1 [ 22 ] | VCN 2.2 [ 22 ] | วีซีเอ็น 3.1 | ? | ยูวีดี 3.0 | ยูวีดี 4.0 | ยูวีดี 4.2 | ยูวีดี 6.2 | วีซีเอ็น 1.0 | วีซีเอ็น 3.1 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ตัวเข้ารหัสวิดีโอ | ไม่มีข้อมูล | วีซีอี 1.0 | วีซีอี 2.0 | วีซีอี 3.1 | ไม่มีข้อมูล | วีซีอี 2.0 | วีซีเอ 3.4 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| เอดีเอ็ม ฟลูอิด โมชั่น | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| การประหยัดพลังงาน GPU | พาวเวอร์เพลย์ | พาวเวอร์จูน | พาวเวอร์เพลย์ | พาวเวอร์จูน[ 23 ] | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ทรูออดิโอ | ไม่มีข้อมูล | ? | ไม่มีข้อมูล | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ฟรีซิงค์ | 1 2 | 1 2 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| HDCP [ i ] | ? | 1.4 | 2.2 | 2.3 | ? | 1.4 | 2.2 | 2.3 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| PlayReady [ i ] | ไม่มีข้อมูล | 3.0 ยังไม่พร้อมใช้งาน | ไม่มีข้อมูล | 3.0 ยังไม่พร้อมใช้งาน | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| จอแสดงผลที่รองรับ[ j ] | 2–3 | 2–4 | 3 | 3 (เดสก์ท็อป) 4 (มือถือ, ฝังตัว) | 4 | 2 | 3 | 4 | 4 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
/drm/radeon[ k ] [ 26 ] [ 27 ] | ไม่มีข้อมูล | ไม่มีข้อมูล | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
/drm/amdgpu[ k ] [ 28 ] | ไม่มีข้อมูล | ไม่มีข้อมูล | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
- ^สำหรับรถขุดรุ่น FM2+: A8-7680, A6-7480 และ Athlon X4 845
- ^คอมพิวเตอร์ส่วนบุคคล (PC) จะนับเป็นหนึ่งโหนด
- ^ APU คือการรวม CPU และ GPU เข้าด้วยกัน โดยทั้งสองส่วนมีคอร์
- ^ต้องใช้เฟิร์มแวร์ที่รองรับ
- ^ a bต้องใช้เฟิร์มแวร์รองรับ
- ^ไม่มี SSE4 ไม่มี SSSE3
- ^ ประสิทธิภาพการ คำนวณแบบความแม่นยำเดี่ยวจะคำนวณจากความเร็วสัญญาณนาฬิกาหลักพื้นฐาน (หรือบูสต์) โดยอิงจากการดำเนินการ FMA
- ^เชเดอร์แบบรวม :หน่วยการแมปพื้นผิว :หน่วยเอาต์พุตการเรนเดอร์
- ^ a bในการเล่นเนื้อหาวิดีโอที่มีการป้องกัน จำเป็นต้องมีการ์ด ระบบปฏิบัติการ ไดรเวอร์ และแอปพลิเคชันที่รองรับ นอกจากนี้ยังต้องใช้จอแสดงผลที่เข้ากันได้กับ HDCP ด้วย HDCP เป็นข้อบังคับสำหรับการส่งออกรูปแบบเสียงบางรูปแบบ ซึ่งเป็นการเพิ่มข้อจำกัดเพิ่มเติมในการตั้งค่ามัลติมีเดีย
- ^หากต้องการจ่ายไฟให้กับจอแสดงผลมากกว่าสองจอ แผงเพิ่มเติมจะต้องรองรับ DisplayPort ในตัว [ 25 ]หรืออาจใช้ตัวแปลง DisplayPort เป็น DVI/HDMI/VGA แบบแอคทีฟก็ได้
- ^ a b DRM ( Direct Rendering Manager ) เป็นส่วนประกอบหนึ่งของเคอร์เนล Linux การสนับสนุนในตารางนี้หมายถึงเวอร์ชันล่าสุด
แขน
สถาปัตยกรรมไมโคร Bifrostของ ARM ซึ่งใช้งานใน Mali-G71 [ 30 ]เป็นไปตามข้อกำหนดฮาร์ดแวร์ HSA 1.1 อย่างสมบูรณ์ ณ เดือนมิถุนายน 2016 ARM ยังไม่ได้ประกาศการสนับสนุนซอฟต์แวร์ที่จะใช้คุณสมบัติฮาร์ดแวร์นี้
ดูเพิ่มเติม
- การประมวลผลทั่วไปบนหน่วยประมวลผลกราฟิก (GPGPU)
- การเข้าถึงหน่วยความจำแบบไม่สม่ำเสมอ (NUMA)
- โอเพ่นเอ็มพี
- หน่วยความจำที่ใช้ร่วมกัน
- สำเนาศูนย์
- เทคนิคที่ช่วยให้สามารถดำเนินการแบบไม่ต้องคัดลอกข้อมูลสำหรับ CPU และตัวเร่งความเร็วแบบขนาน[ 31 ]
ลิงก์ภายนอก
- วิดีโอ "ภาพรวมสถาปัตยกรรมระบบเฮเทอโรจีนัส (HSA)"โดย Vinod Tipparajuบน YouTube ใน งาน SC13เดือนพฤศจิกายน 2013
- HSA และระบบนิเวศซอฟต์แวร์
- 2012 – HSA โดย Michael Houston เก็บถาวรเมื่อวันที่ 5 มีนาคม 2016 ที่Wayback Machine
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ สถาปัตยกรรมระบบที่หลากหลาย
สถาปัตยกรรมระบบเฮเทอโรจีนัส ( HSA ) คือชุดข้อกำหนดข้ามผู้จำหน่ายที่อนุญาตให้รวม หน่วยประมวลผลกลาง และ หน่วยประมวลผลกราฟิก บนบัสเดียวกัน โดยใช้ หน่วยความจำ และ งาน ร่วม กัน [ 1 ]...
เหตุผล
แนวคิดเบื้องหลัง HSA คือการลดภาระของโปรแกรมเมอร์เมื่อทำการถ่ายโอนการคำนวณไปยัง GPU เดิมทีแนวคิดนี้ถูกพัฒนาโดย AMD เพียงอย่างเดียวและเรียกว่า FSA แต่ต่อมาได้ขยายไปครอบคลุมหน่วยประมวลผลอื่นๆ นอกเหนือจาก GPU เช่น DSP ของผู้ผลิตรายอื่นๆ ด้วยเช่นกัน
ภาพรวม
การแบ่งปันหน่วยความจำระบบโดยตรงระหว่างส่วนประกอบระบบหลายส่วน ทำให้การประมวลผลแบบไม่เป็นเนื้อเดียวกัน (Heterogeneous computing) กลายเป็นเรื่องปกติมากขึ้น โดยเริ่มแรกถูกนำมาใช้ใน ระบบฝังตัว เช่น Cell Broadband Engine...
ชั้นกลาง HSA
HSAIL (Heterogeneous System Architecture Intermediate Language) คือ ชุดคำสั่งเสมือน สำหรับโปรแกรมแบบขนาน