Bonjour,
ben tout est dans le titre.
M�me si je n'y crois pas trop, je me demandais s'il y avait un moyen d'utiliser les commandes SSE 2 ou 3 (mieux) en java ?
Merci par avance.
Bonjour,
ben tout est dans le titre.
M�me si je n'y crois pas trop, je me demandais s'il y avait un moyen d'utiliser les commandes SSE 2 ou 3 (mieux) en java ?
Merci par avance.
Consignes aux jeunes padawans : une image vaut 1000 mots !
- Dans ton message respecter tu dois : les r�gles de r�daction et du forum, pr�visualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Fran�ais tu DOIS.
- Le c�t� obscur je sens dans le MP => Tous tes MPs je d�truirai et la r�ponse tu n'auras si en priv� tu veux que je t'enseigne.(Lis donc ceci)
-ton poste tu dois marquer quand la bonne r�ponse tu as obtenu.
java tourne sur une machne virtuelle avec son propre jeu d'instruction. C'est le role de l'impl�mentation de la machine virtuelle en question d'utiliser � bon essicent ce que le CPU h�te founis comme possibilit�s.
Mmm... ok, c'est logique.
Mais est ce que l'on ne peut pas forcer certaines acc�l�rations/fonctions.
Nous faisons actuellement certains tests C++ vs Java pour diff�rents algorithmes de traitement d'images.
Les performances indiquent clairement que la JVM je passe absolument pas par ces instructions, sauf si l'�cart de performance avec C++ est d�sormais un coefficient fois 4 ou plus.
Consignes aux jeunes padawans : une image vaut 1000 mots !
- Dans ton message respecter tu dois : les r�gles de r�daction et du forum, pr�visualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Fran�ais tu DOIS.
- Le c�t� obscur je sens dans le MP => Tous tes MPs je d�truirai et la r�ponse tu n'auras si en priv� tu veux que je t'enseigne.(Lis donc ceci)
-ton poste tu dois marquer quand la bonne r�ponse tu as obtenu.
tu ne peux pas. M�me si tu faisait un code optimis� en java pur pour du SSE, quelles seraient les performances de ton algorithme une fois qu'il sera lanc� sur un ARM, ou une machine AMD64?
La premi�re chose � faire estde vous assurer que vous n'�tes plus en interpr�t� pour faire vos mesures. Pour �a, il existe (je les retrouve plus) des param�tres � filer � la JMV pour qu'elle affiche dans la console les m�thode qu'elle compile � la vol�e en code natif. On peux avoir de tr�s grosse diff�rence de perf entre une code java interpr�t� et un code java natif.
Seulement, le JIT il compile pas tout en natifs, c'est pour �a qu'on doit en g�n�ral faire une proc�dure o� le calcul est fait un certain nombre de fois jusque stabilisation du temps mesur�.
ok, pour voir ce qui est compil� nativement, rajouter ce param�tre � l'ex�cution
exemple
Code : S�lectionner tout - Visualiser dans une fen�tre � part -XX:+PrintCompilation
Code : S�lectionner tout - Visualiser dans une fen�tre � part java -XX:+PrintCompilation -jar mon.jar
Voil� ce que j'obtiens, mais j'avoue ne pas savoir l'interpr�ter :-(
1 java.lang.String::hashCode (64 bytes)
2 java.lang.String::charAt (33 bytes)
3 sun.nio.cs.UTF_8$Decoder::decodeArrayLoop (553 bytes)
4 java.math.BigInteger::mulAdd (81 bytes)
5 java.math.BigInteger::multiplyToLen (219 bytes)
6 java.math.BigInteger::addOne (77 bytes)
7 java.math.BigInteger::squareToLen (172 bytes)
8 java.math.BigInteger::primitiveLeftShift (79 bytes)
9 java.math.BigInteger::montReduce (99 bytes)
10 sun.security.provider.SHA::implCompress (491 bytes)
11 sun.nio.cs.UTF_8$Encoder::encodeArrayLoop (490 bytes)
12 java.lang.String::indexOf (151 bytes)
Reading image 'ImagesNdg/Einstein.pgm' 13 java.lang.String::indexOf (166 bytes)
(256x256 <=> 65536 pixels, 8 bits BYTE_GRAY)... 14 java.util.Properties$LineReader::readLine (452 bytes)
15 java.awt.image.BufferedImage::getWidth (8 bytes)
17 sun.awt.image.SunWritableRaster::notifyWrite (17 bytes)
16 sun.awt.image.ByteInterleavedRaster::setSample (163 bytes)
1% imageTiTi.PgmTools::Read @ 163 (224 bytes)
successfully.
18 java.lang.Object::<init> (1 bytes)
19 java.io.UnixFileSystem::normalize (75 bytes)
20 java.lang.String::equals (88 bytes)
21 java.lang.String::lastIndexOf (156 bytes)
22 java.lang.CharacterDataLatin1::getProperties (11 bytes)
23 java.lang.String::lastIndexOf (151 bytes)
24 java.util.Properties::loadConvert (505 bytes)
25 java.lang.String::startsWith (78 bytes)
3 made not entrant sun.nio.cs.UTF_8$Decoder::decodeArrayLoop (553 bytes)
11 made not entrant sun.nio.cs.UTF_8$Encoder::encodeArrayLoop (490 bytes)
--- n java.lang.System::arraycopy (static)
26 java.lang.Character::toLowerCase (162 bytes)
27 java.lang.CharacterDataLatin1::toLowerCase (36 bytes)
28 java.lang.String::toLowerCase (436 bytes)
29 ij.macro.Program::lookupWord (57 bytes)
2% sun.nio.cs.UTF_8$Encoder::encodeArrayLoop @ 73 (490 bytes)
30 sun.nio.cs.UTF_8$Encoder::encodeArrayLoop (490 bytes)
31 java.util.Arrays::binarySearch0 (95 bytes)
32 sun.net.www.ParseUtil::encodePath (336 bytes)
33 java.lang.Math::max (11 bytes)
3% ! morphee.fastMorpheeNew.DilateSegmentHorizontalFM$DilateSegmentHorizontal2Thread::run @ 796 (2425 bytes)
34 utils.arrays.ArraysOperations::SetConstant (19 bytes)
4% ! morphee.fastMorpheeNew.DilateSegmentHorizontalHisto$DilateSegmentHorizontalHistoThread::run @ 628 (2062 bytes)
5% ! morphee.fastMorpheeNew.DilateSegmentHorizontalHisto$DilateSegmentHorizontalHistoThread::run @ 712 (2062 bytes)
time 1 = 1.164
time 2 = 1.399
35 sun.awt.image.ByteInterleavedRaster::getSample (133 bytes)
36 sun.awt.image.SunWritableRaster::notifyRead (17 bytes)
6% imageTiTi.ImageTools::areEqual @ 133 (202 bytes)
Consignes aux jeunes padawans : une image vaut 1000 mots !
- Dans ton message respecter tu dois : les r�gles de r�daction et du forum, pr�visualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Fran�ais tu DOIS.
- Le c�t� obscur je sens dans le MP => Tous tes MPs je d�truirai et la r�ponse tu n'auras si en priv� tu veux que je t'enseigne.(Lis donc ceci)
-ton poste tu dois marquer quand la bonne r�ponse tu as obtenu.
Partager