OpenCL: внутренние тесты реализации в MQL5 - страница 57

Andrey Dik
13355
Andrey Dik  
Как показал мой случай - удалять вовсе необязательно. Достаточно отключить ненужное в реестре.

Sceptic Philozoff
17690
Sceptic Philozoff  
joo: Как показал мой случай - удалять вовсе необязательно. Достаточно отключить ненужное в реестре.

Фактически да.

Андрей, ты хоть покажи результаты на своем i5 - на чистом CPU. Порадуюсь за тебя.

Файлы:
Andrey Dik
13355
Andrey Dik  
2012.04.21 21:22:59     ParallelTester_00-02-416x7x3j (GBPUSD,H4)       CpuTime/GpuTime = 32.46979038224414
2012.04.21 21:22:59     ParallelTester_00-02-416x7x3j (GBPUSD,H4)       Result on Cpu МахResult==4.17098 at 469 pass
2012.04.21 21:22:59     ParallelTester_00-02-416x7x3j (GBPUSD,H4)       Соunt inticators = 16; Count history bars = 50000; Count pass = 512
2012.04.21 21:22:59     ParallelTester_00-02-416x7x3j (GBPUSD,H4)       CPU time = 26333 ms
2012.04.21 21:22:33     ParallelTester_00-02-416x7x3j (GBPUSD,H4)       Result on Gpu МахResult==4.17098 at 469 pass
2012.04.21 21:22:33     ParallelTester_00-02-416x7x3j (GBPUSD,H4)       Соunt inticators = 16; Count history bars = 50000; Count pass = 512
2012.04.21 21:22:33     ParallelTester_00-02-416x7x3j (GBPUSD,H4)       GPU time = 811 ms
2012.04.21 21:22:32     ParallelTester_00-02-416x7x3j (GBPUSD,H4)       OpenCL init OK!


2012.04.21 21:24:18     ParallelTester_00-02-416x7x3j (GBPUSD,H4)       CpuTime/GpuTime = 3.06352340030194
2012.04.21 21:24:18     ParallelTester_00-02-416x7x3j (GBPUSD,H4)       Result on Cpu МахResult==3.85664 at 271 pass
2012.04.21 21:24:18     ParallelTester_00-02-416x7x3j (GBPUSD,H4)       Соunt inticators = 16; Count history bars = 50000; Count pass = 512
2012.04.21 21:24:18     ParallelTester_00-02-416x7x3j (GBPUSD,H4)       CPU time = 26380 ms
2012.04.21 21:23:52     ParallelTester_00-02-416x7x3j (GBPUSD,H4)       Result on Gpu МахResult==3.85664 at 271 pass
2012.04.21 21:23:52     ParallelTester_00-02-416x7x3j (GBPUSD,H4)       Соunt inticators = 16; Count history bars = 50000; Count pass = 512
2012.04.21 21:23:52     ParallelTester_00-02-416x7x3j (GBPUSD,H4)       GPU time = 8611 ms
2012.04.21 21:23:43     ParallelTester_00-02-416x7x3j (GBPUSD,H4)       OpenCL init OK!
Sceptic Philozoff
17690
Sceptic Philozoff  

Не, не на этих, а на том, что я прикрепил в последнем посте. Именно на нем в точности. Выкладываю свой результат на этом скрипте:

2012.04.21 19:32:43    ParallelTester_00-01x (EURUSD,H1)    CpuTime/GpuTime = 83.99644128113879
2012.04.21 19:32:43    ParallelTester_00-01x (EURUSD,H1)    Result on Cpu МахResult==1.26619 at 856 pass
2012.04.21 19:32:43    ParallelTester_00-01x (EURUSD,H1)    Соunt indicators = 16; Count history bars = 144000; Count pass = 1280
2012.04.21 19:32:43    ParallelTester_00-01x (EURUSD,H1)    CPU time = 23603 ms
2012.04.21 19:32:20    ParallelTester_00-01x (EURUSD,H1)    Result on Gpu МахResult==1.26619 at 856 pass
2012.04.21 19:32:20    ParallelTester_00-01x (EURUSD,H1)    Соunt indicators = 16; Count history bars = 144000; Count pass = 1280
2012.04.21 19:32:20    ParallelTester_00-01x (EURUSD,H1)    GPU time = 281 ms
2012.04.21 19:32:19    ParallelTester_00-01x (EURUSD,H1)    OpenCL init OK!
2012.04.21 19:32:19    ParallelTester_00-01x (EURUSD,H1)    CLGetInfoInteger() returned 1

Процессор:

2012.04.21 17:51:14    OpenCL    CPU: Intel(R) Corporation  Intel(R) Pentium(R) CPU G840 @ 2.80GHz with OpenCL 1.1 (2 units, 2800 MHz, 8040 Mb, version 1.1)

Файлы:
Andrey Dik
13355
Andrey Dik  
2012.04.21 21:38:41	ParallelTester_00-01x__1 (GBPUSD,H4)	CpuTime/GpuTime = 118.7051282051282
2012.04.21 21:38:41	ParallelTester_00-01x__1 (GBPUSD,H4)	Result on Cpu МахResult==1.06083 at 993 pass
2012.04.21 21:38:41	ParallelTester_00-01x__1 (GBPUSD,H4)	Соunt indicators = 16; Count history bars = 144000; Count pass = 1280
2012.04.21 21:38:41	ParallelTester_00-01x__1 (GBPUSD,H4)	CPU time = 18518 ms
2012.04.21 21:38:23	ParallelTester_00-01x__1 (GBPUSD,H4)	Result on Gpu МахResult==1.06083 at 993 pass
2012.04.21 21:38:23	ParallelTester_00-01x__1 (GBPUSD,H4)	Соunt indicators = 16; Count history bars = 144000; Count pass = 1280
2012.04.21 21:38:23	ParallelTester_00-01x__1 (GBPUSD,H4)	GPU time = 156 ms
2012.04.21 21:38:23	ParallelTester_00-01x__1 (GBPUSD,H4)	OpenCL init OK!
2012.04.21 21:38:22	ParallelTester_00-01x__1 (GBPUSD,H4)	CLGetInfoInteger() returned 2

Странно, у тебя имя файла видать как

paralleltester_00-01x.mq5, а сохраняется как ParallelTester_00-01x__1.mq5


2012.04.21 08:31:11     OpenCL  CPU: GenuineIntel  Intel(R) Core(TM) i5-2500 CPU @ 3.30GHz with OpenCL 1.2 (4 units, 3399 MHz, 8174 Mb, version 2.0 (sse2,avx))

Sceptic Philozoff
17690
Sceptic Philozoff  
joo:

Странно, у тебя имя файла видать как

paralleltester_00-01x.mq5, а сохраняется как ParallelTester_00-01x__1.mq5

Да ничего странного. Просто файл с таким именем уже есть, вот и добавляет __1. Где тест на ParallelTester_00-01x__1.mq5, Андрей?

Вижу, очень даже неплохо. Немного хуже, чем я ожидал (надеялся на 140-150), но все равно очень хорошо. В принципе разброс этого отношения в пределах 20-30% - нормальное дело (особенно если GPU time невелико). Кстати, если, скажем, сделать так:

#define CountPass  1280 * 10

то можно расчитывать на очередной рекорд по отношению CpuTime/GpuTime. Твой "теоретический предел" - что-то в районе 170-180. У меня, во всяком случае, почти 90 вышло, а у тебя должно быть в два раза больше.

Andrey Dik
13355
Andrey Dik  

Mathemat:

#define CountPass  1280 * 10

то можно расчитывать на очередной рекорд по отношению CpuTime/GpuTime. Твой "теоретический предел" - что-то в районе 170-180. У меня, во всяком случае, почти 90 вышло, а у тебя должно быть в два раза больше.


Это при 1280*10:

2012.04.21 23:31:24     ParallelTester_00-01x__1 (EURUSD,M5)    GPU time = 344 ms
2012.04.21 23:31:24     ParallelTester_00-01x__1 (EURUSD,M5)    Соunt indicators = 16; Count history bars = 144000; Count pass = 12800
2012.04.21 23:31:24     ParallelTester_00-01x__1 (EURUSD,M5)    Result on Gpu МахResult==1.12991 at 9491 pass
2012.04.21 23:34:30     ParallelTester_00-01x__1 (EURUSD,M5)    CPU time = 185875 ms
2012.04.21 23:34:30     ParallelTester_00-01x__1 (EURUSD,M5)    Соunt indicators = 16; Count history bars = 144000; Count pass = 12800
2012.04.21 23:34:30     ParallelTester_00-01x__1 (EURUSD,M5)    Result on Cpu МахResult==1.12991 at 9491 pass
2012.04.21 23:34:30     ParallelTester_00-01x__1 (EURUSD,M5)    CpuTime/GpuTime = 540.3343023255814

а при 1280*128 я просто устал ждать и вырубил скрипт принудительно:

2012.04.21 23:40:22     ParallelTester_00-01x__1 (EURUSD,M5)    GPU time = 2013 ms
2012.04.21 23:40:22     ParallelTester_00-01x__1 (EURUSD,M5)    Соunt indicators = 16; Count history bars = 144000; Count pass = 131072
2012.04.21 23:40:22     ParallelTester_00-01x__1 (EURUSD,M5)    Result on Gpu МахResult==1.70906 at 99682 pass
2012.04.21 23:48:48     ParallelTester_00-01x__1 (EURUSD,M5)    Abnormal termination
Sceptic Philozoff
17690
Sceptic Philozoff  
Я имел в виду вычисления на голом CPU. Конечно, на дискретной карте цифры выше.
Sergey
819
Sergey  
Есть новости по запуску расчетов с использованием OpenCL?
Sceptic Philozoff
17690
Sceptic Philozoff  
casinonsk: Есть новости по запуску расчетов с использованием OpenCL?

Ну наконец-то, заждались уже Вас. Если готовы поэкспериментировать - поставьте у себя Intel OpenCL Runtime (инструкции по ссылке).

Запустите скрипт, ничего не меняя в нем, и выложите лог из закладки "Эксперты" так же, как это делали предыдущие коллеги. Полное время выполнения скрипта - примерно 3 минуты на Вашем камне, потерпите. Заодно узнаем, как OpenCL работает на самом крутом голом камне Sandy Bridge.

Если Вашего терпения не хватит или Вам кажется, что это выше Ваших способностей, - ничего страшного, не обидимся.

P.S. Цель этого скрипта - посмотреть, на что способен голый CPU без всяких дискретных видеодраконов. Подозреваю, что при правильно вставшем Intel Runtime и на этом скрипте будет ускорение в районе 200 или даже чуть повыше.

Файлы: