GPU-rendering¶
GPU rendering makes it possible to use your graphics card for rendering, instead of the CPU. This can speed up rendering because modern GPUs are designed to do quite a lot of number crunching. On the other hand, they also have some limitations in rendering complex scenes, due to more limited memory, and issues with interactivity when using the same graphics card for display and rendering.
To enable GPU rendering:
Select either CUDA, OptiX, HIP, oneAPI, or Metal in the Cycles Render Devices user preference.
Enable the available devices for the chosen backend.
Configure each scene to use the GPU Compute Device.
Renderingsteknik¶
Blender stöder olika tekniker för att rendera på GPU:n beroende på GPU-tillverkare och operativsystem.
CUDA – NVIDIA¶
CUDA is supported on Windows and Linux and requires a NVIDIA graphics cards with compute capability 5.0 and higher. To make sure your GPU is supported, see the list of NVIDIA graphics cards with the compute capabilities and supported graphics cards.
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:
Minsta drivrutinsversioner:
Windows: Radeon Software 24.9.1 or Radeon PRO Software 24.Q4
Linux: Radeon Software 23.40 or ROCm HIP Runtime 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 accelerated denoising is available on discrete Radeon RX 6000 and newer.
oneAPI – Intel¶
oneAPI is a computation library that is supported on Windows and Linux and requires an Intel® Arc™ graphics card with the Xe HPG architecture. Hardware acceleration for ray-tracing and denoising is supported.
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:
intel-level-zero-gpupackage 1.3.27642, typically available through theintel-compute-runtimepackage XX.XX.34666.3
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 for GPU acceleration is supported on Apple computers with Apple Silicon. macOS 13.0 or newer is required to support all features.
GPU accelerated ray-tracing and denoising is available on 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.
Anteckning
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.