J’utilise une carte NVIDIA geforce qui génère une erreur après 2 secondes si j’essaie d’exécuter un programme CUDA dessus. J’ai lu ici que vous pouvez utiliser la clé TDRlevel dans HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\GraphicsDrivers . Cependant, je ne vois pas de clé de ce type dans le registre. A-t-il besoin d’être ajouté vous-même? Quelqu’un d’autre a-t-il rencontré ce […]
Je souhaite implémenter une barrière interbloc sur CUDA, mais je rencontre un problème sérieux. Je ne peux pas comprendre pourquoi cela ne fonctionne pas. #include #include #include #define SIZE 10000000 #define BLOCKS 100 using namespace std; struct Barrier { int *count; __device__ void wait() { atomicSub(count, 1); while(*count) ; } Barrier() { int blocks = […]
J’ai pris le code donné comme réponse pour Comment puis-je additionner deux tableaux 2d (pitchés) en utilisant des boucles nestedes? et essayé de l’utiliser pour la 3D au lieu de la 2D et modifier légèrement d’autres parties, maintenant, il se présente comme suit: __global__ void doSmth(int*** a) { for(int i=0; i<2; i++) for(int j=0; j<2; […]
Ok, je suis assez nouveau dans CUDA, et je suis un peu perdu, vraiment perdu. J’essaie de calculer pi en utilisant la méthode de Monte Carlo, et à la fin, je ne reçois qu’un ajout au lieu de 50. Je ne veux pas “faire le temps” pour appeler le kernel, car il est trop lent. […]
J’essaie d’écrire use magma library dans matlab, donc j’écris une fonction mexfunction qui incorpore du code c à l’aide de la fonction magma, puis je la comstack en fichier mexa64. Le code mexfunction ou source c est ci-dessous: (appelé eig_magma) #include #include #include #include #include #include // includes, project #include “flops.h” #include “magma.h” #include “magma_lapack.h” […]
J’essaie de générer un ensemble d’indices ci-dessous: J’ai un bloc cuda composé de 20 blocs (blockIdx: de 0 à 19), chaque bloc étant divisé en 4 blocs (sous-bloc Idx: 0,1,2 et 3). J’essaie de générer un motif d’index comme ceci: threadIdx (id), SubBlockIdxA (SA), SubBlockIdxB (SB), BlockIdxA (BA), BlockIdxB (BB) Required Obtained tid SBA SBB […]
J’ai écrit un code dans OpenCL. Il y a une erreur lors de la construction du programme du kernel. Le code d’erreur est -11. J’ai essayé d’imprimer le BUILD LOG mais il n’imprime pas un journal approprié mais génère des variables aléatoires. Voici cette partie //these are variable declarations cl_device_id* devices; cl_program kernelprgrm; size_t size; […]
Le concept de base de ce que je fais Problème complet de formation de la structure de coalition / Ventes aux enchères combinatoires. Étant donné un ensemble de N agents, les sous-ensembles disjoints de l’ensemble d’agents donnent le meilleur résultat. Par exemple, Agents = {a,b} et leurs valeurs {a} = 2 {b} = 3 {a,b} […]
Il existe de nombreux conseils pour savoir quand utiliser les fonctions inline et quand l’éviter dans le codage C normal. Quel est l’effet de __forceinline__ sur les fonctions CUDA C __device__ ? Où devraient-ils être utilisés et où être évités?
J’ai besoin d’allouer dynamicment des tableaux à l’intérieur de la fonction du kernel. Comment puis-je faire ça? Mon code est quelque chose comme ça: __global__ func(float *grid_d,int n, int nn){ int i,j; float x[n],y[nn]; //Do some really cool and heavy computations here that takes hours. } Mais ça ne marchera pas. Si cela se trouvait […]