Tuesday 6 June 2017

Moving Average Cuda


Eu não sou programador com nenhuma habilidade. Apenas alguém curioso sobre CUDA e por isso estou fazendo uma pequena leitura. Eu corri um exemplo de usar o Thrust para fazer uma média móvel: o exemplo, como é, corre e principalmente funciona corretamente. No entanto, é trivial no sentido de que ele só faz uma operação média móvel. Como eu diria 352 dessas operações de média móvel em paralelo, todos operando no mesmo fluxo de dados. Na minha mente, o fluxo do programa pode ser: Gerar o amplificador de dados enviá-lo para um núcleo CUDA. (O mesmo que o código existente, mas pense comprimentos de 1000 ou 10000 em vez de 30) Copie-o do núcleo CUDA para todos os outros 351 núcleos CUDA no meu GTX 465 Diga a cada núcleo CUDA qual o número de itens de dados em média. (4. 5. 352. 353. 354) Diga ao dispositivo que execute a média em cada núcleo em paralelo Leia de volta os resultados de cada núcleo Eu percebi que esse código faz com que tudo aconteça, mas como eu faço o impulso para fazer Muitos destes em paralelo Meu interesse aqui é sobre algo como dados de estoque. Se eu estiver olhando os preços GOOG, eu coloquei isso na GPU usando todos os núcleos e deixe-o lá. Então, seja livre para fazer muito processamento sem carregar mais os dados e apenas lendo os resultados de cada núcleo. NOTA: talvez eu não queira usar o GOOG em todos os núcleos. Alguns núcleos podem ser GOOG, outros com algum outro símbolo, mas eu vou chegar lá mais tarde. Estou apenas pensando que eu não quero os dados de estoque na memória global se houver espaço suficiente em cada núcleo. Eu suponho que isso seja bastante direto para o amplificador CUDA que o Thrust perguntou 12 de setembro 12 às 19:39. Meu entendimento é que você está interessado nas duas situações a seguir: você tem uma longa seqüência de itens e você deseja calcular um certo número de médias, por Com base em diferentes números de itens, ou seja, usando diferentes comprimentos para a janela da média móvel. Isto é o que eu entendo da sua pergunta original. Você tem uma série de seqüências, armazenadas consecutivamente na memória, e você deseja compará-las em paralelo com uma janela de média fixa de tamanho 2 RADIUS 1. Isso é o que o código ArrayFire proposto por asm faz - você aceitou. Em vez de usar CUDA Thrust, acho que seria mais fácil escrever seu próprio kernel CUDA para fazer as operações acima. Abaixo, um exemplo totalmente trabalhado que funciona da mesma maneira que o código ArrayFire proposto por asm, cobrindo o caso 2. A modificação para cobrir o caso 1 seria direta. Respondeu 15 de novembro às 15:42 Sua resposta 2017 Stack Exchange, IncPara outra abordagem, você pode truncar a janela da média móvel exponencial e, em seguida, calcular o seu sinal filtrado fazendo uma convolução entre o sinal e a exponencial janela. A convolução pode ser calculada usando a biblioteca FFT CUDA livre (cuFFT) porque, como você pode saber, a convolução pode ser expressa como a multiplicação pontual dos dois sinais no domínio fourier (Este é o nome apropriado do Teorema da Convolução, Que corre com uma complexidade de O (n log (n))). Este tipo de abordagem minimizará o código do kernel CUDA e executará muito rapidamente, mesmo em uma GeForce 570. Especialmente, se você puder fazer todos os seus cálculos em uma única precisão (flutuante). Respondeu 30 de abril 14 às 17:04 Eu proporia manipular a equação de diferença acima conforme indicado abaixo e depois usando primitivas de impulso CUDA. MANIPULAÇÃO DE EQUAÇÃO DE DIFERENÇA - FORMA EXPLÍCITA DA EQUILÍBRIA DE DIFERENÇA Por álgebra simples, você pode encontrar o seguinte: Conseqüentemente, a forma explícita é a seguinte: CUDA THRUST IMPLEMENTATION Você pode implementar a forma explícita acima pelas seguintes etapas: Inicializar uma sequência de entrada dinput para Alfa, exceto para dinput0. 1. Defina um vetor d1overbetatothen igual a 1, 1beta, 1beta2, 1beta3. Multiplique o dinposto elementar por d1overbetatothen Execute um inclusivecan para obter a seqüência do yn betan Divida a seqüência acima por 1, 1beta, 1beta2, 1beta3. A abordagem acima pode ser recomendada para sistemas Linear Time-Varying (LTV). Para os sistemas Linear Time-Invariant (LTI), a abordagem FFT mencionada por Paul pode ser recomendada. Estou fornecendo um exemplo dessa abordagem usando o CUDA Thrust e cuFFT na minha resposta ao filtro FIR na CUDA. Análise Técnica de Barracuda Networks (NYSE. CUDA) Média de Movimento Barracuda Networks: os movimentos do preço das ações da CUDA podem ser previstos usando disparadores com base em médias móveis , Que também são alguns dos indicadores técnicos mais simples. A forma como as médias são calculadas em cada um dos 2 casos populares, isto é, SMA e EMA variam, no entanto, a interpretação dos padrões do gráfico Barracuda Networks após os cálculos permanecem iguais. A média móvel de 100 dias de 50.12 está abaixo do último preço de fechamento de 23,14. É preciso escolher a duração de uma média móvel de acordo com o objetivo de investimento e o horizonte de investimento. Para períodos superiores a 100, é necessário um movimento maior e mais longo do preço das ações da CUDA para a média móvel para mudar de curso. Barracuda Networks Bandas Bollinger: as bandas Bollinger consistem em duas bandas de preços acima e abaixo de uma linha central para qualquer estoque da empresa, como Barracuda Networks. O aperto das bandas é considerado pela maioria dos comerciantes como um precursor do aumento repentino da volatilidade. Atualmente, o preço das ações de 23,14 está na faixa mais baixa das bandas Bollinger Barracuda Networks. Diferença de convergência média convergente ou MACD de Redes Barracuda: a divergência de convergência média móvel ou MACD é um indicador técnico que ajuda a avaliar a tendência de preço das ações, pois o indicador é útil na compreensão da força, direção e impulso do preço das ações. O indicador Barracuda Networks MACD está acima de 0 indicando uma tendência de alta. Índice de Força Relativa Barracuda Networks: O indicador técnico RSI é um oscilador de momentum. Ele compara a velocidade e a mudança nos movimentos de preços. 61.19 é o valor RSI do estoque CUDA.

No comments:

Post a Comment