OpenCL mapping on CPUs: compilation techniques to handle the divergence for kernel vectorization
Michele Scandale
Deib PhD Student
DEIB - Seminar Room
September 1st, 2015
5.30 pm
Contact:
Michele Scandale
Research Line:
System architectures
Deib PhD Student
DEIB - Seminar Room
September 1st, 2015
5.30 pm
Contact:
Michele Scandale
Research Line:
System architectures
Sommario
OpenCL is the standard the facto framework to write programs for heterogeneous parallel platforms. The mapping of OpenCL execution model on modern multicores is more challenging than GPGPU architectures. In particular is highly desirable to exploit SIMD capabilities of modern architectures, thus logically mapping work-items on SIMD lanes. To this end, OpenCL compilers try to vectorize OpenCL kernels across work-items in a work-group.
The presence of divergence, i.e. the fact that work-items can have different execution paths, limits the effectiveness of kernel vectorization. In this talk compilation techniques to cope with the divergence problem are presented, such as a data-flow analysis to compute both data and control divergences, and optimizations to minimize the control flow flattening through predication.
The presence of divergence, i.e. the fact that work-items can have different execution paths, limits the effectiveness of kernel vectorization. In this talk compilation techniques to cope with the divergence problem are presented, such as a data-flow analysis to compute both data and control divergences, and optimizations to minimize the control flow flattening through predication.