Jug gpgpu

1,508 views
1,421 views

Published on

FinistJUG by Jean-Baptiste Ollagnon

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,508
On SlideShare
0
From Embeds
0
Number of Embeds
857
Actions
Shares
0
Downloads
8
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Jug gpgpu

  1. 1. Java & GPGPU General-Purpose on Graphics Processing Unitjeudi 28 février 2013
  2. 2. GPGPU ? General-Purpose processing on Graphics Processing Units Calcul massivement parallèle (!= CPU) Standardisation 1 programme à la fois (Execution) Impossible de lire et écrire en même tempsjeudi 28 février 2013
  3. 3. Applications Traitement d’image / convolutions Rendu 3D (ray-tracing, imagerie médicale) Système de particules Physique / Collision Simulation (Météo, neurones) Chiffrage / Déchiffrage / Décryptagejeudi 28 février 2013
  4. 4. GPU Roadmap Geforce GTX 560 : 336 coeurs / 810 Mhz Geforce GTX 660 : 960 coeurs / 980 Mhz Geforce GTX 690 : 3072 coeurs / 915 Mhz Radeon HD 6870 : 1120 coeurs / 900 Mhz Radeon HD 6990 : 3072 coeurs / 830 Mhzjeudi 28 février 2013
  5. 5. GPGPU SDKs Compatibilité NVIDIA AMD Intel ARM IBM CUDA SDKs ATI Stream OpenCLjeudi 28 février 2013
  6. 6. Java & OpenCL JNI Bindings JavaCL/OpenCL4Java, JOCL JCUDA OpenCL / CUDA «traduit»jeudi 28 février 2013
  7. 7. JOCL Binding Java pour OpenCL JogAmp String programSource = "__kernel void "+ "sampleKernel(__global const float *a,"+ " __global const float *b,"+ " __global float *c)"+ "{"+ " int gid = get_global_id(0);"+ " c[gid] = a[gid] + b[gid];"+ "}";jeudi 28 février 2013
  8. 8. Aparapi «Write once, run everywhere» Traduit le bytecode Java en OpenCL automatiquement une seule version du programme à maintenir Compilation en OpenCL au runtime Kernel kernel = new Kernel(){     @Override public void run(){       int i = getGlobalId();       result[i] = inA[i] + inB[i];     } }; Range range = Range.create(result.length); kernel.execute(range);jeudi 28 février 2013
  9. 9. RootBeer Java, comme Aparapi Meilleurs support bytecode Traduction Java -> OpenCL & sérialisation faite une fois pour toutes dans un nouveau jar java -jar Rootbeer.jar ArraySumApp.jar ArraySumApp-GPU.jarjeudi 28 février 2013
  10. 10. Sumatra Intégré dans Java 8 (2013) Basé sur les closures Transformation du code Java en OpenCL par la JVM Distribution de la charge CPU/GPU AMD & Oraclejeudi 28 février 2013
  11. 11. Démo & Questionsjeudi 28 février 2013

×