COMPTOIR
register

×

Une petite série de démo pour montrer que oui, ça va plus vite !

Intel VisiON • Vectorisez vos applications Java avec la dernière mouture d'OpenJDK
Une petite série de démo pour montrer que oui, ça va plus vite !

Après notre sympathique tour chez Codeplay, la visite des stands d’exposition de l’Intel VisiON a continué de direction d’Oracle, et plus précisément de l’intégration des instructions vectorielles dans l’implémentation OpenJDK de la firme. Pour rappel, il s’agit de NEON/SVE chez Arm, et SSE/AVX sur les bousins x86, et servent à effectuer plusieurs opérations du même type en parallèle (typiquement 4 additions, 8 multiplications, etc), sans pour autant avoir à se trimballer du multithread plutôt complexe à programmer.

 

intel vision 2022

 

Usuellement, la vectorisation d’un programme passe soit par une étape d’autovectorisation dans le compilateur — fonctionnelle, certes, mais encore limitée dans l’étendue des motifs vectorisables supportés —, soit par des intrinsèques très proche du code assembleur : pas du plus pratique. En Java, il faut passer par l’API dédiée, qui est par la suite compilée en bytecode, lui-même transcrit à la volée en langage machine à l’exécution. Ainsi, c’est à la JVM — machine virtuelle Java — qu’incombe la tâche de générer effectivement des instructions vectorielles, en supposant que le code source ait été correctement traduit.

 Une petite série de démo pour montrer que oui, ça va plus vite ! [cliquer pour agrandir]

 

Hé bien, à partir d’OpenJDK 18, la chose est correctement intégrée, supportant l’AVX2 (mais pas l’AVX 512). Pour nous prouver l’intérêt de la chose, les gus avaient préparé quelques démonstrations couvrant Blackschole — un benchmark issu du monde de la finance —, du traitement d’image ou encore le calcul d’une fractale. Sans surprise, l’accélération est conséquente, d’autant plus sur ce type d’applications régulières dont le code ne risque pas souvent d’être retraduit à la volée. Sympathique, non ?

Un poil avant ?

Zen 4 pourrait être un tueur si on en croit les nouvelles rumeurs !

Un peu plus tard ...

Gamotron • J'ai attrapé un coup de soleil

Les 3 ragots
Les ragots sont actuellement
ouverts à tous, c'est open bar !
par Un rat goteur bio d'Occitanie, le Lundi 16 Mai 2022 à 13h52  
par Seb78 en Île-de-France le Dimanche 15 Mai 2022 à 13h08
En effet, l'écosystème Java est de plus en plus performant. Il faut d'ailleurs distinguer le langage lui-même (qui a relativement peu évolué afin d'assurer une certaine compatibilité ) de l'environnement d'exécution. On peut citer par exemple GraalVM qui permet de réaliser une compilation d'un exécutable natif plutôt que la compilation intermédiaire en bytecode demandant une machine virtuelle.
par Seb78 en Île-de-France, le Dimanche 15 Mai 2022 à 13h08  
En effet, l'écosystème Java est de plus en plus performant. Il faut d'ailleurs distinguer le langage lui-même (qui a relativement peu évolué afin d'assurer une certaine compatibilité ) de l'environnement d'exécution. On peut citer par exemple GraalVM qui permet de réaliser une compilation d'un exécutable natif plutôt que la compilation intermédiaire en bytecode demandant une machine virtuelle.
par Scrabble, le Samedi 14 Mai 2022 à 17h35  
Et oui, Java est un langage rapide, il l'était d'ailleurs même avant la JDK 18
Avec la JDK 17, les pauses dues au garbage collecting sont de l'ordre de 0.1 ms, le rendant tout à fait adapté au jeu vidéo en temps réel
Il est d'ailleurs dommage qu'il y ait tant de chercheurs/numériciens qui s'obstinent à utiliser le langage C++ pour leurs calculateurs, alors que le langage Java offre une sécurité d'exécution bien plus grande