S'identifier / Créer un compte
  • Actualités
  • Dossiers
  • Tests
  • Commentaires
  • INpactiens
Publicité
GPU Caps Viewer 1.8.0 : quelles performances en OpenCL ?

GPU Caps Viewer 1.8.0 : quelles performances en OpenCL ?

David Legrand le 18 décembre 2009
Pour chaque démo de GPU Caps Viewer, nous avons décidé d'utiliser plusieurs options  développées pour les besoins de nos tests, qui nous ont semblé INtéressantes à mettre en oeuvre avec JeGX dans une version spécifique du logiciel, afin de mettre en valeur le fonctionnement des différentes architectures.

Des fonctionnalités spécifiques pour mettre en valeur les points faibles / forts

Elles ne sont pas disponibles pour l'ensemble des démos, mais ont été implémentées lorsque cela était nécessaire. Elles seront évoquées dans nos résultats, en voici donc le détail.

OpenCL Gpu Caps Viewer 1.8.0Taille de la Mesh

Dans le test Mesh Deformer, nous avons voulu disposer de la possibilité de modifier le nombre de vertices composant la mesh afin de voir l'impact sur les performances de nos différentes unités de calcul OpenCL.

Native Sin

Il existe des versions dites natives de certaines fonctions transcendantales (sin, cos, atan...) qui peuvent offrir de meilleurs résultats selon l'implémentation du constructeur. Nous utilisons donc les deux versions pour voir ce qui fonctionne le mieux.

X SIN

Afin d'alourdir une scène, à chaque passe on fait exécuter une série de calculs  transcendantale (sin, cos, atan...) à l'unité OpenCL. X correspond au nombre de fois que la boucle est lancée à chaque passe.

Explicite / Implicite

OpenCL permet deux modes de répartitions des threads sur l'unité de calcul. De manière implicite, ou automatique, c'est alors le pilote qui décide de la répartition. Elle peut aussi être faite de manière explicite via un algorithme.

Pour cette seconde option, nous avons utilisé un algorithme de répartition présent dans les démos OpenCL d'Apple.

OpenCL Gpu Caps Viewer 1.8.0Global / Local Mem

OpenCL distingue deux types de mémoire accessible à une unité de calcul : globale ou locale. Ces définitions semblent néanmoins différer selon les constructeurs et leur fonctionnement être encore assez imparfait. Nous avons donc décidé de tester les deux implémentations lorsque cela impactait sur les performances.

Interop

Cette fonctionnalité permet d'envoyer directement des données du code OpenCL au code OpenGL, sans avoir à repasser par l'application principale, ce qui permet d'obtenir de meilleures performances.