Articles of cuda

Perché nvcc non riesce a compilare un file CUDA con boost :: spirit?

Sto cercando di integrare CUDA in un’applicazione esistente che usa boost :: spirit. Isolare il problema, ho scoperto che il seguente codice non copia con nvcc: main.cu : #include int main(){ exit(0); } Compilando con nvcc -o cudaTest main.cu Ottengo un sacco di errori che possono essere visti qui . Ma se cambio il nome […]

Come usare Thrust per ordinare le righe di una matrice?

Ho una matrice 5000×500 e voglio ordinare ogni riga separatamente con cuda. Posso usare arrayfire ma questo è solo un ciclo for su thrust :: sort, che non dovrebbe essere efficiente. https://github.com/arrayfire/arrayfire/blob/devel/src/backend/cuda/kernel/sort.hpp for(dim_type w = 0; w < val.dims[3]; w++) { dim_type valW = w * val.strides[3]; for(dim_type z = 0; z < val.dims[2]; z++) […]

allocare memoria condivisa

Sto cercando di allocare memoria condivisa utilizzando un parametro costante ma ottenendo un errore. il mio kernel ha questo aspetto: __global__ void Kernel(const int count) { __shared__ int a[count]; } e sto ricevendo un errore che dice errore: espressione deve avere un valore costante contare è const! Perché ricevo questo errore? E come posso aggirare […]

Come utilizzare gli array 2D in CUDA?

Sono nuovo di CUDA. Come allocare array 2D di dimensioni MXN ?. Come attraversare quella matrice in CUDA ?. Dammi un codice di esempio. ………………………………………….. …………………………………… Ciao, grazie per la risposta. Ho usato il tuo codice nel seguente programma. Ma non sto ottenendo risultati corretti. __global__ void test(int A[BLOCK_SIZE][BLOCK_SIZE], int B[BLOCK_SIZE][BLOCK_SIZE],int C[BLOCK_SIZE][BLOCK_SIZE]) { int i […]

Copia di una struttura contenente puntatori al dispositivo CUDA

Sto lavorando a un progetto in cui ho bisogno del mio dispositivo CUDA per fare calcoli su una struttura contenente puntatori. typedef struct StructA { int* arr; } StructA; Quando alloco memoria per la struct e poi la copio nel dispositivo, verrà solo copiata la struct e non il contenuto del puntatore. In questo momento […]

CUDA: quanti thread concorrenti in totale?

Ho una GeForce GTX 580 e voglio fare una dichiarazione sul numero totale di thread che possono (idealmente) essere effettivamente eseguiti in parallelo, da confrontare con 2 o 4 CPU multi-core. deviceQuery mi dà le seguenti informazioni possibilmente rilevanti: CUDA Capability Major/Minor version number: 2.0 (16) Multiprocessors x (32) CUDA Cores/MP: 512 CUDA Maximum number […]

Passando i puntatori tra C e Java attraverso JNI

Al momento, sto cercando di creare un’applicazione Java che usi la funzionalità CUDA. La connessione tra CUDA e Java funziona bene, ma ho un altro problema e volevo chiederti se i miei pensieri a riguardo sono corretti. Quando chiamo una funzione nativa da Java, gli passo alcuni dati, le funzioni calcolano qualcosa e restituiscono un […]

Comprendere le dimensioni della griglia CUDA, le dimensioni dei blocchi e l’organizzazione dei thread (spiegazione semplice)

Come sono organizzati i thread per essere eseguiti da una GPU?

Come misurare il tempo interno del kernel in NVIDIA CUDA?

Voglio misurare il kernel interno del tempo della GPU, come misurarlo in NVIDIA CUDA? per esempio __global__ void kernelSample() { some code here get start time some code here get stop time some code here }

Come viene gestita la memoria CUDA?

Quando eseguo il mio programma CUDA che alloca solo una piccola quantità di memoria globale (inferiore a 20 M), ho ricevuto un errore di “memoria insufficiente”. (Dai post di altre persone, penso che il problema sia legato alla frammentazione della memoria) Cerco di capire questo problema e mi rendo conto di avere un paio di […]