RENDER ZONE

http://www.ontmoeting.nl/renderzone/

homepage

GPU de toekomst?


GPU is al jaren een hype in computer hard- en software. U maakt de keuze voor een specifiek render programma dat z'n berekeningen op een grafische kaart (GPU) uitvoert. U investeert in een geschikte GPU in de computer (of bij de aanschaf of bij Windows in een geschikt PCI slot).

Daarbij heeft u de mogelijkheid om met zo'n specifiek GPU-render programma te werken. En uiteraard ook nog met CPU render programma's, want de CPU zit er nu eenmaal standaard in.

Het gebruik van GPU's is een hype die al heel lang duurt. We zien dat aan het groeiende aanbod van GPU-render programma's dat op de markt is en er nog aankomt.

Maxwell motor rendering.

Een belangrijke meetlat daarvoor is de standaard onder de render programma's Maxwell Render. Maxwell blijkt na zorgvuldig onderzoek ook te zijn overgegaan naar het ontwikkelen van een compleet nieuw render programma dat nu voornamelijk op de GPU zal gaan draaien. De eerste tijd zullen we daar, afgezien van een peek-preview niet veel over vernemen. Het ontwikkelen van een GPU render programma vraagt nu eenmaal veel meer tijd dan dat bij een vergelijkbare CPU het geval is. Daar komt bij dat het GPU programmeren complexer is. Verder is Maxwell Render in de CPU uitvoering voorzien van duizenden opties, hetgeen bij een GPU programma zeker niet allemaal zijn uit te voeren.

We zien dan ook in de toekomst dat ze met een soort gestripte Maxwell LT render versie de markt zullen betreden, waarbij een deel van de functies inderdaad door snelle grafische kaart(en) zal worden berekend. Met de nadruk op het versnellen van de interactie en wellicht na enige jaren ook de productie van de rendering zelf. Dat is nog ongewis, mede gezien de snelle voortgang in de ontwikkeling en productie van de grafische kaarten met steeds meer snelheid en geheugen voor lagere prijzen.

De ontwikkeling van de CPU met de nieuwe (2015) Intel processoren i7-5960X, 5930K en 5820K geven de gebruiker minimaal 6 cores met 12 threads en bij het topmodel zelfs 8 cores met 16 threads, tegen een stevige $ 999,- prijs.

Ook het slotgedeelte bij elk render programma, de uiteindelijke rendering zal ongetwijfeld een tweede hobbel vormen bij de ontwikkeling van Maxwell GPU programma. Op dit moment (zomer 2015) is nog niet bekend of Maxwell zich voornamelijk richt op NVIDIA CUDA cores, of dat later ev. ook OpenCL wordt meegenomen, mogelijk als combinatie voor zowel NVIDIA als AMD grafische kaart gebruikers.

Rendering in Maxwell CPU. Klik in de afbeelding voor een vergroting.

Maxwell heeft aangekondigd om een CUDA en/of OpenCL uitvoering te ontwikkelen.

 

Het is te prijzen dat Maxwell het aandurft om vroegtijdig naar buiten te komen met dit nieuws, het merendeel van de renderfabrikanten levert geen enkele SIGGRAPH bijdrage en wenst al zijn ontwikkelingen zelfs niet voor de direct betrokkenen op tafel te leggen.

Uit eigen ervaring met de ontwikkeling van Octane in Nieuw Zeeland hebben we gezien dat de ontwikkeling van zelfs maar een beta proto type GPU render programma veel, heel veel tijd vraagt. Er gaan jaren overheen, waarbij wel als voordeel kan worden aangemerkt dat er nog steeds modernere tools bij NVIDIA uitkomen, waardoor het ontwikkel proces wordt versneld. En Octane levert daar zowel in openheid als in mogelijkheden van dit moment een goede bijdrage aan. Maxwell Render zal een veel meer uitgebreid render programma voor ogen hebben, waarbij ze als antwoord geven:

"Yes, this is something we will try to accomplish."

 

Maxwell rendering.

De demonstratie van Maxwell GPU render software tijdens de Siggraph 2014 werd in ieder geval gedaan met CUDA 6.0 en met een NVIDIA Quadro K5000, maar ze vertelden er bij, dat ook de wat mindere GeForce kaarten prima voor dit doel kunnen worden ingezet. Inmiddels is er CUDA 7.0 met het voordeel dat de programmeurs minder code behoeven te schrijven en daardoor snellere programma's kunnen ontwikkelen.

De K5000 komt momenteel op rond de 2.000 Euro. Met 1536 cores, 2,1 Teraflops Single precision compute performance, 4 GB GDDR5 geheugen en een geheugen bandbreedte van maar liefst 173 GB/s. PCI E 2.0. Shader Model 5 wordt ondersteund evenals OpenCL 1.1 en OpenGL 4.3. Microsoft DirectX met 11, wellicht binnenkort met de 12 uitvoeing. Helaas geen gegeven gevonden voor Double precision compute performance, SLI ondersteuning voor meerdere kaarten. En dat allemaal met een klein vermogen van 122 W.

http://www.nvidia.com/object/quadro-k5000.html

Leggen we de gegevens van de veel aantrekkelijker geprijsde NIVDIA GeForce kaart er naast, dan wordt duidelijk dat de QUADRO serie perfect is, maar dat met GeForce serie voor een fractie van de prijs ook nog aardig mee kan worden gekomen, meestal met zelfs betere specs. van CUDA, geheugen en bandbreedte. Kijk maar naar de serie:

  • GeForce GTX TITAN Z
  • GeForce GTX TITAN X
  • GeForce GTX 980 Ti
  • GeForce GTX 980
  • GeForce GTX 970
  • GeForce GTX 960
  • GeForce GTX 750 Ti
  • GeForce GTX 750

De 980 Ti biedt 2816 cores, 7 GB/s geheugen klok GDDR5 en een geheugen bandbreedte van 336,5 GB/s. 4-way SLI mogelijk. DirectX 12 met feature level 1.2, Windows 10, 4 schermen, PCI Express 3.0 en met 250 W vermogen.

Met DirectX 12 en Windows 10 ondersteuning bij veel typen. Prijzen tussen de 670 en 750 Euro in.

Maxwell's demonstratie van GPU-render programma.

 

Kijk tussen de schuifdeuren mee naar het prototype van Maxwell Render op de GPU

Aug 28, 2014.

https://www.youtube.com/watch?v=6VHzONYfgUg

Maxwell Render Prototype Running on GPU


Waar ligt de kracht van de GPU?

Het parallel uitvoeren van redelijk simpele algoritmes met een hoge klokfrequentie. Daarbij ontlasten ze de CPU op een geweldige manier. Het is echter geen vervanging van een CPU. Een CPU is een universeler stuk hardware dat ook complete algoritmes in een redelijk snelle tijd kan verwerken. Waarbij de laatste jaren de nadruk door de processor fabrikant wordt gelegd op meer cores en meer threads (virtuele cores). Daarbij wordt er voor gezorgd dat ook dit universele stuk gereedschap een aantal taken parallel kan uitvoeren.

Maar bij alle tegelijk uitgevoerde berekeningen komt het op de software aan. Is het mogelijk om berekeningen uit te voeren en deze dan na verwerking in afzonderlijke onderdelen, weer aan elkaar vast te knopen?

Bij een 3D tekenprogramma is dat maar in enkele gevallen mogelijk. De meeste berekeningen komen voort bij het maken van de tekening en het veranderen van het beeld (aanzicht) of te wel een soort rendering van het 3D model.

 

Wat is de zwakte van de GPU?

De instructie set is beperkt, waardoor sommige berekeningen meerdere klokpulsen nodig heeft. Verder is het snelle VRAM geheugen altijd een bron van beperking. Alhoewel in het high-end gebeuren er al 8 - 12 GB wordt aangeboden, tegen een professionele prijs.

Het out-of-core renderen brengt daar wel verlichting in, maar dan wordt toch in de render bewerking een compromis gesloten, of wel de veel tragere RAM zal toch ook hier moeten worden ingezet als ondersteuning van VRAM. Of er wordt gewerkt met een combinatie van optimalisering en verzobering (compressie) van de data.

Daarbij het voordeel van het veel snellere VRAM te niet doend. Ook de overname van data van het ene proces naar het andere kan voor extra tijdvertraging zorgen (control-flow divergence and poor scheduling).

Met behulp van allerlei API's wordt veel werk uit de handen van de programmeur genomen om de complexe manier van aanbieden aan de beschikbare hardware (om het uit te werken) uit handen te nemen.

 

Veel mensen denken dat een GPU render programma per defintie in alle opzichten altijd sneller zijn dan een CPU programma. Maar dat is zeker niet zo. Eenvoudige instructies die parallel KUNNEN worden uitgevoerd, daar ligt de kracht van de GPU. Voor een aantal soorten 3D renderingen kan de GPU het inderdaad op z'n sloffen af, maar voor andere 3D scenes is dat veel minder duidelijk. Zo is het bijzonder ingrijpend om een scene met enkele polygonen met glas, spiegels en kleine openingen met een GPU render programma vlot er door te krijgen. Een CPU georiënteerd render programma heeft daar minder moeite (en tijd) mee.

Titan X

GTC15 GPU roadmap met vertikaal de bandbreedte GB/s.

 

GeForce Titan X het paradepaardje van dit moment voor high-end gaming en rendering met maar liefst 3072 CUDA cores en 12 GB GGDR5 geheugen.

Jen-Hsun Huang, mede oprichter van NVIDIA in april 1993.
Het bedrijf bezit meer dan 7.000 patenten betreffende snelle data verwerking.

CEO van NVIDIA

De directeur die de kennis in huis heeft en het op een perfecte manier kan overbrengen. Bij NVIDIA zien ze ook dat OpenCL nog wel even zal blijven en tevens het gedoe van Intel grafische oplossingen in de CPU. De markt van renderen met de GPU is wereldwijd niet groot, maar wel groeiende. NIVIDA zoekt dan ook telkens nieuwe toepassingen voor haar GPU's met forse rekenkracht. Zowel in de financiële wereld, als bij de automotive markt met als ultime doel om een automatisch bestuurbare auto te ontwikkelen, waarbij al het rekenwerk door een of meerdere GPU processoren zal worden uitgevoerd.

Steeds meer CUDA software wordt door kleinere bedrijven uitgebracht of door hobbyisten. Dat kan indien er voldoende kennis is opgedaan en dat is mogelijk door de prima verzorging van de documentatie.

 

CUDA intro

What is CUDA?

Compute Unified Device Architecture

http://www.nvidia.com/object/cuda_home_new.html

DevBox computer met monitor en vier Titan X kaarten op het moederbord.

DevBox digits side

 

DIGITS DevBox includes:

* Four TITAN X GPUs with 12GB of memory per GPU
* 64GB DDR4
* Asus X99-E WS workstation class motherboard with 4-way PCI-E Gen3 x16 support
* Core i7-5930K 6 Core 3.5GHz desktop processor
* Three 3TB SATA 6Gb 3.5" Enterprise Hard Drive in RAID5
* 512GB PCI-E M.2 SSD cache for RAID
* 250GB SATA 6Gb Internal SSD
* 1600W Power Supply Unit from premium suppliers including EVGA
* Ubuntu 14.04
* NVIDIA-qualified driver
* NVIDIA® CUDA® Toolkit 7.0
* NVIDIA® DIGITS™ SW
* Caffe, Theano, Torch, BIDMach


Conclusie

Indien we de gedachte loslaten dat de GPU de oplossing voor alle (tijd-) problemen bij render programma's is en meer gaan denken in hardware- en software (instel / interface ) tijd (de totale tijd voor het proces), dan komen we al heel anders uit. Indien we dan ook nog moderne 6-cores processoren toepassen (willen investeren in duurdere hardware) met een behoorlijke klokfrequentie, dan wordt de vergelijking nog onoverzichtelijker.

Bij professionele render bedrijven (en overige render software gebruikers) dient een goede afweging te worden gemaakt tussen tijd en investering in hardware. Indien u opgewonden raakt van 30x of snellere rendertijd, dan lijkt de keuze eenvoudig, maar dat is het niet. De GPU zal zeker niet de heilige graal worden voor allerlei toepassingen, de ontwikkelingen daarin zijn echter wel veel belovend.

De aanschaf prijs van Octane render software (of een ander render merk) is redelijk te noemen, met een redelijk werkstation en dito NVIDA CUDA kaart is het al mogelijk om daar kennis mee te maken. Daarnaast blijven conventionele CPU render programma's nog altijd hun rol spelen, waarbij het speelveld wel met zeer veel merken moet worden gedeeld, waardoor de spoeling om te innoveren wel aanzienlijk kleiner wordt. Opvallend is dat veel render merken al jaren lang in Fora vertellen dat 'ze wellicht ook bezig zijn met een GPU-versie', maar het fijne wordt nooit naar buiten gebracht. En een roadmap of een tip van de sluier wordt niet gegeven. In het algemeen staat 'openheid betrachten' niet in hun woordenboek.

Bijzonder is dan ook de aankondiging en demonstratie van Maxwell Render bij de Siggraph 2014 van hun start van de ontwikkeling van een compleet nieuw render programma, gebaseerd op de GPU. Ook Octane durft het aan om vroegtijdig tussentijdse nieuwe ontwikkelingen te ventileren, waarbij duidelijk wordt gesteld dat het onderzoek in volle gang is en dat zal moeten worden afgewacht of het gewenste beoogde resultaat ook werkelijk zal worden behaald. De Forum lezers zijn daar altijd zeer op gesteld, het geeft ze de indruk alsof ze mee kunnen denken (soms is dat ook zo) en doen met de ontwikkeling van de toekomstige opties, producten en diensten.

En dat is heel wat anders dan een aantal conventionele (CPU) render bedrijven, die tot het laatste uur voor een nieuwe belangrijke Upgrade de gebruikersgroep in spanning houdt en zelfs z'n eigen dealer netwerk niet op tijd informeert. Het zijn dezelfde render bedrijven die een veel te kleine Beta-tester groep hebben, waardoor na verschijnen van een Upgrade er in het veel diverser hardware aanbod, wereldwijd er een grote lijst met onvoorziene problemen tevoorschijn komt. Problemen die dan met spoed om een snelle oplossing vragen. In plaats dat er Euforie is en de verkopen aantrekken, krijgen alleen de niet-functionerende onderdelen alle aandacht en stagneert de introductie.


Which is better to upgrade in future: GPU or CPU?

June 25, 2015.

http://www.tomshardware.co.uk/answers/id-2675515/
upgrade-future-gpu-cpu.html


A survey of CPU-GPU Heterogeneous Computing Techniques

june 2015

Future Technogies Group

https://ft.ornl.gov/node/2077

Abstract

As both CPU and GPU become employed in a wide range of applications, it has been acknowledged that both of these processing units (PUs) have their unique features and strengths and hence, CPU-GPU collaboration is inevitable to achieve high-performance computing. This has motivated significant amount of research on heterogeneous computing techniques, along with the design of CPU-GPU fused chips and petascale heterogeneous supercomputers. In this paper, we survey heterogeneous computing techniques (HCTs) such as workload-partitioning which enable utilizing both CPU and GPU to improve performance and/or energy efficiency.

We review heterogeneous computing approaches at runtime, algorithm, programming, compiler and application level. Further, we review both discrete and fused CPU-GPU systems; and discuss benchmark suites designed for evaluating heterogeneous computing systems (HCSs).

We believe that this paper will provide insights into working and scope of applications of HCTs to researchers and motivate them to further harness the computational powers of CPUs and GPUs to achieve the goal of exascale performance.


Een meetlat voor GPGPU programming in ontwikkeling

The Scalable HeterOgeneous Computing (SHOC) Benchmark Suite

https://github.com/vetter/shoc/wiki

SOC is an Open source and includes contributions from others

The Scalable Heterogeneous Computing Benchmark Suite (SHOC) is a collection of benchmark programs testing the performance and stability of systems using computing devices with non-traditional architectures for general purpose computing, and the software used to program them. Its initial focus is on systems containing Graphics Processing Units (GPUs) and multi-core processors, and on the OpenCL programming standard. It can be used on clusters as well as individual hosts.

In addition to OpenCL-based benchmark programs, SHOC also includes a Compute Unified Device Architecture (CUDA) version of many of its benchmarks for comparison with the OpenCL version.

Features

* Multiple benchmark applications written in both OpenCL and CUDA
* Cluster-level parallelism with MPI
* Node-level parallelism for multiple GPUs per node
* Harness for running and easy reporting (in .csv spreadsheet format) of the suite
* Stability tests for large scale cluster resiliency testing

Dit is een goed uitgangspunt om ook OpenCL naast die van CUDA te leggen. Maar het is ook mogelijk met sommige render programma's, waarbij u in de software al kunt aangeven wat er gebruikt zal worden. Doet u dat met een standaard te gebruiken 3D model, dan kunt u daar zelf de rendertijd conclusie aan verbinden.


GPU vervolg met groot aantal Links

homepage

omhoog