with para mac imac compatible 1gb ios opencl

para - Está disponible OpenCL en iOS



opengl 3.3 mac (2)

Encontré este hilo en el foro ¿Son el IPad o el iPhone capaces de OpenCL? pero es bastante viejo Además, puedo recopilar que OpenCL está disponible para las bibliotecas del sistema de iOS pero no para el público. ¿Hay más información al respecto o alguna actualización?



Incluso con el uso de OpenCL como marco privado, en iOS no le brindará los beneficios de GPU (u otros como DSP / FPGA si existen). Solo te da múltiples núcleos disponibles en el procesador de brazo. Ejecuté el siguiente código para verificar los dispositivos OpenCL accesibles en iOS y OS X.

Salida en iOS

ARM CPU Device

Salida en OS X

Radeon HD 4670
Intel (R) Core (TM) i3 CPU 540 @ 3.07GHz

Fuente con verificaciones de error excluidas. Usando los encabezados de OpenCL disponibles ( 1 ) y enlazando OpenCL desde (/Aplicaciones/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.1.sdk/System/Library/PrivateFrameworks)

#include "OpenCL/cl.h" #include <iostream> cl_context_properties prop[] = { CL_CONTEXT_PLATFORM, 0, 0 }; //get num of platforms cl_uint num; cl_int err = clGetPlatformIDs(0, 0, &num); //get each platform cl_platform_id *platforms = new cl_platform_id[num]; err = clGetPlatformIDs(num, platforms, &num); //create context for platform prop[1] = (cl_context_properties) platforms[0]; cl_context context = clCreateContextFromType(prop, CL_DEVICE_TYPE_ALL, NULL, NULL, &err); //get num devices size_t numDevices=0; clGetContextInfo(context, CL_CONTEXT_DEVICES, 0, NULL, &numDevices); cl_device_id *devices = new cl_device_id[ numDevices ]; //get every device clGetContextInfo(context, CL_CONTEXT_DEVICES, numDevices, devices, 0); //get info of every device for( int idx=0; idx < numDevices; ++idx) { size_t bufSize=0; clGetDeviceInfo(devices[idx], CL_DEVICE_NAME, 0, NULL, &bufSize); if( bufSize > 0 ) { char* devName = new char[ bufSize ]; clGetDeviceInfo(devices[idx], CL_DEVICE_NAME, bufSize, devName, 0); std::cout << "Device Name: " << devName << ''/n''; } }

Sugerencia: A partir de ahora, necesitaremos usar OpenGL ( 2 ) o Accelerate framework ( 3 ). Aún no estoy seguro, por qué motivo / propósito se copia OpenCL como marco privado en iPhone.