Articles of gpgpu

¿Cómo se dividen los bloques CUDA en warps?

Si comienzo mi kernel con una grilla cuyos bloques tienen dimensiones: dim3 block_dims(16,16); ¿Cómo se dividen ahora los bloques de malla en warps? ¿Las primeras dos filas de dicho bloque forman una urdimbre, o las dos primeras columnas, o se ordena arbitrariamente? Supongamos una capacidad de cálculo GPU de 2.0.

nvidia-smi Explicación de utilización de la GPU volátil?

Sé que nvidia-smi -l 1 dará el uso de la GPU cada segundo (similar al siguiente). Sin embargo, agradecería una explicación sobre lo que realmente significa Volatile GPU-Util . ¿Es esa la cantidad de SMs usados ​​sobre el SM total, o la ocupación, o alguna otra cosa? +—————————————————————————–+ | NVIDIA-SMI 367.48 Driver Version: 367.48 | […]

Las aplicaciones CUDA se agotan y fallan después de varios segundos. ¿Cómo solucionar esto?

Me he dado cuenta de que las aplicaciones CUDA tienden a tener un tiempo de ejecución máximo aproximado de 5-15 segundos antes de que fallen y salgan. Me doy cuenta de que es ideal no tener la aplicación CUDA durante tanto tiempo, pero suponiendo que es la opción correcta para usar CUDA y debido a […]

Pasar la función de host como un puntero de función en la función __global__ O __device__ en CUDA

Actualmente estoy desarrollando una versión de GPU de una función de CPU (por ejemplo, función Calc (int a, int b, doble * c, souble * d, CalcInvFunction GetInv)), en la que una función de host pasa como un puntero de función (por ejemplo, arriba) ejemplo GetInv es la función de host del tipo CalcInvFunction). Mi […]

¿Debería unificar dos kernels similares con una statement ‘if’, arriesgando la pérdida de rendimiento?

Tengo 2 funciones de kernel muy similares, en el sentido de que el código es casi el mismo, pero con una ligera diferencia. Actualmente tengo 2 opciones: Escribe 2 métodos diferentes (pero muy similares) Escriba un kernel único y coloque los bloques de código que difieren en una instrucción if / else ¿Cuánto afectará una […]

CUDA: ¿Cuántos hilos concurrentes en total?

Tengo una GeForce GTX 580, y quiero hacer una statement sobre la cantidad total de hilos que (idealmente) se pueden ejecutar en paralelo, para comparar con 2 o 4 CPU multi-core. deviceQuery me da la siguiente información posiblemente relevante: CUDA Capability Major/Minor version number: 2.0 (16) Multiprocessors x (32) CUDA Cores/MP: 512 CUDA Maximum number […]

Cómo medir el tiempo de kernel interno en NVIDIA CUDA?

Quiero medir el núcleo interno del tiempo de la GPU, ¿cómo medirlo en NVIDIA CUDA? p.ej __global__ void kernelSample() { some code here get start time some code here get stop time some code here }

¿Cómo se CUDA bloquea / distorsiona / subraya el mapa en núcleos CUDA?

He estado usando CUDA durante algunas semanas, pero tengo algunas dudas sobre la asignación de bloques / warps / thread. Estoy estudiando la architecture desde un punto de vista didáctico (proyecto de la universidad), por lo que no es mi preocupación alcanzar el máximo rendimiento. Antes que nada, me gustaría entender si entendí bien estos […]

enviando matriz 3D al kernel de CUDA

Tomé el código proporcionado como respuesta para ¿Cómo puedo agregar dos matrices 2d (lanzadas) usando bucles nesteds? e intenté usarlo para 3D en lugar de 2D y también cambié otras partes ligeramente, ahora se ve de la siguiente manera: __global__ void doSmth(int*** a) { for(int i=0; i<2; i++) for(int j=0; j<2; j++) for(int k=0; k<2; […]

Utilizando la GPU con c #

Estoy tratando de obtener más poder de procesamiento de mi grilla. Estoy usando todos los cpus / núcleos, ¿es posible utilizar la GPU con C #. ¿Alguien conoce alguna biblioteca u obtiene un código de muestra?