OpenCL: internal implementation tests in MQL5 - page 56

 
Ashes: It did not help.

Tell us in detail what you did. Beginning with how you took down AMD APP SDK.

By the way, perhaps, you may not have inserted a parameter in ParallelTester_00-01x script into CLContextCreate() function equal to 0 (it may be executed on the host (i.e. on the CPU). It wasn't written about it in my post.

 
Mathemat:
Tell us in detail what you did. Starting with how you took down the AMD APP SDK.

Uninstalled AMD APP SDK by running the appropriate Setup.exe, Uninstall. Rebooted.

Installed Intel OCL (intel_ocl_sdk_1.5_x64_setup.exe), RunTime only. Rebooted.

Run MT5 - missed. Fixed registry on your advice. Reloaded MT5 - bummer.

Added path on the advice of mql5, tried with and without quotes, x64 , and x32. After each modification of register - my using MT5 again and my using - same old eggs, only one side view.

Now HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\OpenCL\Vendors looks like this:

(Default)REG_SZ (value not assigned)

C:\Program Files (x86)\Intel\OpenCL SDK1.5\bin\x86\intelocl.dll REG_DWORD 0x00000000 (0)

 
Ashes: Right now HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\OpenCL\Vendors looks like this:

(Default)REG_SZ (value not assigned)

C:\Program Files (x86)\Intel\OpenCL SDK\1.5\bin\x86\intelocl.dll REG_DWORD 0x00000000 (0)

Have you looked in there? I, for example, do not have anything at this path (but I downloaded and installed only the runtime, maybe that's why not).

And secondly, I just made intelocl.dll without the full path. It was probably registered during runtime installation anyway.

P.S. Experimented with full paths. Metatrader does not see OpenCL with full paths (both of them). But if I set just intelocl.dll as the name, everything becomes visible immediately, even without rebooting the computer.

I don't know how to choose "right" file from two existing files with the same name in the system.

Please report here about the process. Still, it's interesting, maybe there are some nuances. I myself have been struggling with this for a long time now, and I did "mess" with the result, which I like very much.

P.P.S. By the way, when I was on the Intel resource, they advised to uninstall complete Intel SDK and reinstall it again. i.e. do not just uninstall, but also get into directories system32 and sysWOW64 and remove everything related to intelocl. These are intelocl*.dll, opencl*.dll and other files. Somewhere around here is http://software.intel.com/en-us/forums/intel-opencl-sdk/. When I find it, I'll throw in a more precise link.

Useful links: http://software.intel.com/en-us/articles/opencl-release-notes/

And here - especially useful: http://software.intel.com/en-us/forums/showthread.php?t=102023&o=a&s=lr, there Uri Levy's (Intel) advice may really help. Anyway, it's still a tambourine game.

 
MetaDriver (p. 53):

This is on CPU (in my case it's device 1):

Pulled the CLContextCreate(device) parameter into the script parameter. You can poke around all the options.

What's interesting is this:

This script on the 630 build somehow doesn't run like that. No message, goes into a loop, loading the stone to 100%. And it doesn't go beyond a reasonable time. But I already have Intel runtime.

 
Mathemat:

What's interesting is how:

This script on the 630 build somehow doesn't run like that. No message, goes into a loop, loads the stone 100 percent. And it doesn't go beyond a reasonable time. But I already have Intel runtime.

Recompiled. It works for me.

2012.04.21 00:33:21     ParallelTester_00-02-{16 x7x3} (EURUSD,M1)       CpuTime/GpuTime = 326.6
2012.04.21 00:33:21     ParallelTester_00-02-{16 x7x3} (EURUSD,M1)       Result on Cpu МахResult==4.15901 at 208 pass
2012.04.21 00:33:21     ParallelTester_00-02-{16 x7x3} (EURUSD,M1)       Соunt inticators = 16; Count history bars = 50000; Count pass = 512
2012.04.21 00:33:21     ParallelTester_00-02-{16 x7x3} (EURUSD,M1)       CPU time = 40825 ms
2012.04.21 00:32:40     ParallelTester_00-02-{16 x7x3} (EURUSD,M1)       Result on Gpu МахResult==4.15901 at 208 pass
2012.04.21 00:32:40     ParallelTester_00-02-{16 x7x3} (EURUSD,M1)       Соunt inticators = 16; Count history bars = 50000; Count pass = 512
2012.04.21 00:32:40     ParallelTester_00-02-{16 x7x3} (EURUSD,M1)       GPU time = 125 ms
2012.04.21 00:32:40     ParallelTester_00-02-{16 x7x3} (EURUSD,M1)       OpenCL init OK!

 
MetaDriver: I've recompiled it. It works for me.

Is that on the CPU?! Well, if it is, you're scaring me...

I got excited too soon. I ran it and it didn't make any sense. Not a single entry in the EA log. But the script started up and immediately filled the whole rock. In other words, it pounded on something, but did not get to CLContextCreate() (it would have said something if it had gotten there, wouldn't it?).

This is something new. It looks as if Intel runtime does not comprehend code compiled on AMD SDK. I set OCL_Device to both 0 and -1. No effect.

In general, it's inconvenient that you cannot choose the platform. I wish it were possible to do that. I'm sick of reinstalling.

 
Mathemat:

Is that on the CPU?! Well, if it is, you're scaring me...

No, on the GPU. But the OpenCL device is selectable. Here on the CPU:

2012.04.21 06:20:18     ParallelTester_00-02-{16 x7x3} (EURUSD,M1)       CpuTime/GpuTime = 74.28571428571429
2012.04.21 06:20:18     ParallelTester_00-02-{16 x7x3} (EURUSD,M1)       Result on Cpu МахResult==3.53209 at 36 pass
2012.04.21 06:20:18     ParallelTester_00-02-{16 x7x3} (EURUSD,M1)       Соunt inticators = 16; Count history bars = 50000; Count pass = 512
2012.04.21 06:20:18     ParallelTester_00-02-{16 x7x3} (EURUSD,M1)       CPU time = 40560 ms
2012.04.21 06:19:38     ParallelTester_00-02-{16 x7x3} (EURUSD,M1)       Result on Gpu МахResult==3.53209 at 36 pass
2012.04.21 06:19:38     ParallelTester_00-02-{16 x7x3} (EURUSD,M1)       Соunt inticators = 16; Count history bars = 50000; Count pass = 512
2012.04.21 06:19:38     ParallelTester_00-02-{16 x7x3} (EURUSD,M1)       GPU time = 546 ms
2012.04.21 06:19:37     ParallelTester_00-02-{16 x7x3} (EURUSD,M1)       OpenCL init OK!

I got excited too soon. I ran it and it didn't make any sense. Not a single entry in the EA log. But the script starts up and immediately fills the whole rock. I.e. it pounding on something, but does not get to CLContextCreate() (if it had, it would say something, right?).

Something new. It's like Intel runtime doesn't understand code compiled on AMD SDK. I set OCL_Device to both 0 and -1. No effect.

In general, it's inconvenient that you cannot select the platform. It would be desirable to have such an opportunity. I'm sick of reinstalling.

Oh, man, it's a ransomware.)

Okay, here's the source code. Do what you want with it.

The code does not compile on AMD SDK. At least the OCL code does. The OCL program is compiled during the execution of mql code. The EX5 file from the OCL snap-in only compiles the mql/ocl-driver bridge functions. I don't think they are compiled to different machine code depending on the driver's manufacturer. Although only the developers can fully clarify this point.

 
MetaDriver: Code doesn't compile on AMD SDK.
It's understandable, I was speaking poorly (well, I'm not a coder-professional). But it still depends on the OpenCL "library" vendor (internal functions themselves, not API).
 
Mathemat:

Have you checked it there? I, for example, don't have anything like that on this path (but I only downloaded and installed runtime, maybe that's why not).

And secondly, I just made intelocl.dll without the full path. It was probably registered when installing runtime anyway.

...

The "bare" intelocl.dll was one of the first to be checked. There is a file with that name in both x64 and x86 folders.

 
Ashes: The "bare" intelocl.dll was one of the first to be checked. There is a file with that name in both x64 and x86 folders.

I do not know what to do then. I've been torturing myself looking for a solution until the Support Team gave me a hint. Probably not a complete solution, but it did work on my computer.

Probably the first thing to learn is how to cleanly remove traces of the previous SDKs.

Reason: