18 Facts About OpenCL

1.

OpenCL is a framework for writing programs that execute across heterogeneous platforms consisting of central processing units (CPUs), graphics processing units (GPUs), digital signal processors (DSPs), field-programmable gate arrays (FPGAs) and other processors or hardware accelerators.

FactSnippet No. 430,545
2.

OpenCL specifies programming languages for programming these devices and application programming interfaces (APIs) to control the platform and execute programs on the compute devices.

FactSnippet No. 430,546
3.

OpenCL provides a standard interface for parallel computing using task- and data-based parallelism.

FactSnippet No. 430,547
4.

OpenCL is an open standard maintained by the non-profit technology consortium Khronos Group.

FactSnippet No. 430,548
5.

Programs in the OpenCL language are intended to be compiled at run-time, so that OpenCL-using applications are portable between implementations for various host devices.

FactSnippet No. 430,549
6.

OpenCL defines a four-level memory hierarchy for the compute device:.

FactSnippet No. 430,550
7.

OpenCL C is a C99-based language dialect adapted to fit the device model in OpenCL.

FactSnippet No. 430,551
8.

OpenCL C is extended to facilitate use of parallelism with vector types and operations, synchronization, and functions to work with work-items and work-groups.

FactSnippet No. 430,552
9.

In particular, besides scalar types such as and, which behave similarly to the corresponding types in C, OpenCL provides fixed-length vector types such as; such vector types are available in lengths two, three, four, eight and sixteen for various base types.

FactSnippet No. 430,553
10.

OpenCL was initially developed by Apple Inc, which holds trademark rights, and refined into an initial proposal in collaboration with technical teams at AMD, IBM, Qualcomm, Intel, and Nvidia.

FactSnippet No. 430,554
11.

OpenCL is based on the C programming language and has been proposed as an open standard.

FactSnippet No. 430,555
12.

NVIDIA, working closely with the Khronos OpenCL Working Group, improved Vulkan Interop with semaphores and memory sharing.

FactSnippet No. 430,556
13.

OpenCL has a forward looking roadmap independent of Vulkan, with 'OpenCL Next' under development and targeting release in 2020.

FactSnippet No. 430,557
14.

OpenCL is considering Vulkan-like loader and layers and a 'Flexible Profile' for deployment flexibility on multiple accelerator types.

FactSnippet No. 430,558
15.

The standard OpenCL header is used by the consumer application; calls to each function are then proxied by the OpenCL runtime to the appropriate driver using the ICD.

FactSnippet No. 430,559
16.

Apple, Nvidia, ROCm, RapidMind and Gallium3D implementations of OpenCL are all based on the LLVM Compiler technology and use the Clang compiler as their frontend.

FactSnippet No. 430,560
17.

Key feature of OpenCL is portability, via its abstracted memory and execution model, and the programmer is not able to directly use hardware-specific technologies such as inline Parallel Thread Execution for Nvidia GPUs unless they are willing to give up direct portability on other platforms.

FactSnippet No. 430,561
18.

Fact that OpenCL allows workloads to be shared by CPU and GPU, executing the same programs, means that programmers can exploit both by dividing work among the devices.

FactSnippet No. 430,562