Processamento paralelo de 1TP9 para treinamento e geração genética
10 respostas
kainc301
4 anos atrás #247191
Olá a todos. Pelo que sei, a equipe do SQ fez várias melhorias de velocidade no SQX, incluindo computação paralela para simulações Monte Carlo e WFO.
No entanto, é possível usar a computação paralela para treinamento genético e geração aleatória? Eu presumiria que isso tornaria esse processo muito mais rápido para CPUs com maior número de núcleos.
Além disso, vi que a aceleração de GPU para cálculos está na lista de tarefas a serem feitas posteriormente. Mas, pelo que entendi, a única maneira de a computação em GPU ajudar na velocidade de criação das estratégias é se a criação e o treinamento forem feitos com processamento paralelo. Quero investir em GPUs premium para usar com minha máquina para o SQX quando esse recurso estiver disponível; no entanto, queria ter certeza de que isso realmente melhoraria a velocidade de criação e treinamento de estratégias.
Já vi a aceleração de GPU melhorar a velocidade de treinamento de modelos de aprendizado de máquina em ordens de magnitude. Será que o mesmo poderia ser aplicado ao SQX? Estou curioso para saber a opinião de Mark ou da equipe de desenvolvimento. Seria realmente incrível obter os aprimoramentos de velocidade de 10 a 100 vezes que foram observados com diferentes modelos usando configurações de várias GPUs 🙂
bentra
4 anos atrás #247208
Do wiki: A computação paralela é um tipo de computação em que muitos cálculos ou a execução de processos são realizados simultaneamente. Tecnicamente, isso já está acontecendo desde a SQ3 e talvez antes dela. (Caso contrário, não poderíamos usar mais de um núcleo ao mesmo tempo).
Também estou ansioso pelo suporte à GPU, que deve ser muito mais rápido, mas pode dar muito trabalho para chegar lá...
Deste documento: https://pdfs.semanticscholar.org/8fa2/9a317120add5525e61f41f73c5a96e932d60.pdf
A programação de GPGPU está sendo escrita maciçamente programas paralelos para execução em computadores pessoais.
Gianfranco
4 anos atrás #247214
como os núcleos cuda da nvidia
Conheço alguns softwares otimizados com bibliotecas cuda da nvidia que aproveitam os núcleos cuda das placas nvidia gpu.... ou tesla para cálculos paralelos... mas acho que é um grande trabalho escrever sqx otimizado com bibliotecas Cuda
kainc301
4 anos atrás #247226
Tecnicamente, isso já está acontecendo desde o SQ3 e talvez antes dele. (Caso contrário, não poderíamos usar mais de um núcleo ao mesmo tempo).
Eu achava que apenas a WFO e a Monte Carlo se aproveitavam disso, mas não tenho a menor ideia de como o funcionamento interno da SQX é tratado, portanto, foi apenas uma suposição.
Conheço alguns softwares otimizados com bibliotecas cuda da nvidia que aproveitam os núcleos cuda das placas nvidia gpu.... ou tesla para cálculos paralelos... mas acho que é um grande trabalho escrever sqx otimizado com bibliotecas Cuda
Se eu pudesse ter apenas um presente de Natal, seria esse rs
clonex / Ivan Hudec
4 anos atrás #247241
Já foi escrito aqui várias vezes como o sqx funciona, por que não é possível usar GPU etc. Basta usar a função de pesquisa
kainc301
4 anos atrás #247243
Já foi escrito aqui várias vezes como o sqx funciona, por que não é possível usar GPU etc. Basta usar a função de pesquisa
Mark adicionou os recursos de GPU à lista de marcos a serem feitos posteriormente no SQX: https://roadmap.strategyquant.com/tasks/sq4_2985
Eu li a que você se refere, mas depois que essa tarefa foi enviada e houve alguma discussão sobre como ela poderia ser implementada, presumi que esse sentimento havia mudado.
kainc301
4 anos atrás #247246
Fiz muitas pesquisas nos fóruns da SQ e em outros lugares para entender os gargalos atuais da computação de GPU quando se trata de backtesting. Quando Mark falou sobre isso no passado, o problema tinha a ver com o uso de GPUs para computação de uso geral, pois o backtesting era mais complexo do que as operações matemáticas. Um sentimento semelhante foi descrito neste resumo acadêmico aqui: https://pdfs.semanticscholar.org/d087/f5cb4a92f98aaef5008ceb682954f7ffbee2.pdf
No entanto, parece que dois pesquisadores conseguiram usar GPUs de forma eficaz com algoritmos genéticos nos mercados de câmbio. Recomendo fortemente a análise e a possível implementação dessa abordagem. O link completo para a pesquisa acadêmica está aqui: http://people.scs.carleton.ca/~dmckenne/5704/Paper/Final_Paper.pdf
Também descobri que a NVIDIA conseguiu usar GPUs para backtesting do mercado financeiro e alcançar um aumento de velocidade de 6000 vezes. https://www.nvidia.com/content/dam/en-zz/Solutions/industries/finance/finance-trading-executive-briefing-hr-web.pdf
Não sei como eles fizeram isso, por isso vou continuar procurando, mas parece haver uma maneira de incorporar a lógica CUDA que é capaz de fazer o tipo de backtesting que antes era considerado quase impossível de ser feito. Portanto, acredito que ainda há esperança de que isso seja implementado na SQX um dia. Se isso já foi feito antes, não o considero "impossível". Os pesquisadores que incorporaram GPUs em seu algoritmo genético também usaram CUDA para obter seus resultados.
Marca Fric
4 anos atrás #247279
Consultei isso várias vezes com meus amigos PHD da universidade que trabalham com GPUs e, infelizmente, o status não mudou - as GPUs não são adequadas para nós.
É possível executar a evolução genética e também "algum tipo" de backtesting na GPU. O problema é a natureza aberta do SQ que queremos alcançar.
Poderíamos criar uma arquitetura de estratégia fixa e um conjunto fixo de indicadores que seriam testados em GPU, mas não poderíamos usar coisas como modelos de estratégia, programação de indicadores personalizados e outros blocos, que são pontos fortes do SQ X.
Essa aceleração de cem vezes mencionada nos artigos só é possível em determinadas condições e com determinados programas; ainda não é possível acelerar o processo geral de backtesting dessa forma.
Marcar
EstratégiaQuant arquiteto
kainc301
4 anos atrás #247291
Consultei isso repetidamente com meus amigos PHD da universidade que trabalham com GPUs e, infelizmente, o status não mudou - as GPUs não são adequadas para nós. É possível executar a evolução genética e também "algum tipo" de backtesting na GPU. O problema é a natureza aberta da SQ que queremos alcançar. Poderíamos criar uma arquitetura de estratégia fixa e um conjunto fixo de indicadores que seriam testados na GPU, mas então não poderíamos usar coisas como modelos de estratégia, programação de indicadores personalizados e outros blocos, que são todos pontos fortes do SQ X. Essa aceleração de cem vezes que eles mencionam nos artigos só é possível sob certas condições e com certos programas, ainda não é possível acelerar o processo geral de backtesting dessa forma.
Isso é lamentável. Concordo que é muito mais importante manter a flexibilidade no uso de indicadores/modelos personalizados do que sacrificá-la em prol do desempenho.
Portanto, a verdadeira solução para buscar maior desempenho por meio de hardware é usar várias CPUs conectadas por meio de um sistema de grade. Pelo menos posso economizar dinheiro em GPUs caras, haha.
gusyoan
4 anos atrás #254839
Marca Fric
4 anos atrás #257552
Não, não é possível usar esse tipo de carta. Mas não entendo a obsessão com a maior potência possível - ela não é a chave para uma negociação lucrativa.
Marcar
EstratégiaQuant arquiteto
Visualizando 10 respostas - 1 até 10 (de um total de 10)