Warning: Missing argument 2 for wpdb::prepare(), called in /home/stromber/public_html/kryptoblog/wp-content/plugins/wp-super-edit/wp-super-edit.core.class.php on line 109 and defined in /home/stromber/public_html/kryptoblog/wp-includes/wp-db.php on line 1222
HW » Kryptoblog

Posts Tagged ‘HW’

CUDA på Mac

March 16th, 2009

Jag har nyligen blivit med en ny laptop, en Apple MacBook Unibody:

MacBook

Förutom mer minne och större hårddisk, vilket gör det lättare att köra de virtuella system jag använder vid hårdvaruutveckling kommer maskinen med praktiska funktioner som bakgrundsbelyst tangentbord (iaf praktiskt om man sitter uppe på nätterna.)

En annan bra sak med den nya laptopen är att den kommer med en grafikprocessor (GPU) från Nvidia kapabel att stödja Nvidias programmeringsmiljö CUDA. Compute Unified Device Architecture (CUDA) gör det möligt att relativt enkelt accelerera applikationer med dataparallellism genom att exekvera beräkningar parallellt på grafikprocessorn.

Jag testade att installera CUDA 2.0 på laptopen förra veckan. Installationen gick i stort sett utan några problem alls, speciellt efter att ha hittat den här utmärkta bloggpostningen om att installera CUDA 2.0 på Mac. Följer man instruktionerna kan man snart testa CUDA på sin maskin:


js@stajlis.springfield.se:/Developer/CUDA/bin/darwin/release>./deviceQuery
There is 1 device supporting CUDA

Device 0: “GeForce 9400M”

Major revision number: 1 Minor revision number: 1 Total amount of global memory: 266010624 bytes Number of multiprocessors: 2 Number of cores: 16 Total amount of constant memory: 65536 bytes Total amount of shared memory per block: 16384 bytes Total number of registers available per block: 8192 Warp size: 32 Maximum number of threads per block: 512 Maximum sizes of each dimension of a block: 512×512 x 64 Maximum sizes of each dimension of a grid: 65535×65535 x 1 Maximum memory pitch: 262144 bytes Texture alignment: 256 bytes Clock rate: 0.80 GHz Concurrent copy and execution: No

16 beräkningsenheter är inte precis enormt många, iaf inte i jämförelse med Nvidias Tesla. Nåja, det går dock att köra CUDA utan problem och Nvidias exempelapplikationer uppvisar en tydlig acceleration jämfört med en entrådars CPU-implementation. Jag upptäckte även att en totalt överspecad CUDA-applikation (ex nbody-applikationrn med 65535 kroppar att beräkna) totalt sänker Mac:en.

Slumptalsgeneratorn Mersenne Twister i CUDA-variant ger på min maskin följande prestanda:


js@stajlis.springfield.se:/Developer/CUDA/bin/darwin/release>./MersenneTwister
Using device 0: GeForce 9400M
Initializing data for 24000000 samples…
Loading CPU and GPU twisters configurations…
Generating random numbers on GPU
Generated samples : 24002560
RandomGPU() time : 77.352997
Samples per second: 3.102990E+08
Applying Box-Muller transformation on GPU
Transformed samples : 24002560
BoxMullerGPU() time : 35.231998
Samples per second : 6.812716E+08
Reading back the results…
Checking GPU results…
...generating random numbers on CPU using reference generator
...applying Box-Muller transformation on CPU
...comparing the results
Max absolute error: 2.264977E-06
L1 norm: 1.783765E-07

Jag har inte hunnit att hacka några egna CUDA-program. Förra året testade jag (min vana trogen) att koda strömkryptot RC4 i CUDA. Inte speciellt förvånande nog gav det dock ingen prestandaökning. Det var dock mer ett test av att jag fattat hur man kodar för CUDA. Skall försöka hinna koda lite CUDA under våren och då pröva med mer parallella algoritmer och applikationer.

Senare i Ã¥r kommer (om tidplanen stämmer) Mac OS X 10.6 – Snow Leopard. I och med det borde det även finnas SDK pÃ¥ Mac för att koda för OpenCL, vilket verkar vara mindre yxigt och primitivt än CUDA. Ã…terstÃ¥r dock att se om det är sÃ¥, när 10.6 väl dyker upp.

För den som vill testa CUDA har Raymond Tay som postade beskrivningen av installationen även postat en bra lista med CUDA-resurser. Om du testar CUDA och hackar några spännande algoritmer får du väldigt gärna posta kommentarer.

PS: En sak jag inte gillar med min nya Mac är att tangenterna skramlar. Speciellt mellanslagstangenten låter klonk modell en gammal Apple II. Men annars är den riktigt stajlish.