Oracle et AMD veulent un Java boosté par le GPU
Une nouvelle proposition se greffe au projet Lambda de Java 8

Le , par tarikbenmerar

21PARTAGES

1  0 
Oracle et AMD lancent un gros chantier pour le langage Java. Un nouveau projet vise à booster les performances des applications Java en exploitant les avantages des GPU (processeurs graphiques), qu'ils soient intégrés ou non au CPU. Et pas seulement pour les rendus graphiques, le GPU est convoité pour l’exécution de certaines tâches de calcul.

Cette proposition a été conjointement communiquée ce lundi dans le mailing-list d'OpenJDK par John Coome, chef de groupe d'OpenJDK HotSpot, et par Gary Frost d'AMD. Le projet vise en fait à démontrer « les avantages en performance en déléguant certaines tâches de calcul Java au GPU. Nous proposons d'utiliser HotSpot JVM, ensuite nous nous concentrerons sur la génération de code, la garbage collection, et les exécutables », expliquent-ils dans le mail.

En effet, HotSpot JVM comporte certains composants permettant l'analyse des performances du code pendant l'exécution. Toutefois, le temps de compilation, la consommation mémoire, et la qualité du code générée ne seront pas concernés par cette optimisation.

Les développeurs veulent commencer le projet autour du projet Java 8 Lambda, mais s'attendent à faire face à de vrais « challenges » avec l'API Java. Ceci peut carrément aboutir à un nouveau langage ou à des extensions de la JVM et de bibliothèques qui nécessiteraient une standardisation à travers le JCP (Java Community Process, organisme coordinateur de l'évolution du langage).

Une autre facette du projet consiste à fournir un guide aux développeurs de langages utilisant la JVM comme hôte (Scala, JRuby, JavaScript/Nashorn, etc.), sur la manière à suivre pour activer le support du GPU dans leurs langages.

Il faut noter que ce projet a des objectifs en commun avec celui du compilateur RootBeer GPU récemment annoncé. Il existe une possibilité que les développeurs des deux projets travaillent en collaboration.

Gary Frost confirme que AMD se prépare à engager ses ingénieurs comme commiters sur ce projet.

Compilateur Rootbeer GPU sur GitHub
Le projet Java Lambda

Sources :
annonce sur le mailing-list

Et vous ?

Que pensez-vous de ce projet et de ses objectifs ?

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de _skip
Expert éminent https://www.developpez.com
Le 17/08/2012 à 13:34
Citation Envoyé par Lutarez Voir le message
C'est vrai, mais il ne faudrait toutefois pas voir apparaître une nouvelle "mode" utilisant massivement le GPU "parceque sur le CPU, c'était lent et qu'on avait pas envie d'optimiser".
La jvm est certainement déjà un software extrêmement optimisé. Plein de fonctions graphiques d'un desktop standard (redimensionnement, effet de transparence, etc...) profitent déjà d'accélération matérielle et en ce sens utiliser un GPU pour des opérations coûteuses en dehors des jeux vidéo n'est rien de nouveau.

Je vois pas en quoi cela dérange que ce soit possible depuis java de façon transparente ou non.
6  0 
Avatar de ithel
Membre averti https://www.developpez.com
Le 18/08/2012 à 23:05
Je ne comprends pas pourquoi certains d'entre vous parlent de lenteur ou de déficience concernant Java: depuis ses débuts la JVM n'a cessé d'être optimisée et il n'y a vraiment pas à rougir du résultat aujourd'hui. D'accord un programme Java est généralement moins performant qu'un programme C ou C++ équivalent, mais à ma connaissance l'écart reste raisonnable. Donc à moins que vous ayez des données qui prouvent le contraire merci d'éviter de propager cette vieille idée reçue...

Par ailleurs, l'idée d'utiliser le GPU est une conséquence logique de ce qui se passe aujourd'hui: auparavant pour améliorer les performances d'un programme c'était facile, il suffisait d'attendre tranquillement que la prochaine génération de CPU sorte et voilà. Aujourd'hui le problème vient du fait que ce n'est pas tellement la puissance des CPU qui augmente, mais le nombre de coeurs. Donc on est de toute façon condamné à faire de la programmation multithread si on souhaite boosteer les performances de nos applications (même l'optimisation de code en monothread a ses limites). Du coup, tant qu'à faire de la programmation parallèle pourquoi se limiter aux coeurs des CPU et ne pas déborder sur le GPU? C'est une excellente chose qui sera peut être un peu difficile à maîtriser, mais il en ira comme de la programmation multithreads: les moins ténéraires d'entre nous n'y toucherons pas, les autre s'amuserons comme des petits fous
6  0 
Avatar de _skip
Expert éminent https://www.developpez.com
Le 17/08/2012 à 12:20
Il faudrait relativiser un peu, Java n'est franchement pas un veau comme c'était peut être le cas il y a 15 ans. Quant à la lenteur d'affichage, ben c'est souvent un cliché qui vient d'un ancien Swing sans accélération matérielle.
Si vous regardez des benchmarks comparatifs, vous voyez que java est en fait largement décent même s'il n'égale clairement pas du C.

Pour ce qui est de permettre le calcul sur GPU en java, c'est certainement bon à prendre et peut être que ça pourra dans certains cas éviter le recours aux DLL natives pour certains besoins.
5  0 
Avatar de Paul TOTH
Expert éminent sénior https://www.developpez.com
Le 17/08/2012 à 13:29
"booster les performances" ? car il faut utiliser le GPU pour avoir du Java performant ? moi j'appelle ça une contre performance
4  4 
Avatar de transgohan
Expert éminent https://www.developpez.com
Le 17/08/2012 à 10:57
C'est une bonne nouvelle je trouve. Java est en effet assez lent niveau affichage quand on utilise une librairie graphique.
C'est même un calvaire sur certains vieux PCs.
2  4 
Avatar de Traroth2
Membre chevronné https://www.developpez.com
Le 17/08/2012 à 16:19
Citation Envoyé par hotcryx Voir le message
Java est quand même vachement rapide sur Android avec Dalvik.

"Créer un nouveau langage"

je n'en vois pas l'intérêt, ils n'ont qu'à étoffer les librairies.
En fait Dalvik n'a rien à voir avec la plateforme Java. Ce n'est pas du langage Java qu'il est question ici.
2  0 
Avatar de Lutarez
Membre chevronné https://www.developpez.com
Le 17/08/2012 à 11:00
Je suis perplexe concernant leur projet. Si vraiment il faut améliorer les performances de Java, ne faudrait-il pas commencer par l'optimiser plutôt que de déporter le boulot sur les GPU ? Surtout si c'est pour faire des trucs dégueulasses pour contourner l'API Java

De plus, vu comment Java s'avère parfois lourd juste pour l'OS, si maintenant il doit envahir nos GPU ...

J'espère qu'un tel projet a surtout pour objectif des applications spécifiques de calculs avancés ou autre, parceque si demain on doit le voir sur le PC de Mme Michou, ça va ramer dur.

Citation Envoyé par transgohan Voir le message
Java est en effet assez lent niveau affichage quand on utilise une librairie graphique.
Je m'y connais pas énorme en Java, mais n'est-ce pas le but de JavaFX théoriquement ?
1  4 
Avatar de Lutarez
Membre chevronné https://www.developpez.com
Le 17/08/2012 à 13:18
Citation Envoyé par _skip Voir le message
Il faudrait relativiser un peu, Java n'est franchement pas un veau comme c'était peut être le cas il y a 15 ans. Quant à la lenteur d'affichage, ben c'est souvent un cliché qui vient d'un ancien Swing sans accélération matérielle.
C'est vrai, mais il ne faudrait toutefois pas voir apparaître une nouvelle "mode" utilisant massivement le GPU "parceque sur le CPU, c'était lent et qu'on avait pas envie d'optimiser".

Citation Envoyé par hotcryx Voir le message
Java est quand même vachement rapide sur Android avec Dalvik.
Java n'est qu'un langage, c'est la machine virtuelle qui fait la performance. Et à ce jeu-là, en effet, Dalvik est plus performante que la JVM.
1  1 
Avatar de TheNOHDirector
Membre du Club https://www.developpez.com
Le 17/08/2012 à 13:22
Citation Envoyé par hotcryx Voir le message
Java est quand même vachement rapide sur Android avec Dalvik.
Pas assez pour développer des jeux! J'ai eu des retours sur des problèmes de framerate, lorsque l'appli tourne sur Dalvik (donc Java)

Citation Envoyé par hotcryx Voir le message
je n'en vois pas l'intérêt, ils n'ont qu'à étoffer les librairies.
Bien sur qu'il y a un intérêt, quand la théorie de la programmation objet n'était qu'un pattern, il fallait coder en C, puis ça a été intégré aux langages SmallTalk, C++, Java, etc. Scala, Kotlin, FANTOM, LINQ sont tous des essais pour intégrer de nouveaux patterns et paradigmes pour la prochaine génération de langage. Donc c'est une bonne chose si la JVM permet de créer plus facilement un langage adapté à un besoin.

On pourrait par exemple avoir des fragments de code dans un langage adapté à OpenCL et qui pourraient interagir facilement avec du code Java.
1  0 
Avatar de javan00b
Membre actif https://www.developpez.com
Le 17/08/2012 à 18:14
Citation Envoyé par Lutarez Voir le message
J'espère qu'un tel projet a surtout pour objectif des applications spécifiques de calculs avancés ou autre, parceque si demain on doit le voir sur le PC de Mme Michou, ça va ramer dur.
Le but de AMD c'est simplement de nous vendre leur APU comme étant la solution du futur, s'associer avec java est un choix logique pour forcer la main des concurrents.

Oui pour les applications spécifiques de calculs c'est une bonne chose mais pense aussi aux applications serveurs, imagine le rapport performance/prix qu'un APU pourrait apporter dans certain cas.

Citation Envoyé par Lutarez Voir le message

Je m'y connais pas énorme en Java, mais n'est-ce pas le but de JavaFX théoriquement ?
Sa semble effectivement admis maintenant que javafx sera le remplacant de swing dans le futur, pour ma part <3 javafx
1  0 
Contacter le responsable de la rubrique Accueil

Partenaire : Hébergement Web