NEURAL NETWORKS
Higher-level APIs
Streamlined programming and performance portability
Lower-level APIs Direct hardware control
Figure 1: Khronos standards used in accelerating vision and inferencing applications and engines
training and inferencing silicon. Khronos’ multi-company governance model gives the hardware community a strong voice on how the format evolves in a way that meets the needs of companies developing processor toolchains and frameworks, often in safety critical markets.
NNEF is not the industry’s only neural
network exchange format; ONNX is an open source project founded by Facebook and Microsoft and is a widely adopted format that is primarily focused on the interchange of networks between training frameworks. NNEF and ONNX are complementary, as ONNX tracks rapid changes in training innovations and the machine learning research community, while NNEF is targeted at embedded inferencing hardware vendors that need a format with a more considered roadmap evolution. Khronos has initiated a growing open source tools ecosystem around NNEF, including importers and exporters from key frameworks, and a model zoo to enable hardware developers to test their inferencing solutions.
OpenVX: portable accelerated vision processing OpenVX (VX stands for ‘vision acceleration’) streamlines the development of vision and inferencing software by providing a graph- level abstraction that enables a programmer to construct their required functionality through connecting a set of functions or nodes. Tis high-level of abstraction enables silicon vendors to optimise their OpenVX drivers for efficient execution on almost any processor architecture. Over time, OpenVX has added inferencing functionality, alongside the original vision nodes – neural networks are just another
www.imveurope.com | @imveurope
graph after all! Tere is growing synergy between OpenVX and NNEF through the direct import of NNEF trained networks into OpenVX graphs. OpenVX 1.3 was released in October.
Users can take selected subsets of the specification targeted at vertical market segments, such as inferencing, and implement and test them as officially conformant. OpenVX also has a deep integration with OpenCL so that a programmer can add their own custom accelerated nodes for use in an OpenVX graph – providing a combination of easy programmability and customisability.
OpenCL: heterogeneous parallel programming OpenCL is a low-level standard for cross- platform parallel programming of diverse heterogeneous processors found in PC, servers, mobile devices and embedded devices. OpenCL provides C and C++-based languages for constructing kernel programs that can be compiled and executed in parallel across any processors in a system with an OpenCL compiler, giving explicit control over which kernels are executed on which processors to the programmer. Te OpenCL run-time co-ordinates the discovery of accelerator devices, compiles kernels for selected devices, executes the kernels with sophisticated levels of synchronisation, and gathers the results. OpenCL is used pervasively throughout the industry for providing the lowest close- to-metal execution layer for compute, vision and machine learning libraries, engines and compilers. OpenCL was originally designed
for execution on high-end PC and supercomputer hardware, but in a similar
evolution to OpenVX, processors needing OpenCL are getting smaller, with less precision, as they target edge vision and inferencing. Te OpenCL working group is working to define functionality tailored to embedded processors and to enable vendors to ship selected functionality targeted at key power- and cost-sensitive use cases with full conformance.
Get involved As the ecosystem for programming and deploying accelerated vision and inferencing software continues to evolve, Khronos remains committed to playing a vital role by providing a safe space for companies to co-operate to create open standards that benefit their own business and the wider industry. If your own company would like a voice and vote in any of these standardisation activities, or you wish to implement a Khronos standard on your silicon, Khronos warmly welcomes any company that wishes to participate – we look forward to hearing from you! O
Neil Trevett is vice president of developer ecosystems at Nvidia. He is also the elected president of the Khronos Group, where he initiated the OpenGL ES standard, fostered the creation of the OpenVX standard, and chairs the OpenCL working group. He will give a presentation on this topic at Embedded World in Nuremberg, Germany, on 27 February during the embedded vision session.
ntrevett@nvidia.com;
www.khronos.org
Are you using these standards? Would you like to write about an industrial imaging project deploying inferencing or embedded vision? Email:
greg.blackman@
europascience.com
FEBRUARY/MARCH 2020 IMAGING AND MACHINE VISION EUROPE 21
Page 1 |
Page 2 |
Page 3 |
Page 4 |
Page 5 |
Page 6 |
Page 7 |
Page 8 |
Page 9 |
Page 10 |
Page 11 |
Page 12 |
Page 13 |
Page 14 |
Page 15 |
Page 16 |
Page 17 |
Page 18 |
Page 19 |
Page 20 |
Page 21 |
Page 22 |
Page 23 |
Page 24 |
Page 25 |
Page 26 |
Page 27 |
Page 28 |
Page 29 |
Page 30 |
Page 31 |
Page 32 |
Page 33 |
Page 34 |
Page 35 |
Page 36 |
Page 37 |
Page 38 |
Page 39 |
Page 40