Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Ervaring met parallel computing van Cuda

827 views

Published on

In deze presentatie gaan we wat dieper in op de Cuda-programmeeromgeving en de Tesla-architectuur van Nvidia.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Ervaring met parallel computing van Cuda

  1. 1. Ervaring met parallel computing van Cuda<br />Kasper Van Remoortere<br />Nils Lamot<br />1ste Bachelor Informatica<br />
  2. 2. Inhoudstafel<br />Situatieschets<br />GeForce 8800<br />Programmeertaal: CUDA<br />Architectuur: Tesla<br />Applicatie voorbeeld<br />Conclusies<br />2<br />Kasper Van Remoortere - Nils Lamot<br />
  3. 3. Situatieschets<br />Kloksnelheid verhogen Parallel geschakelde processors<br />Efficiënt gebruik?<br />GPU’s al langer parallel  real-timegraphics<br />3<br />Kasper Van Remoortere - Nils Lamot<br />
  4. 4. Tesla architectuur<br />Rechtstreeks programmeerbare GPU’s<br />CUDA programmeermodel (= extensie van C)<br />Makkelijk voor programmeurs<br />Versnelt het rekenproces<br />4<br />GeForce 8800<br />Kasper Van Remoortere - Nils Lamot<br />
  5. 5. Programmeertaal - CUDA<br />Programmeeromgeving van Nvidia<br />Doelen:<br />Uitbreiding C/C++  uitdrukking parallellisme vereenvoudigen<br />Code goed verdelen over threads<br />Vb.: Huidige GPU’s - 30 720 threads<br />5<br />Kasper Van Remoortere - Nils Lamot<br />
  6. 6. Programmeertaal - onderdelen<br />6<br />Rooster van blokken<br />Parallelle Threads<br />
  7. 7. Programmeertaal - geheugen<br />7<br />HS gedeeld geheugen<br />Data-parallel &gt; Task-parallel<br />Globaal geheugen<br />
  8. 8. Architectuur - Tesla<br />Doel: programma’s in CUDA optimaal uitvoeren<br />Aanmaak, planning, resource management  In hardware opgenomen Tijd creëren/verwijderen = verwaarloosbaar<br />Geoptimaliseerd in het verwerken van opeenvolgende, gelijkende patronen<br />8<br />Kasper Van Remoortere - Nils Lamot<br />
  9. 9. 9<br />Architectuur - structuur<br />SM Multi-threaded Processor<br /><ul><li>Communicatie threads in blok
  10. 10. SIMT: blok thread = </li></ul>warp van 32 threads<br />SP cores: toegang tot assortiment instructies<br />Multithreading: <br />grote cache overbodig<br />Kasper Van Remoortere - Nils Lamot<br />
  11. 11. Applicaties<br />Moleculaire bewegingen<br />Numerieke lineaire algebra<br />Medische sector<br />Beweging van vloeistoffen<br />Seismologie <br />10<br />
  12. 12. Applicatie – Numerieke lineaire algebraMatrixvermenigvuldiging<br />Berekeningen verdeelbaar in blokken<br />11<br />Hoe matrices vermenigvuldigen:<br />A x B = C<br />a1,1 x b1,1 + a1,2 x b2,1 +… = c1,1<br />Kasper Van Remoortere - Nils Lamot<br />
  13. 13. 12<br />Applicatie – Numerieke lineaire algebraAlgoritme Volkov en Demmel vs. MKL<br />Kasper Van Remoortere - Nils Lamot<br />
  14. 14. Applicatie – Numerieke lineaire algebraVerklaring snelheid algoritme V&D<br />Data-blocks opgeslagen in GPU-registersregister = groot  tijdelijke opslag berekeningen<br />Blokken elementen /thread  1/thread<br />Software prefetching wachttijd geheugen <br />13<br />Kasper Van Remoortere - Nils Lamot<br />
  15. 15. Applicatie – Numerieke lineaire algebraMatrix factorisatie<br />Matrix naar eenvoudigste vorm omzetten<br />Oplossen stelsels<br />Factorisatiemethodes: <br />LU <br />Cholesky<br />QR factorisatie<br />14<br />Kasper Van Remoortere - Nils Lamot<br />
  16. 16. 15<br />Kasper Van Remoortere - Nils Lamot<br />
  17. 17. Conclusies<br />Cuda bruikbaar voor data-parallel programmeren<br />Cuda voor groot publiek beschikbaar<br />16<br />Kasper Van Remoortere - Nils Lamot<br />

×