На сайте khronos, появилась новость о выходе спецификации OpenCL 1.2.
Спецификация 1.2.
Расширения.
Кратко.
А теперь подробнее.
Над спецификацией работала значительная команда с разных компаний (AMD, Intel...).
К группе (khronos) присоединяется (хотят присоединится) все больше и больше компаний (производители портативных устройств), должна появится поддержка OpenCL в устройствах ARM, а также ПЛИС.
Особенности
Добавлена возможность разделения устройства на подустройства, следовательно управлять ими.
Изменен процесс компиляции, теперь линковка и компиляция выполняются раздельно, что позволит создавать OpenCL-библиотеки.
Расширена поддержка изображений. Полностью изменен процесс создания изображений (clCreateImage, clCreateImage2D, clCreateImage3D)...
Встроенное ядро позволяет выполнять специализированные функции, которые может поддерживать устройство - видео кодеры/декодеры, сигнальные процессоры (теперь преобразование Фурье очень быстрое, сверх быстрое ;) ).
Поддержка DX9 Media Surface.
Поддержка DirectX 11.
Добавлено устройство по умолчанию (см. CL_DEVICE_TYPE_CUSTOM), синхронизация, и многое другое.
Новые типы:
cl_image_desc - в связи с изменением процесса создания изображения.
Новые константы:
CL_COMPILE_PROGRAM_FAILURE, CL_LINKER_NOT_AVAILABLE, CL_LINK_PROGRAM_FAILURE, CL_DEVICE_PARTITION_FAILED CL_KERNEL_ARG_INFO_NOT_AVAILABLE
CL_INVALID_IMAGE_DESCRIPTOR, CL_INVALID_COMPILER_OPTIONS, CL_INVALID_LINKER_OPTIONS, CL_INVALID_DEVICE_PARTITION_COUNT
CL_BLOCKING, CL_NON_BLOCKING
CL_DEVICE_TYPE_CUSTOM
CL_DEVICE_LINKER_AVAILABLE, CL_DEVICE_BUILT_IN_KERNELS, CL_DEVICE_IMAGE_MAX_BUFFER_SIZE, CL_DEVICE_IMAGE_MAX_ARRAY_SIZE, CL_DEVICE_PARENT_DEVICE, CL_DEVICE_PARTITION_MAX_SUB_DEVICES, CL_DEVICE_PARTITION_PROPERTIES, CL_DEVICE_PARTITION_AFFINITY_DOMAIN, CL_DEVICE_PARTITION_TYPE, CL_DEVICE_REFERENCE_COUNT, CL_DEVICE_PREFERRED_INTEROP_USER_SYNC, CL_DEVICE_PRINTF_BUFFER_SIZE
CL_FP_CORRECTLY_ROUNDED_DIVIDE_SQRT
CL_CONTEXT_INTEROP_USER_SYNC
CL_DEVICE_PARTITION_EQUALLY, CL_DEVICE_PARTITION_BY_COUNTS, CL_DEVICE_PARTITION_BY_COUNTS_LIST_END, CL_DEVICE_PARTITION_BY_AFFINITY_DOMAIN
CL_DEVICE_AFFINITY_DOMAIN_NUMA, CL_DEVICE_AFFINITY_DOMAIN_L4_CACHE, CL_DEVICE_AFFINITY_DOMAIN_L3_CACHE, CL_DEVICE_AFFINITY_DOMAIN_L2_CACHE, CL_DEVICE_AFFINITY_DOMAIN_L1_CACHE, CL_DEVICE_AFFINITY_DOMAIN_NEXT_PARTITIONABLE
CL_MEM_HOST_WRITE_ONLY, CL_MEM_HOST_READ_ONLY, CL_MEM_HOST_NO_ACCESS
CL_MIGRATE_MEM_OBJECT_HOST, CL_MIGRATE_MEM_OBJECT_CONTENT_UNDEFINED
CL_MEM_OBJECT_IMAGE2D_ARRAY, CL_MEM_OBJECT_IMAGE1D, CL_MEM_OBJECT_IMAGE1D_ARRAY, CL_MEM_OBJECT_IMAGE1D_BUFFER
CL_IMAGE_ARRAY_SIZE, CL_IMAGE_BUFFER, CL_IMAGE_NUM_MIP_LEVELS, CL_IMAGE_NUM_SAMPLES
CL_MAP_WRITE_INVALIDATE_REGION
CL_PROGRAM_NUM_KERNELS, CL_PROGRAM_KERNEL_NAMES
CL_PROGRAM_BINARY_TYPE
CL_PROGRAM_BINARY_TYPE_NONE, CL_PROGRAM_BINARY_TYPE_COMPILED_OBJECT, CL_PROGRAM_BINARY_TYPE_LIBRARY, CL_PROGRAM_BINARY_TYPE_EXECUTABLE
CL_KERNEL_ATTRIBUTES
CL_KERNEL_ARG_ADDRESS_QUALIFIER, CL_KERNEL_ARG_ACCESS_QUALIFIER, CL_KERNEL_ARG_TYPE_NAME, CL_KERNEL_ARG_TYPE_QUALIFIER, CL_KERNEL_ARG_NAME,
CL_KERNEL_ARG_ADDRESS_GLOBAL, CL_KERNEL_ARG_ADDRESS_LOCAL, CL_KERNEL_ARG_ADDRESS_CONSTANT, CL_KERNEL_ARG_ADDRESS_PRIVATE
CL_KERNEL_ARG_ACCESS_READ_ONLY, CL_KERNEL_ARG_ACCESS_WRITE_ONLY, CL_KERNEL_ARG_ACCESS_READ_WRITE, CL_KERNEL_ARG_ACCESS_NONE
CL_KERNEL_ARG_TYPE_NONE, CL_KERNEL_ARG_TYPE_CONST, CL_KERNEL_ARG_TYPE_RESTRICT, CL_KERNEL_ARG_TYPE_VOLATILE
CL_KERNEL_GLOBAL_WORK_SIZE
CL_COMMAND_BARRIER, CL_COMMAND_MIGRATE_MEM_OBJECTS, CL_COMMAND_FILL_BUFFER, CL_COMMAND_FILL_IMAGE
Новые Функции:
clCreateSubDevices, clRetainDevice, clReleaseDevice, clCreateImage, clCreateProgramWithBuiltInKernels, clRetainProgram, clReleaseProgram, clCompileProgram, clLinkProgram, clUnloadPlatformCompiler, clGetKernelArgInfo, clEnqueueFillBuffer, clEnqueueFillImage, clEnqueueMigrateMemObjects, clEnqueueMarkerWithWaitList, clEnqueueBarrierWithWaitList, clSetPrintfCallback, clGetExtensionFunctionAddressForPlatform
DX9_Media (Новое):
Константы:
CL_INVALID_DX9_MEDIA_ADAPTER_KHR, CL_INVALID_DX9_MEDIA_SURFACE_KHR, CL_DX9_MEDIA_SURFACE_ALREADY_ACQUIRED_KHR, CL_DX9_MEDIA_SURFACE_NOT_ACQUIRED_KHR
CL_ADAPTER_D3D9_KHR, CL_ADAPTER_D3D9EX_KHR, CL_ADAPTER_DXVA_KHR
CL_PREFERRED_DEVICES_FOR_DX9_MEDIA_ADAPTER_KHR, CL_ALL_DEVICES_FOR_DX9_MEDIA_ADAPTER_KHR
CL_CONTEXT_D3D9_DEVICE_KHR, CL_CONTEXT_D3D9EX_DEVICE_KHR, CL_CONTEXT_DXVA_DEVICE_KHR
CL_MEM_DX9_MEDIA_ADAPTER_TYPE_KHR, CL_MEM_DX9_MEDIA_SURFACE_INFO_KHR
CL_IMAGE_DX9_MEDIA_PLANE_KHR
CL_COMMAND_ACQUIRE_DX9_MEDIA_SURFACES_KHR, CL_COMMAND_RELEASE_DX9_MEDIA_SURFACES_KHR
Функции: clGetDeviceIDsForDX9MediaAdapterKHR_fn, clCreateFromDX9MediaSurfaceKHR_fn, clEnqueueAcquireDX9MediaSurfacesKHR_fn, clEnqueueReleaseDX9MediaSurfacesKHR_fn
Direct3D11 (Новое):
Константы:
CL_INVALID_D3D11_DEVICE_KHR, CL_INVALID_D3D11_RESOURCE_KHR, CL_D3D11_RESOURCE_ALREADY_ACQUIRED_KHR, CL_D3D11_RESOURCE_NOT_ACQUIRED_KHR
CL_D3D11_DEVICE_KHR, CL_D3D11_DXGI_ADAPTER_KHR
CL_PREFERRED_DEVICES_FOR_D3D11_KHR, CL_ALL_DEVICES_FOR_D3D11_KHR
CL_CONTEXT_D3D11_PREFER_SHARED_RESOURCES_KHR, CL_CONTEXT_D3D11_DEVICE_KHR
CL_MEM_D3D11_RESOURCE_KHR
CL_IMAGE_D3D11_SUBRESOURCE_KHR
CL_COMMAND_ACQUIRE_D3D11_OBJECTS_KHR, CL_COMMAND_RELEASE_D3D11_OBJECTS_KHR
Функции:
clGetDeviceIDsFromD3D11KHR_fn, clCreateFromD3D11BufferKHR_fn, clCreateFromD3D11Texture2DKHR_fn, clCreateFromD3D11Texture3DKHR_fn, clEnqueueAcquireD3D11ObjectsKHR_fn, clEnqueueReleaseD3D11ObjectsKHR_fn
Depercated:
1.0 : clSetCommandQueueProperty,
1.1 : clCreateImage2D, clCreateImage3D, clEnqueueMarker, clEnqueueWaitForEvents, clEnqueueBarrier, clUnloadCompiler, clGetExtensionFunctionAddress
Ссылка
16 ноя 2011