Detta förbättrar din processor prestanda för ditt grafikkort

Komponenterna i en PC är mer sammankopplade med varandra varje dag, vilket utan tvekan är en fördel, eftersom de inte är isolerade och latensen går förlorad. Men när vi pratar om CPU och GPU, ett tvivel uppstår alltid när man tittar på spelprestanda. Kan a Processorn använd GPU VRAM för egen vinning? Får du prestanda i ett sådant fall eller förlorar du den? Låt oss se det.

Tja, det är verkligen ett mycket omdiskuterat ämne, eftersom det finns många falska myter om vad en processor kan eller inte kan göra och hur den kan göra det med VRAM på grafikkortet. Vi ska försöka rensa myterna en gång för alla så att vi förstår gränserna för båda.

förbättrar din processor prestanda för ditt grafikkort

Processorn och VRAM, kärlek/hat förhållande?

Det första vi måste vara tydliga med är termer som tillgång och utbildning. CPU:n har mycket begränsad tillgång till VRAM, helt enkelt för att tilldela massor av minne och platser som sådan, men inom detta koncept för åtkomst är det nödvändigt att kvalificera sig lite.

CPU och dess PCIe-kontroller samt VRAM är inte direkt anslutna som är fallet med GPU:n. Du behöver komma åt PCIe-bussen via GPU-drivrutinen, BIOS/Firmware, som i sin tur hanterar grafik API (DX12 i det här fallet) och därifrån får du begränsad tillgång till VRAM, som vi säger, genom blockallokering. Problemet kommer genom tilldelningen av buffertar för hörn, eller VB, eftersom dessa måste bestämmas av det grafiska API:et var informationen ska gå och hur den nås.

Hämtar-VB-från-DX12

För att göra detta används vertex- eller VAF-attribut, som som en allmän regel inte är väl implementerade i de flesta spel, eftersom CPU:n arbetar med adresserna och informationen för GPU:n, passerar genom cachen och därifrån går de till Systemkrav RAM , som skickar indikationerna för laddning av DRAWs på PCIe-bussen från DDR och nyfiket därifrån går de till GPU-cachen .

Detta sparar ett tidigare steg, men som vi kan se hoppade vi över VRAM helt, så programmerarna och Microsoft, tillsammans med NVIDIA och AMD såg att det fanns ett mycket mer optimalt sätt att koppla ihop VRAM och CPU.

PCI-SIG ReBar och VRAM

Som vi säkert vet gjordes åtkomst till VRAM tills implementeringen av de två företagen i block av 256 MB segmenterad , men dessa fick gå igenom strukturen som vi har pratat om tidigare. Det roliga är att det inte var nödvändigt eftersom PCI-SIG redan hade Rebar i dess led sedan dess PCIe 2.0 själv, så de var båda efter med denna begränsning.

Förladdning av VB-till-VRAM Ändra storlek på Bar och Smart Access-minne tog bort problemet genom att lägga till ett jobb för att kopiera informationen som är tilldelad till en underkärna , det vill säga till en processortråd (som en allmän regel är den parallelliserbar, men den har en inverkan på dess prestanda).

Därför gick vägen nu två vägar. I den ena skriver CPU:n informationen i RAM-minnet efter att ha bearbetats av cachen, medan det å andra sidan finns en kopia som skickas via PCIe till VRAM och sedan därifrån går den till cachen för att hamna i VAF som sådan.

Vad får vi med det? Att CPU:n direkt skriver en kopia av informationen i VRAM och att den bearbetas av grafikkortets cache, så att när det är nödvändigt och bedöms lämpligt via API:et informationen nås från RAM-minnet , som redan har det tilldelat före samtalet, laddas texturerna ner till VRAM (RAMDisk) och därifrån överförs de till GPU:n efter det tidigare arbetet med dess cache, vilket minskar den totala åtkomsttiden och ökar prestandan som en allmän regel.

Förladdning-VRAM-CPUpng

I slutändan kan processorn komma åt VRAM, ja, men bara för att skicka en kopia av arbetsinformationen så att detta sparar rendering och bussavlastningstid, samt meningslöst fram och tillbaka mellan CPU och GPU, för Naturligtvis allt tack vare GART och DMA-enheter.

Vad som också måste klargöras är att CPU:n inte "ser" VRAM som en minnesenhet som sådan. Det du ser är en enhet (GPU) ansluten till PCIe-bussen och tilldelade en typ av minne, så enkelt är det. Det är API:et och drivrutinen som ansvarar (efter att den fasta programvaran har laddats) för att arbeta i en eller annan riktning, för som vi säger måste utvecklaren också ha en motor som kan utföra dessa laddningar och kopior. På grund av detta kommer CPU och VRAM att fungera på ett eller annat sätt, med en eller annan metod.