ตัวเร่งความเร็วเทียบกับตัวประมวลผลร่วมใน SoC หรือ APU: ความแตกต่างและความคล้ายคลึงกัน

ทุกวันนี้ โปรเซสเซอร์ใดๆ ก็ตามเป็นการผสมผสานที่ซับซ้อนของคอร์ประเภทต่างๆ ที่จัดการงานจำนวนมาก ทำงานเฉพาะทาง หรือทำงานร่วมกันเพื่อให้ได้ผลลัพธ์ที่ดีที่สุดเมื่อดำเนินการตามกระบวนการต่างๆ ไม่ว่าในกรณีใด จะมีความแตกต่างระหว่างสิ่งที่เป็นตัวเร่งปฏิกิริยาและตัวประมวลผลร่วมในฐานะแกนสนับสนุน อ่านต่อเพื่อทำความเข้าใจว่าพวกเขาคืออะไร

ตัวเร่งความเร็วเทียบกับตัวประมวลผลร่วมใน SoC หรือ APU

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

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

โปรเซสเซอร์สนับสนุนตัวแรกที่วางอยู่ในสถาปัตยกรรมนั้นง่ายต่อการอธิบาย โดยปกติแล้วโปรเซสเซอร์ที่ได้รับการออกแบบมาสำหรับสถาปัตยกรรมรุ่นก่อนๆ ของแบรนด์เดียวกัน หรือหากล้มเหลวก็คือโปรเซสเซอร์ที่ได้รับอนุญาตจากบุคคลที่สาม ในทางกลับกัน เกิดขึ้นระหว่างการพัฒนา อันเป็นผลมาจากคำขอของลูกค้าหรือเนื่องจากประเภทของปัญหาที่ต้องแก้ไขที่ต้องใช้ฮาร์ดแวร์ยูนิตประเภทใหม่

ตัวประมวลผลร่วมคืออะไร?

โปรเซสเซอร์ร่วม x87

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

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

ในช่วงเวลาที่ตัวประมวลผลร่วมรับผิดชอบการทำงาน เคอร์เนลหลักสามารถใช้พลังที่ได้รับเพื่อทำงานอื่น ๆ ได้ แต่เนื่องจากกระบวนการถูกดำเนินการร่วมกัน จุดจะถึงจุดที่ไม่สามารถ เพื่อดำเนินการต่อจนกว่าตัวประมวลผลร่วมหรือตัวประมวลผลร่วมจะเสร็จสิ้นภารกิจที่ได้รับมอบหมาย

คันเร่งคืออะไร?

ฮาร์ดแวร์ Acelerador

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

เนื่องจากตัวเร่งความเร็วถูกแยกออกจากโปรเซสเซอร์โดยสิ้นเชิง มันจึงไม่ซิงโครนัสกับมันโดยสิ้นเชิง เราหมายถึงอะไร ความจริงที่ว่าตัวเร่งความเร็วซึ่งตรงข้ามกับตัวประมวลผลร่วมไม่สามารถทำงานร่วมกับ CPU หลักของระบบได้ วิธีนี้ช่วยให้คุณเร่งความเร็วส่วนต่างๆ ของโค้ดได้ ซึ่งหมายความว่าต้องทำให้เสร็จด้วยความเร็วสูงขึ้นมาก และใช้เวลาน้อยลง แน่นอนว่าสิ่งนี้ต้องการการเปลี่ยนแปลงครั้งใหญ่ในสถาปัตยกรรม

ประการแรก ตัวประมวลผลร่วมสามารถแบ่งปันส่วนต่างๆ ของชุดควบคุม และแม้กระทั่งลงทะเบียนหรือเข้าถึงหน่วยความจำร่วมกับ CPU เมื่อมีการแชร์องค์ประกอบเหล่านี้ พวกเขาสามารถสร้างความแออัดในการเข้าถึงได้ ทำให้หน่วยหนึ่งหรืออีกหน่วยหนึ่งหยุดรอที่จะใช้ทรัพยากรเหล่านี้ ตามที่คุณเข้าใจ สิ่งนี้ไม่สามารถเกิดขึ้นในตัวเร่งความเร็วได้ ดังนั้นข้อมูลและคำแนะนำของมันแม้จะให้มาโดยโปรเซสเซอร์ ได้รับการออกแบบมาเพื่อให้คุณใช้งานได้ 100% ตลอดเวลา นั่นคือสาเหตุที่ตัวเร่งความเร็วจำนวนมากเป็นโปรเซสเซอร์ที่สมบูรณ์ซึ่งมี Local ของตัวเอง แรม ภายใน

หากตัวเร่งความเร็วดีกว่า เหตุใดจึงใช้ตัวประมวลผลร่วม

ตัวประมวลผล Portada Alternativa

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

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

ตัวอย่างคือ Tensor Cores และ NVIDIAหน่วย NVDLA ของทั้งสองมีจุดประสงค์เดียวกัน แต่ในขณะที่อดีตเป็นโปรเซสเซอร์ร่วมภายในหน่วย shader ที่แชร์การลงทะเบียนและหน่วยควบคุมกับส่วนที่เหลือของ GPU หน่วย shader ในกรณีที่ที่สองคือตัวประมวลผลเอง ไม่น่าแปลกใจเลยที่ DLA ย่อมาจาก Deep Learning Accelerator