¿Cómo puedo estar 100% seguro de que mi kernel opencl se está ejecutando realmente en la GPU y no en la CPU? No puedo entender esto porque el kernel openCL también se puede ejecutar en la CPU. ¿Alguna sugerencia aquí?¿Cómo puedo saber si mi kernel OpenCL se está ejecutando en una GPU?
Respuesta
Debe elegir entre plataformas y dispositivos disponibles en su computadora cuando crea el contexto OpenCL. Puede obtener información sobre plataformas y dispositivos con clGetPlatformInfo y clGetDeviceInfo. Puede encontrar códigos de muestras en NVIDIA y AMD SDK para listar plataformas y dispositivos.
Para dispositivos AMD (gDEBugger, Code XL), NVIDIA (Visual Profiler) e Intel (GPA Intel), puede usar herramientas de creación de perfiles.
Puede simplemente usar TechPowerUp GPU-Z para ver si hay algunas cargas de trabajo en la GPU. otra solución: puede especificar explícitamente si está usando la GPU en el tipo de dispositivo CL_Device_Type_GPU.
Uso MenuMeters en mi Macbook Pro & Mac Pro: si la CPU está siendo utilizada, es obvio. (No sé si las herramientas de perfilado trabajarían para mí cuando se utiliza OpenCL bajo XCode ....)
Al crear su contexto, utilizar clCreateContextFromType donde se puede pasar el CL_DEVICE_TYPE_GPU bandera , que especifica que quiere GPU solamente. algo como esto garantías el uso de una GPU (se puede estar 100% seguro):
cl_uint num_platforms = 0;
clGetPlatformIDs(0, NULL, &num_platforms);
cl_platform_id* platform = malloc(sizeof(cl_platform_id) * num_platforms);
cl_context_properties cprops[3] = { CL_CONTEXT_PLATFORM, (cl_context_properties)platform[0], 0 };
ctx = clCreateContextFromType(cprops, CL_DEVICE_TYPE_GPU, NULL, NULL, &err);
Si ha ya su contexto y dispositivos establecido, se puede consultar el tipo de un dispositivo de este modo:
cl_device_type dev_type;
clGetDeviceInfo(my_device, CL_DEVICE_TYPE, sizeof(dev_type), &dev_type, NULL);
if (dev_type == CL_DEVICE_TYPE_GPU) {
printf("I'm 100%% sure this device is a GPU");
}
Todo lo que conecte a una cola de comandos creada en este dispositivo se ejecutará en la GPU.
- 1. ¿Cómo puede saber mi programa si Delphi se está ejecutando?
- 2. ¿Cómo puedo saber si mi aplicación se está ejecutando en una sesión de RDP
- 3. ¿Cómo puedo saber si un proceso se está ejecutando?
- 4. ¿Cómo puedo saber si mi script de Perl se está ejecutando en Windows?
- 5. ¿Cómo puedo saber si mi proceso se está ejecutando como administrador?
- 6. ¿Cómo saber si se está ejecutando un temporizador?
- 7. Cómo saber si el servidor de emacs se está ejecutando
- 8. ¿Cómo compilar el kernel OpenCL en Bitstream?
- 9. ¿Cómo saber si la actualización MATERIALIZED VIEW se está ejecutando?
- 10. ¿Cómo puedo saber si mi aplicación para iPhone se está ejecutando cuando se recibe una notificación push?
- 11. ¿Cómo puedo saber en qué dispositivos/versiones de sistema operativo se está ejecutando mi aplicación iOS?
- 12. ¿Cómo puedo saber si mi aplicación se está ejecutando como una aplicación de 32 bits o de 64 bits?
- 13. ¿Cómo puedo saber en qué directorio se está ejecutando mi aplicación de consola con C#?
- 14. ¿Cómo saber si mi componente Java está en un Applet?
- 15. ¿Puedo saber, en node.js, si mi script se está ejecutando directamente o está siendo cargado por otro script?
- 16. ¿Cómo puedo saber si un proceso se está ejecutando en C?
- 17. ¿Cómo puedo saber si un script Perl se está ejecutando en contexto CGI?
- 18. ¿Cómo puedo saber si Autovacuum se está ejecutando en Windows Server 2003 para mi base de datos PGSQL?
- 19. Dispositivo de CPU OpenCL vs dispositivo GPU
- 20. ¿Cómo puedo saber bajo qué versión de IIS se está ejecutando mi aplicación Asp.Net?
- 21. Comprobando si mi aplicación de Windows se está ejecutando
- 22. ¿Cómo puedo detectar si mi proceso se está ejecutando UAC elevado o no?
- 23. ¿Cómo puedo saber si el código de Rails se está ejecutando mediante rake o script/generate?
- 24. Dentro de un archivo por lotes, ¿cómo puedo saber si se está ejecutando un proceso?
- 25. ¿Cómo puedo detectar si mi código se está ejecutando en la consola en Rails 3?
- 26. ¿Cómo puedo probar si R se está ejecutando como Rscript?
- 27. Llamar al kernel OpenCL desde otro kernel OpenCL
- 28. ¿Cómo puedo saber si un proceso ya se está ejecutando usando C#?
- 29. ¿Cómo puedo saber si se está mostrando ModalViewController?
- 30. Lista de CPU/GPU compatible con OpenCL