![MQL5 - Sprache von Handelsstrategien, eingebaut ins Kundenterminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Ich nehme an, dass, wenn wir ein zweidimensionales/mehrdimensionales Array mit Daten an die GPU übergeben wollen, wir die Datendarstellung in Form einer Struktur verwenden und die Struktur übergeben können?
Ich habe es über eine Struktur versucht - es hat funktioniert! Ich wäre selbst nie auf die Idee gekommen, mehrdimensionale Arrays auf diese Weise zu übergeben :) Danke!
Ich habe ein kleines Beispiel beigefügt, bei dem zweidimensionale Arrays verwendet werden - es funktioniert einwandfrei. Das Beispiel ist ein wenig schief - aber im Allgemeinen zeigt es die Möglichkeit einer solchen Perversion ganz gut :)
PS: Ihr UGA + OpenCL - es ist einfach nicht genug Emotionen :) Wie wir früher gelebt haben - es ist schrecklich, sich daran zu erinnern...
PS: Dein UGA + OpenCL ist einfach kein Gefühl :) Wie wir früher gelebt haben, ist unheimlich...
CL_DEVICE_ANY und CL_DEVICE_GPU sind veraltet?
Sind CL_USE_ANY und CL_USE_GPU_ONLY jetzt relevant?
CL_DEVICE_ANY und CL_DEVICE_GPU sind veraltet?
Sind CL_USE_ANY und CL_USE_GPU_ONLY jetzt relevant?
Ja.
Durch die Methode von Prof. Tychkov habe ich ein mysteriöses Gerät 1 in meinem Computer entdeckt, das schneller ist als CL_USE_ANY und sogar schneller als CL_USE_GPU_ONLY.
Was ist das? :O
Ich habe ein mysteriöses Gerät 1 in meinem Computer gefunden, das mit der Methode von Professor Tychkov schneller läuft als CL_USE_ANY und sogar schneller als CL_USE_GPU_ONLY.
Was ist das? :O
Statistiken auf der Tafel. Für alle Geräte. :)
CL_USE_ANY
2012.04.12 23:27:29 Struct_OpenCL (GBPUSD,H1) Differenz in der Berechnung zwischen GPY und CPY: 0.0
2012.04.12 23:27:28 Struct_OpenCL (GBPUSD,H1) CPY/GPU= 1.326
2012.04.12 23:27:28 Struct_OpenCL (GBPUSD,H1) GPU-Zeit = 141 ms
2012.04.12 23:27:28 Struct_OpenCL (GBPUSD,H1) SPU Zeit = 187 ms
CL_USE_GPU_ONLY
2012.04.12 23:29:11 Struct_OpenCL (GBPUSD,H1) Differenz in der Berechnung zwischen GPY und CPY: 0.0
2012.04.12 23:29:11 Struct_OpenCL (GBPUSD,H1) CPY/GPU= 1.376
2012.04.12 23:29:11 Struct_OpenCL (GBPUSD,H1) GPU-Zeit = 125 ms
2012.04.12 23:29:11 Struct_OpenCL (GBPUSD,H1) SPU Zeit = 172 ms
1
2012.04.12 23:30:12 Struct_OpenCL (GBPUSD,H1) Differenz in der Berechnung zwischen GPY und CPY: 0.0
2012.04.12 23:30:12 Struct_OpenCL (GBPUSD,H1) CPY/GPU= 2.397
2012.04.12 23:30:12 Struct_OpenCL (GBPUSD,H1) GPU time= 78 ms
2012.04.12 23:30:12 Struct_OpenCL (GBPUSD,H1) SPU Zeit = 187 ms
Ich empfehle jedem, es auf die gleiche Weise wie ich zu versuchen, es ist durchaus möglich, dass Sie ein schnelleres Gerät als die hilflose diskrete Grafik finden werden. :D
PS. Ich vermute, dass CL_USE_ANY und CL_USE_GPU_ONLY dasselbe sind - Berechnung auf der CPU, aber Gerät 1 ist meine GPU. Es handelt sich um eine elementare Verwechslung bei den Standardkonstanten.
Ich empfehle jedem, damit herumzuspielen, wie ich es getan habe, Sie werden wahrscheinlich ein schnelleres Gerät als die nutzlose diskrete Grafik finden. :D
PS. Ich vermute, dass CL_USE_ANY und CL_USE_GPU_ONLY dasselbe sind - es ist eine CPU-Berechnung, aber Gerät 1 ist meine GPU. Es handelt sich um eine elementare Verwechslung bei den Standardkonstanten.
Hier ist , was ich gelesen habe! Das stand nicht in der Hilfe des Terminals! Der Code wurde angepasst, um diese Änderungen zu berücksichtigen. Sehen Sie, was Sie bekommen. Ich habe es so verstanden:
23:17:00 SPU-Zeit = 1155 ms
23:17:01 OpenCL-aktivierte Geräte insgesamt: 2
23:17:02 GPU Zeit #0 = 249 ms
23:17:02 CPY/GPU #0 = 4.639
23:17:03 GPU-Zeit #1 = 265 ms
23:17:03 CPY/GPU #1= 4.358
CPU: Original Intel(R) Core(TM) i3-2310M CPU @ 2.10GHz mit OpenCL 1.1 (4 Einheiten, 2095 MHz, 5990 Mb, Version 2.0)
Versuchen Sie, diese Struktur zu verwenden, bei mir hat es nicht funktioniert (ich vermute, die zweite Dimension muss eine feste Größe haben, deshalb hat es bei mir nicht funktioniert):
Und, der Einfachheit halber, eine Funktion wie diese, um die Größe beider Dimensionen zu ändern: