In its current form, OpenCL is able to solve both parallel parallel parallel parallel tasks and proofs of various OpenCL API primitives for working in a queue:
clEnqueuNDRangeKernel: Used to host a kernel with the size of an N-dimensional workgroup. Commonly used for parallel data processing.clEnqueueTask: , . , , clEnqueueNDRangeKernel 1. OpenCL 2.0clEnqueueNativeKernel C/++ ( ), , ( ), OpenCL . , .
, OpenCL - , - 1, 2 , . , , , DSP , OpenCL .
GCD, , , , ( ). GCD .
, OpenCL GCD ( , Apple), . "" .
OS X 10.7 GCD OpenCL ( ) , OpenCL, / OpenCL GCD.
/ w.r.t. :
1 - concurrency GCD OpenCL?
@Dithermaster @sharpneli, GCD ( ) , OpenCL .
OpenCL GCD . , OpenCL GCD , GCD . runtime OpenCL ( , , ).
GCD , , , GCD , .
. OpenCL , , . GCD .
, OpenCL , SIMD . , (, MIC) .
- concurrency, - OpenCL , , . , .
2 - ( , GCD ), C- GCD, OpenCL? CPU, OpenCL vs
GCD OpenCL , , OpenCL. , , , GCD . , API OpenCL C ( API ++), , .
, GCD gcl_get_kernel_block_workgroup_info, .
, , C GCD OpenCL. C- -OpenCL-. OpenCL ( ) , OpenCL. ( OpenCL) .
3. OpenCL 2.0 GCD, , , ?
, OpenCL 2.0 , , , .
, CPU, GPU. - , . .
, OpenCL 2.0, , parallelism . , GCD.