2012-06-01 5 views
5

He estado buscando en Google y solo he podido encontrar a trivial example del nuevo paralelismo dinámico en Compute Capability 3.0 en uno de sus Tech Briefs vinculados from here. Soy consciente de que las tarjetas específicas de HPC probably won't be available hasta este momento el próximo año (después de que los laboratorios nat'l obtienen las suyas). Y sí, me doy cuenta de que el simple ejemplo que dieron es suficiente para ponerlo en marcha, pero cuanto más, mejor.Deterioro de los ejemplos de Paralelo dinámico CUDA 5

¿Hay otros ejemplos que he perdido?

Para ahorrarle el trabajo, aquí está todo el ejemplo dado en el breve tecnología:

__global__ ChildKernel(void* data){ 
    //Operate on data 
} 
__global__ ParentKernel(void *data){ 
    ChildKernel<<<16, 1>>>(data); 
} 
// In Host Code 
ParentKernel<<<256, 64>>(data); 

// Recursion is also supported 
__global__ RecursiveKernel(void* data){ 
    if(continueRecursion == true) 
     RecursiveKernel<<<64, 16>>>(data); 
} 

EDIT: La charla GTC New Features In the CUDA Programming Model centrado principalmente en la nueva dinámica en Paralelismo CUDA 5. El enlace tiene la video y diapositivas. Siguen siendo solo ejemplos de juguetes, pero con muchos más detalles que el brief técnico anterior.

+2

¿Cuál es exactamente tu pregunta? Quizás me estoy perdiendo algo aquí. ¿Qué es lo que quieres que respondamos? – Bart

+1

Es "¿Hay otros ejemplos que me he perdido?" no es una pregunta adecuada? Si no crees que este es el foro apropiado para mi pregunta, decláralo. – maxywb

+0

En el GTC, uno de los demos que mostraron para Kepler fue una simulación de colisiones de galaxias. Creo que estaban usando el paralelismo dinámico allí. Tal vez el código para eso esté disponible en alguna parte. –

Respuesta

0

creo capacidad de cómputo 3.0 No incluye paralelismo dinámico. Se incluirá en la arquitectura GK110 (también conocida como "Big Kepler"). No sé qué número de capacidad de cálculo tendrá asignado (3.1? Tal vez). Esas tarjetas no estarán disponibles hasta finales de este año (estoy esperando demasiado para ellas). Por lo que sé, el 3.0 corresponde a los chips GK104 como el GTX690 o el GT640M para computadoras portátiles.

+1

¡No hay capacidad de cálculo 3.1! 3.5 es una capacidad real de GK110. – geek

4

Modifiqué el título de la pregunta a "... CUDA 5 ...", ya que el Paralelismo dinámico es nuevo en CUDA 5, no en CUDA 4. No tenemos ningún ejemplo público disponible todavía, porque no lo hacemos tener hardware público disponible que pueda ejecutarlos. CUDA 5.0 admitirá el paralelismo dinámico, pero solo en Compute Capability 3.5 y posterior (GK110, por ejemplo). Estos estarán disponibles más adelante en el año.

Daremos a conocer algunos ejemplos con una versión candidata CUDA 5 más cerca del momento en que el hardware está disponible.

+0

¿Podríamos pensar que la nueva llamada al kernel dentro de la llamada principal del kernel es una llamada al kernel absolutamente nueva (como si se llamara desde el host)? A saber, tenemos algunos problemas relacionados con la memoria compartida, que evitan la divergencia, etc. Será interesante leer un poco más al respecto, especialmente qué hilo puede llamar a otro kernel, sus costos, etc. Genial. – phoad

0

Sólo quería llegar con todo lo que dado que el CUDA 5 RC fue lanzado recientemente. Busqué en los ejemplos de SDK y no pude encontrar ningún paralelismo dinámico allí. Que alguien me corrija si me equivoco. Busqué lanzamientos del kernel dentro de los núcleos al guardar para "< < <" y no encontré nada.

+0

Todavía he podido encontrar el resumen técnico. Desde mi entendimiento del calendario de lanzamientos, los laboratorios Nat'l obtendrán el primer crack en las tarjetas de Big Kepler y el resto de nosotros las obtendremos en algún momento a principios del próximo año. Aunque eso todavía no explica la falta de ejemplos. – maxywb

5

Solo para confirmar que el paralelismo dinámico solo se admite en GPU con una capacidad de cálculo de 3.5 en adelante.

I tienen una GPU 3,0 con cuda 5.0 instalado he compilado los ejemplos dinámico Paralelismo NVCC -arch = sm_30 test.cu

y recibió el siguiente error de compilación test.cu (10): error: llamar un función global ("child_launch") de un función global ("parent_launch") sólo se permite en la arquitectura compute_35 o superior.

info GPU

Dispositivo 0: "GeForce GT 640" CUDA versión del controlador/Runtime Version 5.0/5.0 CUDA Capability Major/número de versión secundaria: 3.0

Espero que esto ayude

Cuestiones relacionadas