OpenCL en test sous Snow Leopard
Parmi les nouveautés qui ont été intégrées au moteur de Snow Leopard, on trouve l’OpenCL dont on a suivi la standardisation au sein du Khronos Group (voir par exemple « OpenCL : fin des spécifications »).
Pour se faire une idée des gains de performances à en attendre avant que les développeurs d’applications ne sortent des logiciels compatibles, MacRumors pointe le logiciel d’un des membres de ses forums qui permet de déterminer le temps nécessaire à l’exécution d’une séquence d’instructions, à la fois sur le processeur principal de la machine, mais aussi sur les puces graphiques disponibles.
Si l’on en croit les résultats fournis par cette application OpenCL Benchmark, l’intérêt de l’OpenCL est plus qu’évident : testé sur un MacBook Pro à 2,4 GHz, le programme met 15,459 secondes à exécuter la séquence de test, tandis qu’il lui faut seulement 3,081 secondes sur la puce vidéo intégrée GeForce 9400M et encore moins sur la carte dédiée, la GeForce 9600M GT, avec 2,805 secondes.
Bonne nouvelle puisque, s’il faut se déconnecter de la session Mac OS X pour changer la carte activée pour l’affichage, en revanche pour exploiter la puissance de calcul de cartes hors affichage graphique, pas besoin de se déconnecter. Grand Central Dispatch pouvant assigner des tâches de travail à la fois au CPU (le processeur principal) et à tous les GPU (puce de la carte graphique) en même temps, les vitesses de traitement pourraient s’en trouver largement réduites.
Avec une application utilisant des algorithmes conçus en tenant compte de ces contraintes, le processeur principal pourra facilement, et avantageusement, être déchargé de certains calculs gourmands. Espérons que la standardisation de l’OpenCL permettra d’éviter l’écueil AltiVec (ou Velocity Engine) du nom des registres de calculs 128 bits intégrés aux G4 et G5 qui permettaient d’augmenter les performances des applications moyennant une optimisation du code des applications.
Pour mémoire, les puces compatibles sont les :
– NVIDIA GeForce 9400M, GeForce 9600M GT, GeForce 8600M GT, GeForce GT 120, GeForce GT 130, GeForce GTX 285, GeForce 8800 GT, GeForce 8800 GS, Quadro FX 4800 et Quadro FX5600
– ainsi que les ATI Radeon 4850 et Radeon 4870.
Pour les mordus, MacRumors a également déniché AOBench qui met aussi en avant des différences de temps de traitement entre CPU et GPU.
OpenCL Benchmark (10.6 uniquement)
OpenCL Benchmarks and Support for Both MacBook Pro GPUs
AOBench