OpenCL: interne Implementierungstests in MQL5 - Seite 65

 
fyords: Wenn Sie in den Berichten mit der rechten Maustaste auf "Ansicht" klicken, erscheint in einem neuen Fenster die Schaltfläche "Abfrage", und das Protokoll wird korrekt angezeigt, und es ist (für mich) leichter zu lesen.

Danke, ich wusste nicht, dass Sie einen Bericht eröffnen.

Der Gewinn war sogar noch größer.

Ich bin erstaunt: Das ist eine Budget-Karte für unter 80 Dollar! NVidia hat also einiges an Arbeit in den Treiber gesteckt.

 

Und hier sind die neuen Ergebnisse:

2012.06.01 09:25:23     ParallelTester_00-01 x_new_cycle (EURUSD,D1)     ========================================
2012.06.01 09:32:25     ParallelTester_00-01 x_new_cycle (EURUSD,D1)     CPU time = 421203 ms
2012.06.01 09:32:25     ParallelTester_00-01 x_new_cycle (EURUSD,D1)     Соunt indicators = 16; Count history bars = 144000; Count pass = 12800
2012.06.01 09:32:25     ParallelTester_00-01 x_new_cycle (EURUSD,D1)     Result on Cpu МахResult==1.2809 at 9448 pass
2012.06.01 09:32:25     ParallelTester_00-01 x_new_cycle (EURUSD,D1)     -------------------------
2012.06.01 09:32:28     ParallelTester_00-01 x_new_cycle (EURUSD,D1)     Device number = 0
2012.06.01 09:32:39     ParallelTester_00-01 x_new_cycle (EURUSD,D1)     GPU time = 11263 ms
2012.06.01 09:32:39     ParallelTester_00-01 x_new_cycle (EURUSD,D1)     CpuTime/GpuTime = 37.39705229512563
2012.06.01 09:32:39     ParallelTester_00-01 x_new_cycle (EURUSD,D1)     Result on Gpu МахResult==1.2809 at 9448 pass
2012.06.01 09:32:39     ParallelTester_00-01 x_new_cycle (EURUSD,D1)     ------------
2012.06.01 09:32:39     ParallelTester_00-01 x_new_cycle (EURUSD,D1)     Device number = 1
2012.06.01 09:32:40     ParallelTester_00-01 x_new_cycle (EURUSD,D1)     GPU time = 998 ms
2012.06.01 09:32:40     ParallelTester_00-01 x_new_cycle (EURUSD,D1)     CpuTime/GpuTime = 422.0470941883768
2012.06.01 09:32:40     ParallelTester_00-01 x_new_cycle (EURUSD,D1)     Result on Gpu МахResult==1.2809 at 9448 pass
2012.06.01 09:32:40     ParallelTester_00-01 x_new_cycle (EURUSD,D1)     ------------

Ich verstehe: 1. reine CPU, 2. CPU mit OpenCL, 3. GPU mit OpenCL?

Und es ist immer noch 422.

Mathemat:

Ich bin erstaunt: Diese Karte kostet weniger als 80 Dollar! NVidia hat also sehr hart an dem Treiber gearbeitet.

Und wie erstaunt bin ich, dass ich vom Dreck zum Reichtum gekommen bin. Man hat den Eindruck, dass NVidia dieses Forum liest, ähnliche Tests durchführt, Fehler findet und diese behebt.

Es wäre sehr gut, wenn der Prüfer selbst entscheiden könnte, was er simulieren möchte, ohne dass er gezwungen ist, Code zu schreiben. Dennoch, 1 Sekunde (oder 11 Sekunden, wenn Video nicht erlaubt oder nicht verfügbar ist) gegen 7 Minuten ist Macht.

 
Um Tests innerhalb einer kleinen Fehlerspanne durchzuführen, gibt es eine gute Methode, eine Reihe von Messungen durchzuführen und die Ergebnisse zu mitteln oder den Extremwert zu verwerfen. Aber es ist natürlich besser, den Rechenaufwand zu erhöhen, um das Ergebnis zu stabilisieren.

Moderne Betriebssysteme und echte Mehrkernprozessoren haben das Problem der Streuung von Messungen über GetTickCount ernsthaft beseitigt. Mein ursprünglicher Kommentar bezog sich ausschließlich auf die fehlerhafte Aussage "der durchschnittliche Fehler von GetTickCount beträgt mindestens zehn ms".
 
Achtung Besitzer von Intel-Prozessoren! Bei der Installation des nVidia-Treibers 301.42 werden automatisch auch OpenCL-Treiber für die CPU installiert,

in der Registrierung sieht es wie folgt aus:

[HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\OpenCL\Vendors]
"nvcuda.dll"=dword:00000000
"amdocl.dll"=dword:00000000
"amdocl64.dll"=dword:00000000

"IntelOpenCL64.dll"=dword:00000000

Sie sind etwa 1,5 Mal langsamer (rot hervorgehoben) als der native Treiber von Intel (grün hervorgehoben).

Sie können die entsprechenden Registrierungswerte entfernen, aber speichern Sie die Verzweigung nur für den Fall.

 

Lieber Admin. Ich war schon eine Weile nicht mehr in Ihrem Forum, vielleicht habe ich diesen Punkt übersehen.

Wird es eine Implementierung geben, bei der Videokarten den Anforderungen der Cloud unterworfen werden?

 
ilovebtc:

Lieber Admin. Ich war schon eine Weile nicht mehr in Ihrem Forum, vielleicht habe ich diesen Punkt übersehen.

Wird es eine Implementierung des Austauschs von Grafikkarten für die Anforderungen der Cloud geben?

Fast fertig https://www.mql5.com/ru/forum/23/page15#comment_201948

19 MetaTester: Unterstützung für die Verwendung von OpenCL-Programmen in Testagenten hinzugefügt.

OpenCL-Programme sind für die Durchführung von Berechnungen auf Grafikkarten vorgesehen, die OpenCL 1.1 oder höher unterstützen. Moderne Videokarten enthalten Hunderte von kleinen spezialisierten Prozessoren, die gleichzeitig einfache mathematische Operationen an eingehenden Datenströmen durchführen können. Die OpenCL-Sprache übernimmt die Organisation solcher parallelen Berechnungen und bietet einen großen Geschwindigkeitszuwachs für eine bestimmte Klasse von Aufgaben.
Nach den Tests werden wir OpenCL in einem verteilten Netzwerk aktivieren.
 
fyords: Mein Verständnis ist: 1. reine CPU, 2. CPU mit OpenCL, 3. GPU mit OpenCL?

Ja, das ist richtig.

Könnten Sie das beigefügte Skript ausführen und die Ergebnisse veröffentlichen? Das ist wirklich interessant.

Haben Sie keine Angst vor einer großen Anzahl von Ziffern. Sie sind nur dazu da, die Richtigkeit der Berechnungen zu überprüfen.

Das Skript läuft auch durch alle Geräte. Die Hauptaufgabe besteht darin, zwei große Matrizen zu multiplizieren.

Die Einstellungen können nur innerhalb des Codes geändert werden - die lineare Größe der Matrizen _size in dieser Zeile:

#define _size       2000

Ändern Sie sie nur, wenn der Speicherplatz knapp wird. Ein Zeichen dafür sind Diskrepanzen in den Array-Zahlen, wenn sie auf einer diskreten GPU ausgeführt werden: Wenn der Unterschied in den Zahlen mehr als 10^(-4) beträgt, ist das ein offensichtlicher Fehler. Aber Sie scheinen genug Speicherplatz zu haben.

Dateien:
 

Ich habe zum Beispiel eine Radeon 6930-Grafikkarte, die 1280 Stream-Prozessoren hat. Wie wird sie in der Agentenliste erscheinen? Als 1 Gerät, oder alle 1280.

Er ist allein um ein Vielfaches schneller als 10 Prozessoren, und der Bonus gilt nicht für ein zusätzliches Gerät.

 
Mathemat:

Könnten Sie das beigefügte Skript ausführen und die Ergebnisse anzeigen? Das ist wirklich interessant.

Nein, es ist nicht langweilig. Ich bin selbst neugierig darauf. Ich habe nichts an den Einstellungen geändert.

2012.06.02 09:28:27     vect_v2_all_devices (EURUSD,D1) =======================================
2012.06.02 09:28:27     vect_v2_all_devices (EURUSD,D1) OCL martices mul:         ROWS1 = 2000; COLSROWS = 2000; COLS2 = 2000
2012.06.02 09:30:31     vect_v2_all_devices (EURUSD,D1) CPUTime = 124.504
2012.06.02 09:30:31     vect_v2_all_devices (EURUSD,D1) ---------------
2012.06.02 09:30:38     vect_v2_all_devices (EURUSD,D1) read = 4000000 elements
2012.06.02 09:30:38     vect_v2_all_devices (EURUSD,D1) Device = 0: time = 2.824 sec.
2012.06.02 09:30:38     vect_v2_all_devices (EURUSD,D1) CPUTime / GPUTotalTime = 44.088
2012.06.02 09:30:38     vect_v2_all_devices (EURUSD,D1) sum( 1968,1939 ) = -5.27639246;    thirdCPU[ 1968,1939 ] = -5.27639246;    buf[ 1968,1939 ] = -5.27639198
2012.06.02 09:30:38     vect_v2_all_devices (EURUSD,D1) sum( 585,810 ) = 3.74615073;    thirdCPU[ 585,810 ] = 3.74615073;    buf[ 585,810 ] = 3.74614906
2012.06.02 09:30:38     vect_v2_all_devices (EURUSD,D1) sum( 1131,1732 ) = -4.46934557;    thirdCPU[ 1131,1732 ] = -4.46934557;    buf[ 1131,1732 ] = -4.46934605
2012.06.02 09:30:38     vect_v2_all_devices (EURUSD,D1) sum( 587,999 ) = -4.46048546;    thirdCPU[ 587,999 ] = -4.46048546;    buf[ 587,999 ] = -4.46048260
2012.06.02 09:30:38     vect_v2_all_devices (EURUSD,D1) sum( 983,1903 ) = 3.42076445;    thirdCPU[ 983,1903 ] = 3.42076445;    buf[ 983,1903 ] = 3.42076564
2012.06.02 09:30:38     vect_v2_all_devices (EURUSD,D1) sum( 1927,313 ) = 5.62960339;    thirdCPU[ 1927,313 ] = 5.62960339;    buf[ 1927,313 ] = 5.62960196
2012.06.02 09:30:38     vect_v2_all_devices (EURUSD,D1) sum( 355,1897 ) = 5.86679220;    thirdCPU[ 355,1897 ] = 5.86679220;    buf[ 355,1897 ] = 5.86678505
2012.06.02 09:30:38     vect_v2_all_devices (EURUSD,D1) sum( 1455,1651 ) = -3.67937088;    thirdCPU[ 1455,1651 ] = -3.67937088;    buf[ 1455,1651 ] = -3.67936754
2012.06.02 09:30:38     vect_v2_all_devices (EURUSD,D1) sum( 1207,856 ) = 1.30920172;    thirdCPU[ 1207,856 ] = 1.30920172;    buf[ 1207,856 ] = 1.30920100
2012.06.02 09:30:38     vect_v2_all_devices (EURUSD,D1) sum( 1699,575 ) = 2.55669522;    thirdCPU[ 1699,575 ] = 2.55669522;    buf[ 1699,575 ] = 2.55669498
2012.06.02 09:30:38     vect_v2_all_devices (EURUSD,D1) ________________________
2012.06.02 09:30:42     vect_v2_all_devices (EURUSD,D1) read = 4000000 elements
2012.06.02 09:30:42     vect_v2_all_devices (EURUSD,D1) Device = 1: time = 1.514 sec.
2012.06.02 09:30:42     vect_v2_all_devices (EURUSD,D1) CPUTime / GPUTotalTime = 82.235
2012.06.02 09:30:42     vect_v2_all_devices (EURUSD,D1) sum( 407,514 ) = -3.69270682;    thirdCPU[ 407,514 ] = -3.69270682;    buf[ 407,514 ] = -3.69270515
2012.06.02 09:30:42     vect_v2_all_devices (EURUSD,D1) sum( 1421,1902 ) = -7.43944120;    thirdCPU[ 1421,1902 ] = -7.43944120;    buf[ 1421,1902 ] = -7.43943167
2012.06.02 09:30:42     vect_v2_all_devices (EURUSD,D1) sum( 1197,1072 ) = -1.49989450;    thirdCPU[ 1197,1072 ] = -1.49989450;    buf[ 1197,1072 ] = -1.49989557
2012.06.02 09:30:42     vect_v2_all_devices (EURUSD,D1) sum( 1249,1056 ) = -0.22817086;    thirdCPU[ 1249,1056 ] = -0.22817086;    buf[ 1249,1056 ] = -0.22817032
2012.06.02 09:30:42     vect_v2_all_devices (EURUSD,D1) sum( 385,1856 ) = 3.88903213;    thirdCPU[ 385,1856 ] = 3.88903213;    buf[ 385,1856 ] = 3.88902068
2012.06.02 09:30:42     vect_v2_all_devices (EURUSD,D1) sum( 952,488 ) = 0.37963703;    thirdCPU[ 952,488 ] = 0.37963703;    buf[ 952,488 ] = 0.37963703
2012.06.02 09:30:42     vect_v2_all_devices (EURUSD,D1) sum( 345,1572 ) = 2.28500485;    thirdCPU[ 345,1572 ] = 2.28500485;    buf[ 345,1572 ] = 2.28500390
2012.06.02 09:30:42     vect_v2_all_devices (EURUSD,D1) sum( 1928,468 ) = -1.35805547;    thirdCPU[ 1928,468 ] = -1.35805547;    buf[ 1928,468 ] = -1.35805535
2012.06.02 09:30:42     vect_v2_all_devices (EURUSD,D1) sum( 1881,1968 ) = -3.12033391;    thirdCPU[ 1881,1968 ] = -3.12033391;    buf[ 1881,1968 ] = -3.12033129
2012.06.02 09:30:42     vect_v2_all_devices (EURUSD,D1) sum( 1454,575 ) = 5.97233009;    thirdCPU[ 1454,575 ] = 5.97233009;    buf[ 1454,575 ] = 5.97232151
2012.06.02 09:30:42     vect_v2_all_devices (EURUSD,D1) ________________________

Ich verstehe einfach keine der Zahlen. Können Sie das erklären? Nun, zumindest an den Fingern: Ist es gut oder nicht? Sie sind von Gerät zu Gerät unterschiedlich, und auf den Zeilen mit 5-6 Stellen nach dem Komma sind sie bereits stellenweise unterschiedlich.

Ich glaube, ich habe es verstanden: Es handelt sich um einen Mehrfachtest für sich wiederholende Vorgänge, die endgültige Zeit ist der Durchschnitt für jedes Gerät. Oder?

 
fyords: Nur kann ich mit diesen Zahlen nichts anfangen. Können Sie das erklären? Einfach auf die Finger schauen: ist es gut oder nicht? Sie sind von Gerät zu Gerät unterschiedlich, und auf den Zeilen von 5-6 Stellen nach dem Dezimalpunkt sind sie bereits stellenweise unterschiedlich.
sum( 407,514 ) = -3.69270682;    thirdCPU[ 407,514 ] = -3.69270682;    buf[ 407,514 ] = -3.69270515

Dies sind nur Prüfziffern. Wenn sie mit 0,00001 übereinstimmen, ist alles in Ordnung. Die Indizes werden nach dem Zufallsprinzip gewählt - es handelt sich um eine stichprobenartige Überprüfung, um sicherzustellen, dass die Berechnungen korrekt sind. Nun, wir werden hier nicht die Ergebnisse einer vollständigen Überprüfung aller 4 Millionen Elemente der resultierenden Matrix ausdrucken, oder?

Ich glaube, ich habe es verstanden: Es handelt sich um einen Mehrfachtest mit wiederholten Vorgängen, die endgültige Zeit ist der Durchschnitt für jedes Gerät. Oder?

Nein, es handelt sich um eine einzige Multiplikation von zwei großen Matrizen.

In Bezug auf die Leistungsdaten: sehr gut für diese Karte. Nun meine Ergebnisse. Geräte (von unten nach oben - Reihenfolge der Initialisierung):

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)

D.h. zuerst eine Intel-CPU mit Intels OCL-Engine, dann meine Dinosaurier-HD 4870, und dann wieder ein Stein, aber mit AMDs Engine. Drehbuch:

2012.06.02 07:38:19     vect_v2_all_devices (EURUSD,H1) ________________________
2012.06.02 07:38:19     vect_v2_all_devices (EURUSD,H1) sum( 1477,98 ) = -5.84002066;    thirdCPU[ 1477,98 ] = -5.84002066;    buf[ 1477,98 ] = -5.84001255
2012.06.02 07:38:19     vect_v2_all_devices (EURUSD,H1) sum( 1339,1186 ) = 0.59214997;    thirdCPU[ 1339,1186 ] = 0.59214997;    buf[ 1339,1186 ] = 0.59215009
2012.06.02 07:38:19     vect_v2_all_devices (EURUSD,H1) sum( 1410,1861 ) = -0.27033439;    thirdCPU[ 1410,1861 ] = -0.27033439;    buf[ 1410,1861 ] = -0.27033412
2012.06.02 07:38:19     vect_v2_all_devices (EURUSD,H1) sum( 1282,459 ) = -0.87189484;    thirdCPU[ 1282,459 ] = -0.87189484;    buf[ 1282,459 ] = -0.87189591
2012.06.02 07:38:19     vect_v2_all_devices (EURUSD,H1) sum( 710,1645 ) = 4.86117268;    thirdCPU[ 710,1645 ] = 4.86117268;    buf[ 710,1645 ] = 4.86116362
2012.06.02 07:38:19     vect_v2_all_devices (EURUSD,H1) sum( 526,938 ) = 0.94805324;    thirdCPU[ 526,938 ] = 0.94805324;    buf[ 526,938 ] = 0.94805157
2012.06.02 07:38:19     vect_v2_all_devices (EURUSD,H1) sum( 914,489 ) = 5.58242941;    thirdCPU[ 914,489 ] = 5.58242941;    buf[ 914,489 ] = 5.58243275
2012.06.02 07:38:19     vect_v2_all_devices (EURUSD,H1) sum( 811,257 ) = -1.11584055;    thirdCPU[ 811,257 ] = -1.11584055;    buf[ 811,257 ] = -1.11583853
2012.06.02 07:38:19     vect_v2_all_devices (EURUSD,H1) sum( 318,498 ) = 1.62952971;    thirdCPU[ 318,498 ] = 1.62952971;    buf[ 318,498 ] = 1.62952805
2012.06.02 07:38:19     vect_v2_all_devices (EURUSD,H1) sum( 648,1434 ) = -5.57316303;    thirdCPU[ 648,1434 ] = -5.57316303;    buf[ 648,1434 ] = -5.57315731
2012.06.02 07:38:19     vect_v2_all_devices (EURUSD,H1) CPUTime / GPUTotalTime = 29.879
2012.06.02 07:38:19     vect_v2_all_devices (EURUSD,H1) Device = 2: time = 3.105 sec.
2012.06.02 07:38:19     vect_v2_all_devices (EURUSD,H1) read = 4000000 elements
2012.06.02 07:38:15     vect_v2_all_devices (EURUSD,H1) ________________________
2012.06.02 07:38:15     vect_v2_all_devices (EURUSD,H1) sum( 684,439 ) = 0.21124490;    thirdCPU[ 684,439 ] = 0.21124490;    buf[ 684,439 ] = 0.21124732
2012.06.02 07:38:15     vect_v2_all_devices (EURUSD,H1) sum( 795,204 ) = -1.68047857;    thirdCPU[ 795,204 ] = -1.68047857;    buf[ 795,204 ] = -1.68047154
2012.06.02 07:38:15     vect_v2_all_devices (EURUSD,H1) sum( 579,1503 ) = 2.46559286;    thirdCPU[ 579,1503 ] = 2.46559286;    buf[ 579,1503 ] = 2.46558809
2012.06.02 07:38:15     vect_v2_all_devices (EURUSD,H1) sum( 675,1504 ) = 0.44935751;    thirdCPU[ 675,1504 ] = 0.44935751;    buf[ 675,1504 ] = 0.44935691
2012.06.02 07:38:15     vect_v2_all_devices (EURUSD,H1) sum( 1251,1415 ) = -2.85569835;    thirdCPU[ 1251,1415 ] = -2.85569835;    buf[ 1251,1415 ] = -2.85569715
2012.06.02 07:38:15     vect_v2_all_devices (EURUSD,H1) sum( 204,1755 ) = 0.31420049;    thirdCPU[ 204,1755 ] = 0.31420049;    buf[ 204,1755 ] = 0.31420231
2012.06.02 07:38:15     vect_v2_all_devices (EURUSD,H1) sum( 1999,74 ) = -2.22978306;    thirdCPU[ 1999,74 ] = -2.22978306;    buf[ 1999,74 ] = -2.22977948
2012.06.02 07:38:15     vect_v2_all_devices (EURUSD,H1) sum( 436,657 ) = 0.59192652;    thirdCPU[ 436,657 ] = 0.59192652;    buf[ 436,657 ] = 0.59192693
2012.06.02 07:38:15     vect_v2_all_devices (EURUSD,H1) sum( 967,922 ) = -4.91348410;    thirdCPU[ 967,922 ] = -4.91348410;    buf[ 967,922 ] = -4.91348314
2012.06.02 07:38:15     vect_v2_all_devices (EURUSD,H1) sum( 1489,1175 ) = -2.48868656;    thirdCPU[ 1489,1175 ] = -2.48868656;    buf[ 1489,1175 ] = -2.48868561
2012.06.02 07:38:15     vect_v2_all_devices (EURUSD,H1) CPUTime / GPUTotalTime = 179.795
2012.06.02 07:38:15     vect_v2_all_devices (EURUSD,H1) Device = 1: time = 0.516 sec.
2012.06.02 07:38:15     vect_v2_all_devices (EURUSD,H1) read = 4000000 elements
2012.06.02 07:38:14     vect_v2_all_devices (EURUSD,H1) ________________________
2012.06.02 07:38:14     vect_v2_all_devices (EURUSD,H1) sum( 303,1215 ) = -7.46387863;    thirdCPU[ 303,1215 ] = -7.46387863;    buf[ 303,1215 ] = -7.46388054
2012.06.02 07:38:14     vect_v2_all_devices (EURUSD,H1) sum( 1173,1406 ) = -5.64940453;    thirdCPU[ 1173,1406 ] = -5.64940453;    buf[ 1173,1406 ] = -5.64940882
2012.06.02 07:38:14     vect_v2_all_devices (EURUSD,H1) sum( 1617,1405 ) = -0.98162729;    thirdCPU[ 1617,1405 ] = -0.98162729;    buf[ 1617,1405 ] = -0.98162866
2012.06.02 07:38:14     vect_v2_all_devices (EURUSD,H1) sum( 760,1003 ) = -0.97699410;    thirdCPU[ 760,1003 ] = -0.97699410;    buf[ 760,1003 ] = -0.97699606
2012.06.02 07:38:14     vect_v2_all_devices (EURUSD,H1) sum( 679,793 ) = -5.41226530;    thirdCPU[ 679,793 ] = -5.41226530;    buf[ 679,793 ] = -5.41227150
2012.06.02 07:38:14     vect_v2_all_devices (EURUSD,H1) sum( 1345,1865 ) = 0.95630527;    thirdCPU[ 1345,1865 ] = 0.95630527;    buf[ 1345,1865 ] = 0.95630503
2012.06.02 07:38:14     vect_v2_all_devices (EURUSD,H1) sum( 1289,1659 ) = -3.82919979;    thirdCPU[ 1289,1659 ] = -3.82919979;    buf[ 1289,1659 ] = -3.82920074
2012.06.02 07:38:14     vect_v2_all_devices (EURUSD,H1) sum( 1216,1759 ) = 4.87398672;    thirdCPU[ 1216,1759 ] = 4.87398672;    buf[ 1216,1759 ] = 4.87398672
2012.06.02 07:38:14     vect_v2_all_devices (EURUSD,H1) sum( 1268,1060 ) = 2.78621030;    thirdCPU[ 1268,1060 ] = 2.78621030;    buf[ 1268,1060 ] = 2.78621435
2012.06.02 07:38:14     vect_v2_all_devices (EURUSD,H1) sum( 1686,577 ) = -4.36586094;    thirdCPU[ 1686,577 ] = -4.36586094;    buf[ 1686,577 ] = -4.36585188
2012.06.02 07:38:14     vect_v2_all_devices (EURUSD,H1) CPUTime / GPUTotalTime = 22.783
2012.06.02 07:38:14     vect_v2_all_devices (EURUSD,H1) Device = 0: time = 4.072 sec.
2012.06.02 07:38:14     vect_v2_all_devices (EURUSD,H1) read = 4000000 elements
2012.06.02 07:38:10     vect_v2_all_devices (EURUSD,H1) ---------------
2012.06.02 07:38:10     vect_v2_all_devices (EURUSD,H1) CPUTime = 92.774
2012.06.02 07:36:37     vect_v2_all_devices (EURUSD,H1) OCL martices mul:         ROWS1 = 2000; COLSROWS = 2000; COLS2 = 2000
2012.06.02 07:36:37     vect_v2_all_devices (EURUSD,H1) =======================================
Документация по MQL5: Основы языка / Переменные / Создание и уничтожение объектов
Документация по MQL5: Основы языка / Переменные / Создание и уничтожение объектов
  • www.mql5.com
Основы языка / Переменные / Создание и уничтожение объектов - Документация по MQL5