Jug gpgpu
Upcoming SlideShare
Loading in...5
×
 

Jug gpgpu

on

  • 1,000 views

FinistJUG by Jean-Baptiste Ollagnon

FinistJUG by Jean-Baptiste Ollagnon

Statistics

Views

Total Views
1,000
Views on SlideShare
411
Embed Views
589

Actions

Likes
0
Downloads
6
Comments
0

2 Embeds 589

http://finistjug.fr 588
http://ranksit.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Jug gpgpu Jug gpgpu Presentation Transcript

  • Java & GPGPU General-Purpose on Graphics Processing Unitjeudi 28 février 2013
  • 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
  • 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 View slide
  • 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 View slide
  • GPGPU SDKs Compatibilité NVIDIA AMD Intel ARM IBM CUDA SDKs ATI Stream OpenCLjeudi 28 février 2013
  • Java & OpenCL JNI Bindings JavaCL/OpenCL4Java, JOCL JCUDA OpenCL / CUDA «traduit»jeudi 28 février 2013
  • 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
  • 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
  • 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
  • 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
  • Démo & Questionsjeudi 28 février 2013