Nvidia kiest in nieuwe Cuda-toolkit voor LLVM-compiler

Nvidia heeft aangekondigd dat het in zijn laatste Cuda 4.1 Toolkit ondersteuning biedt voor de LLVM-compiler. De compiler levert volgens Nvidia efficiëntere code op voor toepassingen die de gpu benutten en is bovendien mulitplatform.

Tot voor kort moesten ontwikkelaars die code voor Cuda wilden schrijven gebruikmaken van diverse tools van Nvidia. Met de release van versie 4.1 van de Cuda Toolkit moet daaraan een einde komen door de koppeling met LLVM, een modulaire compiler.

De LLVM-compiler zou als voordeel hebben dat deze sneller Cuda-code kan omzetten. Ook zou de uiteindelijke executable beter presteren dan de huidige compile-tools van Nvidia. Bovendien is LLVM een modulaire compiler, waardoor deze niet alleen overweg kan met verschillende programmeertalen, maar ook op diverse platforms kan draaien. Een extra pluspunt is dat LLVM naast de x86-architectuur ook code kan compilen voor ARM-processors.

Nvidia hoopt met het toepassen van de LLVM-compiler meer ontwikkelaars aan te trekken voor het schrijven van rekenintensieve toepassingen die gebruikmaken van gpu's. Desondanks is de LLVM-compiler van Nvidia een deels gesloten project; het bedrijf wil de code alleen delen met partners.

Door Dimitri Reijerman

Redacteur

15-12-2011 • 15:38

24

Reacties (21)

21
21
15
2
0
1
Wijzig sortering
Is de CUDA toolkit gratis te verkrijgen? of moet je hiervoor een licentie afnemen bij NVidia? (Heb een laptop met CUDA, ben wel benieuwd wat ik er mee kan doen)

[Reactie gewijzigd door Rataplan op 23 juli 2024 04:46]

De CUDA toolkit is hier gratis te downloaden.

edit: @silasje1: Hij is zelfs gratis voor zakelijk gebruik. Er is enkel registratie vereist om de laatste Release Candidate te downloaden.

edit 2: @wretcheddman: Volgens dit artikel is dat niet volledig waar:
Desondanks is de LLVM-compiler van Nvidia een deels gesloten project; het bedrijf wil de code alleen delen met partners.

[Reactie gewijzigd door i8086 op 24 juli 2024 18:56]

Sterker nog hij is als het goed is zelfs open source. bron
Als je het Phoronix artikel goed gelezen had staat er dat er nog niet geweten is welke licentie dat het gaat krijgen.
het kan dus best zijn dat het "open" is volgens Nvidia, maar dat het niet open source is.
Ik kan hem gewoon downloaden zonder een licentie te kopen. Misschien moet je voor prive gebruik niks betalen
Soort van OpenCL, General Purpose Graphics Processing Unit (GPGPU) Programming, ofwel berekeningen uitvoeren op de GPU die anders alleen op de CPU gedaan kunnen worden.
Een extra pluspunt is dat LLVM naast de x86-architectuur ook code kan compilen voor ARM-processors.
Wat is het nut van die ARM compiler? Tegra 2/3 of verwacht men binnenkort desktop GPUs te combineren met het ARM platform?
Je ziet het verkeerd. LLVM is een heel grote machine: een deel zijn compilers die een programmeertaal omzetten naar LLVM IR. Dat wordt dan geoptimaliseerd en dan wordt die LLVM IR omgezet naar binary van het gekozen platform. LLVM ondersteund voor het moment een hele hoop programmeertalen en architecturen (waaronder x86 en ARM). Je kunt zonder problemen je eigen programmeertaal maken via de LLVM ;)

Nu, dit artikel klopt wel niet helemaal. Nvidia werkt niet met de LLVM maar heeft zelf een compiler gemaakt die gebaseerd is op de LLVM met een eigen Cuda IR. An sich kan iemand nu een linker maken die de Cuda IR omzet naar x86 of ARM instructies.
Bovendien is LLVM een modulaire compiler, waardoor deze niet alleen overweg kan met verschillende programmeertalen, maar ook op diverse platforms kan draaien.
Dat LLVM modulair is heeft hier niet zo veel mee te maken (verschillende platforms). LLVM is modulair in de zin dat je heel makkelijk optimalisatiealgoritmes (bijvoorbeeld) kan toevoegen , zonder daar veranderingen in het design van LLVM zelf voor te hoeven maken.

LLVM is vooral modulair in vergelijking met GCC, waarvan de auteurs dit juist krampachtig proberen te voorkomen. Zij zijn bang dat stukken code dan juist closed source blijven en dat het ten koste gaat van de 'vrijheid' van de compiler.

[Reactie gewijzigd door metaal op 24 juli 2024 18:56]

Doordat NVIDIA probeert bepaalde delen van CUDA geheim te houden, of enkel beschikbaar te maken voor commerciele partners kan je de mensen van GCC moeilijk ongelijk geven. Al zou LLVM wel betere code opleveren dan GCC. Mijn inziens kan het geen kwaad dat er twee grote open compilers ontstaan, GCC zal zo aan bepaalde aspecten moeten werken om LLVM voor te blijven.
Hoewel inderdaad mogelijk de code die nvidia toevoegd niet vrij/open zal zijn, is de kans wel groot dat zij ook verbeteringen aan de core van LLVM zullen moeten maken, en die wel gewoon openbaren (LLVM is BSD, dus dat is niet verplicht).

Je kan het ook zo bekijken dat juist de extra vrijheid van de plug-in architectuur en de BSD licentie de drempel voor nvidia heeft weggenomen om uberhaupt iets met LLVM te gaan doen. Ook een open source project heeft net als een commercieel product gebruikers nodig om te kunnen overleven.

Voor beide modellen valt iets te zeggen. Ik merk wel bij veel bedrijven waarvoor ik werk doe dat ze huiverig zijn van de GPL, en dan maar voor de zekerheid een bedrijsbrede policy hebben niets te doen met GPL producten. Als ik soms weer eens een quote in het wild voorbij zie komen van bijvoorbeeld de heer Stallman, kan ik best een hoop begrip opbrengen voor dat soort keuzes.
Als deze versie van CUDA snelheids winst levert, zou het mooi zijn als Distributed.net zijn client van een update voorziet.

Kun je nog sneller voor de Dutch Power Cows }:O rekenen met je GPU.
Als deze versie van CUDA snelheids winst levert, zou het mooi zijn als Distributed.net zijn client van een update voorziet.

Kun je nog sneller voor de Dutch Power Cows }:O rekenen met je GPU.
Als ze nu eerst eens wat meer bandbreedte regelen voor Seti in Berkeley.... Het downloaden duurt nu soms al langer dan het berekenen van 1 WU.... :|

Maar ben wel benieuwd of dit ook nog gevolgen gaat hebben voor snellere drivers voor de kaarten (voor games e.d.)
Gratis <> Open Source. Dat de compiler gesloten is en de code alleen gedeeld wordt met partners, zegt dus niks over de gratis beschikbaarheid van de (binary vorm) compiler zelf.
Wat mij ook een belangrijke lijkt, is dat de Nvidia OpenCL implementatie al LLVM gebruikt.
OpenCL is een soort opvolger van CUDA, zie http://en.wikipedia.org/wiki/OpenCL .
Anoniem: 426630 15 december 2011 20:32
Het artikel suggereert dat gcc geen arm code kan produceren, maar dat is natuurlijk grote onzin.
Alle native code in Android is met gcc gecompileerd, inclusief de kernel.
Hopelijk komen er nu ook wat meer applicaties die het gebruiken, ik ken eigenlijk alleen Badaboom..
Tsja imho kan je beter voor opencl kiezen dan zit je niet alleen aan nvidia gpus vast.
Vray RT is een mooi voorbeeld. Vrijwel instant previews van CG renders die normaal vele minuten CPU tijd kosten.
Binnenkort weer Nvidia in de nieuwe Macs? :)

Zie http://en.wikipedia.org/wiki/Clang

Op dit item kan niet meer gereageerd worden.