Quelques trucs et astuces assez simples permettent d’améliorer les performances de QML, les voici résumés dans un article.
NVIDIA CUDA 4.1 est disponible, ouverture des sources du compilateur
La version 4.0 étant sortie en mai 2011, deux mois après une Release Candidate, voici la nouvelle cuvée CUDA, la version 4.1, qui se concentre sur trois axes (et non des moindres !) :
- un Visual Profiler amélioré, avec analyse de performance automatisée ;
- des centaines de nouvelles fonctions pour NPP (NVIDIA Performance Primitives), de nouvelles primitives pour le traitement des images et du signal fortement optimisées ;
- un nouveau compilateur basé sur LLVM.
Ces nouvelles fonctionnalités ont principalement été développées à l’intention des (géo)physiciens, biologistes et chimistes. Évidemment, bien d’autres nouvelles fonctionnalités sont disponibles (support des fonctions de Bessel, nouveaux générateurs de nombres pseudoaléatoires, etc.).
Le profileur visuel
Cette nouvelle version de l’environnement de profiling basé sur Eclipse effectue une analyse pointue des performances des applications automatiquement, d’une manière encore simplifiée de telle sorte que tous les développeurs pourront retirer un maximum de performances de CUDA et de leur matériel en identifiant les goulots d’étranglement de leur implémentation et en les corrigeant, grâce à une suggestion étape par étape d’améliorations au code avec des liens avec la documentation déjà présente dans la boîte à outils.
Parallel Nsight 2.1
Un add-in pour Visual Studio combinant la puissance de l’EDI à celle du GPGPU : il permet de déboguer, profiler et optimiser du code prévu pour GPU à l’intérieur même de l’EDI, bien que plus prévu pour le CPU (que ce soit des kernels CUDA ou OpenCL, des shaders DirectX ou OpenGL).
Cette nouvelle version apporte la modification à chaud des shaders, mais aussi la visualisation des warps en cours d’exécution. On dispose désormais de plus d’informations sur ce qui se passe sur le GPU : l’état de CUDA au lancement, les spécificités du GPU courant (pilote, architecture, mémoire, etc.), filtrage des exceptions, assertions, points d’arrêt, etc. On peut également arrêter le débogage sur une assertion.
NVIDIA Performance Primitives
Le nombre de fonctions disponibles a doublé par rapport à la version précédente, principalement grâce au nouveau modules de traitement du signal, avec quelques modules supplémentaires pour le traitement des images, en plus des modules déjà disponibles pour les statistiques, le filtrage, les opérations morphologiques, les transformations linéaires et géométriques, la compression et bien d’autres (presque un millier de fonctions supplémentaires !).
LLVM
Un tout nouveau compilateur est disponible, basé sur LLVM. Il promet de belles optimisations sans devoir modifier le code, simplement en le recompilant (jusqu’à 10 %, selon les applications, sans aucune modification du code existant). Cette infrastructure de compilateurs est prévue pour être modulaire – il devrait donc être possible, à moindres frais, de fournir un compilateur CUDA pour d’autres plateformes que celles de NVIDIA, sans oublier le support de langages plus spécifiques que C, C++ et Fortran. En effet, les sources sont disponibles à tout qui en fait la demande.
Sources
Communiqué de presse
http://developer.nvidia.com/parallel-nsight-21-new-features
http://drdobbs.com/architecture-and-design/232500594
Télécharger la nouvelle version du CUDA Toolkit et de Parallel Nsight.
PySide 1.0.0 en version finale
Quelques jours après la sortie de Qt 4.7.2, le binding Python promu par Nokia, PySide, se met sur son 31 et affiche la version finale de la 1.0.0, après un long cycle de développement, deux semaines après la release candidate, la communauté ayant apporté énormément au développement de cette version.
S’achève donc ainsi la période de correction des bogues, des régressions et des autres dysfonctionnements en tout genre, l’ajout de nouvelles fonctionnalités va pouvoir reprendre. Notamment, il est prévu pour cette série d’ajouter le support de Python 3. Aussi, l’amélioration du code reprendra de plus belle, pour diminuer l’occupation mémoire et améliorer les performances.
D’ores et déjà , une série de paquets pour diverses plateformes sont disponibles : la plupart des distributions Linux répandues, Windows, OS X et Maemo 5 peuvent déjà passer à PySide 1.0.0 sans attendre.
La date de la prochaine version n’a pas été annoncée ; on pourrait s’attendre à voir des nouvelles d’ici à deux semaines, comme précédemment.
Source : http://www.pyside.org/2011/03/pyside-python-for-qt-1-0-released/
Nokia vend sa division Qt à Digia
Dernières nouvelles du front : Nokia revend la division Qt (certains diront qu’il s’en débarrasse) à Digia. Un accord vient d’être signé entre les deux firmes, Digia reprendra 3500 clients de Nokia. Rappelons que Nokia avait acheté Trolltech, société éditrice de Qt, en 2008. Ceci fait suite à la décision de Nokia de ne pas sortir de smartphone basé sur Symbian ou MeeGo, le dernier résultant de la fusion entre Maemo de Nokia et Moblin d’Intel, et de se baser exclusivement sur Windows Phone 7.
Sebastian Nyström, vice président de Nokia, Application and Service Frameworks, a déclaré que Nokia continuera à investir dans Qt, que ce soit au profit des sections mobiles, embarquées ou desktop. Nokia cherchait un partenaire pour assurer la suite des licences commerciales et des services dans la sphère Qt. Le choix de Digia s’est fait car la société avait déjà une certaine base dans la communauté Qt et sera à même de continuer à étendre le framework :
Nokia will continue to invest in developing Qt as a cross-platform framework for mobile, desktop and embedded segments, focusing on open source development and expansion, we wanted a partner who can drive the commercial licensing and services business around Qt. Digia has proven, in-depth Qt expertise, operational excellence and a keen interest in growing and improving the overall Qt community and so well positioned to expand the Qt Commercial licensing and services business.
Digia ne deviendra propriétaire du framework que lors de la finalisation de la transaction, fin de ce mois. Cette société voulait aussi avoir une étendue plus mondiale et établira des filiales en Norvège et aux États-Unis, partie de ce contrat. Harri Paani, Senior Vice President de Digia :
We are excited to extend our Qt business to serve our new customers. Building on our in-depth Qt expertise and experience from demanding mission critical solutions, we will offer world-class commercial licensing and support services to Qt Commercial customers. We also look forward to driving further the evolution of Qt by bringing in new features and services
Sources : http://www.engadget.com/2011/03/07/nokia-sells-qt-licensing-and-services-business-to-digia/ et http://www.digia.com/C2256FEF0043E9C1/0/405002251
Add-in Visual Studio en version 1.1.9
L’add-in Qt pour Visual Studio est sorti en version 1.1.9, qui supporte Visual Studio des versions 2005 Ã 2010 (8.0 Ã 10.0).
Par rapport à la version 1.1.8 précédente, seuls quelques bogues ont été fixés :
– régression lors de l’import des fichiers .pro dans la 1.1.8 ;
– compatible avec les projets Intel VTune ;
– vérification de la compatibilité de la version de Visual Studio lors de l’ajout d’une nouvelle version de Qt, pour éviter qu’un build pour MinGW soit utilisé avec Visual Studio et les plaintes qui vont avec ;
– possibilité d’ajout d’options pour lupdate et lrelease.
Il est disponible au téléchargement : http://qt.nokia.com/downloads/visual-studio-add-in
Débogage d’une application Qt
Basé sur la présentation de Volker Krause, employé chez KDAB, menée durant les Qt Developper Days 2011 à Munich, cet article retrace et détaille les différents outils présentés durant la conférence, pouvant aider au débogage d’applications Qt et Qt Quick.
Widget de correspondance de données adapté en Python
La classe QDataWidgetMapper, introduite dans Qt 4.2, apporte une interface qui permet d’associer des données à un formulaire. Cette manière d’afficher les données facilite la création d’applications basées sur des registres et permet de modifier l’interface utilisateur avec des outils plus habituels tels que Qt Designer.
Bien que les items de Qt soient capables d’afficher des informations en grande quantité, de nombreuses applications ont tendance à utiliser les registres et les interfaces en formulaires pour présenter les données de façon simplifiée. Parfois, c’est parce que les utilisateurs y sont plus habitués, parfois parce que c’est une conséquence du stockage des données.
Cet article est la version Python de Widget de correspondance de données. Les exemples sont réalisés sous Python 3.2 avec PyQt 4.7.
La FAQ Qt Creator
Le temps passant, la FAQ Qt s’est enrichie, notamment au niveau de sa section Qt Creator. Bien qu’actuellement ne contenant que quatre entrées (http://qt.developpez.com/faq/?page=edi-qtcreator), le travail en interne continue, au point qu’il nous a semblé mieux de séparer cette partie et d’en faire une FAQ à part, contenant actuellement 11 QR, soit à peu près autant que la FAQ Qt lors de son lancement en 2007 !
N’hésitez surtout pas à la lire et à nous faire part de vos retours ! Si vous souhaitez y participer, n’hésitez pas non plus à vous proposer (par MP ou par email – en bas de page) !
Qt Creator 2.3 est sorti
La nouvelle version de Qt Creator, la 2.3.0, est sortie, avec de nombreuses améliorations pour améliorer l’expérience développeur en général. Quelques nouveautés parmi les principales en vrac :
– on peut effectuer des recherches sur les exemples et tutoriels depuis la page d’accueil ;
– les paramètres de style de code ont été largement améliorés (voir à ce sujet de nouveaux paramètres d’indentation plus poussés pour une uniformisation dans les projets pour plus de détails) ;
– le profilage des applications a aussi été amélioré et dispose maintenant d’un mode d’analyse spécifique (on peut profiler des applications QML et à l’aide de Callgrind, maintenant) ;
– le débogage et le profilage des applications QML fonctionnent maintenant pour Symbian et MeeGo 1.2 (Harmattan) avec Qt 4.7.4 ;
– bien d’autres améliorations de plus petite ampleur pour le support de Qt Quick.
La liste des changements pour cette version 2.3.0 est disponible sous la forme d’un changelog et d’une liste de commits.
Qt Creator 2.3 est téléchargeable sur le site de l’éditeur ou en tant que mise à jour du Qt SDK.
Vivats au Qt Project !
Une nouvelle page s’écrit dans l’histoire de Qt : l’open gouvernance est arrivée, après de longs mois de préparation.
Tout le développement de Qt aura maintenant lieu sur qt-project.org, le nouveau lieu central, qui héberge un wiki contenant toute la documentation pour commencer à contribuer, comprendre les nouveaux principes en jeu.
Les patches seront gérés par un serveur Gerrit, où des Approvers et Maintainers pourront les accepter et les intégrer dans les sources après contrôle et tests par la communauté. Contributors, Approvers et Maintainers ne sont plus forcément des employés de Nokia (Thiago, Maintainer de Qt Core, par exemple, ne l’est pas), ils sont élus par méritocratie, seul son passé dans le projet entre en ligne de compte. Le développement aura donc maintenant lieu en place publique, tous seront sur un pied d’égalité.
Les développeurs de Qt voient dans cette nouvelle page une excellente nouvelle pour le projet, même si certains sceptiques y voient une occasion pour Nokia de se désengager de Qt.