Vulkan 1.1 and SPIR-V 1.3 Specifications Released

The Khronos Group released Vulkan 1.0 specifications in 2015 as a successor of OpenGL ES, compatible with OpenGL ES 3.1 or greater capable GPU, and taking less CPU resources thank to – for instance – better use of multi-core processors with support for multiple command buffers that can be created in parallel. A year later, we saw Vulkan efficiency in a demo, since then most vendors have implemented a Vulkan driver for their compatible hardware across multiple operating systems, including Imagination Technologies which recently released Vulkan drivers for Linux. The Khronos Group has now released Vulkan 1.1 and the associated SPIR-V 1.3 language specifications. New functionalities in Vulkan 1.1: Protected Content – Restrict access or copying from resources used for rendering and display, secure playback and display of protected multimedia content Subgroup Operations – Efficient mechanisms that enable parallel shader invocations to communicate, wide variety of parallel computation models supported […]

Khronos Group Releases Neural Network Exchange Format (NNEF) 1.0 Specification

The Khronos Group, the organization behind widely used standards for graphics, parallel computing, or vision processing such as OpenGL, Vulkan, or OpenCL, has recently published NNEF 1.0 (Neural Network Exchange Format) provisional specification for universal exchange of trained neural networks between training frameworks and inference engines. NNEF aims to reduce machine learning deployment fragmentation by enabling data scientists and engineers to easily transfer trained networks from their chosen training framework into various inference engines via a single standardized exchange format. NNEF encapsulates a complete description of the structure, operations and parameters of a trained neural network, independent of the training tools used to produce it and the inference engine used to execute it. The new format has already been tested with tools such as TensorFlow, Caffe2, Theano, Chainer, MXNet, and PyTorch. Khronos has also released open source tools to manipulate NNEF files, including a NNEF syntax parser/validator, and example exporters, which can […]

Imagination PowerVR G6230 is the First GPU To Pass Khronos OpenVX 1.1 Conformance

The Khronos Group is the non-profit consortium group behind open standards and APIs for graphics, media and parallel computation such as OpenGL for 3D graphics, OpenCL for GPGPU, OpenVG for 2D vector graphics, etc… OpenVX is one of their most recent open, royalty-free standard, and targets power optimized acceleration of computer vision applications such as face, body and gesture tracking, smart video surveillance, advanced driver assistance systems (ADAS), object and scene reconstruction, augmented reality, visual inspection, robotics and more. The first revision of the standard was released in 2014, and the latest OpenVX 1.1 revision was just released in May 2016. We’ve already seen OpenVX 1.1 support in Nvidia Jetson TX1 module & board, but Khronos has a conformance program to test  implementations, and if successful, allow companies to use the logo and name of the API. The version first GPU to pass OpenVX 1.1 conformance is Imagination Technologies PowerVR […]

ARM TechCon 2015 Schedule – IoT, Servers, 64-bit ARM, Power Usage Optimization, and More

The ARM Technology Conference (ARM TechCon) will take place on November 10 – 12, 2015, in Santa Clara Convention Center, and just like every year, there will be a free exposition for companies to showcase their latest innovation and/or products, as well as a technical conference with sessions and workshops sorted into various tracks: Automotive/Embedded Vision Embedded IoT Mobile/Connectivity Networking Infrastructure/Servers Tools & Implementation Wearables/Sensors ARM Training Day Sponsored Vendor Training Special Event General Event Software Developers Workshop You can find the complete schedule on ARM TechCon website. Although I won’t attend, I’ve created my own virtual schedule with some of the sessions I found interesting. Tuesday – November 10 8:30 – 9:20 – ARM Vision for Thermal Management and Energy Aware Scheduling on Linux by Ian Rickards (ARM), Charles Garcia-Tobin (ARM), Bobby Batacharia (ARM) This talk will cover the history and where are we going, for ARM’s Power Software (IPA, […]

Meet Vulkan, The Successor of OpenGL and OpenGL ES 3D Graphics APIs

So far embedded systems are typically using SoCs with GPU supporting OpenGL ES, a subset of the full fledge OpenGL API used in desktop computers and workstations. These royalty-free standards are defined by Khronos Group non-profit organization, and as features in the embedded space and traditional computers merge, the group has now revealed the next-generation OpenGL specs will be called Vulkan. The new API will run on GPUs supporting OpenGL ES 3.1 or greater, take less CPU resources than its predecessors, and support multiple command buffers that can be created in parallel. More work will be required at the application level, but direct GPU control by the drivers will apparently result in less memory copies improving performance, or at least off-loading the CPU. It might be transparent to developers using game engines. GPU drivers will also be less complex. Vulkan will also use the new SPIR-V language shared with OpenCL […]

OpenCL (Open Computing Language) Overview and SDKs

OpenCL (Open Computing Language) is a multi-vendor open standard for general-purpose parallel  programming of heterogeneous systems that include CPUs, GPUs and other processors. OpenCL provides a uniform programming environment for software developers to write efficient, portable code for highperformance compute servers, desktop computer systems and handheld devices. OpenCL standard is managed and defined by the Khronos Group. The latest version (OpenCL 1.1) was ratified by the Khronos Group on the 14th of June 2010 and adds significant functionality for enhanced parallel programming flexibility, functionality and performance including: Host-thread safety, enabling OpenCL commands to be enqueued from multiple host threads. Sub-buffer objects to distribute regions of a buffer across multiple OpenCL devices. User events to enable enqueued OpenCL commands to wait on external events. Event callbacks that can be used to enqueue new OpenCL commands based on event state changes in a non-blocking manner. 3-component vector data types. Global work-offset which […]