OpenCL : tests de l'implémentation interne dans MQL5 - page 66

 

Mathemat:

2012.06.02 05:49:25     OpenCL  CPU: GenuineIntel  Intel(R) Pentium(R) CPU G840 @ 2.80 GHz with OpenCL 1.2 (2 units, 2793 MHz, 8040 Mb, version 2.0 (sse2))
2012.06.02 05:49:25     OpenCL  GPU: Advanced Micro Devices, Inc. ATI RV770 with OpenCL 1.0 (10 units, 780 MHz, 512 Mb, version CAL 1.4.1720)
2012.06.02 05:49:25     OpenCL  CPU: Intel(R) Corporation  Intel(R) Pentium(R) CPU G840 @ 2.80 GHz with OpenCL 1.1 (2 units, 2800 MHz, 8040 Mb, version 1.1)

I.e. Intel CPU d'abord avec le moteur OCL d'Intel puis ma dinosaure HD 4870, et enfin la pierre à nouveau mais avec le moteur AMD. Script :

Les versions sont différentes, c'est-à-dire que la version est indépendante du matériel ?

J'ai l'OCL AMD 1.1, y a-t-il un moyen de le faire passer en 1.2 ? Peut-être que ce sera plus rapide.

J'ai trouvé le nouveau AMD APP SDK 2.7 avec le support de l'OCL 1.2, je rapporterai les nouveaux résultats (s'ils ont été modifiés).

Je l'ai installé et la version n'a pas changé. Il se peut qu'il n'y ait pas de support matériel ou autre.

 
fyords: Mettez-le, la version n'a pas changé. Probablement pas de support matériel ou autre.

Ce n'est pas possible. Il devrait être de 1,2. Tout d'abord, AMD s'occuperait de ses propres pierres, puis des autres. Il s'appuierait sur ceux qui ne sont pas les siens. De plus, le SSE2 existe depuis longtemps chez les deux fabricants.

Mais la différence n'est pas grande, environ 10%, peut-être.

 
Mathemat:

Ce n'est pas possible. Il faut que ce soit 1.2. Au moins, AMD s'occuperait d'abord de ses propres pierres et ensuite de celles des autres. Il fonctionnerait sur ceux qui ne lui appartiennent pas. En outre, les deux fabricants disposent de SSE2 depuis longtemps.

Mais la différence n'est pas grande, environ 10%, peut-être.

Je dois m'écraser. Récemment, les mises à jour ont cessé de fonctionner et maintenant il est dit "version non authentique". OK, tant qu'il respire, laissez-le respirer. Puis je réinstallerai et mettrai un nouvel OCL.

J'ai le SSE2 et même plus. Bien sûr, 10 %, ce n'est pas beaucoup, mais c'est quand même bien.

P.S. : Merci pour les éclaircissements.

 
ilovebtc:

Par exemple, j'ai une carte graphique Radeon 6930 qui possède 1280 processeurs de flux. Comment apparaîtra-t-il dans la liste des agents ? Comme 1 dispositif, ou tous les 1280.

Il est plusieurs fois plus rapide à lui seul que 10 processeurs, et le bonus n'est pas pour un dispositif supplémentaire.

Une carte graphique ne peut pas fonctionner avec du code écrit en mql ; elle ne peut fonctionner qu'avec du code écrit dans des langages spécialisés (OpenCL dans notre cas). Par conséquent, les cartes vidéo dans le nuage ne seront utiles que pour les programmes mql utilisant OpenCL-API (avec des inserts OpenCL).

Si vous comprenez tout cela, ignorez mon commentaire. Il m'a juste semblé que certaines personnes sur le forum s'attendent à une augmentation de la productivité des programmes mql5 les plus courants qui n'utilisent pas OpenCL pour se connecter au cloud. Ce n'est pas le cas.

 

Installé Intel et AMD SDK.

2012.06.07 18:40:28 OpenCL CPU: Intel(R) Corporation Intel(R) Core(TM)2 Duo CPU T8100 @ 2.10GHz with OpenCL 1.1 (2 units, 2100 MHz, 2045 Mb, version 1.1)

2012.06.07 18:40:28 OpenCL CPU: GenuineIntel Intel(R) Core(TM)2 Duo CPU T8100 @ 2.10GHz with OpenCL 1.2 (2 units, 2094 MHz, 2045 Mb, version 2.0 (sse2)) 

2012.06.07 18:40:55 vect_v2_all_devices (EURUSD,H1) =======================================
2012.06.07 18:40:55 vect_v2_all_devices (EURUSD,H1) OCL martices mul:         ROWS1 = 2000; COLSROWS = 2000; COLS2 = 2000
2012.06.07 18:50:04 vect_v2_all_devices (EURUSD,H1) CPUTime = 548.515
2012.06.07 18:50:04 vect_v2_all_devices (EURUSD,H1) ---------------
2012.06.07 18:50:22 vect_v2_all_devices (EURUSD,H1) read = 4000000 elements
2012.06.07 18:50:22 vect_v2_all_devices (EURUSD,H1) Device = 0: time = 15.975 sec.
2012.06.07 18:50:22 vect_v2_all_devices (EURUSD,H1) CPUTime / GPUTotalTime = 34.336
2012.06.07 18:50:22 vect_v2_all_devices (EURUSD,H1) sum( 1571,356 ) = 2.88011026;    thirdCPU[ 1571,356 ] = 2.88011026;    buf[ 1571,356 ] = 2.88010764
2012.06.07 18:50:22 vect_v2_all_devices (EURUSD,H1) sum( 791,407 ) = 1.36050534;    thirdCPU[ 791,407 ] = 1.36050534;    buf[ 791,407 ] = 1.36050797
2012.06.07 18:50:22 vect_v2_all_devices (EURUSD,H1) sum( 1920,1928 ) = 2.97455144;    thirdCPU[ 1920,1928 ] = 2.97455144;    buf[ 1920,1928 ] = 2.97455001
2012.06.07 18:50:22 vect_v2_all_devices (EURUSD,H1) sum( 386,216 ) = -1.05270028;    thirdCPU[ 386,216 ] = -1.05270028;    buf[ 386,216 ] = -1.05269444
2012.06.07 18:50:22 vect_v2_all_devices (EURUSD,H1) sum( 158,1896 ) = 2.30077577;    thirdCPU[ 158,1896 ] = 2.30077577;    buf[ 158,1896 ] = 2.30077529
2012.06.07 18:50:22 vect_v2_all_devices (EURUSD,H1) sum( 1403,1477 ) = 5.44755507;    thirdCPU[ 1403,1477 ] = 5.44755507;    buf[ 1403,1477 ] = 5.44755411
2012.06.07 18:50:22 vect_v2_all_devices (EURUSD,H1) sum( 190,97 ) = -0.19755134;    thirdCPU[ 190,97 ] = -0.19755134;    buf[ 190,97 ] = -0.19754831
2012.06.07 18:50:22 vect_v2_all_devices (EURUSD,H1) sum( 694,1569 ) = 5.30565643;    thirdCPU[ 694,1569 ] = 5.30565643;    buf[ 694,1569 ] = 5.30566406
2012.06.07 18:50:22 vect_v2_all_devices (EURUSD,H1) sum( 1084,703 ) = -0.40982622;    thirdCPU[ 1084,703 ] = -0.40982622;    buf[ 1084,703 ] = -0.40982300
2012.06.07 18:50:22 vect_v2_all_devices (EURUSD,H1) sum( 613,1814 ) = -2.08050942;    thirdCPU[ 613,1814 ] = -2.08050942;    buf[ 613,1814 ] = -2.08050990
2012.06.07 18:50:22 vect_v2_all_devices (EURUSD,H1) ________________________
2012.06.07 18:50:38 vect_v2_all_devices (EURUSD,H1) read = 4000000 elements
2012.06.07 18:50:38 vect_v2_all_devices (EURUSD,H1) Device = 1: time = 14.868 sec.
2012.06.07 18:50:38 vect_v2_all_devices (EURUSD,H1) CPUTime / GPUTotalTime = 36.892
2012.06.07 18:50:38 vect_v2_all_devices (EURUSD,H1) sum( 726,1509 ) = -3.87149954;    thirdCPU[ 726,1509 ] = -3.87149954;    buf[ 726,1509 ] = -3.87148523
2012.06.07 18:50:38 vect_v2_all_devices (EURUSD,H1) sum( 408,1551 ) = -3.54236746;    thirdCPU[ 408,1551 ] = -3.54236746;    buf[ 408,1551 ] = -3.54237366
2012.06.07 18:50:38 vect_v2_all_devices (EURUSD,H1) sum( 837,1133 ) = -1.46401167;    thirdCPU[ 837,1133 ] = -1.46401167;    buf[ 837,1133 ] = -1.46400595
2012.06.07 18:50:38 vect_v2_all_devices (EURUSD,H1) sum( 1885,1406 ) = 3.41383481;    thirdCPU[ 1885,1406 ] = 3.41383481;    buf[ 1885,1406 ] = 3.41383505
2012.06.07 18:50:38 vect_v2_all_devices (EURUSD,H1) sum( 419,930 ) = -2.05204225;    thirdCPU[ 419,930 ] = -2.05204225;    buf[ 419,930 ] = -2.05204272
2012.06.07 18:50:38 vect_v2_all_devices (EURUSD,H1) sum( 895,1065 ) = 2.29360199;    thirdCPU[ 895,1065 ] = 2.29360199;    buf[ 895,1065 ] = 2.29360104
2012.06.07 18:50:38 vect_v2_all_devices (EURUSD,H1) sum( 1687,1449 ) = 2.12151670;    thirdCPU[ 1687,1449 ] = 2.12151670;    buf[ 1687,1449 ] = 2.12152243
2012.06.07 18:50:38 vect_v2_all_devices (EURUSD,H1) sum( 1227,1863 ) = 4.48004580;    thirdCPU[ 1227,1863 ] = 4.48004580;    buf[ 1227,1863 ] = 4.48004818
2012.06.07 18:50:38 vect_v2_all_devices (EURUSD,H1) sum( 1545,234 ) = 2.60638309;    thirdCPU[ 1545,234 ] = 2.60638309;    buf[ 1545,234 ] = 2.60638452
2012.06.07 18:50:38 vect_v2_all_devices (EURUSD,H1) sum( 446,1500 ) = -8.61246967;    thirdCPU[ 446,1500 ] = -8.61246967;    buf[ 446,1500 ] = -8.61247253
2012.06.07 18:50:38 vect_v2_all_devices (EURUSD,H1) ________________________

C'est bon ou mauvais ?

 
Manov: C'est mauvais ou bon ?

Eh bien, c'est un processeur mobile à deux cœurs, sorti il y a 4 ans et demi.

Les progrès se poursuivent : il semble que les nouvelles instructions SSE et d'autres innovations architecturales y jouent le rôle principal. Ma souche budgétaire est 4-5 fois plus rapide dans cette tâche :)

Mais il donne un très bon gain sur OpenCL. C'est bon, c'est à peu près comme ça que ça doit être.

 
Mathemat:

C'est un processeur mobile à deux noyaux sorti il y a 4 ans et demi.

Le progrès ne s'arrête pas là : il semble que les nouvelles instructions ESS et d'autres innovations architecturales y jouent un rôle majeur. Ma souche budgétaire est 4-5 fois plus rapide dans cette tâche :)

Mais il donne un très bon gain sur OpenCL. C'est bon, c'est à peu près comme ça que ça doit être.

Merci beaucoup !

Est-ce que j'ai bien compris que pour les gros calculs mathématiques, si j'utilise OpenCL, le temps de calcul sera 30+ fois inférieur ? !?

 
Manov: Ai-je bien compris que si j'utilise OpenCL pour les gros calculs mathématiques, le temps d'exécution sera 30+ fois plus court ?

Eh bien oui, en gros - sur une carte discrète. Quoi qu'il en soit, ma HD 4870 effectue les mêmes calculs en 0,5 seconde.

Mais il faut comprendre que tous les calculs intensifs ne se prêtent pas à une accélération décente.

 

Tous les soirs.

J'ai essayé de comprendre l'utilisation d'OpenCL dans Metatrader5, mais je n'ai pas réussi à entrer dans le vif du sujet.

Pouvez-vous me dire s'il est possible d'utiliser une carte vidéo pour une accélération supplémentaire des tests dans MT5 Tester et ce qu'il faut faire pour cela.

J'ai également essayé le script parallel_tester_00-01x_new_cycle, mais comment fonctionne-t-il ?

 
vittt:

Tous les soirs.

J'ai essayé de comprendre l'utilisation d'OpenCL dans Metatrader5, mais je n'ai pas réussi à entrer dans le vif du sujet.

Pouvez-vous me dire s'il est possible d'utiliser une carte vidéo pour une accélération supplémentaire des tests dans MT5 Tester et ce qu'il faut faire pour cela.

J'ai également essayé le script parallel_tester_00-01x_new_cycle, mais comment fonctionne-t-il ?

Il existe sur ce site deux excellents articles sur ce sujet, qui décrivent tout en détail :