2011-10-25 8 views
13

Tengo una MacBook Pro 13 'con un Intel HD 3000 integrado y un núcleo i7.
Tengo que usar la Programación Paralela.¿Cómo puedo probar la compatibilidad de OpenCL?

Mis consejeros docentes no pudieron decirme si funcionaría con mi MacBook.

¿Existe alguna prueba que pueda ejecutar en mi computadora portátil para realizar pruebas? + Encontré esto, pero solo hay un SDK de Linux y Windows ... quizás la versión de Linux funcione también para Mac.

¿Qué debo hacer?

Respuesta

37

La respuesta de vocaro es absolutamente correcta; puede siempre utilizar el dispositivo de cómputo de CPU en Snow Leopard y Lion, incluso si su chip de gráficos particular no es compatible con OpenCL.

El siguiente programa le mostrará los dispositivos OpenCL con capacidad en un determinado Macintosh:

// clang -framework OpenCL dumpcl.c -o dumpcl && ./dumpcl 

#include <stdio.h> 
#include <stdlib.h> 
#include <OpenCL/opencl.h> 

int main(int argc, char* const argv[]) { 
    cl_uint num_devices, i; 
    clGetDeviceIDs(NULL, CL_DEVICE_TYPE_ALL, 0, NULL, &num_devices); 

    cl_device_id* devices = calloc(sizeof(cl_device_id), num_devices); 
    clGetDeviceIDs(NULL, CL_DEVICE_TYPE_ALL, num_devices, devices, NULL); 

    char buf[128]; 
    for (i = 0; i < num_devices; i++) { 
     clGetDeviceInfo(devices[i], CL_DEVICE_NAME, 128, buf, NULL); 
     fprintf(stdout, "Device %s supports ", buf); 

     clGetDeviceInfo(devices[i], CL_DEVICE_VERSION, 128, buf, NULL); 
     fprintf(stdout, "%s\n", buf); 
    } 

    free(devices); 
} 

en mi MacBook, esto da:

Device Intel(R) Core(TM) i7-2635QM CPU @ 2.00GHz supports OpenCL 1.1 
Device ATI Radeon HD 6490M supports OpenCL 1.1 

Puede solicitar otra información del dispositivo que utiliza este programa como punto de partida. La referencia de API de Khronos para clGetDeviceInfo debería ser útil.

+1

¿funciona esto también con Linux? – user1876508

+0

Rompió con OSX 10.9? Cuando ejecuto esto obtengo: dumpcl.c: 1: 10: error fatal: archivo 'stdio.h' no encontrado – deweydb

+0

No importa, parece que Las herramientas de desarrollo de xcode desaparecen después de la actualización, puede desencadenar una reinstalación ejecutando: xcode-select --install – deweydb

3

Puede usar la plataforma OpenCL integrada que Apple envía con OS X Snow Leopard and Lion. Siga esta guía:

http://developer.apple.com/library/mac/#documentation/Performance/Conceptual/OpenCL_MacProgGuide/

Tenga en cuenta que no va a funcionar en el HD 3000 GPU de Intel, sólo la CPU.

+0

Me encanta cómo Apple creó OpenCL, lo convirtió en un estándar abierto y, básicamente, dejó que su soporte disminuya. El último OpenCL que admiten en general es 1.2, que es a partir de hoy (2017) más de alrededor de 3 años. :( – Entalpi

0

He probado OpenCL en macbook air 2011, que tiene un Core i5-2467M. Y puedo decirle que la implementación OpenCL hecha por Apple, NO funciona correctamente en la CPU, solo en la GPU. El gran problema es cuando se establece un tamaño de grupo de trabajo mayor que 1.

+1

Estoy perdido: ¿funciona o no en la GPU? Leo en todas partes que Intel HD 3000 no admite OpenCL ... –

Cuestiones relacionadas