IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Programmation parallèle, calcul scientifique et de haute performance (HPC) Discussion :

C++ AMP : le nouvel outil de Microsoft


Sujet :

Programmation parallèle, calcul scientifique et de haute performance (HPC)

  1. #1
    Responsable .NET

    Avatar de Hinault Romaric
    Homme Profil pro
    Consultant
    Inscrit en
    Janvier 2007
    Messages
    4 570
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2007
    Messages : 4 570
    Points : 252 372
    Points
    252 372
    Billets dans le blog
    121
    Par défaut C++ AMP : le nouvel outil de Microsoft
    Microsoft ouvre la spécification C++ AMP aux autres compilateurs
    pour la conception d'applications parallèles en C++ utilisant la puissance du GPU

    Mise à jour du 07/02/2012, par Hinault Romaric

    Comme Microsoft l’avait promis lors de la présentation de C++ AMP, l’éditeur a publié le cahier des charges de la spécification afin que les autres éditeurs de compilateur C++ puissent l’utiliser.

    Pour rappel, C++ AMP (Accelerated Massive Parallelism) est une nouvelle technologie conçue pour aider les développeurs C++ dans la conception d'applications parallèles utilisant le GPU. C++ AMP s’appuie sur les bibliothèques de programmation d'applications multimédia DirectX et facilite le développement en exploitant la puissance du matériel massivement parallèle (GPU et APU).

    C++ AMP permet donc de combler les attentes des développeurs qui ont de plus en plus besoin de tirer parti de la puissance des GPU dans leurs applications. La technologie a été développée tout d’abord pour Visual Studio 2011, et un aperçu est déjà disponible avec la Developper Preview de l’environnement de développement publiée en septembre dernier.

    La technologie a été mise au point en partenariat avec NVIDIA et AMD. Les ingénieurs de Microsoft ont réduit au minimum le nombre de changements dans le code. C++ AMP comporte quelques restrictions qui sont nécessaires lors de l’exécution du code sur plusieurs processeurs. Il dispose également d’un certain nombre de fonctionnalités supplémentaires comme les types de tableaux multidimensionnels et le support du transfert de mémoire synchrone.

    La spécification publiée sous une licence Open Specification Promise (OPS) par Microsof lors de la conférence GoingNative C++ 2012, peut désormais être utilisée par d’autres responsables de compilateur C++ comme Embarcadero, Intel ou encore la Free Software Foundation, tout en étant à l’abri de toute revendication de droits de brevets par l’éditeur.

    L’implémentation de C++ AMP dans Visual Studio 11 utilise DirectCompute pour générer le byte code qui sera interprété par le GPU. Les éditeurs de compilateur C++ pourront utiliser d’autres interfaces comme CUDA de Nvidia.

    L’éditeur travaille par ailleurs avec le comité de normalisation du C++, afin de faire adopter les idées derrières C++ AMP dans le noyau du langage.


    Source : Microsoft


    C++ AMP : le nouvel outil de Microsoft
    Pour la conception d'applications parallèles en C++ utilisant la puissance du GPU

    Microsoft a annoncé lors de la conférence Fusion Sommet d’AMD, une nouvelle technologie conçue pour aider les développeurs C++ dans la conception d'applications parallèles utilisant le GPU (Graphics Processing Unit).

    La technologie baptisée C++ Accelerated Massive Parallelism (C++ AMP) est construite en C++ moderne, et s’appuie sur les bibliothèques de programmation d'applications multimédia DirectX. C++ AMP permettra de faciliter la programmation en exploitant la puissance du matériel massivement parallèle (GPU et APU).

    C++ AMP sera fourni avec une bibliothèque STL-like, qui pourra être utilisée en faisant appel à amp.h dans un code C++. Les développeurs n’auront pas besoin d’apprendre une nouvelle syntaxe.

    La portabilité est également un point essentiel dans C++ AMP. Les applications utilisant cette technologie pourront être utilisées sur un large éventail de matériels de n’importe quel fournisseur. La première version sera centrée sur le GPU, mais Microsoft prévoit dans le futur, d'étendre la technologie pour exploiter les architectures multi-cœurs et le Cloud.

    C++ AMP sera proposée comme spécification ouverte. Microsoft prévoit de mettre le cahier de charge de cette technologie à la disposition des autres éditeurs de compilateur C++ pour qu’ils puissent l’utiliser.

    L'outil sera intégré dans la prochaine version du compilateur Visual C++. Et il sera totalement pris en charge (édition, build, débogage, profiling, etc.) dans la prochaine version de Visual Studio.


    Source : Microsoft


    Et vous ?

    Que pensez-vous de la volonté de Microsoft de sortir un nouvel outil pour la programmation parallèle : bienvenue ou vous avez déjà ce qu'il vous faut ?
    Vous souhaitez participer aux rubriques .NET ? Contactez-moi

    Si déboguer est l’art de corriger les bugs, alors programmer est l’art d’en faire
    Mon blog, Mes articles, Me suivre sur Twitter
    En posant correctement votre problème, on trouve la moitié de la solution

  2. #2
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 607
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 607
    Points : 188 574
    Points
    188 574
    Par défaut
    Citation Envoyé par Hinault Romaric Voir le message
    Que pensez-vous de la volonté de Microsoft de sortit un nouvel outil pour la programmation parallèle : bienvenue ou vous avez déjà ce qu'il vous faut ?
    Je me demande surtout quelles s(er)ont les différences avec DirectCompute, une plateforme déjà prévue pour le GPGPU.
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  3. #3
    Membre expérimenté Avatar de Firwen
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    472
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2009
    Messages : 472
    Points : 1 587
    Points
    1 587
    Par défaut
    Ce qui est bien, c'est qu'on peut toujours compter sur Microsoft pour réinventer une roue sauce-maison incompatible avec un standard qui existe déja : OpenCL

    Maintenant qu'Intel, AMD, Nvidia, Apple et Gallium3D supportent OpenCL, ça aurait vraiment été dommage de fournir un support aussi sur Windows
    It's not a bug, it's a feature

  4. #4
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 607
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 607
    Points : 188 574
    Points
    188 574
    Par défaut
    Grande différence entre les deux : OpenCL est une extension du C, ici on parle d'une extension du C++, donc avec le support de tout ce qui fait que ce langage est une horreur à parser et délicieux à utiliser (enfin, j'espère, ça a quand même pris un sacré bout de temps pour que CUDA C++ sorte...).
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  5. #5
    Membre expérimenté Avatar de Firwen
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    472
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2009
    Messages : 472
    Points : 1 587
    Points
    1 587
    Par défaut
    Grande différence entre les deux : OpenCL est une extension du C, ici on parle d'une extension du C++, donc avec le support de tout ce qui fait que ce langage est une horreur à parser et délicieux à utiliser (enfin, j'espère, ça a quand même pris un sacré bout de temps pour que CUDA C++ sorte...).
    Le GPGPU implique une gestion de la mémoire trés fine, avec une gestion manuelle des différents caches (_thread, _local, _shared, _global ) car les transferts mémoirs sont de loin ce qui est le plus couteux en terme de temps d'execution.
    Il implique aussi, une gestion spécial des appels de fonctions avec l'absence de récursion entre autre, et des typages supplémentaires sur celles-ci ( _kernel, _global, etc )....

    Qu'est-ce que vient foutre un langage Object là dedans ? CUDA fait déja la même chose et bien souvent, l'aspect objet est totalement zappé dans les sections parallélisées car trop couteux et pas adapté, on revient a de l'impératif traditionnel.

    C++ est un excellent langage, mais j'ai de gros doutes sur son utilité en GPGPU par rapport au C/OpenCL.
    It's not a bug, it's a feature

  6. #6
    Membre à l'essai
    Inscrit en
    Avril 2009
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 6
    Points : 22
    Points
    22
    Par défaut
    On peut supposer que C++ AMP va se présenter comme un librairie plus générique de programmation parallèle et pas uniquement orientée GPGPU.
    On pourra l'utilisé pour différentes forme de parallélisation :
    multiCoeur, GPGPU, accélérateurs dédiés (FPGA?).
    Alors que directCompute est là pour le GPGPU uniquement.

  7. #7
    Expert éminent Avatar de kain_tn
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 560
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 560
    Points : 7 255
    Points
    7 255
    Par défaut
    Citation Envoyé par Firwen Voir le message
    Ce qui est bien, c'est qu'on peut toujours compter sur Microsoft pour réinventer une roue sauce-maison incompatible avec un standard qui existe déja : OpenCL

    Maintenant qu'Intel, AMD, Nvidia, Apple et Gallium3D supportent OpenCL, ça aurait vraiment été dommage de fournir un support aussi sur Windows

    Bah c'est un peu comme la raison d'être de directx... Que l'on aime ou pas, ça a été inventé pour s'assurer de garder la main sur le marché des jeux vidéos :/
    Copier c'est copier; voler c'est vendre un CD une vingtaine d'euros!


    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    #include <stdio.h>
     
    int main(int argc, char **argv) {
     
        printf("So long, and thanks for the fish, Dennis...\n");
        return 0;
    }

  8. #8
    Membre éprouvé

    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Septembre 2010
    Messages
    450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Directeur des systèmes d'information

    Informations forums :
    Inscription : Septembre 2010
    Messages : 450
    Points : 1 073
    Points
    1 073
    Par défaut
    Que cela apporte t'il face à OpenCL, en dehors de l'intégration à Visual Studio?
    Si vous moinsez, merci de répondre pour argumenter!
    Ma présentation

  9. #9
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 607
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 607
    Points : 188 574
    Points
    188 574
    Par défaut
    Citation Envoyé par Firwen Voir le message
    C++ est un excellent langage, mais j'ai de gros doutes sur son utilité en GPGPU par rapport au C/OpenCL.
    C'est pour ça d'ailleurs qu'il a été intégré à CUDA, parce que les développeurs le réclamaient... C'est pour ça d'ailleurs qu'on a vu apparaître assez tôt Thrust, maintenant intégré à CUDA...

    Il apporte une autre manière de voir les choses. Ce n'est pas parce que tu vois le monde d'une manière hiérarchique et les indiens plus cyclique que ta vision est la bonne et que toutes les autres sont mauvaises. Ce sont différentes manières de penser, c'est tout.

    Ensuite, réduire le C++ à une approche objet... c'est juste dévaloriser complètement ce langage. Depuis quand est-il interdit de faire de la programmation impérative ? On n'est pas du tout dans un langage orienté objet pur et dur comme Java ou C# : en C++, on est libre de ce que l'on fait. On dispose de fonctionnalités objet, mais sans obligation de les utiliser. En C, on dispose de quelques prémices de l'objet, sans plus. Mais on n'a pas de flux, pas de templates et bien d'autres choses qu'il est inutile de lister ici.
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  10. #10
    Membre expérimenté Avatar de Firwen
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    472
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2009
    Messages : 472
    Points : 1 587
    Points
    1 587
    Par défaut
    C'est pour ça d'ailleurs qu'il a été intégré à CUDA, parce que les développeurs le réclamaient... C'est pour ça d'ailleurs qu'on a vu apparaître assez tôt Thrust, maintenant intégré à CUDA...

    Il apporte une autre manière de voir les choses. Ce n'est pas parce que tu vois le monde d'une manière hiérarchique et les indiens plus cyclique que ta vision est la bonne et que toutes les autres sont mauvaises. Ce sont différentes manières de penser, c'est tout.

    C'est deux choses différentes, CUDA a choisi d'intégrer C++ pour des raisons d'architecture et de linkage.

    Les sections GPU de CUDA sont fortement similaire à celle d'openCL et ont un peu prés les même limitations ( mémoire, typages, non-récursive,..), elles ne sont pas C++, elles se rapprochent du C ou de la synthaxe d'OpenCL.

    CUDA a intégré C++ principalement pour les parties non executées sur GPU du code.
    D'ailleurs CUDA utilise deux compilateurs :
    - son compilateur interne pour les sections GPU
    - une version de g++ pour le code C++-like.
    ( c'était le cas la dernière fois que je l'ai utilisé).

    La raison principale à ça, c'est que là où OpenCL se comportent comme une lib C, CUDA se comporte comme un compilateur. Il a donc besoin d'offrir une compat C++ pour être intégré correctement dans un prog C++.


    Ensuite, réduire le C++ à une approche objet... c'est juste dévaloriser complètement ce langage. Depuis quand est-il interdit de faire de la programmation impérative ? On n'est pas du tout dans un langage orienté objet pur et dur comme Java ou C# : en C++, on est libre de ce que l'on fait. On dispose de fonctionnalités objet, mais sans obligation de les utiliser. En C, on dispose de quelques prémices de l'objet, sans plus. Mais on n'a pas de flux, pas de templates et bien d'autres choses qu'il est inutile de lister ici.
    Tout à fait
    Le point que je voulais mettre en évidence, c'est que la puissance C++ n'est pas utilisée dans CUDA/equivalent car elle ne PEUT PAS être utilisée. CUDA C++ sert surtout a "assembler" les bouts de code spécifiques au GPU dans "CUDA".
    It's not a bug, it's a feature

  11. #11
    Membre émérite

    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 995
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 995
    Points : 2 528
    Points
    2 528
    Par défaut
    D'après l'article de Microsoft, le système est bâti comme une surcouche de DirectX. Ce qui veut dire que DirectX va devenir une API incontournable pour les machines HPC sous Windows. L'idée est amusante.

    Et comme d'habitude, Microsoft fait totalement différent et incompatible avec tout ce qui est existe, tant OpenCL que Cuda. Par contre, pour la première fois, Microsoft se met en concurrence avec nVidia et d'AMD, et même avec Intel (Parallel Studio)...

  12. #12
    Membre confirmé
    Avatar de teddyalbina
    Homme Profil pro
    Développeur .Net,C++
    Inscrit en
    Janvier 2008
    Messages
    466
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .Net,C++

    Informations forums :
    Inscription : Janvier 2008
    Messages : 466
    Points : 568
    Points
    568
    Par défaut
    Citation Envoyé par Traroth2 Voir le message
    D'après l'article de Microsoft, le système est bâti comme une surcouche de DirectX. Ce qui veut dire que DirectX va devenir une API incontournable pour les machines HPC sous Windows. L'idée est amusante.

    Et comme d'habitude, Microsoft fait totalement différent et incompatible avec tout ce qui est existe, tant OpenCL que Cuda. Par contre, pour la première fois, Microsoft se met en concurrence avec nVidia et d'AMD, et même avec Intel (Parallel Studio)...
    Oui et non ici le but pour MS est de faire en sorte que les devs n'aient pas besoin d'utiliser plusieurs technos différentes pour un même soft. Donc sous Win ça passera par Direct Compute parce que c'est plus simple pour eux. Et comme ils veulent le soumettre à standardisation sous Unix ça pourra utiliser OpenCL.

    Concrètement il s'agit d'une interface et pas d'une nouvelle technologie.
    Viva la viva... en el chorizo de la corida de leon.... (cette phrase n'a aucun sens je sais )

  13. #13
    Expert confirmé

    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 376
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 376
    Points : 4 928
    Points
    4 928
    Par défaut
    faudrait peut être pas oublier que cuda, c'est nvidia only, que la prise en charge d'opencl dépend du constructeur (comme opengl) et qu'opengl sent le moisi à plein nez parce que certains contributeurs ne veulent pas remettre en cause la compatibilité de leurs applis.

    microsoft avec directx a réussi à mettre en place un système indépendant du bon vouloir des constructeurs, a osé remettre son api à zéro avec directx 10, pour obtenir une api de qualité où on ne se pose pas la question de l'utilisation d'extensions propriétaires.

    que microsoft mette son nez la dedans est plutôt une bonne chose, on peut espérer avoir un ensemble de fonctionnalités que l'on pourra utiliser les yeux fermés sans se soucier du constructeurs du matos dont on dispose.

  14. #14
    Membre à l'essai
    Inscrit en
    Décembre 2007
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 19
    Points : 23
    Points
    23
    Par défaut
    Le gros problème d'OpenGL était surtout GL, et comme SGI a végété pendant des années pendant ce temps GL n'a pas avancé et openGL non plus (OpenGL 4.1 a bien rattrapé le retard). OpenCL n'as pas ce soucis en étant dépendant d'un groupement d'industrie dés le départ et non d'une seul entreprise.

  15. #15
    Membre émérite

    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 995
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 995
    Points : 2 528
    Points
    2 528
    Par défaut
    Citation Envoyé par stardeath Voir le message
    faudrait peut être pas oublier que cuda, c'est nvidia only, que la prise en charge d'opencl dépend du constructeur (comme opengl) et qu'opengl sent le moisi à plein nez parce que certains contributeurs ne veulent pas remettre en cause la compatibilité de leurs applis.

    microsoft avec directx a réussi à mettre en place un système indépendant du bon vouloir des constructeurs, a osé remettre son api à zéro avec directx 10, pour obtenir une api de qualité où on ne se pose pas la question de l'utilisation d'extensions propriétaires.

    que microsoft mette son nez la dedans est plutôt une bonne chose, on peut espérer avoir un ensemble de fonctionnalités que l'on pourra utiliser les yeux fermés sans se soucier du constructeurs du matos dont on dispose.
    Parce que tu crois que si les fabricants de GPU ne les rendaient pas compatible DirectX, DirectX aurait le moindre intérêt ? C'est avec DirectX que tu te rends dépendant d'un seul fournisseur, Microsoft.

    OpenGL est implémenté par plusieurs fabricants de puces, utilisé dans de nombreux OS et son évolution est dirigé par une fondation indépendante, le Khronos Group.

  16. #16
    Responsable .NET

    Avatar de Hinault Romaric
    Homme Profil pro
    Consultant
    Inscrit en
    Janvier 2007
    Messages
    4 570
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2007
    Messages : 4 570
    Points : 252 372
    Points
    252 372
    Billets dans le blog
    121
    Par défaut
    Microsoft ouvre la spécification C++ AMP aux autres compilateurs
    pour la conception d'applications parallèles en C++ utilisant la puissance du GPU

    Mise à jour du 07/02/2012, par Hinault Romaric

    Comme Microsoft l’avait promis lors de la présentation de C++ AMP, l’éditeur a publié le cahier de charge de la spécification afin que les autres éditeurs de compilateur C++ puissent l’utiliser.

    Pour rappel, C++ AMP (Accelerated Massive Parallelism) est une nouvelle technologie conçue pour aider les développeurs C++ dans la conception d'applications parallèles utilisant le GPU. C++ AMP s’appuie sur les bibliothèques de programmation d'applications multimédia DirectX et facilite le développement en exploitant la puissance du matériel massivement parallèle (GPU et APU).

    C++ AMP permet donc de combler les attentes des développeurs qui ont de plus en plus besoin de tirer parti de la puissance des GPU dans leurs applications. La technologie a été développée tout d’abord pour Visual Studio 2011, et un aperçu est déjà disponible avec la Developper Preview de l’environnement de développement publiée en septembre dernier.

    La technologie a été mise au point en partenariat avec NVIDIA et AMD. Les ingénieurs de Microsoft ont réduit au minimum le nombre de changements dans le code. C++ AMP comporte quelques restrictions qui sont nécessaires lors de l’exécution du code sur plusieurs processeurs. Il dispose également d’un certain nombre de fonctionnalités supplémentaires comme les types de tableaux multidimensionnels et le support du transfert de mémoire synchrone.

    La spécification publiée sous une licence Open Specification Promise (OPS) par Microsof lors de la conférence GoingNative C++ 2012, peut désormais être utilisée par d’autres responsables de compilateur C++ comme Embarcadero, Intel ou encore la Free Software Foundation, tout en étant à l’abri de toute revendication de droits de brevets par l’éditeur.

    L’implémentation de C++ AMP dans Visual Studio 11 utilise DirectCompute pour générer le byte code qui sera interprété par le GPU. Les éditeurs de compilateur C++ pourront utiliser d’autres interfaces comme CUDA de Nvidia.

    L’éditeur travaille par ailleurs avec le comité de normalisation du C++, afin de faire adopter les idées derrières C++ AMP dans le noyau du langage.


    Source : Microsoft
    Vous souhaitez participer aux rubriques .NET ? Contactez-moi

    Si déboguer est l’art de corriger les bugs, alors programmer est l’art d’en faire
    Mon blog, Mes articles, Me suivre sur Twitter
    En posant correctement votre problème, on trouve la moitié de la solution

  17. #17
    Nouveau Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Février 2012
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2012
    Messages : 1
    Points : 0
    Points
    0
    Par défaut Super !!
    Je n'ai jamais développé autours des GPU mais je pense que ça va être du pain béni pour les développeurs de virus. Ils vont pouvoir développer quelque chose autours du GPU avec visual studio (qui simplifie la programmation sous Windows). Reste a voir si les antivirus et Windows sont capable de gérer les applications GPU. Les rootkits risquent d'être très puissant dans le cas contraire.

  18. #18
    Membre émérite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2008
    Messages
    832
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 832
    Points : 2 625
    Points
    2 625
    Par défaut
    Ca a l'air plutôt intéressant, et en plus les spec sont ouvertes, ce qui veut dire qu'on aura des implémentations libres, c'est que du bonheur.

    Y'a plus qu'a voir comment qu'on s'en sert (et a attendre un peu pour les non windowsiens) pour le coup

    Et si en plus ils arrivent a faire intégrer une telle techno au C++ pour le prochain standard (bon, en 10 ans, on a le temps de voir venir remarquez xD) ce serait excellent...
    Y'a pas a dire, ces derniers temps MS monte dans mon estime (bien que j'aie du mal avec leurs nouvelles IHM, mais ça, les goûts et les couleurs...)...
    MS qui se met a faire des standards et a bosser avec les autres, on dirait qu'ils sont retombés en "enfance" quand ils ont pris la main sur le marché du PC contre apple (ils ne bossent plus avec IBM ici, mais avec nvidia et amd)


    [edit]
    @0x90_op
    le troll : tu sors.
    Quoique, je devrais dire: le boulet, tu sors. Ca change rien aux virus ça, et en plus, ça ne sera pas limité a windows (ben oui, spec libre, donc sûrement porté)

  19. #19
    Membre éprouvé Avatar de jmnicolas
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2007
    Messages
    427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2007
    Messages : 427
    Points : 976
    Points
    976
    Par défaut
    C++ AMP permet donc de combler les attentes des développeurs qui ont de plus en plus besoin de tirer parti de la puissance des GPU dans leurs applications.
    Malgré tout le battage médiatique autour de la parallélisation, je suis pas sûr qu'il y ait beaucoup de développements concernés.
    The greatest shortcoming of the human race is our inability to understand the exponential function. Albert A. Bartlett

    La plus grande lacune de la race humaine c'est notre incapacité à comprendre la fonction exponentielle.

  20. #20
    Membre émérite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2008
    Messages
    832
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 832
    Points : 2 625
    Points
    2 625
    Par défaut
    Citation Envoyé par jmnicolas Voir le message
    Malgré tout le battage médiatique autour de la parallélisation, je suis pas sûr qu'il y ait beaucoup de développements concernés.
    Hum... pour la parallélisation en général, tout ce qui fait une vérification derrière le dos de l'utilisateur je dirai, donc IDE naturellement, mais aussi traitement de texte (vérification orthographique).
    Logiciels utilisant la compression (ça inclue même les traitements de texte de nos jours, vue la propension à toujours passer par un xml, qui est ensuite compressé... cf docx).
    Logiciels de traitement d'images et jeux.
    Bases de données, je suis prêt à le parier (mais sans preuve toutefois).
    Et sûrement pleins d'autres cas que je ne vois pas.

    Pour le cas du GPU seulement, c'est simple, tout ce qui emploie le traitement d'image (détection d'objet, retouche photo automatique...) ou des calculs mathématiques pointus (pas d'exemple en tête).
    Et si je pense à compiz-fusion, le fameux bureau 3D qui tourne sous X, il permet de faire faire les calculs relatifs à l'IHM par le GPU. Ca permet d'économiser des ressources CPU il paraît (je dis "il paraît" parce que je n'ai pas vraiment eu de preuve de l'intérêt du GPU pour les perfs. Excepté pour utiliser des effets qui ne sont que de la poudre aux yeux - feu, fondus, ce genre de trucs - , naturellement. L'affichage du cube peut-être?).

    Ce qui est certain pour moi, c'est que la parallélisation permet de bien accélérer les logiciels qui s'en servent, et en réfléchissant, je pense qu'on peut l'appliquer à énormément d'applications. Bien que parfois le coût de développement supérieur et le faible gain en terme de performances le rend inutile je suppose.
    Autre chose, il semble que les processeurs ne vont plus augmenter leur cadence brute, mais leur nombre de coeurs. C'est la que la parallélisation entre en jeu pour donner de la puissance. Si on peut en plus squatter les cycles du GPU et de l'APU plus facilement, ce sera des gains de puissance "toujours ça de pris".

    Après, je suis pas un expert de la question, mais je dirai que cette librairie(?) en permettant a plus de gens d'utiliser facilement la parallélisation pourrait faire apparaître d'autres usages (plus ou moins) judicieux.

Discussions similaires

  1. C++ AMP : le nouvel outil de Microsoft
    Par Hinault Romaric dans le forum Visual C++
    Réponses: 0
    Dernier message: 16/06/2011, 13h45
  2. Réponses: 7
    Dernier message: 08/06/2011, 20h35
  3. Réponses: 2
    Dernier message: 21/01/2011, 11h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo