OpenCL: testes internos de implementação em MQL5 - página 48

 
MetaDriver: Mas agora vou correr em 4096 abelhas. O CPU vai contá-lo em cinco minutos.

E pelo menos afixar ex5, deixar que outros se divirtam um pouco.

A nova construção requer recompilação (por causa de CLContextCreate(), obviamente). E antes de ter postado também ex5.

 
Mathemat:

E pelo menos afixar ex5, deixar os outros divertirem-se.

A nova construção precisa de ser recompilada (por causa de CLContextCreate(), obviamente). E já postou ex5 antes, também.

OK.

2012.04.08 02:03:33 ParallelTester_00-02-(16x7x3) (USDJPY,M30) CpuTime/GpuTime = 2330.657142857143
2012.04.08 02:03:33 ParallelTester_00-02-(16x7x3) (USDJPY,M30) Resultado no Cpu MachResult==4.02701 na passagem de 1529
2012.04.08 02:03:33 ParallelTester_00-02-(16x7x3) (USDJPY,M30) Contagem de inticadores = 16; Contagem de barras históricas = 50.000; Contagem de passes = 4096
2012.04.08 02:03:33 ParallelTester_00-02-(16x7x3) (USDJPY,M30) Tempo de CPU = 326292 ms
2012.04.08 01:58:07 ParallelTester_00-02-(16x7x3) (USDJPY,M30) Resultado sobre Gpu MachResult==4.02701 na passagem de 1529
2012.04.08 01:58:07 ParallelTester_00-02-(16x7x3) (USDJPY,M30) Contagem de inticadores = 16; Contagem de barras históricas = 50.000; Contagem de passes = 4096
2012.04.08 01:58:07 ParallelTester_00-(16x7x3) (USDJPY,M30) GPU time = 140 ms
2012.04.08 01:58:07 ParallelTester_00-02-(16x7x3) (USDJPY,M30) OpenCL init OK!

Arquivos anexados:
 
MetaDriver:

OK.

2012.04.08 02:03:33 ParallelTester_00-02-(16x7x3) (USDJPY,M30) CpuTime/GpuTime = 2330.657142857143
2012.04.08 02:03:33 ParallelTester_00-02-(16x7x3) (USDJPY,M30) Resultado no Cpu MachResult==4.02701 na passagem de 1529
2012.04.08 02:03:33 ParallelTester_00-02-(16x7x3) (USDJPY,M30) Contagem de inticadores = 16; Contagem de barras históricas = 50.000; Contagem de passes = 4096
2012.04.08 02:03:33 ParallelTester_00-02-(16x7x3) (USDJPY,M30) Tempo de CPU = 326292 ms
2012.04.08 01:58:07 ParallelTester_00-02-(16x7x3) (USDJPY,M30) Resultado sobre Gpu MachResult==4.02701 na passagem de 1529
2012.04.08 01:58:07 ParallelTester_00-02-(16x7x3) (USDJPY,M30) Contagem de inticadores = 16; Contagem de barras históricas = 50.000; Contagem de passes = 4096
2012.04.08 01:58:07 ParallelTester_00-(16x7x3) (USDJPY,M30) GPU time = 140 ms
2012.04.08 01:58:07 ParallelTester_00-02-(16x7x3) (USDJPY,M30) OpenCL init OK!


Incrível! Confesse de que planeta é. Fala a mesma língua com os seus criadores. Está a fazer cálculos de super-velocidade. Há uma razão para tudo isto. :))))
 
MetaDriver: OK.

É um negócio estranho. Sem queixas sobre si, claro. Mas a questão é esta.

Eu dirijo o seu guião e recebo isto:

2012.04.08 03:11:28    ParallelTester_00-02-d16x7x3w_new (EURUSD,H1)    OpenCL not found.


Executando o seu primeiro guião histórico (ajustei-o com as últimas modificações CLContextCreate()):

2012.04.08 03:13:01    ParallelTester_00-01x (EURUSD,H1)    CpuTime/GpuTime = 24.39193381592554
2012.04.08 03:13:01    ParallelTester_00-01x (EURUSD,H1)    Result on Cpu МахResult==1.20315 at 21 pass
2012.04.08 03:13:01    ParallelTester_00-01x (EURUSD,H1)    Соunt indicators = 16; Count history bars = 144000; Count pass = 1280
2012.04.08 03:13:01    ParallelTester_00-01x (EURUSD,H1)    CPU time = 23587 ms
2012.04.08 03:12:37    ParallelTester_00-01x (EURUSD,H1)    Result on Gpu МахResult==1.20315 at 21 pass
2012.04.08 03:12:37    ParallelTester_00-01x (EURUSD,H1)    Соunt indicators = 16; Count history bars = 144000; Count pass = 1280
2012.04.08 03:12:37    ParallelTester_00-01x (EURUSD,H1)    GPU time = 967 ms
2012.04.08 03:12:36    ParallelTester_00-01x (EURUSD,H1)    OpenCL init OK!

Maravilhoso... O que fazer, onde escrever? Tenho de voltar ao Service Desk?

P.S. A propósito, é melhor fazer os cálculos da GPU não tão depressa, pelo menos 300-400 ms. Talvez tenha uma aceleração real de 100500 (lembre-se, é o único número maior que o infinito!), e não sabe disso? Tenho apenas uma suspeita de que 140 ms é um dos poucos números que não podem ser menores no GetTickCount() (e mesmo que isso aconteça, é raro).

 
tol64:
Isso é espantoso! Diga-nos de que planeta é. Fala a mesma língua que os seus criadores. Está a fazer cálculos super-rápidos. Há uma razão para tudo isto. :))))
Não sei. Em Kazan, todos escrevem assim.
 
MetaDriver:
Não sei. Aqui em Kazan todos o escrevem dessa forma.
E é isso mesmo.
 
Mathemat:

1. negócios estranhos. Sem queixas sobre si, claro. Mas a questão é esta.

Quando eu corro o teu guião, é assim:

2012.04.08 03:11:28    ParallelTester_00-02-d16x7x3w_new (EURUSD,H1)    OpenCL not found.

2. P.S. A propósito, certifique-se de que os cálculos na GPU não foram tão rápidos, pelo menos 300-400 ms. Talvez a sua verdadeira velocidade seja 100500 (lembre-se, é o único número maior do que o infinito!) e não sabe disso? Tenho apenas uma suspeita de que 140 ms é um dos poucos números que GetTickCount() nunca fica mais baixo (e se ficar, é raro).

1. experimente a versão no trailer. recompilei-a com CLContextCreate(CL_DEVICE_ANY);

2. não, não. Está tudo bem cerca de 140ms. (E muito mais também:))

zy. A aceleração é alcançada através de operações vectoriais em OpenCL. Fumar o manual - insere. ;)

Arquivos anexados:
 
2012.04.08 09:15:51    ParallelTester_00-02-d16x7x3w (EURUSD,H1)    CpuTime/GpuTime = 162.8265625
2012.04.08 09:15:51    ParallelTester_00-02-d16x7x3w (EURUSD,H1)    Result on Cpu МахResult==4.07621 at 824 pass
2012.04.08 09:15:51    ParallelTester_00-02-d16x7x3w (EURUSD,H1)    Соunt inticators = 16; Count history bars = 50000; Count pass = 4096
2012.04.08 09:15:51    ParallelTester_00-02-d16x7x3w (EURUSD,H1)    CPU time = 208418 ms
2012.04.08 09:12:23    ParallelTester_00-02-d16x7x3w (EURUSD,H1)    Result on Gpu МахResult==4.07621 at 824 pass
2012.04.08 09:12:23    ParallelTester_00-02-d16x7x3w (EURUSD,H1)    Соunt inticators = 16; Count history bars = 50000; Count pass = 4096
2012.04.08 09:12:23    ParallelTester_00-02-d16x7x3w (EURUSD,H1)    GPU time = 1280 ms
2012.04.08 09:12:21    ParallelTester_00-02-d16x7x3w (EURUSD,H1)    OpenCL init OK!
 
joo:

Radeon governa!!!

;)

 
MetaDriver:

Radeon governa!!!

;)

Tem muitos passes. :)