Conferences and supporting programme
Vision Applications Continuum from High-Performance and Desktop Toward Embedded Computing…
Vision Applications Continuum from High-Performance and Desktop Toward Embedded Computing Made Easy by an Efficient OpenCL Runtime Environment: As the embedded world seems the perfect place for exploring very specific hardware acceleration technologies, one of the highest challenges that comes along is the complexity of programming these architectures. Defining a programming model for each type of accelerator device is very resource consuming, considering all the time investments that are required in tools development, software porting and deployment, and not to mention specific optimizations for exploiting all the accelerator features. Even though some may argue that it is not very suited for embedded environments, OpenCL might be the perfect solution for providing a unified programming model for these acceleration technologies. By definition, OpenCL provides a standardized and portable approach for using any multi-core capabilities. The portability characteristic is the one that should allow algorithm development on high-level targets (Desktop or even HPC environments) followed by direct deployment on embedded systems. In order to achieve this level of portability, the embedded systems should be powered by an Efficient OpenCL Runtime Environment (i.e. OpenCL system implementation) which would support all the embedded targets (including acceleration devices) and would make the continuum between targets as seamless as possible. This paper is presenting how such an OpenCL Runtime Environment needs to be designed and implemented and how it would help in achieving the purpose of application portability (with main focus on vision applications) covering all of the computing architectures spectrum. Using OpenCL, the vision algorithm development should focus only on algorithm details and should not consider any device architecture characteristics for the algorithm functionality, while the performance should be at decent levels for the out-of-the-box / portable application. All the architecture details should be handled by the OpenCL runtime environment support for that target in the limits required by the standard, as efficiently as possible. Exploration of the very specific device capabilities would be possible by using custom extensions made available by the Runtime Environment (also detailed in the paper). The continuum and portability in both directions could also be maintained by the Runtime Environment which could assure that the custom extensions are available / emulated on all supported targets. The story of using this Efficient OpenCL Runtime Environment is also backed up by various experimentations with use cases of real life out-of-the-box OpenCL applications (developed using Desktop Environments) implementing Vision algorithms, which were easily deployed on different types of embedded multi-core systems (including the usage of some specific, custom extensions).
--- Date: 27.02.2018 Time: 2:30 PM - 3:00 PM Location: Conference Counter NCC Ost