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

 
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

Mais uma vez, o papaklass tem vídeo onboard, eu tenho discreto, o CPU é o mesmo, a diferença é insignificante.

Raraklass, qual é a taxa de bits e eixo do seu eixo?

 
papaklass:

W7 32bit.

Obrigado. Eu também, ok, penso que quando chegar ao OpenCL, todos os bugs já estarão corrigidos e tudo funcionará bem.
 
MetaDriver:

...

Não estou a colocar o código fonte por causa da ganância, mas para aqueles que o querem experimentar no seu próprio hardware, há um ex5 no reboque.

É isso, estou fora. Estou fora, e a entrada está fechada para afinar. ))

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

Se tiver um minuto de sobra, pode afinar o ex5 para o meu chato. )) Bem, faça os passes mais pequenos, por exemplo, 512, ou barras 100000. Se não o fizer, não o faço. Terei de estudar tudo mais tarde de qualquer forma. )) Já me deu muitos exemplos para estudar. Obrigado.

 
tol64:

É isso mesmo, estou ao mar. Estou fora e a mexer com a entrada está fechada. ))

Se tiver algum tempo livre, pode corrigir o ex5 para o meu chato. )) Fazer menos passes, por exemplo, 512, ou barras 100000........................ Obrigado.

Nivapros.

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!

--

A propósito, o código CL ainda está disponível gratuitamente.

Posso até comentá-la em detalhe se alguém tiver alguma dúvida.

Chama-se cl_ParallelTester_00-02-(16x7x3).cl depois de executar o guião.

Arquivos anexados:
 
MetaDriver:

Nivapros.

A propósito, o código CL ainda está disponível gratuitamente.

Chama-se cl_ParallelTester_00-02-(16x7x3).cl depois de executar o guião.

Infelizmente, até esta variante rebenta com os miolos do meu portátil. )))

No início, lancei a velha variante por engano e pensei que a vida tinha terminado porque todo o ecrã estava coberto de "neve". E mesmo fechar o terminal não ajudou. Mas o reinício ajudou e a vida voltou para mim. Quando isso aconteceu, como um verdadeiro herói ocidental, consegui pressionar PrtSc e captei o espectáculo da luz. Não pensei que funcionasse, mas funcionou. Aqui está o que parecia:

//---

Assim, lá estão eles, bolos saborosos de Vladimir Gomonov. Foi interessante. )))

 
tol64:

1. infelizmente, até esta opção me arrepia o portátil. )))

2. e no início, por engano, corri a velha variante e pensei que a vida tinha acabado, pois todo o ecrã estava coberto de "neve".

1. solvível. Aqui está outra variante. 50000 barras x 128 passes.

// Ainda melhor do que antes - adicionei uma função de activação escalonada à rede neural.

// (a versão anterior era linear, o que em malhas reais é bastante inútil)

2... Isto acontece quando se sobrecarrega a GPU. Já tive mais do que isso. ;-)

Arquivos anexados:
 
MetaDriver:

Pode ser resolvido. Aqui está outra opção. 50.000 barras x 128 passes

// Ainda melhor do que antes - acrescentou uma função de activação escalonada à rede neural.

// (a versão anterior era linear, o que em malhas reais é bastante inútil)

Obrigado. Aqui está o resultado:

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

//---

Eis uma questão (para os criadores provavelmente mais). Porque é que as variantes anteriores têm um efeito tão mortal no mapa? A propósito, a samambaia de Barnsley também acaba por cair em cima de mim ao fazer um zoom em profundidade. Será este problema resolvido de alguma forma na programação ou será o mecanismo terminal eventualmente capaz de controlar isto. Não deve haver um acidente, deve haver apenas um tempo de cálculo mais longo.

 
tol64:

Obrigado. Aqui está o resultado:

//---

Aqui vai uma pergunta (provavelmente mais para os criadores). Porque é que as opções anteriores são tão assassinas no mapa? A propósito, a samambaia de Barnsley também acaba por cair em cima de mim ao fazer um zoom em profundidade. Será este problema resolvido de alguma forma na programação ou será o mecanismo terminal eventualmente capaz de controlar isto. Não deve haver um acidente, deve haver apenas um tempo de cálculo mais longo.

Por favor.

--

Isto pode parecer inesperado, mas sou fortemente contra o controlo por parte do terminal - vai abrandar os controlos.

E isto apesar do facto de o meu feto ter rasgado o condutor da cassete de vídeo com um forte zoom.

// Verdade, o sistema não se avariou - o condutor reiniciou-se a si próprio com uma mensagem de erro crítico.

// Mas o impasse do terminal - tive de o matar do gestor de tarefas

Em vez disso, deve ser criada a função GPU_Info(int GPU_PARAM_xxx) que recupera a informação do sistema sobre a placa de vídeo, incluindo a quantidade máxima total de buffers permitidos para uma tarefa.

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

Em vez disso, deve ser criada a função GPU_Info(int GPU_PARAM_xxx) que recupera informações do sistema sobre a placa de vídeo, incluindo a quantidade máxima de buffers para uma tarefa.

A sua sugestão é melhor, mas em princípio na mesma linha - Controlo. Alguns utilizadores podem ficar com o cabelo grisalho antes de dançar ou ter um ataque de raiva. Em quem tudo isto será então despejado. Certo, os programadores. Haverá mais trabalho para a arbitragem. E ninguém precisa disso. )))
 

Link do post de AlexEro no "quaternário": Tabela de todas as placas de vídeo mais ou menos modernas da AMD.

Se estiver interessado em apoiar a dupla precisão nos cálculos - ver coluna FP64 (Dupla Precisão) - cálculos de ponto flutuante de dupla precisão. É penúltimo na tabela. Se houver "-", significa que não é suportado.

Razão: