2011-02-27 24 views
7

Estoy tratando de optimizar mis kernels OpenCL y todo lo que tengo ahora es NVidia Visual Profiler, que parece bastante restringido. Me gustaría ver el perfil línea por línea de los núcleos para comprender mejor los problemas con la fusión, etc. ¿Hay alguna forma de obtener datos de creación de perfiles más completos que el proporcionado por Visual Profiler?Perfilando kernels OpenCL

Respuesta

1

No, no existe tal herramienta, pero puede crear un perfil de los cambios en su código. Intenta medir la velocidad de tu código, cambia algo y luego mídelo una vez más. clEnqueueNDRangeKernel tiene un argumento de Evento que se puede usar con clGetEventProfilingInfo después, el temporizador es muy nítido, la precisión se mide en orden de microsegundos. Esta es la única forma de medir el rendimiento de un código separado ...

1

No lo he probado, pero acabo de encontrar este programa http://www.gremedy.com/gDEBuggerCL.php. La descripción es: "Este nuevo producto aporta las capacidades avanzadas de depuración, análisis de perfil y memoria de gDEBugger al mundo del desarrollador OpenCL ..."

4

creo que AMD CodeXL es lo que busca. Es un conjunto gratuito de herramientas que contiene un depurador OpenCL y un generador de perfiles GPU. El depurador OpenCL le permite realizar la depuración línea por línea de sus kernels y código de host OpenCL, ver todas las variables en diferentes grupos de trabajo, ver eventos especiales y errores que ocurren, etc. El generador de perfiles GPU tiene una buena característica que genera una línea de tiempo que muestra cuánto tiempo su programa pasa en tareas como la transferencia de datos y la ejecución del kernel.

para obtener más información y enlaces de descarga, echa un vistazo a http://developer.amd.com/tools-and-sdks/heterogeneous-computing/codexl/

+0

OpenXL - GPUOPEN sólo funciona para los procesadores de AMD, la cual es una limitación importante para muchos usuarios – TripleS

+0

pienso que usted está mezclando dos términos diferentes: CodeXL es un conjunto de herramientas por AMD, y es uno de los productos de fuente abierta como parte de la iniciativa GPUOpen de AMD. Creo que el propósito de esta iniciativa fue permitir que los desarrolladores y otros actores de la industria amplíen estas herramientas, de modo que admitan plataformas adicionales. – AmitB