Intégration d’OpenCL dans Qt ?

Salux !

Les trolls de Nokia ont décidément le vent en poupe ! L’arrivée imminente de Qt 4.7 avec QML et QtQuick[1] fait déjà saliver plus d’un développeur, et voilà que Rhys Weatherley poste un billet[2] sur le blog de QtLabs titrant « L’utilisation d’OpenCL avec Qt » (Using OpenCL with Qt).

Petit rappel : OpenCL est un standard fourni par Khronos Group[3] (le même qui fournit OpenGL) pour la programmation d’applications parallèles exploitant les ressources GPU. L’intérêt ? Bénéficier d’une gigantesque puissance de calcul pour pas cher, puisque les GPU actuels sont extrêmement puissants.

Donc, l’équipe Qt s’intéresse à OpenCL. Pour l’instant, rien d’indiqué concernant l’intégration à la branche principale, mais Weatherley précise que le module expérimental est compilable avec Qt 4.6 & 4.7.

L’objectif de ce module est de pouvoir intégrer facilement OpenCL avec QtOpenGL ou QImage (images matricielles) cite-t-il en exemples pour la partie calcul. Parmi les utilisations intéressantes on retrouve la manipulation de matrices (QTransform), flou gaussien, chemins (QPainterPath) et Mandelbrot. Ayant créé un exemple de Mandelbrot, Rhys est passé de 5 fps à 120 en passant du calcul CPU à OpenCL !

Concernant la programmation concurrente QtOpenCL bousculerait QtConcurrent sur certains points car il serait trop orienté CPU homogènes, alors que OpenCL se veut utilisable avec des unités hétérogènes. Rien d’insurmontable tempère cependant Rhys, qui a déjà obtenu des résultats prometteurs.

Par contre, l’univers de l’embarqué semble plus réticent. Les processeurs ARM/NEON fourniraient un niveau de performance suffisant pour qu’OpenCL y soit très peu présent. Basés sur des simulations, la démo Mandelbrot serait pourtant capable d’afficher de 10 à 60 fps, ce qui est respectable pour un périphérique mobile !

Quand aux curieux, non je n’aurais pas recours à OpenCL pour DbMaster. Namého.

Liens

[1] Annonce de la pré-version de Qt 4.7 http://qt.nokia.com/about/news/qt-4.7-and-qt-creator-2.0-technology-previews-released

[2] Billet sur QtLabs http://labs.trolltech.com/blogs/2010/04/07/using-opencl-with-qt/

[3] OpenCL sur Wikipédia http://fr.wikipedia.org/wiki/OpenCL je vous conseille cependant la version anglaise, plus complète : http://en.wikipedia.org/wiki/OpenCL

Le Manchot Enragé

Tagué , , , , , , , , ,
%d blogueurs aiment cette page :