OpenCL: testes internos de implementação em MQL5 - página 25
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
2012.03.05 17:43:16 CPU Terminal: CPU Intel(R) Core(TM) i3-2100 GenuineIntel a 3.10GHz com OpenCL 1.1 (4 unidades, 3092 MHz, 4008 Mb, versão 2.0)
2012.03.05 17:45:23 ParallelTester_00-01x (EURUSD,M1) CpuTime/GpuTime = 0,73476776766287369
[...] Talvez eu tenha "granadas do sistema errado"? (Refiro-me à versão AMD SDK).
Fantástico. Comprei o núcleo, a mãe, a memória e o refrigerador na loja mais habitual que encontrei na rede. Custa totalmente cerca de 6k. Provavelmente, eles trouxeram-me um calhau do futuro por acidente.
Talvez seja por causa do SDK. Acho que não vale a pena culpar a memória, por defeito é apenas DDR-III. E monocanal ou não, afecta-o certamente, mas não tão terrivelmente.
Interessante. O cartão fyords é mais forte (GeForce GT 440), e o tempo de cálculo é uma ordem de magnitude maior ... ...
Pergunto-me se a velocidade de cálculo depende da resolução (tenho 1920x1080), porque o ambiente de trabalho também come algo (tema Aero)?
Talvez seja por isso que demore mais tempo a calcular.
Sim, talvez. O que mostra o seu índice de desempenho do Windows Aero? Aqui está a minha:
Não preciso de nada disso de laço, por isso está desligado.
P.S. verificado. Sem qualquer efeito.
O último teste (3.12.2011) passou normalmente, mas agora surge alguma falha, mas a pontuação é de 6,8 para vídeo. Talvez seja esse o problema (a falha). O novo hardware não está instalado. Pode ser um problema com o novo hardware, então vou esperar por um novo lançamento, lá novamente farei um teste.
x32
x64
cpu-z
Adicionei uma genética estúpida e fiz um laço para maximizar. Consegui um optimizador que encaixa uma grelha de camada única em dados simulados equivalentes a 500 dias de história em preços abertos de cinco minutos (16 indicadores por entrada).
Por favor, testar.
Nesta altura considero a agitação concluída com sucesso, porque o teste do optimizador é insuficiente. ;)
Quem tem um abrandamento (em comparação com outros) - agora sabe o que poupar ;-)
Assim, os meus resultados:
Deixem-me explicar pela última vez nos meus dedos: Este é um ciclo completo de optimização de uma rede neural primitiva Expert Advisor.
// Bem, quase um Expert Advisor. Cálculos adicionais no código deste "Expert Advisor", para que possa calcular os lucros de forma suficientemente realista,
// não excederá (em tempo de conta. com implementação inteligente) os cálculos que já lá se encontram. Ou seja, o abrandamento pode ser, digamos, duplo.
Acrescentei uma genética estúpida e um laço na maximização. Consegui um optimizador que encaixa uma malha de uma camada em dados simulados equivalentes a 500 dias de história em preços de abertura de cinco minutos (16 indicadores por entrada).
Por favor, testar.
...
Obrigado.))
MetaDriver, muito obrigado. Fez o seu trabalho de angariação de votos com um A. Ao mesmo tempo, deu-me a oportunidade de verificar a minha configuração "sem cavalos" sem uma placa gráfica discreta e ficar muito, muito surpreendido.
Dirigiu o seu optimizador. É assim:
Assumindo que cada geração conta durante aproximadamente o mesmo período de tempo, obtemos isso em comparação com a sua Ferrari, o meu "tazi" é cerca de 6,5-7 vezes mais lento, tal como da última vez (58,14 segundos por 60 gerações ~ 0,97 segundos/geração).
2 Graff: Se pudesse desactivar os gráficos discretos durante a duração do teste e executar o teste nos gráficos integrados da pedra, seria muito interessante (ao mesmo tempo e ver o progresso da Intel nesta área na transição de Lynnfield para Sandy Bridge).
Mas para o fazer, teria de descarregar o SDK da AMD para o OpenCL. Não irá piorar a situação para o seu cartão discreto (tem o seu próprio condutor), mas pode obter o OpenCL 1.1 no seu PC, embora eu não esteja 100% seguro de que irá funcionar.
Mas se recusar, não ficarei ofendido.
Novo posto do fórum mql4.
Caros colegas, vão ter muita confusão e engates com o OpenCL. Não espere resultados fáceis.
Há muitas opções porque o OpenCL é uma tecnologia de software que é articulada no controlador de vídeo. De facto, o controlador de vídeo torna-se um pequeno sistema operativo. Tudo o que se prende ao longo do caminho: UltraVNC, MSI afterbufner, Agnitum OutPost web-control interactivo e um milhar de outros programas podem impedir o funcionamento normal do OpenCL.
Dito isto, mesmo que se consiga fazer com que o OpenCL funcione para cálculos simples com threads, há ainda outro obstáculo intransponível a ultrapassar, nomeadamente: para cálculos complexos - a precisão tecnológica (suporte IEEE parcial de 32 bits) e operacional(perda de precisão ao fazer overclocking a uma carta de jogo) da GPU ainda não é suficiente para cálculos científicos sérios. Além disso, enquanto as GPUs nVidia têm processamento de dupla precisão de 64 bits em quase todas as placas de vídeo modernas, as placas de vídeo AMD têm-no apenas em algumas séries topo-de-gama. nVidia também tem um bug, mas diferente - eles estão em liga com a Microsoft e, portanto, a sua notória CUDA (e OpenCL) não funcionam realmente no Server 2003, por exemplo, mas ao mesmo tempo funcionam bem no Server 2008 e mesmo no velho Win XP - apenas devido a algumas considerações de marketing da Microsoft.
OpenCL é para cálculos de fluxo rápido imprecisos de 32 bits como convolução ou filtragem.Quem vai fazer o overclock? Obter um ganho de 10-15% na velocidade de cálculo, mas com o risco de um erro de cálculo devido à morte de apenas uma abelha? Bem, não estamos aqui a jogar um jogo, onde não desenhar cem vértices não afecta muito...
OpenCL é para cálculos de fluxo rápido imprecisos de 32 bits, tais como convolução ou filtragem.
Vamos fazer uma advertência. Os cálculos devem ser realmente massivos e pesados para considerar a perda de precisão significativa. A integração é uma soma/ multiplicação maciça, é um caso pesado.
Uma coisa é adicionar dois números, multiplicar por um terço (cada um com uma precisão de cálculo de 32 bits suficiente para cálculos práticos) e escrever o resultado em alguma célula como resultado de uma iteração de laço e não o utilizar de qualquer outra forma dentro da GPU.
Outra coisa é calcular pi em mil milhões de iterações usando a série Leibniz convergente mais lenta (esta série é popularmente utilizada para demonstrar a tecnologia OpenMP):
No segundo caso, quando se utilizam números de 32 bits, existe um perigo real de perda de precisão, porque se somam mil milhões de números. Terver diz que em 99,7% dos casos, o erro resultante não excederá a precisão de um número multiplicado por 2*10^5. Isso é grave - e nem sempre.
Ninguém está a impedir um programador de fazer vários cálculos precisos sobre uma CPU honesta para estimar erros reais.
Parece-me que com precauções razoáveis esta tecnologia pode ser utilizada. E se utilizar processadores modernos de ambos os fabricantes (AMD APU Llano ou mesmo Intel Sandy Bridge), pode esquecer a placa gráfica discreta durante algum tempo: que diferença faz se sou 100 ou apenas 25 vezes mais rápido... E nenhuma abelha morrerá, pois também não vou fazer overclock ao processador.