Infinity Cache ค้นพบประโยชน์การใช้งานและความลับ

Infinity Cache เป็นความแตกต่างที่โดดเด่นที่สุดระหว่างกราฟิกการ์ด RX 6000 series ที่เพิ่งเปิดตัว (RX 6800, RX 6800 XT และ RX 6900) กับ Xbox ซีรีส์ X SoC GPUโดยอ้างอิงจาก RDNA 2 ด้วย¿ แต่ Infinity Cache คืออะไรใช้งานอย่างไรและทำงานอย่างไร? เราจะบอกความลับทั้งหมดให้คุณทราบ

ตั้งแต่สัปดาห์ก่อนการนำเสนอ RX 6000 เราได้ทราบถึงการมีอยู่ของหน่วยความจำขนาดใหญ่นี้ภายใน GPU ซึ่งมีขนาดใหญ่มากเพราะเรากำลังพูดถึงแคชที่ใหญ่ที่สุดในประวัติศาสตร์ของ GPU เกี่ยวกับ ความจุ 128 MB . แต่ เอเอ็มดี ไม่ได้ให้ข้อมูลมากนักมันบอกเราเกี่ยวกับการดำรงอยู่ของมัน

อินฟินิตี้แคช

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

ค้นหา Infinity Cache

Navi21 อินฟินิตี้แคช

จุดแรกที่จำเป็นในการทำความเข้าใจว่าหน้าที่ของชิ้นส่วนภายในฮาร์ดแวร์คืออะไรคือการอนุมานการทำงานจากตำแหน่งภายในระบบ

ตั้งแต่ RDNA 2 เป็นวิวัฒนาการของ RDNA ก่อนอื่นเราต้องดูรุ่นแรกของสถาปัตยกรรมกราฟิก AMD ในปัจจุบันซึ่งเรารู้จักชิปสองตัวนั่นคือ Navi 10 และ Navi 14

ถ้า Infinity Cache ถูกนำไปใช้ใน RDNA มันจะอยู่ในส่วนที่ระบุว่า Infinity Fabric ของไดอะแกรมดังนั้นในระดับองค์กรแคชเราจะไปจากสิ่งนี้:
Jerarquíaแคช GPU RDNA
ในกรณีที่ตัวเร่งความเร็วที่เชื่อมต่อกับ GPU Hub (ตัวแปลงสัญญาณวิดีโอตัวควบคุมการแสดงผลไดรฟ์ DMA ฯลฯ ) จะไม่มีการเข้าถึงแคชโดยตรงแม้แต่แคช L2

แคช RDNA2 ไดอะแกรม

ด้วยการเพิ่ม Infinity Cache สิ่งต่าง ๆ ก็เปลี่ยนไป "เล็กน้อย" เนื่องจากตอนนี้ตัวเร่งความเร็วสามารถเข้าถึงหน่วยความจำนี้ได้

สิ่งนี้สำคัญมากโดยเฉพาะอย่างยิ่งสำหรับ Display Core Next ซึ่งมีหน้าที่ในการอ่านบัฟเฟอร์ภาพสุดท้ายและส่งไปยัง Display Port หรืออินเทอร์เฟซ HDMI ที่สอดคล้องกันเพื่อให้ภาพแสดงบนหน้าจอสิ่งนี้มีความสำคัญเพื่อลดการเข้าถึง ไปยัง VRAM โดยหน่วยเหล่านี้

การจดจำระบบแคช RDNA

AMD 6900 ทามาโน

ใน RDNA แคชจะเชื่อมต่อกันด้วยวิธีต่อไปนี้:

แคช RDNA

แคช L2 เชื่อมต่อกับภายนอกถึง 16 ช่อง 32 ไบต์ / รอบแต่ละช่องหากเราดูแผนภาพ Navi 10 แล้วคุณจะเห็นว่า GPU นี้มีเกี่ยวกับอย่างไร พาร์ติชัน L16 Cache 2 พาร์ติชันและบัส GDDR256 6 บิต ที่พวกเขาเชื่อมต่อ

โปรดจำไว้ว่า GDDR6 ใช้ 2 ช่องสัญญาณต่อชิป ที่ทำงานแบบขนานแต่ละ 16 บิต

คานาเลส GDDR6

กล่าวอีกนัยหนึ่งจำนวนพาร์ติชันแคช L2 ในสถาปัตยกรรม RDNA จะเท่ากับจำนวนแชนเนล GDDR16 6 บิตที่เชื่อมต่อกับโปรเซสเซอร์กราฟิก ใน RDNA และ RDNA 2 แต่ละพาร์ติชันมีขนาด 256 KB นี่คือเหตุผลว่าทำไม Xbox Series X ที่มีบัส 320 บิตและช่อง GDDR20 6 ช่องจึงมีแคช L5 ประมาณ 2 MB

โครงสร้าง Xbox Series X

ระดับใหม่ของแคช: Infinity Cache

พายเดอ Página Infnity Caché

เนื่องจากเป็นระดับแคชเพิ่มเติม Infinity Cache จึงต้องเชื่อมต่อกับแคช L2 โดยตรงซึ่งเป็นระดับก่อนหน้าในลำดับชั้นของแคชสิ่งนี้ได้รับการยืนยันจาก AMD ในส่วนท้าย:

การวัดที่คำนวณโดยวิศวกรของ AMD บนการ์ด Radeon RX 6000 series ที่มี 128MB AMD Infinity Cache และ 256-bit GDDR6 การวัดอัตราความสำเร็จของ AMD Infinity Cache โดยเฉลี่ยในเกม 4k ที่ 58% ในเกมหลัก ๆ คูณด้วยแบนด์วิดท์สูงสุดตามทฤษฎีของ 16 64B AMD Infinity Fabric ช่อง การเชื่อมต่อแคชกับเอ็นจิ้นกราฟิกที่ความถี่บูสต์สูงสุด 1.94 GHz

GPU ที่ใช้ใน RX 6800, RX 6800 XT และ RX 6900 คือ Navi 21 ซึ่งมีบัส GDDR256 6 บิตซึ่งมี 16 ช่องสัญญาณและด้วยเหตุนี้พาร์ติชัน 16 ของCaché L2 จึงเชื่อมต่อกับพาร์ติชันของ Infinity Cache

สำหรับปัญหาของ "อัตราการเข้าชม" 58% นั้นมีความซับซ้อนมากขึ้นและเราจะพยายามอธิบายต่อไปนี้

Tile Caching บน NVIDIA GPUs

GPU ของ NVIDIA

ก่อนที่จะดำเนินการต่อด้วย Infinity Cache เราต้องเข้าใจเหตุผลของการมีอยู่และด้วยเหตุนี้เราต้องดูว่า GPU มีการพัฒนาอย่างไรในช่วงไม่กี่ปีที่ผ่านมา

เริ่มต้นด้วย NVIDIA Maxwell, GeForce 900 Series, NVIDIA ได้ทำการเปลี่ยนแปลงครั้งใหญ่ใน GPU ของพวกเขาที่พวกเขาเรียกว่า Tile Caching ซึ่งการเปลี่ยนแปลงเกี่ยวข้องกับการเชื่อมต่อ ROPS และหน่วยแรสเตอร์กับแคช L2
การแคชแบบเรียงต่อกัน NVIDIA
ด้วยการเปลี่ยนแปลงนี้ ROPS จึงหยุดเขียนไปยัง VRAM โดยตรง ROPS เป็นเรื่องปกติใน GPU ทั้งหมดและมีหน้าที่สร้างบัฟเฟอร์ภาพในหน่วยความจำ

ด้วยการเปลี่ยนแปลงนี้ NVIDIA สามารถลดผลกระทบด้านพลังงานที่มีต่อบัสหน่วยความจำได้โดยการลดจำนวนการถ่ายโอนไปยังและจาก VRAM และด้วยเหตุนี้ NVIDIA จึงสามารถใช้พลังงานอย่างมีประสิทธิภาพจาก AMD ด้วยสถาปัตยกรรม Maxwell และ Pascal

DSBR, Tile Caching บน AMD GPUs

ในทางกลับกัน AMD ในทุกรุ่นของสถาปัตยกรรม GCN ก่อน Vega จะเชื่อมต่อ Render Backends (RB) เข้ากับคอนโทรลเลอร์หน่วยความจำโดยตรง

GCN PreVega L2

แต่เริ่มต้นด้วย AMD Vega เขาได้ทำการเปลี่ยนแปลงสองอย่างในสถาปัตยกรรมเพื่อเพิ่ม Tile Caching ให้กับ GPU ของเขาสิ่งแรกคือการต่ออายุหน่วยแรสเตอร์ซึ่งเขาเปลี่ยนชื่อเป็น DSBR, Draw Stream Binning Rasterizer

เอเอ็มดี DSBR

การเปลี่ยนแปลงที่สองคือพวกเขาเชื่อมต่อหน่วยแรสเตอร์และ ROPS กับแคช L2 ซึ่งเป็นการเปลี่ยนแปลงที่ยังคงมีอยู่ใน RDNA และ RDNA 2

RDNA L2 แคช

ยูทิลิตี้ของ DSBR หรือ Tile Caching

Tile Caching หรือ DSBR มีประสิทธิภาพเนื่องจากสั่งให้รูปทรงเรขาคณิตของฉากตามตำแหน่งบนหน้าจอก่อนที่จะแรสเตอร์นี่เป็นการเปลี่ยนแปลงที่สำคัญเนื่องจาก GPU ก่อนที่จะใช้เทคนิคนี้ สั่งชิ้นส่วนที่มีพื้นผิวแล้วก่อนที่จะส่งไปยังบัฟเฟอร์รูปภาพ

เรียงลำดับล่าสุด

ใน Tile Caching / DSBR สิ่งที่ทำคือการ จัดลำดับรูปหลายเหลี่ยมของฉากก่อนที่จะถูกแปลงเป็นชิ้นส่วน โดยหน่วยแรสเตอร์

จัดเรียงกลาง

ใน Tile Caching รูปหลายเหลี่ยมจะเรียงลำดับตามตำแหน่งหน้าจอในไทล์โดยแต่ละไทล์จะเป็นส่วนของพิกเซล n * n

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

ท่อสามเหลี่ยม

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

Tile Caching หรือ DSBR ไม่เทียบเท่ากับ Tile Rendering

การแสดงกระเบื้อง

แม้ว่าชื่ออาจทำให้เข้าใจผิด แต่ Tile Caching ไม่เทียบเท่ากับ Tile Rendering ด้วยเหตุผลต่อไปนี้:

  • ตัวแสดงภาพไทล์จะจัดเก็บเรขาคณิตของฉากไว้ในหน่วยความจำจัดลำดับและสร้างรายการหน้าจอสำหรับแต่ละไทล์ กระบวนการนี้ไม่เกิดขึ้นในกรณีของ Tile Caching หรือ DSBR
  • ในการเรนเดอร์ไทล์ ROPS จะเชื่อมต่อกับความทรงจำของแพดแพดนอกลำดับชั้นแคชและจะไม่ทำให้เนื้อหาของพวกเขาว่างเปล่าลงใน VRAM จนกว่าไทล์นั้นจะเสร็จสมบูรณ์ 100% ดังนั้นอัตราการเข้าชมจึงเป็น 100%
  • ใน Tile Caching / DSBR เนื่องจาก ROPS / RB เชื่อมต่อกับ L2 Cache เมื่อใดก็ตามที่สายแคชจาก L2 ถึง RAM อาจถูกทิ้งดังนั้นจึงไม่มีการรับประกันว่าข้อมูลทั้งหมดจะอยู่ในแคช L100 2%

เนื่องจากมีความเป็นไปได้สูงที่บรรทัดแคชจะสิ้นสุดใน VRAM สิ่งที่ AMD ทำกับ Infinity Cache คือการเพิ่มชั้นแคชเพิ่มเติมที่รวบรวมข้อมูลที่ถูกทิ้งจากแคช L2 ของ GPU

Infinity Cache คือ Victim Cache

พื้นที่ เหยื่อแคช ความคิดเป็นมรดกของซีพียูภายใต้สถาปัตยกรรม Zen ที่ได้รับการปรับให้เข้ากับ RDNA 2

เหยื่อแคช Zen

ใน Zen cores L3 Cache คือสิ่งที่เราเรียกว่า Victim Cachéซึ่งเป็นหน้าที่ของ การรวบรวมบรรทัดแคชทิ้ง จาก L2 แทนที่จะเป็นส่วนหนึ่งของปกติ แคช ลำดับชั้น กล่าวคือใน Zen จะรวบรวมข้อมูลที่มาจาก แรม ไม่เป็นไปตามเส้นทาง RAM → L3 → L2 → L1 หรือในทางกลับกัน แต่จะเดินตามเส้นทาง RAM → L2 → L1 แทนเนื่องจากแคช L3 ทำหน้าที่เป็น Victim Caché

ในกรณีของ Infinity Cache แนวคิดก็คือ ช่วยเหลือสาย L2 Cache ของ GPU โดยไม่ต้องเข้าถึง VRAM ซึ่งช่วยให้พลังงานที่ใช้ต่อคำสั่งต่ำลงมากจึงสามารถทำความเร็วได้สูงขึ้น นาฬิกา.

Infinity Cache บริโภค Cons

อย่างไรก็ตามแม้ว่าความจุ 128 MB อาจดูเหมือนสูงมาก แต่ก็ดูเหมือนจะไม่เพียงพอที่จะหลีกเลี่ยงไม่ให้เส้นที่ถูกทิ้งทั้งหมดลงเอยด้วย VRAM เนื่องจากในกรณีที่ดีที่สุด ช่วยได้เพียง 58% . ซึ่งหมายความว่าในการทำซ้ำสถาปัตยกรรม RDNA ในอนาคตมีความเป็นไปได้สูงมาก AMD จะเพิ่มความจุของ Infinity Cache นี้ .