Virtual Open Systems
September newsletter
was published today, with two articles about my work:
Mixed-critical virtualization: VOSySmcs, mixed-criticality graphic support
VOSySmcs consists of a full fledged software stack to support a
modern generation of car virtual cockpit where the In-Vehicle
Infotainment (IVI) system and the Instrument Digital Cluster are
consolidated and interact on a single platform. Indeed, traditional
gauges and lamps are replaced by digital screens offering
opportunities for new functions and interactivity. Vehicle
information, entertainment, navigation, camera/video and device
connectivity are being combined into displays. However, this
different information does not have the same level of criticality
and the consolidation of mixed-critical applications represent a
real challenge.
In this context, VOSySmcs includes a mixed-criticality graphic
support that enables the integration of safety-critical and
non-critical information on a single display, while providing
rendering guarantees for the safety-critical output. In addition,
VOSySmcs supports GPU virtualization in order to provide hardware
acceleration capacity for the Virtual Machines running in the
non-critical partition such as Linux, Android, etc.
Computation acceleration: OpenCL inside VMs and containers
As part of the ExaNoDe H2020 research project, Virtual Open Systems
develops a software API remoting solution for OpenCL. OpenCL is an
open standard maintained by the Khronos Group, used for offloading
computation tasks into accelerators, such as GPUs and
FPGAs.
Software API remoting is a para-virtualization technique that allows
accessing a host native library from the inside of a virtual
machines. It operates by intercepting API function calls from the
application in the guest system, and forwarding them to a helper
process on the host through the use of shared memory pages. API
remoting for containers can be achieved similarly, by replacing the
host-to-VM communication layer (based on Virtio) with Linux
inter-process communication mechanisms.
To comply with the high performance requirements of OpenCL usage, it
is important to reduce as much as possible the overhead of the API
remoting layer. Hence, the work has focused on passing the data
buffers (that may account for several gigabytes of memory) with zero
copies, that to guest physical pages lookup and remapping.