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 :

Intel Xeon Phi "Knights Landing"


Sujet :

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

  1. #1
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 618
    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 618
    Points : 188 591
    Points
    188 591
    Par défaut Intel Xeon Phi "Knights Landing"
    Pour contrecarrer le mouvement des processeurs graphiques (GPU) dans le domaine du calcul scientifique de haute performance (HPC), Intel a lancé en 2013 ses coprocesseurs Xeon Phi. L’idée principale est de fournir un grand nombre de cœurs (une soixantaine pour la première génération), atout principal des GPU (les modèles actuels montent à plusieurs milliers de cœurs). La première génération de Xeon Phi est notamment utilisée dans le supercalculateur chinois Tianhe-2, le plus puissant au monde depuis sa construction en 2013, selon le classement Top500.

    Cependant, comme pour les GPU, ces cœurs sont très différents de ceux des processeurs plus traditionnels (comme les gammes Core i3-7 d’Intel, par exemple) : ils sont nettement moins véloces, avec des fréquences de l’ordre du gigahertz — le parallélisme de ces coprocesseurs est leur principale caractéristique. Néanmoins, contrairement aux GPU, ils peuvent se programmer d’une manière très similaire aux processeurs classiques.


    La deuxième génération est sur le point d’arriver, elle devrait être commercialisée cette année. Connue sous le nom de code Knights Landing, cette nouvelle mouture tient du superlatif pour ses caractéristiques : pas moins de septante-deux cœurs, chacun hébergeant deux unités de traitement vectoriel AVX-512 (qui travaillent sur des registres de cinq cent douze bits) ; individuellement, ces cœurs devraient être trois fois plus rapides que précédemment. La puce elle-même est gravée avec un processus à quatorze nanomètres, ce qui se fait de mieux pour le moment, avec notamment de grands gains en termes de puissance consommée (et de chaleur dissipée).

    L’architecture prévoit aussi des bus DDR4 pour la mémoire principale, mais surtout seize gigaoctets de mémoire intégrée sur la puce elle-même (avec une bande-passante jusqu’à cinq fois supérieure à celle de la DDR4, quinze fois par rapport à la DDR3, encore majoritaire dans les ordinateurs actuels). Cette mémoire sera à peu près aussi rapide que les caches L3 des processeurs actuels (bien qu’ils soient limités à quelques mégaoctets !), avec une bande passante de cinq cents gigaoctets par seconde.


    Cette super-mémoire cache utilisera l’interface HMC (hybrid memory cube), concurrente de HBM (high bandwidth memory) en cours de déploiement sur les processeurs graphiques (les cartes Fury remettent AMD à l’avant-plan en termes de performance). In fine, un tel processeur pourra proposer une puissance de calcul de l’ordre de trois téraflops, c’est-à-dire trois mille milliards d’opérations en virgule flottante par seconde.

    Une autre nouveauté par rapport à la génération précédente est que ces coprocesseurs pourront servir de processeurs principaux et faire fonctionner le système d’exploitation de la machine. L’intérêt majeur est de se débarrasser d’une connexion par bus PCI-Express, qui limitait la performance de son prédécesseur (une constatation partagée par le concurrent NVIDIA, qui s’apprête à proposer sa technologie NVLink).


    Au niveau de la communication, Intel s’apprête également à communiquer plus d’informations sur son Omni Path, une interface d’interconnexion entre nœuds dans un supercalculateur. Intel s’apprête ainsi à marcher sur les platebandes de géants comme InfiniBand, avec une technologie présentée comme supérieure. Notamment, les latences de communication devraient être de l’ordre de cent nanosecondes, quand InfiniBand monte à presque deux microsecondes, Ethernet à dix à cent microsecondes.

    Chaque processeur Xeon Phi Knights Landing aura deux ports Omni Path. L’objectif semble être l’intégration verticale dans les supercalculateurs, Intel ayant annoncé un partenariat avec HP pour la construction de serveurs autour des technologies HPC d’Intel, rassemblées sous le nom de SSF (scalable system framework), dans le contexte de la gamme Apollo de HP.


    Sources et crédit images : Intel’s Xeon Phi 14nm ‘Knights Landing’ Co-Processors Detailed – OmniPath Architecture 100 Series and 16GB HMC on a 2.5D Interposer et Quick Note: Intel “Knights Landing” Xeon Phi & Omni-Path 100 @ ISC 2015.


    Cette entrée a été publiée dans HPC le16 juillet 2015par dourouc05.
    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 !

  2. #2
    Inactif  

    Homme Profil pro
    NR
    Inscrit en
    Juin 2013
    Messages
    3 715
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : NR
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2013
    Messages : 3 715
    Points : 1 184
    Points
    1 184
    Billets dans le blog
    9
    Par défaut
    Je suis peut être un mauvais un développeur, mais j'ai toujours eu du mal de paralléliser des programmes, en tous cas de manière efficace.
    Gérer 2-3 thread encore sa vas mais au delà... j'en vois pas l'utilité déjà.
    En générale je fais un thread pour l'interface graphique et 1-2 pour le reste.

    Je ne fais pas de jeux vidéos, ni de calcule scientifique, quelqu'un peut il m'expliquer comment on peut faire un calcule sur 72 cœurs ?, a moins qu'on réalise 72 calcules indépendant en même temps, dans ce cas oui, c'est facile a exploité.

    Si j'ai bien compris, il vaut mieux faire pleins de petits calcules en mêmes temps sur des cœurs peu performant, qu'un gros calcule sur un cœur très puissant.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    204
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 204
    Points : 540
    Points
    540
    Par défaut
    @sazearte : Comme dit dans l'article cela vise avant tout le calcul scientifique. A mon avis, il ne faut pas le comprendre comme quoi on va faire 1 calcul sur 72 cœurs mais plutôt 72 calculs (beaucoup plus même) sur 72 cœurs. Par exemple, en infographie on va projeté les points des triangles des objets que l'on veut afficher à l'écran pour passer de la 3D à la 2D. Or, la projection d'un point n'impactant pas celles des autres, tu peux tous les projeter en parallèle.

  4. #4
    Inactif  

    Homme Profil pro
    NR
    Inscrit en
    Juin 2013
    Messages
    3 715
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : NR
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2013
    Messages : 3 715
    Points : 1 184
    Points
    1 184
    Billets dans le blog
    9
    Par défaut
    A mon avis, il ne faut pas le comprendre comme quoi on va faire 1 calcul sur 72 cœurs mais plutôt 72 calculs (beaucoup plus même) sur 72 cœurs.
    C'est bien ce que je pensait, ce produit est uniquement destinée a ceux qui font plein de petits calcules indépendant les uns des autres. Merci pour ces précisions.

  5. #5
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 618
    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 618
    Points : 188 591
    Points
    188 591
    Par défaut
    Est-ce qu'un produit matriciel rentre dans ta définition de "plein de petits calcules indépendant les uns des autres" ? Il y a un haut degré d'indépendance, certes, mais pas entièrement (les lignes et colonnes sont réutilisées régulièrement)… et pourtant l'algorithme du produit exploite tous les cœurs disponibles (si les matrices sont assez grandes). De même pour la FFT ou d'autres algos souvent utilisés en calcul scientifique. Une structure avec un énorme for dont les itérations sont parfaitement indépendantes n'est pas le seul moyen d'utiliser ces architectures (mais c'est le plus facile).
    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 !

  6. #6
    Inactif  

    Homme Profil pro
    NR
    Inscrit en
    Juin 2013
    Messages
    3 715
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : NR
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2013
    Messages : 3 715
    Points : 1 184
    Points
    1 184
    Billets dans le blog
    9
    Par défaut
    Disons qu'il faut une certaine indépendance, sinon sa sert a rien de paralléliser, si il faut attendre A pour que B se lance pour que C se lance...etc sa sert a rien.

    Surtout que comme ces core sont peu performant, sa prend du temps (le but étant d'en gagner), faut pas trop leurs en demandez.

  7. #7
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 618
    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 618
    Points : 188 591
    Points
    188 591
    Par défaut
    Au contraire, ça peut être très utile — tout dépend du contenu de tes tâches ! Par exemple, pour résoudre une équation différentielle 4D, tu as deux processus imbriqués : l'un qui fonctionne à chaque pas de temps (3D), puis un deuxième qui s'occupe de l'intégration temporelle (1D). Dans ce cas, tu as une forte dépendance entre les tâches, mais la parallélisation reste utile, à condition de regarder à la bonne échelle (résoudre le problème 3D à un pas de temps, synchroniser, intégrer, synchroniser, recommencer). Ça reste effectivement une application de niche, tout ne s'y prête pas, loin de là.
    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 !

  8. #8
    Inactif  

    Homme Profil pro
    NR
    Inscrit en
    Juin 2013
    Messages
    3 715
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : NR
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2013
    Messages : 3 715
    Points : 1 184
    Points
    1 184
    Billets dans le blog
    9
    Par défaut
    Par exemple, pour résoudre une équation différentielle 4D, tu as deux processus imbriqués : l'un qui fonctionne à chaque pas de temps (3D), puis un deuxième qui s'occupe de l'intégration temporelle (1D). Dans ce cas, tu as une forte dépendance entre les tâches, mais la parallélisation reste utile, à condition de regarder à la bonne échelle (résoudre le problème 3D à un pas de temps, synchroniser, intégrer, synchroniser, recommencer). Ça reste effectivement une application de niche, tout ne s'y prête pas, loin de là.
    La façon dont tu explique me fait penser a une vrai machine a gaz.

    résoudre le problème 3D à un pas de temps, synchroniser, intégrer, synchroniser, recommencer
    C'est le problème des thread justement : leurs gestion, sa as vite fait de se transformer en vrai bordel ingérable.

  9. #9
    MikeRowSoft
    Invité(e)
    Par défaut
    Citation Envoyé par sazearte Voir le message
    Je suis peut être un mauvais un développeur, mais j'ai toujours eu du mal de paralléliser des programmes, en tous cas de manière efficace.
    Gérer 2-3 thread encore sa vas mais au delà... j'en vois pas l'utilité déjà.
    En générale je fais un thread pour l'interface graphique et 1-2 pour le reste.

    Je ne fais pas de jeux vidéos, ni de calcule scientifique, quelqu'un peut il m'expliquer comment on peut faire un calcule sur 72 cœurs ?, a moins qu'on réalise 72 calcules indépendant en même temps, dans ce cas oui, c'est facile a exploité.

    Si j'ai bien compris, il vaut mieux faire pleins de petits calcules en mêmes temps sur des cœurs peu performant, qu'un gros calcule sur un cœur très puissant.
    Tu es donc soumis aux contraintes temporel de datation dans ta façon de développez. Et en aucun cas au délai de réalisé des actions. Donc pas vraiment scientifique, mais plutôt policier et pas du tout biologiste ou chimiste, mais plutôt commerçant.
    D'habitude le système d'exploitation soulage et permet de rendre accessible le développement. Le système d'exploitation se rapprochant des sémaphores et même là il lui arrive de ne pas être performant ou de carrément "perdre les pédales".
    Je n'ai en aucun cas remis en cause tes compétences, mais là tu as parler d'une application pour lequel tu réserve des threads pour empêcher de "figé" mais pas éviter de ralentir ou pénaliser.

    Le coté humain de se focalisé sur qu'un seul point de réflexion est souvent tragique pour les scientifiques en l'informatique, puisque cela ne se rapproche de scénarios parallèles, le cas du try catch C++ est purement celui des massivement parallèles avec des incertitudes de sémaphores, donc vraiment un système sur plusieurs CPU, et parfois même en réseau (ex: M.P.I. qui n'est pas l'un des meilleurs). Très loin de se dont tu as faire l’observation.
    Dernière modification par MikeRowSoft ; 09/08/2015 à 15h49.

  10. #10
    Expert confirmé Avatar de DonQuiche
    Inscrit en
    Septembre 2010
    Messages
    2 741
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 2 741
    Points : 5 485
    Points
    5 485
    Par défaut
    Citation Envoyé par sazearte Voir le message
    Je suis peut être un mauvais un développeur, mais j'ai toujours eu du mal de paralléliser des programmes, en tous cas de manière efficace.
    Gérer 2-3 thread encore sa vas mais au delà... j'en vois pas l'utilité déjà.
    En générale je fais un thread pour l'interface graphique et 1-2 pour le reste.

    Je ne fais pas de jeux vidéos, ni de calcule scientifique, quelqu'un peut il m'expliquer comment on peut faire un calcule sur 72 cœurs ?, a moins qu'on réalise 72 calcules indépendant en même temps, dans ce cas oui, c'est facile a exploité.

    Si j'ai bien compris, il vaut mieux faire pleins de petits calcules en mêmes temps sur des cœurs peu performant, qu'un gros calcule sur un cœur très puissant.
    D'abord as-tu de tels besoins ? Si tu des besoins justifiant l'utilisation d'un monstre comme le Xeon Phi, il est très probable qu'il existe un algorithme bien plus parallélisable. Si en revanche tu sous-exploites déjà trois coeurs, pas la peine de paralléliser sur 72.

    Et puis, tu sais, si tu passes en revue toutes tes boucles, tu te rendras compte que la grande majorité d'entre elles sont parallélisables car leurs calculs sont indépendants. Et il y a finalement peu de problèmes (un algo est une réponse à un problème) qui ne sont pas efficacement parallélisables bien au-delà de quelques coeurs.


    Par ailleurs il y a les bibliothèques : demain tu auras besoin d'interpréter les paroles de l'utilisateur, de reconnaître le visage de son chien, ou de bâtir des profils à partir de pétaoctets de données. Et tu t'appuieras pour cela sur des biblios très parallélisées et toutes faîtes. Sans parler des compilateurs qui vont de plus en plus paralléliser automatiquement chaque fois qu'ils en auront l'opportunité (pour des bénéfices limités toutefois : il ne s'agit pas de bâtir des archis parallèles à notre place, simplement de paralléliser des boucles).

    Enfin à ta question : comment programme t-on ça, j'ai envie de répondre : pas en C++ ou en Java. On peut. On le fait (de moins en moins). Mais ce n'est pas adapté.

  11. #11
    Inactif  

    Homme Profil pro
    NR
    Inscrit en
    Juin 2013
    Messages
    3 715
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : NR
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2013
    Messages : 3 715
    Points : 1 184
    Points
    1 184
    Billets dans le blog
    9
    Par défaut
    D'abord as-tu de tels besoins ? Si tu des besoins justifiant l'utilisation d'un monstre comme le Xeon Phi, il est très probable qu'il existe un algorithme bien plus parallélisable. Si en revanche tu sous-exploites déjà trois coeurs, pas la peine de paralléliser sur 72.
    Je fais du C et de l'assembleur sur de l'embarqué, donc non j'ai pas besoin d'un Xeon Phi, la plupart du temps je dois développer avec des processeurs PowerPC mono cœur et 64mo de ram.
    On utilise des PowerPC car il sont plus résistant que les x86, dans les conditions extrêmes ou nos appareils sont envoyer (antarctiques et en très haute altitude)
    (Au passage sa explique pourquoi j'aime AmigaOS )

    Clairement je suis a l'opposé totale du client cible.
    Cela dit se sujet ma intrigué sur l'utilisation de ces 72 cœurs.

    Puisque le calcule scientifique et un monde de niche, je pense pas qu'il existe des bibliothèques préexistante qui mâche tous le boulot dans la majorité des cas, même en python Scipy/Numpy sont loin de tout recouvrir le monde des math.
    Je demandais au dev qui sont dans ce cas de me dire comment il faisait. Ils n'ont pas 1 calcule a paralléliser, mais ils ont plusieurs calcules (plus ou moins indépendant) qu'ils peuvent lancer en même temps, c'est ce que j'ai compris de vos remarques.

    Apres j'admet que je suis loin d'être un adepte des threads, puisque j'en utilise rarement, forcément j'imagine que pour paralléliser des taches vous seriez plus compétent que moi.

  12. #12
    Expert confirmé Avatar de DonQuiche
    Inscrit en
    Septembre 2010
    Messages
    2 741
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 2 741
    Points : 5 485
    Points
    5 485
    Par défaut
    Citation Envoyé par sazearte Voir le message
    Je demandais au dev qui sont dans ce cas de me dire comment il faisait. Ils n'ont pas 1 calcule a paralléliser, mais ils ont plusieurs calcules (plus ou moins indépendant) qu'ils peuvent lancer en même temps, c'est ce que j'ai compris de vos remarques.
    Cette terminologie "un calcul" me froisse un peu. Encore une fois ton algo est peut-être séquentiel mais ton problème est sans doute parallélisable en "plusieurs petits calculs".

  13. #13
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 618
    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 618
    Points : 188 591
    Points
    188 591
    Par défaut
    Citation Envoyé par sazearte Voir le message
    C'est le problème des thread justement : leurs gestion, sa as vite fait de se transformer en vrai bordel ingérable.
    Citation Envoyé par sazearte Voir le message
    Puisque le calcule scientifique et un monde de niche, je pense pas qu'il existe des bibliothèques préexistante qui mâche tous le boulot dans la majorité des cas, même en python Scipy/Numpy sont loin de tout recouvrir le monde des math.
    Justement, il existe pas mal d'outils pour se simplifier la vie, ne fut-ce que pour la parallélisation. Par exemple, pour tout ce qui est multifil, il est nettement plus courant d'utiliser OpenMP que Pthreads. Ça facilite franchement la tâche, le code correspondant très fort à la version séquentielle (sans parallélisation), avec une flopée de #pragma pour indiquer la parallélisation à effectuer (plusieurs fils, SIMD, accélérateur externe comme le Xeon Phi https://software.intel.com/en-us/art...c-architecture). Puis il y a OpenACC, poussé par NVIDIA pour le moment, qui propose le même principe, mais peut aussi générer du code pour GPU. Et j'ignore encore les langages prévus pour ça (Julia, Nim et encore toute une tripotée), même si ça ne me paraît pas encore utilisé par le plus grand nombre. (Puis les bibliothèques d'analyse numérique, qui font de tout, en grand nombre…)

    Sinon, si les septante-deux cœurs t'intriguent, regarde du côté des GPU, où ça monte jusque quatre mille et quelques pour les modèles haut de gamme récents .
    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 !

  14. #14
    MikeRowSoft
    Invité(e)
    Par défaut
    Citation Envoyé par sazearte Voir le message

    Clairement je suis a l'opposé totale du client cible.
    Cela dit se sujet ma intrigué sur l'utilisation de ces 72 cœurs.
    Oui, mais peut-être qu'un jour tu participera au développement d'une application qui utilisera un CPU du même type.
    72 cœurs c'est pas grand choses si chaques cœurs permet un ou deux threads (deux en hyperthreading).
    Coupler ou fusionner les transistors avec du modulatoire de fréquences permet en théorie une infinité threads.
    Mais c'est aussi très loin du modulatoire de fréquences des connectiques comme avec ADSL, VDSL, radio onde courte, etc... puisque se n'est pas de l'acheminement d'informations, mais des traitements instructions.
    Je ne citerais pas des théories quantique dans se cas puisque c'est du contrôlé pour lequel chaque variation possible à réaliser sont connues à l'avance.
    Dernière modification par MikeRowSoft ; 09/08/2015 à 18h34.

  15. #15
    Expert confirmé Avatar de DonQuiche
    Inscrit en
    Septembre 2010
    Messages
    2 741
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 2 741
    Points : 5 485
    Points
    5 485
    Par défaut
    Citation Envoyé par dourouc05 Voir le message
    Sinon, si les septante-deux cœurs t'intriguent, regarde du côté des GPU, où ça monte jusque quatre mille et quelques pour les modèles haut de gamme récents .
    Sauf qu'un coeur CPU va typiquement traiter quatre instructions par cycle (et ces instructions peuvent porter sur des vecteurs de 512 bits) tandis qu'avec un "coeur CUDA" tu peux au mieux espérer une instruction scalaire par cycle.

    Et dans le cas du GPU il te faut absolument des données ordonnées en tableau, et tout accès non-séquentiel va entraîner une chute brutale des performances, bien plus qu'avec un CPU. Plus généralement les performances du CPU sont beaucoup plus stables et proches du maximum théorique, alors que le GPU est très sensible au travail à réaliser.

    Enfin les possibilités de synchronisation et communication inter-threads sont elles aussi beaucoup plus limitées, ce qui limite l'utilité du GPU.


    En pratique une solution comme le Xeon Phi n'a pas à rougir d'une Tegra : l'un sera plus véloce sur certaines tâches, l'autre sur d'autres tâches. Par contre le premier est beaucoup plus flexible et simple à programmer.

  16. #16
    MikeRowSoft
    Invité(e)
    Par défaut
    Citation Envoyé par DonQuiche Voir le message
    Sauf qu'un coeur CPU va typiquement traiter quatre instructions par cycle (et ces instructions peuvent porter sur des vecteurs de 512 bits) tandis qu'avec un "coeur CUDA" tu peux au mieux espérer une instruction scalaire par cycle.

    Et dans le cas du GPU il te faut absolument des données ordonnées en tableau, et tout accès non-séquentiel va entraîner une chute brutale des performances, bien plus qu'avec un CPU. Plus généralement les performances du CPU sont beaucoup plus stables et proches du maximum théorique, alors que le GPU est très sensible au travail à réaliser.

    Enfin les possibilités de synchronisation et communication inter-threads sont elles aussi beaucoup plus limitées, ce qui limite l'utilité du GPU.


    En pratique une solution comme le Xeon Phi n'a pas à rougir d'une Tegra : l'un sera plus véloce sur certaines tâches, l'autre sur d'autres tâches. Par contre le premier est beaucoup plus flexible et simple à programmer.
    Un core CUDA c'est comme le core d'une calculatrice vectorielle ? Tracer des traits virtuelles ? PhysX le module calculatrice de la physique des matériaux ?
    Je crois bien qu'il aurait raté leur vocation après la calculatrice TI92 et son noyau fargo (hack) dans les salles d'examens. En tous cas ça peut aider les modules universitaires en images (snakes, filtres, etc...).
    Dernière modification par MikeRowSoft ; 09/08/2015 à 18h57.

  17. #17
    MikeRowSoft
    Invité(e)
    Par défaut
    Citation Envoyé par dourouc05 Voir le message
    (résoudre le problème 3D à un pas de temps, synchroniser, intégrer, synchroniser, recommencer).
    Tu résonne comme un élève du lycée jardin d'essai en Guadeloupe (spécialiste biologie et chimie) dans se cas.
    Dans se cas la modélisation 3D en mémoire est comparable à un perceptron multi-couche pour lequel les valeurs des poids et éventuellement des noeuds change en fonction de se qui est mis en propagation.

    De connaitre les contraintes du collisionneur en suisse en matière de relevé peux peut-être t'aider à résoudre le problème de pas de temps typique du quartz et des cycles d'horloges.
    Dernière modification par MikeRowSoft ; 10/08/2015 à 10h24.

  18. #18
    Membre éprouvé
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Mai 2016
    Messages
    313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2016
    Messages : 313
    Points : 1 237
    Points
    1 237
    Par défaut
    Cette fois ça y est, le Xeon Phi knights landing est maintenant disponible, les livraisons ont commencé.

    http://www.tomshardware.com/news/int...ing,32121.html

    Suivant les versions, les prix vont de 2438$ à 6254$.

  19. #19
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 618
    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 618
    Points : 188 591
    Points
    188 591
    Par défaut Intel livre ses premiers Xeon Phi Knights Landing
    Intel livre ses premiers Xeon Phi Knights Landing
    La nouvelle mouture de ses coprocesseurs concurrence NVIDIA en apprentissage profond

    Il y a de cela un an, la nouvelle mouture des processeurs Intel Xeon Phi, nom de code Knights Landing, était annoncée : ces processeurs sont maintenant livrés aux fournisseurs de matériel HPC. Avec ces nouvelles puces, Intel vise le même segment que NVIDIA avec ses cartes graphiques (GPU) de génération Pascal : l’apprentissage profond, le calcul scientifique de haute performance (HPC).

    Actuellement, quatre modèles sont disponibles, avec un nombre de cœurs variable (de soixante-quatre à septante-deux) et des fréquences aussi variables (entre 1,3 et 1,5 GHz), des caractéristiques proches des GPU actuels comme NVIDIA Pascal. Tous sont livrés avec seize gigaoctets de mémoire vive (MCDRAM), empilée et très proche du processeur, pour une bande passante de presque cinq cents gigaoctets par seconde. Ces différentes puces représentent des compromis différents : la plus puissante (7290, 3,46 Tflops) est la plus chère (6294 $), avec un produit bien plus abordable au niveau du téraflops par euro (7210 à 2438  $ pour 2,66 Tflops) ; l’une optimise le ratio performance par watt (7250, 3,05 Tflops pour 215 W, là où le 7290 fournit 3,46 Tflops pour 245 W) et la dernière la mémoire disponible par cœur (7230, soixante-quatre cœurs, comme le 7210, mais la mémoire a une fréquence plus élevée).


    Au niveau des chiffres bruts, ces processeurs ne dépassent pas l’offre de NVIDIA : « à peine » trois téraflops et demi pour le plus haut de gamme, quand les GPU NVIDIA Pascal atteignent cinq téraflops (et une bande passante de cinquante pour cent plus élevée, à sept cent vingt gigaoctets par seconde). Par contre, selon les applications, à cause de la différence d’architecture fondamentale, les résultats varient énormément (les Xeon Phi sont organisés comme des processeurs traditionnels : chaque cœur peut exécuter une instruction propre, contrairement aux GPU, où la même instruction est exécutée sur un grand nombre de cœurs). Ainsi, pour de la simulation de dynamique moléculaire, pour le test de performance LAMPPS, un Xeon Phi de milieu de gamme (7250) a fonctionné cinq fois plus vite en consommant huit fois moins de mémoire qu’un GPU NVIDIA K80 (la génération précédant les Pascal). Pour de la visualisation par lancer de rayon, Intel indique être cinq fois plus rapide ; le facteur descend à trois pour de la simulation de risque financier. Ces comparaisons ne sont pas entièrement équitables, à cause de la différence d’âge entre les processeurs, mais indiquent la tendance qu’Intel veut montrer. Ces résultats devront être confirmés par des indépendants pour être fiables.

    Parmi les tests de performance, Intel s’est aussi orienté vers l’apprentissage profond, branche dans laquelle NVIDIA s’impose actuellement. Ce domaine est actuellement à la pointe de la recherche, avec des résultats de plus en plus intéressants : c’est grâce à des techniques de ce genre que Google a pu battre le joueur le plus fort au monde au jeu de go. Sur un même jeu de test, un Xeon Phi 7250 a obtenu sa réponse en cinquante fois moins de temps qu’un seul processeur traditionnel ; avec quatre tels Xeon Phi, les temps de calcul ont été réduits d’un facteur deux par rapport à quatre GPU NVIDIA K80.


    Intel précise également qu’il est plus facile de programmer ses processeurs Xeon Phi : ils embarquent beaucoup plus de cœurs, mais c’est la seule différence avec les processeurs habituels de nos PC, alors qu’il faut réécrire complètement son code (ou utiliser des API adaptées) pour les GPU, avec une phase d’optimisation du code qui nécessite des compétences plus spécifiques. La nouvelle génération de Xeon Phi apporte cependant une distinction plus importante : ces processeurs Intel pourront être utilisés comme processeurs principaux (pas seulement comme cartes d’extension), ce qui évite les opérations de transfert de données, très limitantes pour la performance des applications actuelles. Il reste cependant à déterminer si ces processeurs seront suffisamment rapides pour effectuer toutes les opérations des applications qui leur sont soumises (ils fonctionnent à une fréquence réduite par rapport aux processeurs habituels : ils excellent dans le traitement parallèle, mais pas en série, qui constitue parfois une part importante du code à exécuter).

    Ni ces nouveaux Xeon Phi ni les GPU NVIDIA Pascal ne sont actuellement utilisés à grande échelle pour du calcul scientifique. Cependant, ces premiers résultats montrent que les deux jouent dans la même cour. Si les mesures d’Intel se généralisent, ils deviendront un concurrent plus que très sérieux de NVIDIA, notamment dans le marché en expansion de l’apprentissage profond ; s’ils ont en plus l’avantage du prix, la dominance de NVIDIA sera vite mise à mal.

    Sources : Intel Takes on NVIDIA with Knights Landing Launch, Intel’s Knights Landing: Fresh x86 Xeon Phi lineup for HPC and AI, Intel Xeon Phi Knights Landing Now Shipping; Omni Path Update, Too.
    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 !

  20. #20
    Inactif  

    Homme Profil pro
    NR
    Inscrit en
    Juin 2013
    Messages
    3 715
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : NR
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2013
    Messages : 3 715
    Points : 1 184
    Points
    1 184
    Billets dans le blog
    9
    Par défaut
    On vas prochainement acheter ce CPU (pour remplacer certains Xeon mal adapté).
    Si j'ai fait l'impasse sur la génération précédente c'était pour une raison comme le rappelle l'article : c'était une carte d'extension, pas un cpu ou l'on pouvait booter un os dessus.
    La sa change on pourra installer Windows/Linux dessus directement.

    En dehors du calcule, je pense que ces processeurs pourrait être intéressants pour le web, en plsu des serveurs mutualisé et offre VPS, les dédiés y trouverait leurs compte, car un visiteur qui ouvre une page sa consomme peu de ressource sur un core de cpu. Donc il est plus intéressant à mon sens que le serveur et pleins de core mais de faible puissance que 10 core très puissants.

    Au niveau des chiffres bruts, ces processeurs ne dépassent pas l’offre de NVIDIA : « à peine » trois téraflops et demi pour le plus haut de gamme, quand les GPU NVIDIA Pascal atteignent cinq téraflops
    Il n'y a pas que la puissance brute qui compte, il vaut mieux avoir un processeur de 3 téraflops qu'on pourra exploiter à 100%, qu'un processeur graphique de 5 téraflops qu'on pourra exploiter qu'a 50%.
    Bien exploiter le cpu avec une architecture multicore, c'est plus simple qu'avec le gpu.

Discussions similaires

  1. Lenteur sur Intel Xeon ?
    Par PocoYote dans le forum Firebird
    Réponses: 5
    Dernier message: 18/12/2012, 15h19
  2. Intel lance les processeurs Xeon E3 et Xeon E7 Westmere-EX
    Par Idelways dans le forum Actualités
    Réponses: 0
    Dernier message: 06/04/2011, 13h29
  3. [intel xeon] condition d'utilisation
    Par frp31 dans le forum Composants
    Réponses: 1
    Dernier message: 24/10/2007, 16h17
  4. Problème avec carte intel gigabit ethernet
    Par tomnie dans le forum Matériel
    Réponses: 9
    Dernier message: 16/03/2004, 18h00
  5. Conversion Assembleur Motorola 68xxx en Intel 80xxx
    Par markham dans le forum Autres architectures
    Réponses: 3
    Dernier message: 22/11/2002, 20h09

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