Intel® Threading Building Block (Intel® TBB) flow graph as a software infrastructure layer for OpenCL™-based computations
Alexei Katranov, Alexey Kukanov · 2016
Modern computing systems are becoming heterogeneous with a variety of programmable units: CPU, GPU, FPGA, domain-specific accelerators, etc. OpenCL™ API is a cross-platform programming model for a wide range of computing devices, but using the language in a complex heterogenous system remains a challenge. Intel® Threading Building Blocks (Intel® TBB) is a widely used C++ library for shared-memory parallel programming that provides the flow graph functionality to express unstructured parallelism and asynchronous computations. Our presentation shows how OpenCL and Intel TBB flow graph can be used in conjunction to simplify programming for complex heterogeneous systems.