HSA สำหรับนักพัฒนา: คอมพิวเตอร์ที่แตกต่างกันสำหรับมวลชน
เผยแพร่แล้ว: 2022-03-11ผู้ผลิตชิปอย่าง AMD, ARM, Samsung, MediaTek, Qualcomm และ Texas Instruments มีอะไรที่เหมือนกัน? นอกจากความคล้ายคลึงกันอย่างชัดเจนระหว่างยักษ์ใหญ่ที่ผลิตชิปเหล่านี้แล้ว พวกเขายังเป็นผู้ก่อตั้งมูลนิธิ HSA ด้วย HSA คืออะไร และเหตุใดจึงต้องมีรากฐานที่ได้รับการสนับสนุนจากกลุ่มอุตสาหกรรมรุ่นใหญ่
ในโพสต์นี้ ฉันจะพยายามอธิบายว่าทำไม HSA จึงอาจเป็นเรื่องใหญ่ในอนาคตอันใกล้ ดังนั้นฉันจะเริ่มต้นด้วยพื้นฐาน: HSA คืออะไร และเหตุใดคุณจึงควรสนใจ
HSA ย่อมาจาก Heterogeneous System Architecture ซึ่งฟังดูน่าเบื่อ แต่เชื่อฉันเถอะ มันอาจจะกลายเป็นเรื่องที่น่าตื่นเต้นจริงๆ โดยพื้นฐานแล้ว HSA คือชุดของมาตรฐานและข้อมูลจำเพาะที่ออกแบบมาเพื่อให้สามารถรวม CPU และ GPU เข้าด้วยกันบนบัสเดียวกันได้ นี่ไม่ใช่แนวคิดใหม่ทั้งหมด ซีพียูเดสก์ท็อปและ SoC มือถือใช้กราฟิกในตัวและใช้บัสเดี่ยวมาหลายปีแล้ว แต่ HSA ยกระดับไปอีกระดับ
แทนที่จะใช้แค่บัสเดียวกันและหน่วยความจำที่ใช้ร่วมกันสำหรับ CPU และ GPU HSA ยังอนุญาตให้สถาปัตยกรรมที่แตกต่างกันอย่างมากมายทั้งสองนี้ทำงานควบคู่กันและ แบ่งปันงานต่างๆ อาจฟังดูไม่ใช่เรื่องใหญ่ แต่ถ้าคุณมองให้ละเอียด และตรวจสอบผลกระทบระยะยาวที่อาจเกิดขึ้นของแนวทางนี้ จะเริ่มดู "หวาน" มากในความหมายทางเทคนิค
ไม่นะ! นี่คือนักพัฒนามาตรฐานโง่ ๆ อีกคนที่ต้องดำเนินการ
ใช่และไม่.
แนวคิดในการแชร์บัสเดียวกันไม่ใช่เรื่องใหม่ และไม่มีแนวคิดในการใช้ GPU แบบขนานสูงสำหรับงานคำนวณบางอย่าง (ซึ่งไม่เกี่ยวข้องกับการแสดงภาพศีรษะ) มันเคยทำมาแล้ว และฉันเดาว่าผู้อ่านส่วนใหญ่ของเราคุ้นเคยกับมาตรฐาน GPGPU เช่น CUDA และ OpenCL แล้ว
อย่างไรก็ตาม ไม่เหมือนกับแนวทาง CUDA หรือ OpenCL HSA จะนำนักพัฒนาออกจากสมการอย่างมีประสิทธิภาพ อย่างน้อยก็เมื่อต้องกำหนดโหลดต่างๆ ให้กับแกนประมวลผลที่แตกต่างกัน ฮาร์ดแวร์จะตัดสินใจเมื่อจะลดการคำนวณจาก CPU ไปยัง GPU และในทางกลับกัน HSA ไม่ควรมาแทนที่ภาษาโปรแกรม GPGPU ที่สร้างขึ้นเช่น OpenCL เนื่องจากสามารถนำไปใช้กับฮาร์ดแวร์ HSA ได้เช่นกัน
นั่นคือประเด็นทั้งหมดของ HSA: มันควรจะทำให้กระบวนการทั้งหมดง่าย แม้กระทั่งราบรื่น นักพัฒนาไม่จำเป็นต้องคิดเกี่ยวกับการลดการคำนวณลงใน GPU ฮาร์ดแวร์จะทำโดยอัตโนมัติ
เพื่อให้บรรลุสิ่งนี้ HSA จะต้องได้รับการสนับสนุนจากผู้ผลิตชิปและผู้จำหน่ายฮาร์ดแวร์หลายราย ในขณะที่รายชื่อผู้สนับสนุน HSA นั้นน่าประทับใจ แต่ Intel ก็ยังขาดผู้ที่อยู่ในอุตสาหกรรมชิปอย่างเด่นชัด ด้วยส่วนแบ่งตลาดของ Intel ในตลาดโปรเซสเซอร์เดสก์ท็อปและเซิร์ฟเวอร์ นี่จึงเป็น เรื่องใหญ่ อีกชื่อหนึ่งที่คุณจะไม่พบในรายการคือ Nvidia ซึ่งเน้นที่ CUDA และปัจจุบันเป็นผู้นำตลาดการประมวลผลด้วย GPU
อย่างไรก็ตาม HSA ไม่ได้ออกแบบมาเฉพาะสำหรับระบบและแอพพลิเคชั่นที่มีประสิทธิภาพสูง บนฮาร์ดแวร์ที่มักจะมีสติกเกอร์ Intel Inside HSA ยังสามารถใช้ในอุปกรณ์พกพาที่ประหยัดพลังงาน ซึ่ง Intel มีส่วนแบ่งการตลาดเพียงเล็กน้อย
ดังนั้น HSA ควรจะทำให้ชีวิตง่ายขึ้น แต่มีความเกี่ยวข้องยัง? มันจะทันไหม? นี่ไม่ใช่คำถามทางเทคโนโลยี แต่เป็นคำถามทางเศรษฐกิจ จะขึ้นอยู่กับมือที่มองไม่เห็นของตลาด ดังนั้น ก่อนที่เราจะดำเนินการต่อ เรามาเริ่มกันโดยพิจารณาให้ถี่ถ้วนว่าตอนนี้มีจุดใดบ้าง และเรามาที่นี่ได้อย่างไร
การพัฒนา HSA ปัญหาการงอกของฟัน และข้อกังวลในการรับเลี้ยงบุตรบุญธรรม
ดังที่ฉันได้กล่าวไว้ในบทนำ HSA ไม่ใช่แนวคิดที่แปลกใหม่ เดิมทีมันถูกจินตนาการโดย Advanced Micro Devices (AMD) ซึ่งมีส่วนได้เสียในการเอามันออกจากพื้นดิน ทศวรรษที่ผ่านมา AMD ซื้อ ATI ผู้เชี่ยวชาญด้านกราฟิก และตั้งแต่นั้นเป็นต้นมา บริษัทก็พยายามที่จะใช้ประโยชน์จากการเข้าถึงเทคโนโลยี GPU ที่ทันสมัยเพื่อเพิ่มยอดขายโดยรวม
แนวคิดนี้เรียบง่ายเพียงพอ: AMD ไม่เพียงแต่พัฒนาและผลิต GPU แยกที่ล้ำสมัยเท่านั้น แต่ยังจะรวมเทคโนโลยี GPU ของ ATI ไว้ในโปรเซสเซอร์ด้วย ฝ่ายการตลาดของ AMD เรียกแนวคิดนี้ว่า 'ฟิวชั่น' และ HSA ถูกเรียกว่า Fusion System Architecture (FSA) ฟังดูดีใช่มั้ย? การรับโปรเซสเซอร์ x86 ที่ดีพร้อมกราฟิกในตัวที่ดีนั้นฟังดูเป็นความคิดที่ดีและเป็นเช่นนั้น
น่าเสียดายที่ AMD ประสบปัญหาหลายอย่างระหว่างทาง ฉันจะแยกแยะบางส่วนของพวกเขา:
- คู่แข่งจะหยิบไอเดียดีๆ ด้านเทคโนโลยีมาใช้ ในกรณีนี้คือ Intel
- AMD สูญเสียความได้เปรียบทางเทคโนโลยีให้กับ Intel และพบว่าการแข่งขันในตลาด CPU นั้นยากขึ้นเรื่อยๆ เนื่องจากเป็นผู้นำด้านเทคโนโลยีการหล่อของ Intel
- การดำเนินการของ AMD นั้นมีปัญหาและโปรเซสเซอร์ใหม่หลายตัวออกสู่ตลาดช้า อื่น ๆ ถูกทิ้งทั้งหมด
- ภาวะเศรษฐกิจตกต่ำในปี 2008 และการปฏิวัติอุปกรณ์พกพาที่ตามมาไม่ได้ช่วยอะไร
ปัจจัยเหล่านี้และปัจจัยอื่นๆ อีกจำนวนหนึ่ง เป็นการสมรู้ร่วมคิดที่จะทำลายขอบของ AMD และป้องกันไม่ให้ตลาดยอมรับผลิตภัณฑ์และเทคโนโลยีของบริษัท AMD เริ่มเปิดตัวโปรเซสเซอร์ด้วยกราฟิก Radeon แบบบูรณาการเจเนอเรชันใหม่ในกลางปี 2011 และเริ่มเรียกพวกเขาว่า Accelerated Processing Units (APU) แทนที่จะเป็นซีพียู
นอกเหนือจากการตลาด APU รุ่นแรกของ AMD (ชื่อรหัสว่า Llano) นั้นล้มเหลว ชิปนั้นมาช้าและไม่สามารถตามข้อเสนอของ Intel ได้ ฟีเจอร์ HSA ที่จริงจังไม่ได้รวมอยู่ด้วย แต่ AMD เริ่มเพิ่มฟีเจอร์เหล่านี้ในแพลตฟอร์มปี 2012 (Trinity ซึ่งโดยพื้นฐานแล้ว Llano ถูกต้องแล้ว) ขั้นตอนต่อไปมาในปี 2014 ด้วยการเปิดตัว Kaveri APU ซึ่งรองรับการจัดการหน่วยความจำที่แตกต่างกัน (GPU IOMMU และ CPU MMU ใช้พื้นที่ที่อยู่เดียวกัน) Kaveri ยังนำการผสมผสานทางสถาปัตยกรรมที่มากขึ้น ทำให้หน่วยความจำที่เชื่อมโยงกันระหว่าง CPU และ GPU (AMD เรียกว่า hUMA ซึ่งย่อมาจาก Heterogeneous Unified Memory Access) การรีเฟรช Carizzo ที่ตามมาได้เพิ่มคุณสมบัติ HSA ให้มากขึ้น ทำให้โปรเซสเซอร์สามารถสลับบริบทงานการคำนวณบน GPU และทำเคล็ดลับเพิ่มเติมอีกสองสามอย่าง
สถาปัตยกรรม Zen CPU ที่กำลังจะมีขึ้นและ APUs ที่สร้างขึ้นบนนั้น สัญญาว่าจะส่งมอบให้มากยิ่งขึ้น หากมีและเมื่อใดที่มันจะแสดงออกสู่ตลาด
แล้วมีปัญหาอะไรไหม?
AMD ไม่ใช่ผู้ผลิตชิปเพียงรายเดียวที่ตระหนักถึงศักยภาพของ GPU ออนได Intel เริ่มเพิ่มลงใน Core CPUs เช่นเดียวกับผู้ผลิตชิป ARM ดังนั้น GPU แบบบูรณาการจึงถูกใช้ใน SoC ของสมาร์ทโฟนแทบทุกเครื่อง รวมถึงพีซี/Mac ส่วนใหญ่ด้วย ในขณะเดียวกัน ตำแหน่งของ AMD ในตลาดซีพียูก็ถูกกัดเซาะ ส่วนแบ่งการตลาดตกต่ำทำให้แพลตฟอร์มของ AMD ไม่น่าสนใจสำหรับนักพัฒนา ธุรกิจ และแม้แต่ผู้บริโภค มีพีซีที่ใช้ AMD ไม่มากในตลาด และ Apple ไม่ได้ใช้โปรเซสเซอร์ AMD เลย (แม้ว่าจะใช้กราฟิก AMD ส่วนใหญ่เนื่องจากความเข้ากันได้ของ OpenCL)
AMD ไม่ได้แข่งขันกับ Intel ในตลาด CPU ระดับไฮเอนด์อีกต่อไป แต่ถึงแม้จะทำได้ ก็ไม่ทำให้เกิดความแตกต่างมากนักในแง่นี้ ผู้คนไม่ซื้อเวิร์กสเตชันหรือพีซีเกมมูลค่า 2,000 ดอลลาร์เพื่อใช้กราฟิกในตัว พวกเขาใช้กราฟิกแยกราคาแพงและไม่สนใจเรื่องประสิทธิภาพการใช้พลังงานมากนัก
HSA บางอย่างสำหรับสมาร์ทโฟนและแท็บเล็ตเป็นอย่างไร?
แต่เดี๋ยวก่อน. แล้วแพลตฟอร์มมือถือล่ะ? AMD ไม่สามารถเปิดตัวโซลูชั่นที่คล้ายกันสำหรับชิปสมาร์ทโฟนและแท็บเล็ตได้หรือไม่ ไม่เลย ไม่เลยจริงๆ
คุณเห็นไหมว่าไม่กี่ปีหลังจากการซื้อกิจการ ATI AMD พบว่าตัวเองอยู่ในสถานการณ์ทางการเงินที่ยากลำบาก ประกอบกับวิกฤตเศรษฐกิจ ดังนั้นจึงตัดสินใจขายแผนก Imageon mobile GPU ให้กับ Qualcomm Qualcomm เปลี่ยนชื่อผลิตภัณฑ์ Adreno (แอนนาแกรมของ Radeon) และกลายเป็นผู้เล่นหลักในตลาดโปรเซสเซอร์ของสมาร์ทโฟนโดยใช้ GPU ที่ทาสีใหม่ภายในบริษัท
อย่างที่พวกคุณบางคนอาจสังเกตเห็น การขายชุดกราฟิกของสมาร์ทโฟนในขณะที่การปฏิวัติสมาร์ทโฟนกำลังจะเริ่มต้น ดูเหมือนจะไม่ใช่การเคลื่อนไหวทางธุรกิจที่ยอดเยี่ยม แต่ฉันเดาว่าการเข้าใจถึงปัญหาย้อนหลังมักจะอยู่ที่ 20/20 เสมอ
HSA เคยเชื่อมโยงกับ AMD และโปรเซสเซอร์ x86 เท่านั้น แต่จะไม่เป็นเช่นนั้นอีกต่อไป ในความเป็นจริง หากสมาชิก HSA Foundation ทั้งหมดเริ่มจัดส่งโปรเซสเซอร์สมาร์ทโฟน ARM ที่เปิดใช้งาน HSA พวกเขาจะขายโปรเซสเซอร์ x86 ของ AMD ได้หลายเท่า ทั้งในแง่ของรายได้และหน่วยที่จัดส่ง แล้วจะเกิดอะไรขึ้นถ้าพวกเขาทำ? นั่นจะหมายถึงอะไรสำหรับอุตสาหกรรมและนักพัฒนา?
สำหรับผู้เริ่มใช้งาน โปรเซสเซอร์ของสมาร์ทโฟนนั้นพึ่งพาการคำนวณที่ต่างกันอยู่แล้ว การคำนวณแบบต่างๆ มักจะหมายถึงแนวคิดของการใช้สถาปัตยกรรมที่แตกต่างกันในชิปตัวเดียว และเมื่อพิจารณาจากส่วนประกอบทั้งหมดที่พบใน SoC ที่มีการผสานรวมขั้นสูงในปัจจุบันแล้ว นี่อาจเป็นคำจำกัดความที่กว้างมาก ด้วยเหตุนี้ SoC เกือบทุกตัวจึงถูกพิจารณาว่าเป็นแพลตฟอร์มการคำนวณที่ต่างกัน ขึ้นอยู่กับมาตรฐานของแต่ละคน บางครั้งผู้คนถึงกับอ้างถึงโปรเซสเซอร์ที่แตกต่างกันตามชุดคำสั่งเดียวกันว่าเป็นแพลตฟอร์มที่ต่างกัน (เช่น ชิปมือถือที่มีแกน ARM Cortex-A57 และ A53 ซึ่งทั้งคู่ใช้ชุดคำสั่ง ARMv8 64 บิต)
ผู้สังเกตการณ์หลายคนเห็นด้วยว่าโปรเซสเซอร์ที่ใช้ ARM ส่วนใหญ่อาจได้รับการพิจารณาว่าเป็นแพลตฟอร์มที่แตกต่างกัน ซึ่งรวมถึงชิป Apple A-series, Samsung Exynos SoCs และโปรเซสเซอร์ที่คล้ายกันจากผู้ผลิตรายอื่น ได้แก่ ผู้เล่นรายใหญ่อย่าง Qualcomm และ MediaTek
แต่ทำไมทุกคนถึง ต้องการ HSA บนโปรเซสเซอร์ของสมาร์ทโฟน? จุดประสงค์ทั้งหมดของการใช้ GPU สำหรับการประมวลผลทั่วไปเพื่อจัดการกับปริมาณงานระดับมืออาชีพ ไม่ใช่ Angry Birds และ Uber ใช่ไหม
ใช่ แต่นั่นไม่ได้หมายความว่าวิธีการที่เกือบจะเหมือนกันไม่สามารถใช้เพื่อเพิ่มประสิทธิภาพได้ ซึ่งเป็นสิ่งสำคัญอันดับแรกในการออกแบบโปรเซสเซอร์มือถือ ดังนั้น แทนที่จะใช้ HSA เพื่อทำให้โปรเซสเซอร์โมบายล์มีประสิทธิภาพและหลากหลายมากขึ้น แทนที่จะต้องทำงานแบบขนานจำนวนนับไม่ถ้วนบนเวิร์กสเตชันระดับไฮเอนด์
มีเพียงไม่กี่คนที่มองดูโปรเซสเซอร์เหล่านี้อย่างละเอียดถี่ถ้วน พวกเขามักจะตรวจสอบเอกสารข้อมูลจำเพาะเมื่อซื้อโทรศัพท์เครื่องใหม่ และเพียงเท่านั้น: พวกเขาดูที่ตัวเลขและยี่ห้อ พวกเขามักจะไม่มองที่ SoC ตาย เอง ซึ่งบอกเรามากมาย และนี่คือเหตุผล: GPU บนโปรเซสเซอร์สมาร์ทโฟนระดับไฮเอนด์ใช้อสังหาริมทรัพย์ซิลิคอนมากกว่าซีพียู เมื่อพิจารณาว่ามีอยู่แล้ว มันจะเป็นการดีที่จะนำไปใช้ในแอพพลิเคชั่นอื่นนอกเหนือจากการเล่นเกม ใช่ไหม
โปรเซสเซอร์สมาร์ทโฟนที่เป็นไปตามสมมุติฐานและเป็นไปตาม HSA อย่างสมบูรณ์ช่วยให้นักพัฒนาสามารถใช้ศักยภาพนี้ได้โดยไม่ต้องเพิ่มต้นทุนการผลิตโดยรวมมากนัก ใช้คุณสมบัติเพิ่มเติม และเพิ่มประสิทธิภาพ
นี่คือสิ่งที่ HSA สามารถทำได้สำหรับโปรเซสเซอร์สมาร์ทโฟน ในทางทฤษฎี อย่างน้อย:
- ปรับปรุงประสิทธิภาพด้วยการถ่ายโอนงานที่เหมาะสมไปยัง GPU
- เพิ่มประสิทธิภาพโดยการถ่าย CPU ในบางสถานการณ์
- ใช้เมมโมรี่บัสอย่างมีประสิทธิภาพมากขึ้น
- ลดต้นทุนการผลิตชิปได้โดยแตะซิลิคอนเพิ่มในคราวเดียว
- แนะนำคุณสมบัติใหม่ที่ไม่สามารถจัดการโดยแกน CPU ได้อย่างมีประสิทธิภาพ
- ปรับปรุงการพัฒนาโดยอาศัยมาตรฐาน
ฟังดูดี โดยเฉพาะอย่างยิ่งเมื่อคุณพิจารณาว่านักพัฒนาไม่น่าจะเสียเวลามากในการติดตั้งใช้งาน นั่นคือทฤษฎี แต่เราจะต้องรอดูการทำงานจริง และอาจใช้เวลาสักครู่
HSA ทำงานอย่างไร?
ฉันได้สรุปข้อมูลพื้นฐานในบทนำแล้ว และลังเลที่จะลงรายละเอียดมากเกินไปด้วยเหตุผลสองประการ: ไม่มีใครชอบโนเวลลาสที่ตีพิมพ์ในบล็อกเทคโนโลยี และการใช้งาน HSA อาจแตกต่างออกไป
ดังนั้น ฉันจะพยายามร่างแนวคิดด้วยคำสองสามร้อยคำ
ในระบบมาตรฐาน แอปพลิเคชันจะลดการคำนวณ GPU โดยการถ่ายโอนบัฟเฟอร์ไปยัง GPU ซึ่งจะเกี่ยวข้องกับการเรียก CPU ก่อนที่จะเข้าคิว จากนั้น CPU จะกำหนดเวลางานและส่งไปยัง GPU ซึ่งจะส่งต่อไปยัง CPU เมื่อเสร็จสิ้น จากนั้นแอปพลิเคชันจะได้รับบัฟเฟอร์ซึ่งจะต้องถูกแมปโดย CPU อีกครั้งก่อนที่จะพร้อม อย่างที่คุณเห็น แนวทางนี้เกี่ยวข้องกับการกลับไปกลับมามากมาย
ในระบบ HSA แอปพลิเคชันจะจัดคิวงาน HSA CPU จะเข้าควบคุม ส่งต่อให้ GPU นำงานกลับมา และนำไปที่แอปพลิเคชัน เสร็จแล้ว.
สิ่งนี้เกิดขึ้นได้โดยการแชร์หน่วยความจำระบบโดยตรงระหว่าง CPU และ GPU แม้ว่าหน่วยคำนวณอื่นๆ อาจเกี่ยวข้องด้วย (เช่น DSP) ในการบรรลุการรวมหน่วยความจำในระดับนี้ HSA ใช้พื้นที่ที่อยู่เสมือนสำหรับอุปกรณ์คอมพิวเตอร์ ซึ่งหมายความว่าคอร์ของ CPU และ GPU สามารถเข้าถึงหน่วยความจำด้วยเงื่อนไขที่เท่าเทียมกัน ตราบใดที่มีการแชร์ตารางเพจ ทำให้อุปกรณ์ต่างๆ สามารถแลกเปลี่ยนข้อมูลผ่านพอยน์เตอร์ได้
เห็นได้ชัดว่ามีประสิทธิภาพดีเยี่ยม เนื่องจากไม่จำเป็นต้องจัดสรรหน่วยความจำให้กับ GPU และ CPU โดยใช้หน่วยความจำเสมือนสำหรับแต่ละหน่วยความจำอีกต่อไป ด้วยหน่วยความจำเสมือนแบบรวมศูนย์ ทั้งคู่จึงสามารถเข้าถึงหน่วยความจำระบบได้ตามความต้องการ ทำให้มั่นใจถึงการใช้ทรัพยากรที่เหนือกว่าและความยืดหยุ่นที่มากขึ้น
ลองนึกภาพระบบพลังงานต่ำที่มี RAM 4GB ซึ่ง 512MB ถูกจัดสรรสำหรับ GPU ในตัว โดยปกติแล้ว โมเดลนี้จะไม่ยืดหยุ่น และคุณไม่สามารถเปลี่ยนจำนวนหน่วยความจำ GPU ได้ทันที คุณติดอยู่กับ 256MB หรือ 512MB และเท่านั้น ด้วย HSA คุณสามารถทำสิ่งที่คุณต้องการได้: หากคุณถ่ายข้อมูลจำนวนมากไปยัง GPU และต้องการ RAM เพิ่มเติมสำหรับ GPU ระบบสามารถจัดสรรได้ ดังนั้น ในแอปพลิเคชันที่ผูกกับกราฟิก ที่มีเนื้อหาความละเอียดสูงจำนวนมาก ระบบสามารถลงเอยด้วยการจัดสรร RAM 1GB หรือมากกว่าให้กับ GPU ได้อย่างราบรื่น

ทุกสิ่งที่เท่าเทียมกัน ระบบ HSA และที่ไม่ใช่ HSA จะใช้ แบนด์วิดท์หน่วยความจำร่วมกัน มีการเข้าถึง หน่วยความจำจำนวนเท่ากัน แต่ระบบ HSA อาจใช้งานได้อย่างมีประสิทธิภาพมากขึ้น ซึ่งช่วยปรับปรุงประสิทธิภาพและลดการใช้พลังงาน มันคือทั้งหมดที่เกี่ยวกับการได้รับมากขึ้นด้วยน้อย
คอมพิวเตอร์ที่แตกต่างกันจะดีสำหรับอะไร
คำตอบง่ายๆ? การประมวลผลแบบต่างๆ หรือ HSA ที่รวมเป็นหนึ่งหากมีการใช้งาน ควรเป็นทางเลือกที่ดีสำหรับงานประมวลผลทั้งหมดที่เหมาะสมกับ GPU มากกว่า CPU แต่ นั่น หมายถึงอะไรกันแน่ GPUs ดีอย่างไร?
GPU แบบบูรณาการที่ทันสมัยไม่ได้มีประสิทธิภาพมากนักเมื่อเทียบกับกราฟิกแบบแยก (โดยเฉพาะการ์ดกราฟิกสำหรับเล่นเกมระดับไฮเอนด์และโซลูชันเวิร์กสเตชัน) แต่มีประสิทธิภาพมากกว่ารุ่นก่อนอย่างมาก
หากคุณไม่ได้ติดตาม คุณอาจคิดว่า GPU ที่ผสานรวมเหล่านี้เป็นเรื่องตลก และเป็นเวลาหลายปีแล้วที่สิ่งเหล่านี้เป็นเพียงแค่: กราฟิกสำหรับกล่องสำหรับบ้านและสำนักงานราคาถูก อย่างไรก็ตาม สิ่งนี้เริ่มเปลี่ยนไปในช่วงเปลี่ยนทศวรรษ เนื่องจาก GPU แบบบูรณาการได้ย้ายจากชิปเซ็ตไปยังแพ็คเกจ CPU และตาย กลาย เป็นการผสานรวมอย่างแท้จริง
ในขณะที่ยังคงใช้พลังงานต่ำเมื่อเทียบกับ GPU รุ่นเรือธง แม้แต่ GPU ที่ผสานรวมก็ยังมีศักยภาพมากมาย เช่นเดียวกับ GPU ทั้งหมด พวกเขาเก่งในการโหลดคำสั่งเดียว หลายข้อมูล (SIMD) และคำสั่งเดียว โหลดหลายเธรด (SIMT) หากคุณต้องการบีบอัดตัวเลขจำนวนมากในการโหลดแบบขนานและซ้ำซาก GPU ควรช่วยได้ ในทางกลับกัน CPU ยังคงทำงานได้ดีกว่าสำหรับเวิร์คโหลดที่หนักและแตกแขนงออกไป
นั่นเป็นสาเหตุที่ซีพียูมีคอร์น้อยกว่า โดยปกติแล้วจะอยู่ระหว่างสองถึงแปดคอร์ และคอร์นั้นได้รับการปรับให้เหมาะสมสำหรับการประมวลผลแบบอนุกรมตามลำดับ GPU มักจะมีหลายสิบ หลายร้อย และในการ์ดจอแยกรุ่นเรือธง คอร์ที่เล็กกว่าและมีประสิทธิภาพมากกว่าหลายพันคอร์ คอร์ของ GPU ได้รับการออกแบบมาเพื่อจัดการกับงานหลาย ๆ อย่างพร้อม ๆ กัน แต่งานเดี่ยวเหล่านี้ง่ายกว่างานที่ CPU จัดการ ทำไมต้องเป็นภาระแก่ CPU ด้วยภาระดังกล่าว หาก GPU สามารถรองรับการทำงานเหล่านี้ได้อย่างมีประสิทธิภาพและ/หรือประสิทธิภาพที่เหนือกว่า
แต่ถ้า GPUs เก่งมากทำไมเราไม่เริ่มใช้เป็นอุปกรณ์คอมพิวเตอร์ทั่วไปเมื่อหลายปีก่อน? อุตสาหกรรมพยายามแล้ว แต่ความคืบหน้าช้าและ จำกัด เฉพาะบางช่อง แนวคิดนี้เดิมเรียกว่า General Purpose Computing on Graphics Processing Units (GPGPU) ในสมัยก่อน ศักยภาพมีจำกัด แต่แนวคิด GPGPU นั้นดี และต่อมาก็นำเอามาตรฐานมาใช้ในรูปแบบของ CUDA ของ Nvidia และ OpenCL ของ Apple/Khronos Group
CUDA และ OpenCL สร้างความแตกต่างอย่างมากเนื่องจากอนุญาตให้โปรแกรมเมอร์ใช้ GPU ในลักษณะที่แตกต่างออกไปและมีประสิทธิภาพมากขึ้น อย่างไรก็ตามพวกเขาเป็นผู้ขายเฉพาะ คุณสามารถใช้ CUDA บนฮาร์ดแวร์ Nvidia ในขณะที่ OpenCL ถูกสงวนไว้สำหรับฮาร์ดแวร์ ATI (และได้รับการยอมรับจาก Apple) DirectCompute API ของ Microsoft เปิดตัวพร้อมกับ DirectX 11 และอนุญาตให้ใช้แนวทางที่ไม่เชื่อเรื่องพระเจ้าของผู้ขายอย่างจำกัด (แต่จำกัดเฉพาะ Windows)
มาสรุปกันโดยแสดงรายการแอปพลิเคชั่นบางตัวสำหรับการประมวลผล GPU:
การประมวลผลประสิทธิภาพสูงแบบดั้งเดิม (HPC) ในรูปแบบของคลัสเตอร์ HPC, ซูเปอร์คอมพิวเตอร์, คลัสเตอร์ GPU สำหรับการโหลดการคำนวณ, การคำนวณ GRID, การทำโหลดบาลานซ์
โหลดที่ต้องใช้ฟิสิกส์ ซึ่งสามารถ แต่ไม่จำเป็นต้องเกี่ยวข้องกับการเล่นเกมหรือกราฟิกโดยทั่วไป นอกจากนี้ยังสามารถใช้ในการจัดการการคำนวณไดนามิกของไหล ฟิสิกส์เชิงสถิติ และสมการและอัลกอริธึมที่แปลกใหม่
เรขาคณิต เกือบทุกอย่างที่เกี่ยวข้องกับเรขาคณิต รวมถึงการคำนวณความโปร่งใส เงา การตรวจจับการชน และอื่นๆ
การประมวลผลเสียง โดยใช้ GPU แทน DSP, การประมวลผลเสียงพูด, การประมวลผลสัญญาณอนาล็อก และอื่นๆ
การประมวลผลภาพดิจิทัล เป็นสิ่งที่ GPU ได้รับการออกแบบมาสำหรับ (ชัด) ดังนั้นจึงสามารถใช้เพื่อเร่งการประมวลผลและถอดรหัสภาพและวิดีโอ หากคุณต้องการถอดรหัสสตรีมวิดีโอและใช้ตัวกรอง แม้แต่ GPU ระดับเริ่มต้นก็จะเช็ดพื้นด้วย CPU
การ คำนวณทางวิทยาศาสตร์ รวมถึงการวิจัยสภาพภูมิอากาศ ฟิสิกส์ดาราศาสตร์ กลศาสตร์ควอนตัม การสร้างแบบจำลองโมเลกุล และอื่นๆ
งานอื่นๆ ที่ต้องใช้การประมวล ผลสูง ได้แก่ การเข้ารหัส/ถอดรหัส ไม่ว่าคุณจะต้อง "ขุด" สกุลเงินดิจิทัล เข้ารหัสหรือถอดรหัสข้อมูลที่เป็นความลับ ถอดรหัสรหัสผ่าน หรือตรวจจับไวรัส GPU ช่วยคุณได้
นี่ไม่ใช่รายการที่สมบูรณ์ของแอปพลิเคชั่นประมวลผล GPU ที่เป็นไปได้ แต่ผู้อ่านที่ไม่คุ้นเคยกับแนวคิดนี้ควรได้รับแนวคิดทั่วไปเกี่ยวกับสิ่งที่ทำให้การประมวลผล GPU แตกต่างออกไป ฉันยังทิ้งแอปพลิเคชันที่ชัดเจน เช่น เกมและกราฟิกระดับมืออาชีพ
อย่างไรก็ตาม รายการที่ครอบคลุมไม่มีอยู่จริง เนื่องจากการประมวลผล GPU สามารถใช้ได้กับสิ่งต่างๆ ทุกประเภท ตั้งแต่การเงินและการถ่ายภาพทางการแพทย์ ไปจนถึงการโหลดฐานข้อมูลและสถิติ คุณถูกจำกัดด้วยจินตนาการของคุณเอง ที่เรียกว่าคอมพิวเตอร์วิทัศน์เป็นอีกหนึ่งแอพพลิเคชั่นที่กำลังมาแรง GPU ที่มีความสามารถเป็นสิ่งที่ดีที่ควรมีหากคุณต้องการ "สอน" โดรนหรือรถยนต์ไร้คนขับเพื่อหลีกเลี่ยงต้นไม้ คนเดินเท้า และยานพาหนะอื่นๆ
อย่าลังเลที่จะใส่เรื่องตลกที่คุณชื่นชอบของ Lindsay Lohan ที่นี่
การพัฒนาสำหรับ HSA: เวลาสำหรับข่าวร้าย
นี่อาจเป็นความเห็นส่วนตัวของฉันมากกว่าข้อเท็จจริง แต่ฉันเป็นผู้เชื่อ HSA ฉันคิดว่าแนวคิดนี้มีศักยภาพมาก หากมีการนำไปใช้อย่างเหมาะสมและได้รับการสนับสนุนเพียงพอจากผู้ผลิตชิปและนักพัฒนา อย่างไรก็ตาม ความคืบหน้าเป็นไปอย่างช้าๆ อย่างเจ็บปวด หรือนั่นอาจเป็นแค่ความรู้สึกของฉัน ฉันแค่ต้องการเห็นเทคโนโลยีใหม่ๆ ใช้งานจริง และฉันก็เป็นอะไรก็ได้ที่ไม่ใช่เฉพาะบุคคลที่มีความอดทน
ปัญหากับ HSA คือยัง ไม่มี ไม่ได้หมายความว่าจะไม่ขึ้น แต่อาจใช้เวลาสักครู่ ท้ายที่สุด เราไม่ได้แค่พูดถึงชุดซอฟต์แวร์ใหม่เท่านั้น HSA ต้องการฮาร์ดแวร์ใหม่เพื่อใช้เวทมนตร์ ปัญหาคือฮาร์ดแวร์ส่วนใหญ่ยังคงอยู่บนกระดานวาดภาพ แต่เรากำลังจะไปถึงที่นั่น ช้า.
นี่ ไม่ได้หมายความว่า นักพัฒนาไม่ได้ทำงานในโครงการที่เกี่ยวข้องกับ HSA แต่ไม่มีความสนใจหรือความคืบหน้ามากนักสำหรับเรื่องนี้ ต่อไปนี้เป็นแหล่งข้อมูลบางส่วนที่คุณควรตรวจสอบหากต้องการใช้ HSA:
เห็นได้ชัดว่ามูลนิธิ HSA @ GitHub เป็น สถานที่ สำหรับทรัพยากรที่เกี่ยวข้องกับ HSA มูลนิธิ HSA เผยแพร่และดูแลโครงการจำนวนหนึ่งบน GitHub รวมถึงดีบักเกอร์ คอมไพเลอร์ เครื่องมือ HSAIL ที่สำคัญ และอื่นๆ อีกมากมาย ทรัพยากรส่วนใหญ่ได้รับการออกแบบมาสำหรับฮาร์ดแวร์ของ AMD
ทรัพยากร HSAIL ที่ AMD จัดหาให้ ช่วยให้คุณได้รับแนวคิดที่ดีขึ้นเกี่ยวกับข้อมูลจำเพาะ HSAIL HSAIL ย่อมาจาก HSA Intermediate Language และเป็นเครื่องมือหลักสำหรับนักเขียนคอมไพเลอร์ส่วนหลังและผู้เขียนไลบรารีที่ต้องการกำหนดเป้าหมายอุปกรณ์ HSA
คู่มืออ้างอิงของโปรแกรมเมอร์ HSA (PDF) ประกอบด้วยข้อกำหนด HSAIL ฉบับสมบูรณ์ บวกกับคำอธิบายที่ครอบคลุมเกี่ยวกับภาษาระดับกลาง
ทรัพยากรของมูลนิธิ HSA มีจำกัดในขณะนี้ และโปรแกรมนักพัฒนาของมูลนิธิ "กำลังจะมาในเร็วๆ นี้" แต่มีเครื่องมือสำหรับนักพัฒนาอย่างเป็นทางการจำนวนหนึ่งให้ตรวจสอบ ที่สำคัญกว่านั้น พวกเขาจะให้ความคิดที่ดีเกี่ยวกับสแต็กที่คุณต้องการเพื่อเริ่มต้น
บล็อกอย่างเป็นทางการของ AMD มีเนื้อหา HSA ที่เป็นประโยชน์เช่นกัน
นี่น่าจะเพียงพอสำหรับการเริ่มต้น หากคุณเป็นคนอยากรู้อยากเห็น คำถามที่แท้จริงคือคุณควรเริ่มกังวลหรือไม่
อนาคตของการประมวลผล HSA และ GPU
เมื่อใดก็ตามที่เรากล่าวถึงเทคโนโลยีที่เกิดขึ้นใหม่ เรากำลังเผชิญกับภาวะที่กลืนไม่เข้าคายไม่ออก: เราควรบอกให้ผู้อ่านใช้เวลาและทรัพยากรกับมัน หรือหลีกเลี่ยง รอดูแนวทาง?
ฉันได้ชี้แจงแล้วว่าฉันค่อนข้างลำเอียงเพราะฉันชอบแนวคิดทั่วไปของการประมวลผลด้วย GPU แต่นักพัฒนาส่วนใหญ่สามารถทำได้โดยปราศจากมันในตอนนี้ แม้ว่าจะเริ่มต้นขึ้น HSA จะมีการอุทธรณ์ที่จำกัดและจะไม่เกี่ยวข้องกับนักพัฒนาส่วนใหญ่ อย่างไรก็ตาม มันอาจจะมีความสำคัญในภายภาคหน้า น่าเสียดายสำหรับ AMD ไม่น่าจะเป็นผู้เปลี่ยนเกมในตลาดโปรเซสเซอร์ x86 แต่สามารถพิสูจน์ได้ว่ามีความสำคัญมากกว่าในโปรเซสเซอร์โมบายล์ที่ใช้ ARM อาจเป็นความคิดของ AMD แต่บริษัทต่างๆ เช่น Qualcomm และ MediaTek อยู่ในตำแหน่งที่ดีกว่าในการนำเสนอฮาร์ดแวร์ที่เปิดใช้งาน HSA ให้กับผู้ใช้หลายร้อยล้านคน
จะต้องเป็นการทำงานร่วมกันที่สมบูรณ์แบบของซอฟต์แวร์และฮาร์ดแวร์ หากผู้ผลิตชิปมือถือคลั่งไคล้ HSA ก็จะเป็นเรื่องใหญ่ ชิป HSA รุ่นใหม่จะทำให้เส้นแบ่งระหว่างคอร์ของ CPU และ GPU ไม่ชัดเจน พวกเขาจะแบ่งปันหน่วยความจำบัสเดียวกันในแง่ที่เท่าเทียมกัน และฉันคิดว่าบริษัทต่างๆ จะเริ่มทำการตลาดให้แตกต่างออกไป ตัวอย่างเช่น AMD กำลังทำการตลาด APUs เป็น "อุปกรณ์คอมพิวเตอร์" ที่ประกอบด้วย "แกนประมวลผล" (CPU และ GPU) ที่แตกต่างกัน
ชิปมือถืออาจลงเอยด้วยแนวทางที่คล้ายคลึงกัน แทนที่จะทำการตลาดชิปที่มีคอร์ซีพียูแปดหรือสิบคอร์และ GPU ดังกล่าว ผู้ผลิตชิปสามารถเริ่มพูดคุยเกี่ยวกับคลัสเตอร์ โมดูล และยูนิตได้ ดังนั้น โปรเซสเซอร์ที่มีคอร์ CPU ขนาดเล็กสี่คอร์และสี่คอร์จะเป็นโปรเซสเซอร์ “dual-cluster” หรือ “dual-module” หรือการออกแบบ “tri-cluster” หรือ “quad-cluster” หากพิจารณาถึงคอร์ของ GPU . ข้อกำหนดทางเทคนิคจำนวนมากมักจะไม่มีความหมายเมื่อเวลาผ่านไป ตัวอย่างเช่น DPI บนเครื่องพิมพ์ในสำนักงานของคุณ หรือการนับเมกะพิกเซลในกล้องสมาร์ทโฟนราคาถูกของคุณ
ไม่ใช่แค่การตลาดเท่านั้น หาก GPU มีความยืดหยุ่นพอๆ กับคอร์ของ CPU และสามารถเข้าถึงทรัพยากรระบบได้เท่าๆ กับ CPU เหตุใดเราจึงต้องวุ่นวายกับการเรียกชื่อจริงของ GPU ด้วย เมื่อสองทศวรรษก่อน อุตสาหกรรมหยุดใช้ตัวประมวลผลร่วมทางคณิตศาสตร์ (FPU) โดยเฉพาะเมื่อกลายเป็นส่วนประกอบที่ต้องมีของ CPU ทุกตัว เพียงไม่กี่รอบผลิตภัณฑ์ต่อมา เราก็ลืมไปว่าเคยมีอยู่จริง
โปรดทราบว่า HSA ไม่ใช่วิธีเดียวที่จะแตะ GPU เพื่อคำนวณ
Intel และ Nvidia ไม่ได้ทำงานร่วมกัน และวิธีการของพวกเขาแตกต่างกัน Intel ได้เพิ่มการลงทุนด้านการวิจัยและพัฒนา GPU อย่างเงียบๆ ในช่วงไม่กี่ปีที่ผ่านมา และโซลูชั่นกราฟิกในตัวล่าสุดนั้นค่อนข้างดี เนื่องจาก GPU แบบ on-die มีประสิทธิภาพมากขึ้นและกินเนื้อที่ที่เป็นซิลิคอนมากขึ้น Intel จะต้องหาวิธีที่ชาญฉลาดกว่านี้เพื่อใช้ในการคำนวณทั่วไป
ในทางกลับกัน Nvidia ถอนตัวออกจากตลาดกราฟิกแบบบูรณาการเมื่อหลายปีก่อน (เมื่อหยุดผลิตชิปเซ็ตสำหรับพีซี) แต่ก็ลองเสี่ยงโชคในตลาดโปรเซสเซอร์ ARM ด้วยโปรเซสเซอร์ Tegra-series พวกเขาไม่ประสบความสำเร็จอย่างมาก แต่ก็ยังใช้ในฮาร์ดแวร์บางตัวและ Nvidia มุ่งเน้นไปที่ระบบฝังตัว ได้แก่ ยานยนต์ ในการตั้งค่านี้ GPU ในตัวจะดึงน้ำหนักของมันเอง เนื่องจากสามารถใช้สำหรับการตรวจจับการชน การนำทางในอาคาร การทำแผนที่ 3 มิติ และอื่นๆ จำ Project Tango ของ Google ได้ไหม ฮาร์ดแวร์บางตัวใช้ชิป Tegra ทำให้สามารถตรวจจับความลึกและลูกเล่นอื่นๆ อีกเล็กน้อย ในทางกลับกัน กลุ่มผลิตภัณฑ์เทสลาของ Nvidia ครอบคลุมตลาดการประมวลผล GPU ระดับไฮเอนด์ และรับรองการครอบงำของ Nvidia ในช่องนี้สำหรับปีต่อ ๆ ไป
บรรทัดล่าง? บนกระดาษ การประมวลผลด้วย GPU เป็นแนวคิดที่ยอดเยี่ยมพร้อมศักยภาพมากมาย แต่สถานะเทคโนโลยีในปัจจุบันยังคงเป็นที่ต้องการอย่างมาก HSA ควรดำเนินการแก้ไขปัญหาเหล่านี้อย่างมาก ยิ่งไปกว่านั้น ผู้เล่นในอุตสาหกรรมไม่รองรับ สิ่ง นี้ ซึ่งจะทำให้การรับไปใช้งานช้าลงไปอีก
อาจใช้เวลาสองสามปี แต่ฉันมั่นใจว่าในที่สุด GPU จะลุกขึ้นมาแทนที่ในเวทีการประมวลผลทั่วไป แม้แต่ในชิปมือถือ เทคโนโลยีใกล้จะพร้อมแล้ว และเศรษฐกิจจะจัดการที่เหลือเอง ยังไง? นี่เป็นตัวอย่างง่ายๆ โปรเซสเซอร์ Atom รุ่นปัจจุบันของ Intel มี 12 ถึง 16 GPU Execution Units (EU) ในขณะที่รุ่นก่อนมี EU เพียง 4 ตัว ตามสถาปัตยกรรมรุ่นเก่า เมื่อ GPU ที่ผสานรวมมีขนาดใหญ่ขึ้นและทรงพลังยิ่งขึ้น และเมื่อพื้นที่แม่พิมพ์เพิ่มขึ้น ผู้ผลิตชิปจะไม่มีทางเลือกอื่นนอกจากใช้เพื่อปรับปรุงประสิทธิภาพและประสิทธิภาพโดยรวม การไม่ทำเช่นนั้นจะส่งผลเสียต่อส่วนต่างกำไรและผู้ถือหุ้น
ไม่ต้องกังวล คุณยังสามารถสนุกกับเกมเป็นครั้งคราวบน GPU สายพันธุ์ใหม่นี้ได้ อย่างไรก็ตาม แม้ว่าคุณจะไม่ได้เล่นเกม GPU จะทำสิ่งต่างๆ มากมายในเบื้องหลัง โดยจะทำการถ่าย CPU เพื่อเพิ่มประสิทธิภาพและประสิทธิผล
ฉันคิดว่าเราทุกคนเห็นพ้องต้องกันว่าเรื่องนี้จะเป็นเรื่องใหญ่ โดยเฉพาะอย่างยิ่งบนอุปกรณ์พกพาราคาไม่แพง