Thursday, February 23, 2017

Déménagement Moyenne En Cuda

Pour une autre approche, vous pouvez tronquer la fenêtre de moyenne mobile exponentielle et ensuite calculer votre signal filtré en faisant une convolution entre votre signal et l'exponentielle fenêtrée. La convolution peut être calculée en utilisant la bibliothèque CUDA FFT libre (cuFFT) car, comme vous le savez peut-être, la convolution peut être exprimée comme la multiplication ponctuelle des deux signaux dans le domaine fourier (C'est le théorème Convolution, Qui s'exécute avec une complexité de O (n log (n))). Ce type d'approche minimisera votre code de noyau CUDA et fonctionnera très très rapidement, même sur une GeForce 570 Particulièrement si vous pouvez faire tous vos calculs en précision simple (flottante). Répondre Apr 30 14 at 17:04 Je proposerais de manipuler l'équation des différences ci-dessus comme indiqué ci-dessous et ensuite en utilisant CUDA Thrust primitives. DIFFÉRENCE MANIPULATION D'ÉQUATION - FORME EXPLICITE DE L'ÉQUATION DE DIFFÉRENCE Par simple algèbre, on peut trouver ce qui suit: Alpha à l'exception de dinput0 1. Définir un vecteur d1 overbetatothen égal à 1, 1beta, 1beta2, 1beta3. Multiplier elementwise dinput par d1overbetatothen Effectuer un inclusivescan pour obtenir la séquence de yn betan Diviser la séquence ci-dessus par 1, 1beta, 1beta2, 1beta3. L'approche ci-dessus peut être recommandée pour les systèmes Linear Time-Varying (LTV). Pour les systèmes Linear Time-Invariant (LTI), l'approche FFT mentionnée par Paul peut être recommandée. Im fournissant un exemple de cette approche en utilisant CUDA Thrust et cufft dans ma réponse au filtre FIR dans CUDA. Je ne suis pas un programmeur avec toutes les capacités. Juste quelqu'un curieux au sujet de CUDA et ainsi Im faisant un peu de lecture. J'ai rencontré un exemple d'utilisation de Thrust pour faire une moyenne mobile: L'exemple, tel qu'il est, s'exécute et fonctionne principalement correctement. Toutefois, son trivial dans le sens où il ne fait qu'une opération moyenne mobile. Comment je pourrais dire 352 de ces opérations de moyenne mobile en parallèle, tous fonctionnant sur le même flux de données Dans mon esprit, le flux de programme pourrait être: Générer l'ampli de données l'envoyer à un noyau CUDA. (Identique au code existant, mais pensez à des longueurs de 1000 ou 10000 au lieu de 30) Copiez-le du noyau CUDA à tous les autres 351 cœurs CUDA de ma GTX 465 Dites à chaque noyau CUDA le nombre d'éléments de données à la moyenne. (4. 5. 6. 352. 353. 354) Dites à l'appareil d'exécuter la moyenne dans chaque noyau en parallèle Lire les résultats de chaque noyau Je comprends que ce code le fait tout se passer, mais comment obtenir Thrust à faire Beaucoup d'entre eux en parallèle Mon intérêt ici est de quelque chose comme des données de stock. Si je regarde les prix GOOG Id mettre cela dans le GPU en utilisant tous les noyaux et la laisser là. Id alors être libre de faire beaucoup de traitement sans charger les données plus et juste en lisant les résultats de chaque noyau. REMARQUE: je pourrais ne pas vouloir utiliser GOOG dans tous les noyaux. Certains noyaux peuvent être GOOG, d'autres avec un autre symbole, mais Ill arriver plus tard. Im juste pensant que je ne veux pas les données de stock dans la mémoire globale si theres assez de pièce dans chaque noyau. Je suppose que c'est assez simple pour CUDA amp Thrust demandé Sep 12 12 at 19:39 Je crois comprendre que vous êtes intéressé par les deux situations suivantes: Vous avez une longue séquence d'articles et vous voulez calculer un certain nombre de moyennes, par Calculer la moyenne sur différents nombres d'articles, c'est-à-dire utiliser des longueurs différentes pour la fenêtre de la moyenne mobile. C'est ce que je comprends de votre question initiale. Vous avez une série de séquences, stockées consécutivement en mémoire, et vous voulez les moyennes en parallèle avec une fenêtre de moyenne fixe de taille 2 RADIUS 1. C'est ce que le code ArrayFire proposé par asm - vous l'avez accepté. Au lieu d'utiliser CUDA Thrust, je pense qu'il serait plus facile d'écrire votre propre kernel CUDA pour effectuer les opérations ci-dessus. Ci-dessous, un exemple entièrement travaillé qui fonctionne de la même manière que le code ArrayFire proposé par asm, couvrant ainsi le cas 2. La modification pour couvrir le cas 1 serait simple. A répondu 15 novembre 14 à 15: 42Barracuda Networks, Inc brisé sa moyenne mobile de 50 jours d'une manière baissière. CUDA-US. 28 octobre 2016 Performance des actions par rapport aux pairs En ce qui concerne les pairs, la surperformance relative de la dernière année contraste avec la sous-performance la plus récente. CUDA-US 8216s changement dans le prix des actions de 30,13 pour les 12 derniers mois est meilleure que sa médiane par les pairs. Toutefois, la tendance à 30 jours de son cours des actions de -6,83 est inférieure à la médiane des pairs, ce qui laisse supposer que la performance récente de la société82 s'est nettement dégradée par rapport à ses pairs. Définitions d'étiquettes quadrant. Rendez-vous pour en savoir plus Leading, Fading, Lagging, Rising Screen pour les entreprises utilisant le rendement relatif des cours de l'action Gains Momentum Barracuda Networks, Inc. a un résultat de 53,58 et a une évaluation relative de OVERVALUED. Les actions à haut rendement sont une option privilégiée pour les jeux de dynamisme. S'ils sont sous-évalués, cela peut être un autre avantage et peut indiquer une dynamique soutenue. Définitions d'étiquettes quadrant. Poursuivre pour en savoir plus Momentum surévalué, à hauts revenus, sous-évalué, Momentum à hauts revenus, sous-évalué, Momentum à faible bénéfice, surévalué,


No comments:

Post a Comment