Skip to content

Introduction

This work is partially supported by the European Union/Next
Generation EU, through Programa de Recuperação e Resiliência (PRR) [Project Route 25 with Nr. C645463824-
00000063].

RISC-V is a highly configurable and scalable open-source instruction set architecture (ISA) that has gained popularity in various computing applications, including embedded systems. The microservices architecture is becoming increasingly popular in embedded systems, which were traditionally built as monolithic applications, causing challenges in maintenance, updating, and scaling. By implementing microservices architecture, developers can create modular, flexible, and scalable embedded systems, leading to improved resource allocation, better decoupling, and enhanced resource utilization. However, implementing microservices architecture in RISC-V-based embedded systems presents challenges, including porting existing container runtimes and orchestrators, ensuring the microservices are lightweight enough to run efficiently on resource-limited systems, managing communication between the microservices, and addressing security concerns. Despite these challenges, integrating microservices architecture into RISC-V-based embedded systems can offer an efficient and flexible solution for building complex embedded systems in the future, including those that incorporate AI accelerators.

Conclusion

The RISC-V ecosystem is rapidly evolving, and its open source and customizable architecture make it well-positioned to become a major player in the microservices market. Although not mature enough at present to support the deployment of next generation microservices, RISC-V processors are already being used in various applications, such as microcontrollers, embedded systems, and edge computing devices. As the RISC-V ecosystem continues to develop, it is likely that the platform will become more suitable for deploying microservices in the next coming months.

The first challenge we faced was porting large software packages, which had a high risk of failure. To achieve this, we tried several approaches for compiling K3s and the PyCoral runtime. We were unsure if cross-compiling the libedgetpu dependency of PyCoral runtime would be better than native compilation, due to another dependency – the Bazel build system. We have identified that cross compiling some packages can be used to bypass certain unsupported features of the build system. Furthermore, we have found that native Bazel is not building packages effectively and requires numerous corrections.

This proof-of-concept was designed to answer the question about the maturity of the RISC-V ecosystem and provide an application baseline that can leverage modern service-oriented architectures and AI inference requirement in the automotive domain. The proof-of-concept demonstrated the capability of porting the legacy inference library libedgetpu to the RISC-V ecosystem and running K3s while interfacing with an old Google Coral TPU via USB. The proof-of concept was tested with automotive benchmarks and was successful in recognizing birds via accelerated inference. Although this proof-of-concept has been successful, it has not yet been applied in a real-world automotive context.

Access complete Publication

For an in-depth exploration of our findings and methodologies, download here

shape
Privacy Overview

This website uses cookies so that we can provide you with the best user experience possible. Cookie information is stored in your browser and performs functions such as recognising you when you return to our website and helping our team to understand which sections of the website you find most interesting and useful.