GPU-rendering¶
GPU-rendering gör det möjligt att använda grafikkortet för rendering i stället för CPU:n. Detta kan påskynda renderingen eftersom moderna GPU:er är utformade för att göra en hel del sifferknackning. Å andra sidan har de också vissa begränsningar när det gäller rendering av komplexa scener, på grund av mer begränsat minne och problem med interaktivitet när samma grafikkort används för visning och rendering.
För att aktivera GPU-rendering går du in i
och väljer antingen CUDA, OptiX, HIP, oneAPI eller Metal. Därefter måste du konfigurera varje scen så att den använder GPU-rendering i .Renderingsteknik¶
Blender stöder olika tekniker för att rendera på GPU:n beroende på GPU-tillverkare och operativsystem.
CUDA – NVIDIA¶
CUDA stöds på Windows och Linux och kräver ett NVIDIA-grafikkort med beräkningskapacitet 3.0 eller högre. För att säkerställa att din GPU stöds, se lista över NVIDIA-grafikkort med beräkningskapacitet och grafikkort som stöds.
OptiX – NVIDIA¶
OptiX stöds på Windows och Linux och kräver ett NVIDIA-grafikkort med compute capability 5.0 eller högre och en drivrutinsversion på minst 495.89. För att säkerställa att din GPU stöds, se lista över NVIDIA-grafikkort.
OptiX drar nytta av hårdvaruaccelerationen för strålspårning i RTX-grafikkort, vilket ger förbättrad prestanda.
GPU-acceleration för OpenImageDenoise är tillgänglig för beräkningskapacitet 7.0 och högre, vilket inkluderar alla NVIDIA RTX-kort.
HIP – AMD¶
HIP stöds i Windows och Linux och kräver ett AMD-grafikkort med RDNA1-arkitektur eller nyare. Både diskreta GPU:er och APU:er stöds.
GPU:er som stöds inkluderar:
Radeon RX 5000-serien
Radeon RX 6000-serien
Radeon RX 7000-serien
Radeon RX 9000-serien
Radeon Pro W6000-serien
Radeon Pro W7000-serien
Minsta drivrutinsversioner:
För Windows: Radeon Software 24.6.1 eller Radeon PRO Software 24.Q2
Linux: Radeon Software 23.40 eller ROCm 6.0
Mer information om AMD:s grafikkort och deras arkitekturer finns på AMD:s webbplats.
Stöd för ray-tracing i hårdvara finns tillgängligt med de senaste drivrutinerna. Detta kan aktiveras i inställningarna och stöds på Radeon RX 6000 och nyare.
GPU-accelererad denoising är tillgänglig på diskreta Radeon RX 6000- och Radeon RX 7000-GPU:er.
HIP har inte stöd för kaustiska skuggor.
oneAPI – Intel¶
oneAPI är ett beräkningsbibliotek som stöds av Windows och Linux och kräver ett Intel® Arc™-grafikkort med Xe HPG-arkitektur. Hårdvaruacceleration för strålspårning och denoising stöds.
GPU:er som stöds inkluderar:
Intel® Arc™ A-serien
Intel® Arc™ B-serie
Minsta drivrutinsversioner:
Windows: Intel Graphics drivrutin XX.X.101.5518
Linux: Paketet intel-level-zero-gpu 1.3.27642, vanligtvis tillgängligt via paketet intel-compute-runtime XX.XX.27642.38
Se Intels webbplats <https://www.intel.com/content/www/us/en/products/details/discrete-gpus.html>`__ för mer information om Intels grafikkort och deras arkitektur.
GPU-accelererad denoising är tillgänglig på alla GPU:er som stöds.
Metall – Apple (macOS)¶
Metal stöds på Apple-datorer med Apple Silicon. macOS 13.0 eller nyare krävs för att stödja alla funktioner.
GPU-accelererad denoising är tillgänglig på Apple Silicon.
Begränsningar¶
Path Guiding stöds inte på någon GPU.
Öppet skuggningsspråk stöds endast för OptiX, med vissa begränsningar som anges i dokumentationen.
Frågor och svar¶
Varför reagerar Blender inte under rendering?¶
På äldre GPU-generationer kan grafikkorten bara antingen rendera eller rita användargränssnittet. Detta kan göra att Blender inte svarar när den renderar. Tunga scener kan också göra att Blender inte svarar på nyare GPU:er, när de använder mycket minne eller kör dyra shaders, men detta är i allmänhet ett mindre problem.
Den enda kompletta lösningen på detta är att använda en dedikerad GPU för rendering och en annan för visning.
Varför kan en scen som renderas på CPU inte renderas på GPU?¶
Det kan finnas flera orsaker, men den vanligaste är att det inte finns tillräckligt med minne på ditt grafikkort. Vanligtvis kan GPU:n bara använda den mängd minne som finns på GPU:n (se Would multiple GPUs increase available memory? för mer information). Detta är vanligtvis mycket mindre än den mängd systemminne som processorn kan komma åt. Med CUDA-, OptiX-, HIP- och Metal-enheter kommer Blender automatiskt att försöka använda systemminnet om GPU-minnet är fullt. Detta påverkar prestandan, men resulterar vanligtvis ändå i en snabbare rendering än om CPU-rendering används.
Kan flera GPU:er användas för rendering?¶
Ja, gå till
, och konfigurera den som du vill.Skulle flera GPU:er öka det tillgängliga minnet?¶
Vanligtvis inte, varje GPU kan bara komma åt sitt eget minne.
Undantaget är NVIDIA GPU:er som är anslutna med NVLink, där flera GPU:er kan dela minne till en liten prestandakostnad. Detta kan aktiveras med Distributed Memory Across Devices i inställningarna.
Vad renderar snabbast?¶
Detta varierar beroende på vilken hårdvara som används. Olika tekniker har också olika beräkningstider beroende på vilken scen som testas. För den mest uppdaterade informationen om prestanda för olika enheter, bläddra i Blender Open Data-resursen.
Felmeddelanden¶
Om det uppstår problem ska du installera de officiella grafikdrivrutinerna från GPU-tillverkarens webbplats eller via pakethanteraren i Linux. De grafikdrivrutiner som tillhandahålls av datortillverkaren kan ibland vara föråldrade eller ofullständiga.
Felmeddelande: Slut på minne¶
Detta innebär vanligtvis att det inte finns tillräckligt med minne för att lagra scenen för användning av GPU:n.
Observera
Ett sätt att minska minnesanvändningen är att använda texturer med lägre upplösning. Exempelvis tar bildtexturer med 8k, 4k, 2k och 1k upp 256 MB, 64 MB, 16 MB respektive 4 MB minne.
NVIDIA OpenGL-drivrutinen förlorade kontakten med bildskärmsdrivrutinen¶
Om en GPU används för både visning och rendering har Windows en gräns för den tid som GPU:n kan utföra renderingsberäkningar. Om du har en särskilt tung scen kan Cycles ta upp för mycket GPU-tid. Att minska Tile Size i prestandapanelen kan lindra problemet, men den enda riktiga lösningen är att använda separata grafikkort för visning och rendering.
En annan lösning kan vara att öka timeouten, även om detta gör att användargränssnittet blir mindre responsivt vid rendering av tunga scener. Lär dig mer här.
GNU-version som inte stöds¶
På Linux kan du få det här felet beroende på din GCC-version. Se NVIDIA CUDA Installationsguide för Linux för en lista över GCC-versioner som stöds. Det finns två möjliga lösningar på det här felet:
- Använd en alternativ kompilator
Om du har en äldre GCC installerad som är kompatibel med den installerade versionen av CUDA toolkit, kan du använda den istället för standardkompilatorn. Detta görs genom att ställa in miljövariabeln CYCLES_CUDA_EXTRA_CFLAGS när du startar Blender.
Starta Blender från kommandoraden på följande sätt:
CYCLES_CUDA_EXTRA_CFLAGS="-ccbin gcc-x.x" blender
(Ersätt med namnet på eller sökvägen till den kompatibla GCC-kompilatorn).
- Ta bort kompatibilitetskontroller
Om ovanstående inte lyckas, ta bort följande rad i /usr/local/cuda/include/host_config.h:
#error -- unsupported GNU version! gcc x.x and up are not supported!
Detta kommer att göra det möjligt för Cycles att framgångsrikt kompilera CUDA-renderingskärnan första gången den försöker använda din GPU för rendering. När kärnan har byggts framgångsrikt kan du starta Blender som du normalt skulle göra och CUDA-kärnan kommer fortfarande att användas för rendering.
CUDA-fel: Kompilering av kärnan misslyckades¶
Det här felet kan uppstå om du har ett nytt NVIDIA-grafikkort som ännu inte stöds av den Blender-version och CUDA toolkit som du har installerat. I detta fall kan Blender försöka att dynamiskt bygga en kärna för ditt grafikkort och misslyckas.
I det här fallet kan du göra det:
Kontrollera om den senaste Blender-versionen (officiell eller experimental builds) stöder ditt grafikkort.
Om du bygger Blender själv, försök att ladda ner och installera en nyare CUDA-utvecklarverktygssats.
Normalt behöver användare inte installera CUDA toolkit eftersom Blender levereras med förkompilerade kärnor.