Personal tools

Difference between revisions of "Running Rust on PULP"

From iis-projects

Jump to: navigation, search
(Created page with "<!-- Running Rust on PULP (1S/B) --> Category:Digital Category:High Performance SoCs Category:Computer Architecture Category:Software Category:Rust Cate...")
 
 
(One intermediate revision by the same user not shown)
Line 11: Line 11:
 
[[Category:Sriedel]]
 
[[Category:Sriedel]]
 
[[Category:Michaero]]
 
[[Category:Michaero]]
[[Category:Available]]
+
[[Category:Completed]]
  
  
 
= Overview =
 
= Overview =
  
== Status: Available ==
+
== Status: Completed ==
  
 
* Type: Bachelor / Semester Thesis or Group Project
 
* Type: Bachelor / Semester Thesis or Group Project

Latest revision as of 13:14, 29 June 2023


Overview

Status: Completed

Introduction

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.

Project

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.

Character

  • 10% Hardware and Software familiarization
  • 40% Basic functionality implementation
  • 30% Multicore investigations
  • 20% Kernel Evaluation and Testing

Prerequisites

  • Interest in low-level programming of a manycore system
  • Familiarity with Rust is beneficial

References