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

 
Como o meu caso demonstrou, não é de todo necessário apagá-lo. É suficiente desactivar o desnecessário no registo.
 
joo: Como o meu caso demonstrou, não é necessário desinstalar. É suficiente desactivar coisas desnecessárias no registo.

De facto, sim.

Andrei, pelo menos mostre-me os resultados na sua i5 - numa CPU limpa. Ficarei feliz por si.

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


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

Não, não sobre estes, mas sobre o que anexei no último posto. Exactamente sobre isso. Afixar o meu resultado neste guião:

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

Processador:

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)

Arquivos anexados:
 
 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

É estranho, o seu nome de ficheiro parece ser

paralleltester_00-01x.mq5, mas guardado como ParallelTester_00-01x__1.mq5


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

Estranho, tem o nome do ficheiro como

paralleltester_00-01x.mq5 mas guardado como ParallelTester_00-01x__1.mq5

Não é nada de estranho. É que o ficheiro com tal nome já existe e é por isso que acrescenta __1. Onde está o teste para o ParallelTester_00-01x__1.mq5, Andrew?

Vejo que é muito bom. Um pouco pior do que eu esperava (esperava 140-150), mas ainda assim muito bom. Em princípio, uma variação desta proporção entre 20-30% é normal (especialmente se o tempo da GPU for baixo). A propósito, se você, digamos, fizer o seguinte:

#define CountPass  1280 * 10

então pode contar com outro registo para a relação CpuTime/GpuTime. O seu "limite teórico" é algo em torno de 170-180. Para mim, pelo menos, foram quase 90, e o seu deveria ser o dobro.

 

Mathemat:

#define CountPass 1280 * 10

então pode contar com outro registo para a relação CpuTime/GpuTime. O seu "limite teórico" é algo como 170-180. Para mim, pelo menos, foram quase 90, e para si deveria ser o dobro.


Isto é a 1280*10:

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

E com 1280*128 acabei de me cansar de esperar e de fechar à força o guião:

2012.04.21 23:40:22     ParallelTester_00-01 x__1 (EURUSD,M5)    GPU time = 2013 ms
2012.04.21 23:40:22     ParallelTester_00-01 x__1 (EURUSD,M5)    Соunt indicators = 16; Count history bars = 144000; Count pass = 131072
2012.04.21 23:40:22     ParallelTester_00-01 x__1 (EURUSD,M5)    Result on Gpu МахResult==1.70906 at 99682 pass
2012.04.21 23:48:48     ParallelTester_00-01 x__1 (EURUSD,M5)    Abnormal termination
 
Estava a referir-me a cálculos numa CPU nua. Naturalmente, os números são mais elevados num cartão discreto.
 
Alguma notícia sobre a execução de cálculos usando OpenCL?
 
casinonsk: Alguma notícia sobre o lançamento dos cálculos do OpenCL?

Bem, finalmente, temos estado à sua espera. Se estiver pronto para experimentar, instale o Intel OpenCL Runtime (ver link para instruções).

Executar o guião sem alterar nada nele e afixar o registo do separador "Especialistas" tal como os seus colegas anteriores fizeram. O guião demorará cerca de 3 minutos a correr na sua jóia, tenha paciência comigo. Ao mesmo tempo, vamos descobrir como o OpenCL funciona na pedra mais fresca de Sandy Bridge.

Se não tiver paciência ou se achar que está para além das suas capacidades, não há problema, não se sente ofendido.

P.S. O objectivo deste guião é ver o que uma CPU nua pode fazer sem quaisquer dragões de vídeo discretos. Suspeito que com o Intel Runtime devidamente inserido, este script terá uma aceleração de cerca de 200 ou mesmo ligeiramente superior.

Arquivos anexados: