Publiquei um cálculo no blogue que se assemelha perfeitamente. Infelizmente, a informação do OpenCL é de tal nível que requer uma competência muito superior à minha.
Gostaria de ver um exemplo simples (como no blogue) da implementação do OpenCL e o resultado da aceleração.
Porquê falar sem uma ligação, embora exista um requisito?
Как это ни парадоксально, но именно при активной алготоровле много времени уходит на вглядывание в монитор. Иногда возникают иллюзии, будто что-то полезное уловил глазом. Так произошло и в этот раз. Давно была гипотеза, что какие-то движения внтури дня имеют связь с движениями после в этом же дне. Например, может показаться, что микрогепы в...
Eu (e todos os outros) não tenho podido ver a utilização deste parâmetro no Visual Studio durante os últimos 10 anos. Mesmo tendo activado todas as bandeiras de denúncia de loop sweep.
Simplesmente não funcionou e não funciona mesmo em grandes projectos onde existem muitas possibilidades de paralelização. Apenas o OpenMP directo com trabalhos de partição manual de laço.
Na MQL5, os loops não são paralelos.
Concordo com o fxsaber que o OpenCL requer um elevado limiar de entrada. O facto de existir é bom, mas apenas alguns são bons nisso.
O facto de os loops em mql5 não serem paralelos, essa foi a sugestão para uma possível implementação. Agora a plataforma está em Clang, talvez haja ali um bom paralelismo, não sei. O objectivo da proposta é de a puxar para uma directiva mql.
Decidido a verificar um projecto real - talvez a python utilize o compilador jit o tempo todo? Tenho o ranger https://github.com/ranger/ranger, projecto com 122 ficheiros (26368 linhas), pingou-os para @njit.
$ grep '@njit' $(xbps-query -f ranger)
Resultado - nem um único achado. Receio que a utilização activa desta funcionalidade transformará o arranque numa busca de vários minutos.
Com todo o respeito, simplesmente não se sabe como cozinhá-lo. Reformulou o seu exemplo:
Em Python:
Aqui está uma comparação em Python 3.8 e MQL5 nos modos de linha única/OpenCL: tempo em segundos, quanto menos melhor
pi-single.py
pi-multi.py
Velocidade PI.mq5 simples
Velocidade PI.mq5 OpenCL
4.1743
0.2101
4.1836
0.1025
Python em modo JIT via numba, o ferro é:
Windows 10 x64, Intel Xeon E5-2690 v3 a 2.60GHz
GeForce RTX 2080
O exemplo da utilização de OpenCL é muito simples e não requer quaisquer folhos para optimização. Embora a tarefa não seja massiva para o OpenCL e tenha desencadeado despesas gerais em preparação, ainda assim deu um resultado muito melhor.
Cálculos paralelos muito grandes podem ser efectuados rotineiramente com OpenCL. O limiar de entrada não é elevado e só demora um dia a descobrir como utilizá-lo.
O exemplo da utilização de OpenCL é muito simples e sem quaisquer folhos para optimização. Embora a tarefa não seja massiva para o OpenCL e tenha desencadeado despesas gerais em preparação, ainda assim deu um resultado muito melhor.
Renat, pode dar-me uma ideia aproximada dos casos em que o OpenCL terá uma vantagem, trabalhando com um grande número de matrizes ou se existe um grande conjunto de símbolos e indicadores numa EA?
Não sou um programador profissional, as coisas simples ao nível da programação são provavelmente difíceis para mim
Para login e uso do site MQL5.com, você deve ativar o uso de cookies.
Ative esta opção no seu navegador, caso contrário você não poderá fazer login.
Você entrou na conta. A autenticação de dois fatores foi desativada. Configure-a novamente e escaneie um novo código QR ou continue com a autenticação de dois fatores desativada.
Casos visualmente semelhantes também não são mal detectados.
Não conseguia interpretar as imagens.
Não conseguia interpretar as imagens.
artigo a caminho
é interessante como os ciclos e as tarefas na cabeça de algumas pessoas por vezes coincidem ))Publiquei um cálculo no blogue que se assemelha perfeitamente. Infelizmente, a informação do OpenCL é de tal nível que requer uma competência muito superior à minha.
Gostaria de ver um exemplo simples (como no blogue) da implementação do OpenCL e o resultado da aceleração.
Porque é que não existe uma ligação, apesar de existir uma exigência?
Não há nenhuma reivindicação. Não forneci um link para a entrada do blog de modo a não dar azo a acusações de auto-promoção.
https://www.mql5.com/ru/blogs/post/731774
Eu (e todos os outros) não tenho podido ver a utilização deste parâmetro no Visual Studio durante os últimos 10 anos. Mesmo tendo activado todas as bandeiras de denúncia de loop sweep.
Simplesmente não funcionou e não funciona mesmo em grandes projectos onde existem muitas possibilidades de paralelização. Apenas o OpenMP directo com trabalhos de partição manual de laço.
Na MQL5, os loops não são paralelos.
Concordo com o fxsaber que o OpenCL requer um elevado limiar de entrada.
O facto de existir é bom, mas apenas alguns são bons nisso.
O facto de os loops em mql5 não serem paralelos, essa foi a sugestão para uma possível implementação.
Agora a plataforma está em Clang, talvez haja ali um bom paralelismo, não sei.
O objectivo da proposta é de a puxar para uma directiva mql.
Compreendo correctamente que se definir esta tarefa para encontrar moções semelhantes ao Optimizer, então a genética não funcionará?
Neste caso, o Testador não será habilitado para uma enumeração completa, pois há muitos passes a serem feitos.
Isto é, a única forma de resolver este problema é executar o guião em Terminal.
Decidido a verificar um projecto real - talvez a python utilize o compilador jit o tempo todo? Tenho o ranger https://github.com/ranger/ranger, projecto com 122 ficheiros (26368 linhas), pingou-os para @njit.
Resultado - nem um único achado. Receio que a utilização activa desta funcionalidade transformará o arranque numa busca de vários minutos.
Com todo o respeito, simplesmente não se sabe como cozinhá-lo. Reformulou o seu exemplo:
Em Python:
Aqui está uma comparação em Python 3.8 e MQL5 nos modos de linha única/OpenCL: tempo em segundos, quanto menos melhor
Python em modo JIT via numba, o ferro é:
O exemplo da utilização de OpenCL é muito simples e não requer quaisquer folhos para optimização. Embora a tarefa não seja massiva para o OpenCL e tenha desencadeado despesas gerais em preparação, ainda assim deu um resultado muito melhor.
Cálculos paralelos muito grandes podem ser efectuados rotineiramente com OpenCL. O limiar de entrada não é elevado e só demora um dia a descobrir como utilizá-lo.
Ficheiros para reprodução anexados.
Embora a tarefa não seja massiva para o OpenCL e tenha desencadeado despesas gerais em preparação, ainda assim deu um resultado muito melhor.
Como se debugou a parte do código OpenCL?
O exemplo da utilização de OpenCL é muito simples e sem quaisquer folhos para optimização. Embora a tarefa não seja massiva para o OpenCL e tenha desencadeado despesas gerais em preparação, ainda assim deu um resultado muito melhor.
Renat, pode dar-me uma ideia aproximada dos casos em que o OpenCL terá uma vantagem, trabalhando com um grande número de matrizes ou se existe um grande conjunto de símbolos e indicadores numa EA?
Não sou um programador profissional, as coisas simples ao nível da programação são provavelmente difíceis para mim