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

Dmitriy Parfenovich
8075
Dmitriy Parfenovich  
2012.03.08 11:01:12     ParallelTester_00-02-j16x7x3z (EURUSD,M30)      OpenCL init OK!
2012.03.08 11:01:16     ParallelTester_00-02-j16x7x3z (EURUSD,M30)      GPU time = 3962 ms
2012.03.08 11:01:16     ParallelTester_00-02-j16x7x3z (EURUSD,M30)      Соunt inticators = 16; Count history bars = 144000; Count pass = 1024
2012.03.08 11:01:16     ParallelTester_00-02-j16x7x3z (EURUSD,M30)      Result on Gpu МахResult==1.45763 at 821 pass
2012.03.08 11:07:01     ParallelTester_00-02-j16x7x3z (EURUSD,M30)      CPU time = 345465 ms
2012.03.08 11:07:01     ParallelTester_00-02-j16x7x3z (EURUSD,M30)      Соunt inticators = 16; Count history bars = 144000; Count pass = 1024
2012.03.08 11:07:01     ParallelTester_00-02-j16x7x3z (EURUSD,M30)      Result on Cpu МахResult==1.45762 at 821 pass
2012.03.08 11:07:01     ParallelTester_00-02-j16x7x3z (EURUSD,M30)      CpuTime/GpuTime = 87.19459868753155

И вот опять, у papaklass бортвидео, у меня дискрет, проц один и тот же, разница мизер.

Рapaklass какая у Вас битность оси и ось?

Dmitriy Parfenovich
8075
Dmitriy Parfenovich  
papaklass:

W7 32бита. 

Спасибо. У меня тоже, ладно, думаю пока я доберусь до OpenCL, уже все баги выловят и все будет работать нормально.
Anatoli Kazharski
71340
Anatoli Kazharski  
MetaDriver:

...

Исходник не выкладываю - жаба.  Но для желающих потестить на своём железе в прицепе ex5.

Всё, я за бортом. У меня вылетает, а подправить вход закрыт. ))

FE      0       ParallelTester_00-02-j16x7x3z (AUDUSD,M5)       14:55:06        OpenCL init OK!
ED      0       ParallelTester_00-02-j16x7x3z (AUDUSD,M5)       14:55:10        GPU time = 3946 ms
LS      0       ParallelTester_00-02-j16x7x3z (AUDUSD,M5)       14:55:10        Соunt inticators = 16; Count history bars = 144000; Count pass = 1024
KS      0       ParallelTester_00-02-j16x7x3z (AUDUSD,M5)       14:55:10        Result on Gpu МахResult==0.0 at 0 pass
GK      0       ParallelTester_00-02-j16x7x3z (AUDUSD,M5)       15:01:07        CPU time = 356587 ms
HI      0       ParallelTester_00-02-j16x7x3z (AUDUSD,M5)       15:01:07        Соunt inticators = 16; Count history bars = 144000; Count pass = 1024
HI      0       ParallelTester_00-02-j16x7x3z (AUDUSD,M5)       15:01:07        Result on Cpu МахResult==1.05885 at 866 pass
KM      0       ParallelTester_00-02-j16x7x3z (AUDUSD,M5)       15:01:07        CpuTime/GpuTime = 90.36670045615813

Если будет минутка свободная, ex5 можете подправить для моей клячи. )) Ну, пассов поменьше сделать, например, 512 или баров 100000. А нет, так нет. Потом всё равно придёться изучать всё досконально. )) Примеров Вы уже и так много дали для изучения. Спасибо.

Vladimir Gomonov
8292
Vladimir Gomonov  
tol64:

Всё, я за бортом. У меня вылетает, а подправить вход закрыт. ))

Если будет минутка свободная, ex5 можете подправить для моей клячи. )) Ну, пассов поменьше сделать, например, 512 или баров 100000....................... Спасибо.

Нивапрос.

2012.03.08 16:37:13    ParallelTester_00-02-(16x7x3) (EURUSD,M30)    CpuTime/GpuTime = 191.7058823529412
2012.03.08 16:37:13    ParallelTester_00-02-(16x7x3) (EURUSD,M30)    Result on Cpu МахResult==1.16557 at 228 pass
2012.03.08 16:37:13    ParallelTester_00-02-(16x7x3) (EURUSD,M30)    Соunt inticators = 16; Count history bars = 100000; Count pass = 256
2012.03.08 16:37:13    ParallelTester_00-02-(16x7x3) (EURUSD,M30)    CPU time = 35849 ms
2012.03.08 16:36:37    ParallelTester_00-02-(16x7x3) (EURUSD,M30)    Result on Gpu МахResult==1.16557 at 228 pass
2012.03.08 16:36:37    ParallelTester_00-02-(16x7x3) (EURUSD,M30)    Соunt inticators = 16; Count history bars = 100000; Count pass = 256
2012.03.08 16:36:37    ParallelTester_00-02-(16x7x3) (EURUSD,M30)    GPU time = 187 ms
2012.03.08 16:36:37    ParallelTester_00-02-(16x7x3) (EURUSD,M30)    OpenCL init OK!

--

Кстати, жаба-жабой, а CL-код по прежнему в свободном доступе. 

Даже могу его подробно прокомментировать, если у кого есть вопросы.

Его после запуска скрипта можно найти в папке Files.  Называется cl_ParallelTester_00-02-(16x7x3).cl

Anatoli Kazharski
71340
Anatoli Kazharski  
MetaDriver:

Нивапрос.

Кстати, жаба-жабой, а CL-код по прежнему в свободном доступе. 

Его после запуска скрипта можно найти в папке Files.  Называется cl_ParallelTester_00-02-(16x7x3).cl

К сожалению даже этот вариант выносит мозг моего ноута. )))

А сначала, по ошибке, я запустил старый вариант и подумал, что жизнь закончилась, так как весь экран покрылся "снегом". И даже закрытие терминала не помогло. Зато перезагрузка помогла и жизнь вернулась ко мне. Когда это случилось, я как истинный герой вестерна успел нажать на PrtSc и запечатлел это светопреставление. Не думал, что это получится, но оказывается получилось. Вот, как это выглядело:

 

//---

Вот такие они, вкусные пирожки от Владимира Гомонова. Было интересно. )))

Vladimir Gomonov
8292
Vladimir Gomonov  
tol64:

1.  К сожалению даже этот вариант выносит мозг моего ноута. )))

2.  А сначала, по ошибке, я запустил старый вариант и подумал, что жизнь закончилась, так как весь экран покрылся "снегом".

1..  Решаемо. Держи ещё вариант. 50000 баров х 128 пассов

// Даже лучше прежнего - добавил ступенчатую функцию активации в нейросетку.

// (предыдущий вариант был линейный, что на реальных сетках довольно бессмысленно)

2..  Такое случается при перегрузке GPU.  У меня и не такое бывало.. ;-)

Anatoli Kazharski
71340
Anatoli Kazharski  
MetaDriver:

Решаемо. Держи ещё вариант. 50000 баров х 128 пассов

// Даже лучше прежнего - добавил ступенчатую функцию активации в нейросетку.

// (предыдущий вариант был линейный, что на реальных сетках довольно бессмысленно)

Спасибо. Вот результат:

OR      0       ParallelTester_00-02-a16x7x3u (AUDUSD,M5)       16:27:08        OpenCL init OK!
DD      0       ParallelTester_00-02-a16x7x3u (AUDUSD,M5)       16:27:11        GPU time = 2216 ms
PR      0       ParallelTester_00-02-a16x7x3u (AUDUSD,M5)       16:27:11        Соunt inticators = 16; Count history bars = 50000; Count pass = 128
EQ      0       ParallelTester_00-02-a16x7x3u (AUDUSD,M5)       16:27:11        Result on Gpu МахResult==3.56957 at 14 pass
QI      0       ParallelTester_00-02-a16x7x3u (AUDUSD,M5)       16:27:29        CPU time = 17894 ms
GH      0       ParallelTester_00-02-a16x7x3u (AUDUSD,M5)       16:27:29        Соunt inticators = 16; Count history bars = 50000; Count pass = 128
FJ      0       ParallelTester_00-02-a16x7x3u (AUDUSD,M5)       16:27:29        Result on Cpu МахResult==3.56957 at 14 pass
OL      0       ParallelTester_00-02-a16x7x3u (AUDUSD,M5)       16:27:29        CpuTime/GpuTime = 8.074909747292418

//---

Вот такой вопрос (к разработчикам наверное больше). А почему предыдущие варианты так убийственно действуют на карту? Кстати, папоротник Барнсли тоже заканчивается крахом у меня при глубоком увеличении. Эта проблема решается какими-то способами в программировании или механизм терминала в перспективе сможет это контролировать. Я имею ввиду, что краха быть не должно, должно быть просто более долгое по времени выполнение вычислений. 

 

Vladimir Gomonov
8292
Vladimir Gomonov  
tol64:

Спасибо. Вот результат:

//---

Вот такой вопрос (к разработчикам наверное больше). А почему предыдущие варианты так убийственно действуют на карту? Кстати, папоротник Барнсли тоже заканчивается крахом у меня при глубоком увеличении. Эта проблема решается какими-то способами в программировании или механизм терминала в перспективе сможет это контролировать. Я имею ввиду, что краха быть не должно, должно быть просто более долгое по времени выполнение вычислений. 

Пожалуйста.

--

Может это неожиданно прозвучит, но я категорически против контроля  со стороны терминала - будет тормозить на проверках.

И это несмотря на то, что папоротник у меня вообще порвал драйвер видюхи при сильном  повышении масштаба.

// Правда система не крякнулась - драйвер перезагрузился сам с сообщением о критической ошибке.

// А вот терминал завис наглухо - пришлось убивать из диспетчера задач

Скорее нужно сделать функцию GPU_Info(int GPU_PARAM_xxx) извлекающий системную информацию о видеокарте, включая максимальный допустимый общий объём буферов для одной задачи.  Тогда программист сам сможет позаботиться о непревышении ограничений. 

Документация по MQL5: Программы MQL5 / Ошибки выполнения
Документация по MQL5: Программы MQL5 / Ошибки выполнения
  • www.mql5.com
Программы MQL5 / Ошибки выполнения - Документация по MQL5
Anatoli Kazharski
71340
Anatoli Kazharski  
MetaDriver:

Скорее нужно сделать функцию GPU_Info(int GPU_PARAM_xxx) извлекающий системную информацию о видеокарте, включая максимальный объём буферов для одной задачи.  Тогда программист сам сможет позаботиться о непревышении ограничений. 

Ваше предложение лучше, но в принципе в том же ключе - Контроль. А то у некоторых пользователей волосы поседеют раньше времени от таких танцев или приступ злости начнётся. На кого потом всё это будет изливаться. Правильно, на программистов. В арбитраже работы прибавится. А это никому не нужно. )))
Sceptic Philozoff
17690
Sceptic Philozoff  

Ссылка из поста AlexEro на "четвере": Таблица всех более-менее современных видеокарт AMD.

Кому интересна поддержка двойной точности в вычислениях - смотрите столбец FP64 (Double Precision) — двойная точность вычислений с плавающей запятой. Он предпоследний в таблице. Если там стоит "-" - значит, не поддерживается.