![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
Erzählen Sie uns im Detail, was Sie getan haben. Angefangen damit, wie Sie AMD APP SDK zu Fall gebracht haben.
Übrigens, vielleicht haben Sie im Skript ParallelTester_00-01x in die Funktion CLContextCreate() keinen Parameter gleich 0 eingefügt (sie wird möglicherweise auf dem Host (d. h. auf der CPU) ausgeführt). In meinem Beitrag war davon nicht die Rede.
Erzählen Sie uns im Detail, was Sie getan haben. Angefangen damit, wie Sie das AMD APP SDK abgeschafft haben.
Deinstallieren Sie das AMD APP SDK, indem Sie die entsprechende Setup.exe, Uninstall ausführen. Neu gestartet.
Installierte Intel OCL (intel_ocl_sdk_1.5_x64_setup.exe), nur RunTime. Neu gestartet.
MT5 ausführen - Fehlanzeige. Die Registrierung wurde auf Ihren Rat hin korrigiert. MT5 neu aufgesetzt - schade.
Pfad auf Anraten von mql5 hinzugefügt , mit und ohne Anführungszeichen, x64 und x32 ausprobiert. Nach jeder Änderung des Registers - meine Verwendung von MT5 wieder und meine Verwendung - gleiche alte Eier, nur eine Seitenansicht.
Jetzt sieht HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\OpenCL\Vendors wie folgt aus:
(Standard)REG_SZ (Wert nicht zugewiesen)
C:\Program Files (x86)\Intel\OpenCL SDK1.5\bin\x86\intelocl.dll REG_DWORD 0x00000000 (0)
(Standard)REG_SZ (Wert nicht zugewiesen)
C:\Program Files (x86)\Intel\OpenCL SDK\1.5\bin\x86\intelocl.dll REG_DWORD 0x00000000 (0)
Haben Sie da mal reingeschaut? Ich, zum Beispiel, habe nichts unter diesem Pfad (aber ich habe nur die Runtime heruntergeladen und installiert, vielleicht ist das der Grund).
Und zweitens habe ich gerade intelocl.dll ohne den vollständigen Pfad erstellt. Wahrscheinlich wurde es ohnehin während der Laufzeitinstallation registriert.
P.S. Ich habe mit vollständigen Pfaden experimentiert. Metatrader sieht OpenCL nicht mit vollen Pfaden (beide). Wenn ich aber nur intelocl.dll als Namen einstelle, wird alles sofort sichtbar, auch ohne Neustart des Computers.
Ich weiß nicht, wie ich die "richtige" Datei aus zwei im System vorhandenen Dateien mit demselben Namen auswählen kann.
Bitte berichten Sie hier über den Prozess. Trotzdem ist es interessant, vielleicht gibt es einige Nuancen. Ich selbst habe mich lange damit herumgeschlagen, und ich habe mit dem Ergebnis "gehadert", das mir sehr gut gefällt.
P.P.S. Übrigens, als ich auf der Intel-Ressource war, wurde mir geraten, das komplette Intel SDK zu deinstallieren und neu zu installieren, d.h. nicht nur zu deinstallieren, sondern auch in die Verzeichnisse system32 und sysWOW64 zu gehen und alles zu entfernen, was mit intelocl zu tun hat. Dies sind intelocl*.dll, opencl*.dll und andere Dateien. Irgendwo hier in der Nähe ist http://software.intel.com/en-us/forums/intel-opencl-sdk/. Wenn ich sie finde, werde ich einen genaueren Link einfügen.
Nützliche Links: http://software.intel.com/en-us/articles/opencl-release-notes/
Und hier - besonders nützlich: http://software.intel.com/en-us/forums/showthread.php?t=102023&o=a&s=lr, dort kann der Rat von Uri Levy (Intel) wirklich helfen. Wie auch immer, es ist immer noch ein Tamburinspiel.
Dies ist auf der CPU (in meinem Fall ist es Gerät 1):
Der Parameter CLContextCreate(device) wurde in den Skript-Parameter übernommen, so dass Sie in allen Optionen herumstochern können.
Interessant ist Folgendes:
Dieses Skript auf dem 630er Build läuft irgendwie nicht so. Keine Meldung, geht in eine Schleife und lädt den Stein auf 100%. Und es geht nicht über eine angemessene Zeit hinaus. Aber ich habe bereits Intel-Runtime.
Interessant ist, wie:
Dieses Skript auf dem 630er Build läuft irgendwie nicht so. Keine Meldung, geht in eine Schleife und lädt den Stein zu 100 Prozent. Und es geht nicht über eine angemessene Zeit hinaus. Aber ich habe bereits Intel-Runtime.
Neu kompiliert. Bei mir funktioniert es.
Ist das auf der CPU?! Wenn das so ist, machst du mir Angst...
Ich habe mich zu früh gefreut. Ich habe es ausgeführt, und es hat keinen Sinn gemacht. Kein einziger Eintrag im EA-Protokoll. Obwohl das Skript begann und sofort den ganzen Felsen füllte. Mit anderen Worten, er hat auf etwas gehämmert, ist aber nicht zu CLContextCreate() gelangt (er hätte etwas gesagt, wenn er dorthin gelangt wäre, nicht wahr?).
Das ist etwas Neues. Es sieht so aus, als ob die Intel-Laufzeitumgebung den mit dem AMD SDK kompilierten Code nicht versteht. Ich habe OCL_Device sowohl auf 0 als auch auf -1 gesetzt. Keine Wirkung.
Im Allgemeinen ist es ungünstig, dass Sie die Plattform nicht wählen können. Ich wünschte, es wäre möglich, das zu tun. Ich bin es leid, alles neu zu installieren.
Ist das auf der CPU?! Wenn das so ist, machst du mir Angst...
Nein, auf der GPU. Aber das OpenCL-Gerät ist auswählbar. Hier auf der CPU:
Ich habe mich zu früh gefreut. Ich habe es ausgeführt und es hat keinen Sinn gemacht. Kein einziger Eintrag im EA-Protokoll. Aber das Skript läuft an und füllt sofort den ganzen Felsen aus. D.h. es hämmert auf etwas ein, kommt aber nicht zu CLContextCreate() (wenn es so wäre, würde es etwas sagen, richtig?).
Etwas Neues. Es ist, als ob die Intel-Laufzeitumgebung den mit AMD SDK kompilierten Code nicht versteht. Ich habe OCL_Device sowohl auf 0 als auch auf -1 gesetzt. Keine Wirkung.
Im Allgemeinen ist es ungünstig, dass Sie die Plattform nicht auswählen können. Es wäre wünschenswert, eine solche Möglichkeit zu haben. Ich bin es leid, alles neu zu installieren.
Oh, Mann, es ist eine Ransomware).
Okay, hier ist der Quellcode. Machen Sie damit, was Sie wollen.
Der Code lässt sich nicht mit AMD SDK kompilieren. Zumindest der OCL-Code tut dies. Das OCL-Programm wird während der Ausführung von mql-Code kompiliert. Die EX5-Datei aus dem OCL-Snap-In kompiliert nur die Brückenfunktionen des mql/ocl-Treibers. Ich glaube nicht, dass sie je nach Hersteller des Treibers in unterschiedlichen Maschinencode kompiliert werden. Allerdings können nur die Entwickler diesen Punkt vollständig klären.
Haben Sie es dort überprüft? Ich zum Beispiel habe nichts dergleichen in diesem Pfad (aber ich habe nur die Runtime heruntergeladen und installiert, vielleicht ist das der Grund, warum es nichts gibt).
Und zweitens habe ich gerade intelocl.dll ohne den vollständigen Pfad erstellt. Wahrscheinlich wurde sie ohnehin bei der Installation der Laufzeitumgebung registriert.
...
Die "nackte" intelocl.dll war eine der ersten, die überprüft wurde. Sowohl im x64- als auch im x86-Ordner gibt es eine Datei mit diesem Namen.
Ich weiß nicht, was ich dann tun soll. Ich habe mich auf der Suche nach einer Lösung gequält, bis mir das Support-Team einen Tipp gab. Wahrscheinlich ist das keine vollständige Lösung, aber auf meinem Computer hat es funktioniert.
Wahrscheinlich muss man als erstes lernen, wie man die Spuren der früheren SDKs sauber entfernt.