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

 

  1. #1
    Chroniqueur Actualités
    Avatar de Patrick Ruiz
    Homme Profil pro
    Rédacteur technique
    Inscrit en
    février 2017
    Messages
    603
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Rédacteur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : février 2017
    Messages : 603
    Points : 20 654
    Points
    20 654

    Par défaut Java : Oracle et Intel proposent une API de prise en charge d’algorithmes qui se prêtent au paradigme SIMD

    Java : Oracle et Intel proposent une API de prise en charge d’algorithmes qui se prêtent au paradigme SIMD
    Utilisé en programmation vectorielle

    Des ingénieurs d’Intel et d’Oracle à l’origine d’une API de prise en charge des algorithmes qui se prêtent au paradigme SIMD. Le texte est consigné au sein de la proposition d’amélioration 338 – du langage Java – publiée sur les fils dédiés de l’OpenJDK.

    Avec SIMD – Single Instruction Multiple Data – on nage en plein dans l’univers de la programmation vectorielle. Il s’agit de donner aux développeurs Java la possibilité de manipuler plusieurs données en même temps en s’appuyant sur une unique instruction. L’introduction de cette API ouvrirait encore plus le langage à des problématiques d’actualité comme l’intelligence artificielle où l’on fait un usage extensif des structures de données matricielles. En effet, là où un processeur scalaire effectue N opérations pour remplir les cases d’un vecteur, il en faut une seule à un de ses homologues vectoriels pour atteindre le même objectif.

    Nom : calculs scalaire et vectoriel.jpg
Affichages : 3231
Taille : 68,5 Ko

    « L’API vectorielle offre un mécanisme d’écriture d’algorithmes vectoriels complexes en s’appuyant sur le support déjà offert par la machine virtuelle HotSpot, mais avec un modèle utilisateur qui rend les opérations de vectorisation plus prédictibles et plus robustes », écrivent les ingénieurs . L’API est donc destinée à donner aux développeurs les moyens d’exprimer une large gamme de calculs vectoriels de façon claire et concise. Illustration avec la portion de code suivante pour l’addition de deux vecteurs.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    static final FloatVector.FloatSpecies<Shapes.S256Bit> SPECIES =
            FloatVector.species(Shapes.S_256_BIT);
     
    void vectorComputation(float[] a, float[] b, float[] c) {
        int i = 0;
        for (; i < (a.length & ~(SPECIES.length() - 1));
               i += SPECIES.length()) {
            // FloatVector<Shapes.S256Bit> va, vb, vc;
            var va = SPECIES.fromArray(a, i);
            var vb = SPECIES.fromArray(b, i);
            var vc = va.mul(va).
                        add(vb.mul(vb)).
                        neg();
            vc.intoArray(c, i);
        }
     
        for (; i < a.length; i++) {
            c[i] = (a[i] * a[i] + b[i] * b[i]) * -1.0f;
        }
    }
    Les ingénieurs d’Oracle annoncent l’API comme étant indépendante de la plateforme matérielle. Toutefois, la proposition laisse filtrer que les efforts de développement se sont jusqu’ici basés sur l’architecture x64. « L’environnement d’exécution Java, spécifiquement le compilateur HotSpot C2, doit compiler sur les architectures x64 capables, une séquence d’opérations vectorielles en séquences correspondantes d’instructions matérielles de gestion des vecteurs comme celles supportées par les extensions SSE et AVX, de manière à générer du code efficient et performant. Les programmeurs doivent être confiants en ceci que les opérations vectorielles qu’ils expriment vont correspondre aux instructions matérielles avec la plus grande fiabilité », ajoutent les ingénieurs. Scalar Vector Extension d’ARM fait également partie des architectures visées par les développements des ingénieurs d’Oracle et Intel.

    À ce stade, la proposition ne cite pas une version particulière de Java qui serait le siège de l'API. Toutefois, le projet serait destiné à l'édition standard de Java.

    Source : JEP 338

    Et vous ?

    Comment accueillez-vous cette annonce en tant que développeur Java ?

    En quoi l'introduction de cette API est-elle susceptible d'améliorer vos tâches de développement ?

    Voir aussi :

    Java 9 : le comité exécutif du JCP rejette la spécification actuelle des modules Java (Jigsaw), qui a voté « Non » et pourquoi ?

    Java 9 est disponible, la plateforme se met aux modules : tour d'horizon des nouveautés

    JDK 9 atteint le milestone Feature Extension Complete, les JEP sont désormais implémentés et intégrés dans le master forest
    Contribuez au club : Corrections, suggestions, critiques, ... : Contactez le service news et Rédigez des actualités

  2. #2
    Membre expérimenté
    Avatar de professeur shadoko
    Homme Profil pro
    consultant/formateur Java SE
    Inscrit en
    juillet 2006
    Messages
    1 086
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : consultant/formateur Java SE

    Informations forums :
    Inscription : juillet 2006
    Messages : 1 086
    Points : 1 530
    Points
    1 530

    Par défaut

    Chouette! on va pouvoir à nouveau programmer en APL
    J'ai des principes: je peux toujours trouver une bonne raison pour les contredire .... mais j'ai des principes!
    (un peu de pub pour mon site: http://scrountch.info/java )

Discussions similaires

  1. Une seule Font prise en charge sous FF
    Par sp41110 dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 09/04/2016, 22h16
  2. Réponses: 16
    Dernier message: 28/08/2009, 22h03
  3. crééer une api java ?
    Par Kcrik dans le forum Langage
    Réponses: 1
    Dernier message: 28/04/2006, 17h35
  4. Réponses: 2
    Dernier message: 12/05/2005, 10h10
  5. Réponses: 2
    Dernier message: 14/04/2005, 17h20

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