CUDA-experiment
Skrivet av: Stefan Bergstrand in Nvidia, GPU, CUDA on
apr 15, 2008
På order av herr P. Svensson har jag under de senaste dagarna undersökt hur CUDA fungerar, och ifall det kan vara bra till något. CUDA är Nvidias teknik för att låta grafikprocessorn på något av deras modernare kort köra "vanliga" beräkningar. Efter vissa inkörningsproblem lyckades jag hacka ihop ett program som beräknar Mandelbrot-fraktaler.
Mycket riktigt, när jag klockar min CPU-version och GPU-dito ser jag att den senare går ungefär 10 gånger snabbare, utan några särskilda optimeringar. Yay!
Strax därefter browsar jag runt lite bland de exempel som följer med utvecklingskitet för CUDA, och ser att de redan har gjort samma program... Deras version är dessutom rejält optimerad, visar de vackra bilderna i realtid, samt kör ungefär 400 gånger snabbare än CPU-versionen.
Jag sväljer snabbt förtreten (intalar mig att mitt test och deras program inte riktigt går att jämföra), sedan inser jag att detta är en teknik som borde gå att utnyttja till allt möjligt. Förutom att programmet körs på en snabb processor kan man köra ett mycket stort antal samtidiga trådar , vilket innebär att om bara det problem man försöker lösa låter sig väl paralelliseras så kan man snabba upp exekveringen enormt.
Efter detta har jakten inletts efter något annat problem att testa med, som inte redan finns med i utvecklingkitet. Lämpligen något som dels är lätt att paralellisera men dessutom är av publikt intresse, något som dom flesta har användning för. Ett förslag var WEP-nyckelknäckare, ett annat var packprogram. Båda är ju program som normalt kan ta märkbart lång tid att utföra. Om jag skulle välja något av just de två, skulle det nog landa på det senare just på grund av att det nog är fler som skulle vara intresserade av det. Tyvärr är det ett område som redan har arbetats mycket på att förbättra, så det blir svårt att tillföra något nytt.
Vi får se var det landar. Idag såg jag att även ATI har någon liknande teknik på gång. Det känns dock som att det kommer att bli CUDA som kommer att få mest uppmärksamhet, åtminstone från mig.



