martes, 27 de agosto de 2013

Definiendo las estructuras Grid/Block para un kernel

Para llamar a ejecutar un kernel es necesario proveer una configuración de ejecución, esto es, las dimensiones del grid y del bloque con que se ejecutará dicho kernel. Esta información se proporciona mediante dos estructuras claves:

  • Número de bloques en cada dimensión
  • Threads por bloque en cada dimensión
Sintaxis de llamada a un kernel:


      nombreKernel <<< B, T >>> (arg1, arg2, ... argN);

donde:
  • B es una estructura que define el número de bloques en el grid para cada dimensión (1D o 2D)
  • T es una estructura que define el número de threads en un bloque para cada dimensión (1D, 2D o 3D).

Si se desea definir una estructura de 1D, se puede usar un entero para B y T en:

       nombreKernel <<< B, T >>> (arg1, arg2, ... argN);

donde:
  • B es un entero que define un grid de dimensión 1D
  • T es un entero que define un bloque 1D de ese tamaño.

por ejemplo:

       nombreKernel <<< 1, 100 >>> (arg1, arg2, ... argN);

No hay comentarios:

Publicar un comentario