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

Sceptic Philozoff
17690
Sceptic Philozoff  
casinonsk: Второе как было так и осталось на 0 загрузке. 

А третье? Или его нет?

QE 0 ParallelTester_00-01x__1 (EURUSD,H1) 13:23:02 Соunt inticators = 16; Count history bars = 144000; Count pass = 480000

EF 0 ParallelTester_00-01x__1 (EURUSD,H1) 13:23:02 Result on Gpu МахResult==0.0 at 0 pass

Такое впечатление, что тест прошел как-то не так. Да и Count pass установите в меньшее значение, достаточно 1280.

И где сравнительные результаты CPU vs GPU?

Andrey Dik
13371
Andrey Dik  
joo:


При CountPass  262144 драйвер видеокарты падает без сознания. Правда тут же поднимается.

Путём метода профессора Тычкова выяснил, что CountPass не может быть больше 6628025 при CountBars  10, иначе компилятор MQL отказывается компилировать и выдает ошибку:

'inds' - global variables section is too large    ParallelTester_00-01x.mq5    86    7

При меньшем CountBars компилятор пропускает и более страшные значения CountPas.

2012.03.17 20:40:36     ParallelTester_00-01x (EURUSD,H1)       Соunt inticators = 16; Count history bars = 10; Count pass = 6628025
2012.03.17 20:40:36     ParallelTester_00-01x (EURUSD,H1)       GPU time = 717 ms

О как!

Каким образом компилятор MQL узнаёт, что элементарно не хватает памяти на GPU (или не на GPU???)? - из за нехватки памяти и падает, похоже, драйвер видеокарты.


to Владимир:

А зачем давать каждой мухе один и тот же массив (память жрётся прямо пропорционально количеству CountPass) ? - пускай берут данные из одного общего массива.

Vladimir Gomonov
8292
Vladimir Gomonov  
joo:

to Владимир:

А зачем давать каждой мухе один и тот же массив (память жрётся прямо пропорционально количеству CountPass) ? - пускай берут данные из одного общего массива.

У них и так один общий массив цен и индикаторов.

А в массиве длина которого CountPass, находятся неросетки (оптимизируемый параметр). Он индивидуальный у каждой сетки.

--

... Но ход твоей мысли мне нравится. :)

Vladimir Gomonov
8292
Vladimir Gomonov  
joo:

Путём метода профессора Тычкова выяснил, что CountPass не может быть больше 6628025 при CountBars  10, иначе компилятор MQL отказывается компилировать и выдает ошибку:

'inds' - global variables section is too large    ParallelTester_00-01x.mq5    86    7

При меньшем CountBars компилятор пропускает и более страшные значения CountPas.

О как!

Каким образом компилятор MQL узнаёт, что элементарно не хватает памяти на GPU (или не на GPU???)? - из за нехватки памяти и падает, похоже, драйвер видеокарты.

А! Так там же элементарная плюшка у меня в коде (строка 82).

////////////float nets[sizeof(NETs)];   // Вот так было. В корне неправильно.
////////////float inds[sizeof(Inds)];  

////////////float nets[sizeof(NETs)/sizeof(float)];  // Вот так будет видно в чём была ошибка.
////////////float inds[sizeof(Inds)/sizeof(float)];  // И в принципе будет работать, хотя лучше...
// ...Вот так - правильно и понятно откуда ноги.
float nets[CountPass*CountInd];
float inds[CountInd*CountBars];  

Исправь и получи почти четырёхкратную "прибавку памяти".....нашару...!.!! :)))))))))))))

// В такие минуты чувствую себя Дедом Морозом... ;)

Andrey Dik
13371
Andrey Dik  
MetaDriver:

// В такие минуты чувствую себя Дедом Морозом... ;)

//Если ты Дед Мороз, то кто я?... ;)
Sceptic Philozoff
17690
Sceptic Philozoff  
Заглянул на англоязычный форум пятеры. Аналогичная ветка есть, но активность и проявляемый интерес несравнимы с оными на русскоязычном форуме.
Sergey
819
Sergey  
Mathemat:

А третье? Или его нет?

Такое впечатление, что тест прошел как-то не так. Да и Count pass установите в меньшее значение, достаточно 1280.

И где сравнительные результаты CPU vs GPU?

CL 0 ParallelTester_00-01x__1 (EURUSD,H1) 00:02:09 OpenCL init OK!
IH 0 ParallelTester_00-01x__1 (EURUSD,H1) 00:02:09 GPU time = 187 ms
FN 0 ParallelTester_00-01x__1 (EURUSD,H1) 00:02:09 Соunt inticators = 16; Count history bars = 144000; Count pass = 1280
CL 0 ParallelTester_00-01x__1 (EURUSD,H1) 00:02:09 Result on Gpu МахResult==0.92493 at 1190 pass
Vladimir Gomonov
8292
Vladimir Gomonov  

Обязательно нужна MQL-функция, возвращающая температуру видеокарты. Иначе и спалить недолго. Не у себя так у клиента.

// Если не будет MQL-ной, придётся юзать DLL, что не гуд - маркет отрезается и прочие неудобства.

Dmitriy Parfenovich
8085
Dmitriy Parfenovich  
MetaDriver:

Обязательно нужна MQL-функция, возвращающая температуру видеокарты. Иначе и спалить недолго. Не у себя так у клиента.
Она должна возвращать еще и предельную температуру и при приближении к предельной тормозить расчеты сама. Видеокарты бывают разные и тепловыделение тоже разное.
Andrey Dik
13371
Andrey Dik  
MetaDriver:

Обязательно нужна MQL-функция, возвращающая температуру видеокарты. Иначе и спалить недолго. Не у себя так у клиента.

// Если не будет MQL-ной, придётся юзать DLL, что не гуд - маркет отрезается и прочие неудобства.

Компьютерные игрушки же не заботятся о температуре GPU и грузят по самое небалуй, и ничего - работают видяхи. И ни один геймер не додумается попросить производителя игрушки, что бы игра сама замедляла FPS что бы не попалить GPU. С геймерами аналогия прямая - нам нужна скорость, а о температуре нужно позаботится дополнительно если есть в этом необходимость (дополнительные системы охлаждения).

Тогда нужна и MQL-функция возвращающая температуру CPU. :), а то спалится процессор чего доброго.


ЗЫ если это реализуемо - то почему бы и нет? - не помешает конечно.