2011-10-25 1 views
13

Ho un MacBook Pro 13 'con un Intel HD 3000 integrato e un core i7.
Devo usare la programmazione parallela.Come posso verificare la compatibilità con OpenCL?

I miei consulenti non sono stati in grado di dirmi se avrebbe funzionato con il mio MacBook.

Esiste un test per il test del computer portatile? + Ho trovato questo, ma c'è solo un SDK Linux e Windows ... forse la versione Linux funziona anche per Mac.

Cosa devo fare?

risposta

37

la risposta di vocaro è assolutamente corretta; è possibile sempre utilizzare il dispositivo di elaborazione CPU su Snow Leopard e Lion, anche se il proprio chip grafico non supporta OpenCL.

Il seguente programma vi mostrerà i dispositivi OpenCL-capable su un dato 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); 
} 

sul mio MacBook, questo dà:

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

si può chiedere altre informazioni sul dispositivo di utilizzare questo programma come punto di partenza. Il riferimento API di Khronos per clGetDeviceInfo dovrebbe essere utile.

+1

funziona anche con linux? – user1876508

+0

Questa interruzione con OSX 10.9? Quando eseguo questo ottengo: dumpcl.c: 1: 10: errore fatale: file 'stdio.h' non trovato – deweydb

+0

Nevermind, sembra che gli strumenti di sviluppo xcode vanno via dopo l'aggiornamento, è possibile attivare una reinstallazione eseguendo: xcode-select --install – deweydb

3

È possibile utilizzare la piattaforma OpenCL incorporata fornita da Apple con OS X Snow Leopard e Lion. Segui questa guida:

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

Nota che non funziona su Intel HD 3000 GPU, solo la CPU.

+0

Mi piace come Apple ha creato OpenCL, ne ha fatto uno standard aperto, quindi in pratica lascia che il loro supporto diminuisca. L'ultimo OpenCL che supportano nel complesso è 1.2, che è oggi (2017) di circa 3 anni. :( – Entalpi

0

Ho testato OpenCL su macbook air 2011, che ha un Core i5-2467M. E posso dirti che l'implementazione OpenCL fatta da apple, NON funziona correttamente sulla CPU, solo su GPU. Il grosso problema è quando si imposta una dimensione del gruppo di lavoro maggiore di 1.

+1

Sono perso: funziona o non funziona su GPU? Sto leggendo ovunque che Intel HD 3000 non supporta openCL ... –