Articles of poussée

Vérifier si une masortingce contient des nans ou des valeurs infinies dans CUDA

Quel est un moyen efficace de vérifier une grande masortingce pour les éléments inf / nan dans CUDA (C ++)? La masortingce est stockée en tant que float* dans la mémoire du processeur graphique. Je n’ai pas besoin de l’emplacement de ces éléments, mais simplement d’une réponse booléenne oui / non si au moins une […]

cuda9 + thrust sort_by_key superposé avec la copie H2D (en utilisant des stream)

Je voudrais superposer une opération thrust :: sort_by_key à une copie hôte à périphérique. Bien que nous prenions un argument cudaStream_t, mes expériences semblent montrer que thrust :: sort_by_key est une opération bloquante. Ci-dessous, je joins un exemple de code complet dans lequel je mesure d’abord le temps nécessaire pour copier les données (à partir […]

borne supérieure vectorisée pour les données segmentées en CUDA / poussée

J’ai les données d’entrée suivantes: e = 0 0 0 0 0 0 | 1 1 1 t = 1 1 4 4 4 5 | 1 6 7 i = 0 1 2 3 4 5 | 6 7 8 // indices from [0,n-1] Les données sont d’abord sortingées par e , puis par […]

Utilisation de cuda thrust avec des tableaux plutôt que des vecteurs dans inclusive_scan

J’ai un code donné par @ms: #include #include #include #include #include struct omit_negative : public thrust::unary_function { __host__ __device__ int operator()(int value) { if (value<0) { value = 0; } return value; } }; int main() { int array[] = {2,1,-1,3,-1,2}; const int array_size = sizeof(array)/sizeof(array[0]); thrust::device_vector d_array(array, array + array_size); thrust::device_vector d_result(array_size); std::cout << […]

NVidia Thrust device_vector of ssortingngs

J’ai commencé à utiliser la bibliothèque NVidia Thrust, qui fait partie du kit d’outils CUDA 4.0, et je voulais vérifier quelque chose avant de creuser plus profondément. Je peux effectuer les opérations suivantes et ne pas avoir de problèmes pendant la construction: thrust::host_vector iVec; thrust::device_vector iVec2; thrust::host_vector sVec; Lorsque j’essaye ce qui suit, je reçois […]

iterator de vecteur de structures en poussée

J’essaie d’avoir access aux éléments vectoriels de cette manière struct point { unsigned int x; unsigned int y; }; … thrust::device_vector devPoints(hPoints.begin(), hPoints.end()); for(thrust::device_vector::iterator iter = devPoints.begin(); iter != devPoints.end(); iter++) { std::cout <x << " " <y << " " << std::endl; (1) } device_vector a été initialisé correctement. Je reçois des erreurs suivantes: […]

Modèles C ++ nesteds

J’ai une fonction appelée add_vector_to_scalar qui ajoute une valeur scalaire à un vecteur ( in ) et stocke le résultat dans un autre vecteur ( out ). add_op generic C ++, donc je ne sais pas comment rendre le paramètre de type add_op generic ? J’ai pensé à append un autre nom de type T […]

Fonctionne comme argument de la poussée iterator CUDA

J’essaie d’implémenter les routines de résolution des ODE exécutées sur des GPU en utilisant les iterators de CUDA :: Thurst pour résoudre un grand nombre d’équations dans le GPU. #include #include #include #include #include #include #include #include #include #include #include #include __host__ __device__ float f(float x, float y) { return cos(y)*sin(x); } struct euler_functor { […]

soutien de fp16 dans la poussée de cuda

Je ne suis pas en mesure de trouver quoi que ce soit à propos du support de fp16 dans la bibliothèque de modèles thrust cuda. Même la page de feuille de route n’a rien à ce sujet: https://github.com/thrust/thrust/wiki/Roadmap Mais je suppose que quelqu’un a probablement compris comment résoudre ce problème, car le support de fp16 […]

Utilisation de foncteurs polymorphes dans les fonctions de Thrust

J’ai besoin d’une fonction qui calcule une fonction “mathématique” de plusieurs variables sur le GPU. J’ai décidé d’utiliser Thrust et son zip_iterator pour zip_iterator les variables dans un tuple et mettre en œuvre ma fonction mathématique en tant que foncteur pour for_each . Mais j’aimerais avoir une fonction universelle capable de calculer différentes fonctions “mathématiques”. […]