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

 
papaklass:

Não consigo tirar o cursor da inserção do código por alguma razão. E se eu citar alguém, acontece a mesma coisa. Isto é um bug no fórum?

Não, estou bem, apenas pressiono "para baixo" e o próprio cursor saiu do bloco. Nunca o vi cunhar.
 
Mathemat:

Com o seu hardware é quase claro, só tem o anfitrião sendo um dispositivo OpenCL. Por outro lado, é estranho de onde veio um resultado tão elevado anteriormente (p. 51):

Tanto quanto me lembro, o papaklass tinha Win7 x86 e 4 gig. de memória. Alguma coisa piorou.
 
papaklass:

Não consigo tirar o cursor da inserção do código por alguma razão. E se eu citar alguém, acontece a mesma coisa. Isto é um bug do fórum?

É assim que se interpreta. Pode-se pensar que é um insecto. Tudo depende da tarefa :)))

Deve estar a colar o código na última linha disponível. Tento tratar disso pelo menos uma linha abaixo do local de inserção.

Porque se bocejo, tenho de mudar para o formato html e adicionar <br> no final (funciona sempre por si só... :)

 
Mathemat:

P.S. Claro, é possível que esse dispositivo = 0 no seu caso corresponda a algo que não seja CPU. Bem, então experimente (de 0 a 3). O maior tempo de GPU deve corresponder a CPU nua, ou seja, anfitriã.

Eu tenho dispositivo=0 sem ambiguidade CPU, CPU OpenCL dispositivo=1

Vou postar o teste agora. Por agora, conta.

 
MetaDriver:

Porque se bocejo tenho de mudar para o formato html e acrescentar no final <br> (Isso funciona sempre por si... :)

Bem, tenho Ópera, agora experimentei-a propositadamente, apaguei a última <br> em html, e depois em "visuals" seta para baixo até ao fim e escrevi uma mensagem.

</p></div> Ну у меня Опера
Portanto, não é um insecto mas sim uma característica ).
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов - Документация по MQL5
 
papaklass Eu, por outro lado, mudei para a versão de 64 bits

PS: No seu teste, um núcleo está a funcionar e não quatro.

1. Estou no Win 7 x64 há já muito tempo e não tenho queixas. No início também estava agarrado a XP x32. O meu irmão e eu cooperamos mutuamente: encorajei-o a actualizar o hardware e ele encorajou-me a actualizar o sistema operativo.

2. Claro, uma coisa é certa, quem pode argumentar com isso. Mas está nos cálculos mais lentos - nas CPUs sem OpenCL.

E com OpenCL todos os núcleos são carregados a 100% (se no anfitrião).

MetaDriver : Tenho dispositivo=0 sem ambiguidade GPU, CPU OpenCL dispositivo=1

Sim, interessante. Mas se houver apenas um dispositivo, é sempre o hospedeiro (CPU); não há mais nada com que contar.

 
2012.04.23 00:00:00     ParallelTester_00-01 x_cycle (EURUSD,M1) CpuTime/GpuTime = 38.70853916725476
2012.04.23 00:00:00     ParallelTester_00-01 x_cycle (EURUSD,M1) Result on Cpu МахResult==1.09062 at 9024 pass
2012.04.23 00:00:00     ParallelTester_00-01 x_cycle (EURUSD,M1) Соunt indicators = 16; Count history bars = 144000; Count pass = 12800
2012.04.23 00:00:00     ParallelTester_00-01 x_cycle (EURUSD,M1) CPU time = 329100 ms
2012.04.22 23:54:31     ParallelTester_00-01 x_cycle (EURUSD,M1) Result on Gpu МахResult==1.09062 at 9024 pass
2012.04.22 23:54:31     ParallelTester_00-01 x_cycle (EURUSD,M1) Соunt indicators = 16; Count history bars = 144000; Count pass = 12800
2012.04.22 23:54:31     ParallelTester_00-01 x_cycle (EURUSD,M1) GPU time = 8502 ms
2012.04.22 23:54:22     ParallelTester_00-01 x_cycle (EURUSD,M1) OpenCL init OK! Device number = 1
2012.04.22 23:54:22     ParallelTester_00-01 x_cycle (EURUSD,M1) Result on Gpu МахResult==1.09062 at 9024 pass
2012.04.22 23:54:22     ParallelTester_00-01 x_cycle (EURUSD,M1) Соunt indicators = 16; Count history bars = 144000; Count pass = 12800
2012.04.22 23:54:22     ParallelTester_00-01 x_cycle (EURUSD,M1) GPU time = 234 ms
2012.04.22 23:54:22     ParallelTester_00-01 x_cycle (EURUSD,M1) OpenCL init OK! Device number = 0
2012.04.22 23:41:33     po_00-05 (EURUSD,M1)    Total optimization time == 230 sec 492 ms
 

Sim, MD, não está a ir tão bem numa CPU nua. A Intel está em todo o lado...

Oh, vá lá, tem uma óptima placa gráfica.

 
fyords:

Bem, tenho Ópera, agora experimentei-a especificamente, removi a última <br> em html, e depois na seta "visual" para baixo até ao fim e escrevi a mensagem.

Portanto, não é um fugitivo, mas um insecto ).

Acontece que em código html se pode escrever a primeira palavra no final, depois quando se troca é exibida fora do quadro.

Huh.

 
papaklass: Não é claro. Tenho um hospedeiro (CPU) 4 núcleos. Porque é que está a funcionar com um se OpenCl o detecta?

Aqui estão os seus resultados:

2012.04.22 23:26:30     Terminal        MetaTrader 5 x64 build 630 started (MetaQuotes Software Corp.)
2012.04.22 23:26:31     OpenCL  CPU: AuthenticAMD AMD Athlon(tm) II X4 630 Processor with OpenCL 1.1 (4 units, 2812 MHz, 7678 Mb, version 2.0)
 
2012.04.22 23:28:19     ParallelTester_00-01 x_cycle (EURUSD,M5) OpenCL init OK! Device number = 0

2012.04.22 23:28:31     ParallelTester_00-01 x_cycle (EURUSD,M5) GPU time = 11466 ms

2012.04.22 23:28:31     ParallelTester_00-01 x_cycle (EURUSD,M5) Соunt indicators = 16; Count history bars = 144000; Count pass = 12800
2012.04.22 23:28:31     ParallelTester_00-01 x_cycle (EURUSD,M5) Result on Gpu МахResult==1.32941 at 2722 pass

2012.04.22 23:36:06     ParallelTester_00-01 x_cycle (EURUSD,M5) CPU time = 454837 ms

2012.04.22 23:36:06     ParallelTester_00-01 x_cycle (EURUSD,M5) Соunt indicators = 16; Count history bars = 144000; Count pass = 12800
2012.04.22 23:36:06     ParallelTester_00-01 x_cycle (EURUSD,M5) Result on Cpu МахResult==1.32941 at 2722 pass
2012.04.22 23:36:06     ParallelTester_00-01 x_cycle (EURUSD,M5) CpuTime/GpuTime = 39.66832373975231

A linha realçada a vermelho (quinto) mostra cálculos de um só núcleo, e não uma pitada de OpenCL ali.

A linha realçada em azul (segundo) mostra que os meus cálculos são feitos em todos os núcleos (procure-a você mesmo, já a verifiquei tanto no meu dual-core como no quad-core i3-2120), uma vez que existe uma intensa optimização de código nas instruções vectoriais SSEx.

Razão: