2012-07-09 11 views
6

¿Cómo compilar el kernel OpenCL en Bitstream, que luego puedo cargar directamente sin volver a compilar? Mi plataforma es una máquina AMD con APU y la GPU discreta de AMD. La máquina ejecuta el último SDK de aplicaciones de AMD que admite OpenCL 1.2.¿Cómo compilar el kernel OpenCL en Bitstream?

Respuesta

9

1) compilar el kernel a un programa desde el origen con la llamada a la API clCreateProgamWithSource. Los errores del compilador se recuperan con la llamada a la API clGetProgramBuildInfo.

2) utilice la llamada a la API clGetProgramInfo para obtener CL_PROGRAM_BINARY_SIZES. Estos son los tamaños de los binarios del programa. 2a) Asignar memoria para los binarios usando los tamaños de 2)

3) use la llamada de la API clGetProgramInfo para obtener CL_PROGRAM_BINARIES. Esto hace que el programa sea binario.

4) Un binario se puede convertir en un objeto de programa OpenCL con la llamada API clCreateProgamWithBinary.

Binarios es un dispositivo específico por lo que un binario compilado en un dispositivo específico no se ejecutará en un dispositivo diferente.

Para una instancia de proceso única, una vez que tenga el entorno (plataforma, dispositivo, contexto y cola) puede volver a utilizar el objeto Kernel OpenCL y volver a ejecutarlo con otra llamada API clEnqueueNDRange.

+0

¡Excelente y detallada respuesta! Muchas gracias! – gpunerd

Cuestiones relacionadas