Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

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 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 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 
Avatar de gangsoleil
Modérateur https://www.developpez.com
Le 05/09/2012 à 16:00
A mon sens, il y a confusion entre "La JVM va s'executer sur plusieurs coeurs, CPU et GPU confondus", et "On va faire de la programmation GPU en Java".

Ce dont il est question est de permettre a la JVM de deporter certains calculs (certaines operations qui vont bien) sur un GPU, sans pour autant que le developpeur n'ait besoin d'ecrire du code specifique.

Est-ce que ca va apporter beaucoup a Java ? Pour le commun des mortels, non, car les PCs de developpement, comme les serveurs, ne sont pas equipes de cartes graphiques performantes en calcul.
Par contre, cela va dans le sens des puces multi-coeur multi-architectures, qui commencent de plus en plus a devenir realite, malgre la controverse de l'utilite a leur sujet.

Encore une fois, il ne s'agit pas ici de faire du developpement GPU en Java.
1  0 
Avatar de TheNOHDirector
Membre du Club https://www.developpez.com
Le 17/08/2012 à 12:18
Olivier Chafik a créé un projet opensource justement là dessus, il a fait une présentation à Devoxx France 2012. Ces projets visent notamment le calcul ils pourraient donc bien s'intégrer avec les plans d'Oracle sur les Lambda.

http://code.google.com/p/javacl/
http://code.google.com/p/scalacl/

http://www.parleys.com/#st=5&id=3292&sl=0
0  0 
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 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