Archives par étiquette : parallèle

Utilisation de WebCL : calcul d’un écoulement

Nous avons essayé les possibilités du WebCL, un futur standard du Khronos Group. Il s’agit de disposer des performances de calcul de l’openCL dans le navigateur. Etant donné que nous disposons d’ordinateurs avec CUDA installé, nous avons réalisé une démonstration pour vérifier les performances annoncées par Nokia.

Il s’agit d’une diffusion de gaz à travers un trou. Le gaz est modélisé par un ensemble de particules sphériques qui rebondissent elastiquement les unes sur les autres. WebCL se charge de gérer le moteur de collisions, tandis que WebGL affiche le résultat sur une texture.

Pour donner une idée de la différence de performance avec javascript, on a rendu possible d’effectuer le calcul en js, et le rendu sur un canvas en html5. Avec cette dernière technologie, il est difficile de monter à plus de 1000 particules sur mon corei7-2600K. A l’inverse, quand le calcul se déroule sur ma GTX470, le programme commence à ramer à 30 000 particules! Pourtant les implémentations CPU et GPU sont strictement identiques.

La démo est disponible ici : spacegoo.com/particles.php

Si vous n’êtes pas compatible webgl, vous pouvez toujours admirer cette vidéo capture d’écran :

Many particles flow simulation (WebCL)
Runtime
2:01
Compteur de vues
1,529