Running Rust on PULP
- Type: Bachelor / Semester Thesis or Group Project
- Professor: Prof. Dr. L. Benini
Rust is a new, system-level general-purpose programming language fully compatible with C, incorporating features of more modern languages. This allows for easier design of more advanced software. Instead of directly handling memory, Rust operates on a principle of ownership, where data is owned and borrowed, with the compiler taking care of memory management. This allows for increased safety, as a user is no longer responsible for managing memory by hand.
A small but growing community has started using Rust for embedded devices, leveraging the modern language for the smallest devices. As most of the systems developed at IIS operate with very low-level access, this is the ideal starting point for integrating Rust to embedded RISC-V devices.
An initial simple software routine has been implemented with Rust for Mempool, however it can currently only do simple calculations and return a number. This project aims to implement essential functions, such as printf, and computation kernels for MemPool in Rust and evaluate their performance. A Rust-based simulation environment (banshee) allows for easy testing outside of hardware simulation. Furthermore, as MemPool offers many cores, an important focus will also be to leverage these cores with dedicated and easy-to-use Rust calls.
- 10% Hardware and Software familiarization
- 40% Basic functionality implementation
- 30% Multicore investigations
- 20% Kernel Evaluation and Testing
- Interest in low-level programming of a manycore system
- Familiarity with Rust is beneficial