Here's what you can do with OpenCL directly in MetaTrader 5 without any DLLs - page 2

 
Renat Fatkhullin:

We are preparing an OpenCL staff library for maths and rendering, which will take a few weeks. It's going to be amazingly fast and beautiful.

In the meantime, take a look at the updated graphics library for rendering science graphs.

So, is it all about writing programs on it in MetaEditor, or are they already prepared and only a script should be thrown on the graph?
 

It didn't start for me either:

2016.12.10 07:00:47.388 Seascape (EURUSD,M1)    OpenCL: GPU device 'Redwood' selected
2016.12.10 07:00:47.418 Seascape (EURUSD,M1)    
2016.12.10 07:00:47.418 Seascape (EURUSD,M1)    OpenCL program create failed
2016.12.10 07:00:57.263 Seascape (EURUSD,M1)    OpenCL: GPU device 'Redwood' selected
2016.12.10 07:00:57.285 Seascape (EURUSD,M1)    
2016.12.10 07:00:57.285 Seascape (EURUSD,M1)    OpenCL program create failed
 

OpenCL is very good, you can train neural networks very quickly with this technology, hundreds (thousands) of times faster than on an ordinary processor.

prostotrader:
2016.12.10 03:57:08.218 Seascape (GOLD-12.16,H1)        OpenCL program create failed
2016.12.10 03:57:36.695 Seascape (GOLD-12.16,H1)        OpenCL: GPU device 'GeForce GTX 970' selected
2016.12.10 03:57:36.711 Seascape (GOLD-12.16,H1)        <kernel>:188:18: error: subscripted access is not allowed for OpenCL vectors
2016.12.10 03:57:36.711 Seascape (GOLD-12.16,H1)           uint b=(uint)(res[2]*255);
2016.12.10 03:57:36.711 Seascape (GOLD-12.16,H1)                         ^   ~
2016.12.10 03:57:36.711 Seascape (GOLD-12.16,H1)        <kernel>:189:18: error: subscripted access is not allowed for OpenCL vectors
2016.12.10 03:57:36.711 Seascape (GOLD-12.16,H1)           uint g=(uint)(res[1]*255);
2016.12.10 03:57:36.711 Seascape (GOLD-12.16,H1)                         ^   ~
2016.12.10 03:57:36.711 Seascape (GOLD-12.16,H1)        <kernel>:190:18: error: subscripted access is not allowed for OpenCL vectors
2016.12.10 03:57:36.711 Seascape (GOLD-12.16,H1)           uint r=(uint)(res[0]*255);
2016.12.10 03:57:36.711 Seascape (GOLD-12.16,H1)                         ^   ~
2016.12.10 03:57:36.711 Seascape (GOLD-12.16,H1)        
2016.12.10 03:57:36.730 Seascape (GOLD-12.16,H1)        OpenCL program create failed

This can be fixed by finding these lines in the script -

                    "   uint b=(uint)(res[2]*255);\r\n"
                    "   uint g=(uint)(res[1]*255);\r\n"
                    "   uint r=(uint)(res[0]*255);\r\n"

and replace them with -

                    "   uint b=(uint)(res.z*255);\r\n"
                    "   uint g=(uint)(res.y*255);\r\n"
                    "   uint r=(uint)(res.x*255);\r\n"
 

A few questions:

  1. If multiple EAs are running in the same terminal, can they share and use OpenCL independently?
  2. Same with multiple terminals.

 
Renat Fatkhullin:

Thousands of GPU cores can be used with OpenCL to speed up calculations by a hundred (several hundred) times.

This is exactly what is needed in trading and what will enable the transition to techniques that require orders of magnitude more computational resources.

In MQL4 you dig with a shovel, while in MQL5 with OpenCL you get a tractor in terms of performance. To bring GPU calculations to the masses, we are preparing new math libraries in addition to the existing ones.

You also need real examples of what can be realistically paralleled in an EA, for example.

Can I use code using OpenCL when optimizing?

 
Renat Fatkhullin:

With OpenCL you can use thousands of GPU cores to speed up mathematical calculations a hundred (several hundred) times.

This is exactly what is needed in trading and what will allow the transition to techniques that require orders of magnitude more computational resources.

In MQL4 you dig with a spade and in MQL5 with OpenCL you get a tractor in terms of performance. To bring GPU calculations to the masses, we are preparing new math libraries in addition to the existing ones.

Will there ever be something similar for MQL4? Or at least, the use of multithreading, because multicore processors are of little use...

You can make games with such graphics on the client terminal, but I wonder whether traders will play instead of trading )

 
Alexander Nikolaev:

Will there ever be something similar for MQL4? Or at least, the use of multithreading, because multicore processors are of little use...

I don't know if traders will play games on the terminal with such graphics, but I wonder if they will play games instead of trading )

What are your tasks that lack one core?

You can run copies of terminals corresponding to the number of cores to optimize them.

 
-Aleks-:

What kind of task do you have that lacks one core?

You can run copies of the terminals corresponding to the number of cores to optimise.

Well, if not only 8-16 CPU cores but thousands of CPU cores are used for optimization, it would be a performance explosion. If, of course, such a possibility is implemented.
 
Vitalie Postolache:
Well, if not only 8-16 CPU cores but thousands of CPU cores are used for optimization, it would be a performance explosion. If, of course, such a possibility will be implemented.
Renat has long said that OpenCL works in the MT5 tester, but only on a local machine, not in the cloud. So use it even now.
 

Beautiful!!!

Even thought of how it could be used later - live news directly on the chart, or its own channel with analytics or training (webinars)

Developers Well done.