
This project aims to ease the transition and implementation of Posits, an alternative numerical representation, for RISC-V systems. By creating a robust hardware abstraction layer (HAL), developers need not know if the target RISC-V platform has a hardware Posits implementation or requires a software implementation. This new POSIX-compliant C++ library (with ports planned eventually) will help make available the option to transition between IEEE Float / Doubles to Posits and should make the machine-specific selection and configuration seamless. The lack of such a HAL is a roadblock in Posit adoption and Posits represent a serious opportunity for free and open source silicon (FOSSi) systems. We will also update the existing posit implementations to the current standard and add consistent unit testing. Initial focus will be directed toward HPC support, where numerical computation efficiency may be best observed. Additionally, we will be conducting benchmarking studies to evaluate the performance of the HAL, identifying bottlenecks, and iterating on the design based on empirical data. The testing framework will also be part of the mentee’s deliverables.
Repository URL: https://github.com/Posit-Foundation
Learning Objectives:
A combination of daily standup meetings, weekly deliverables and discussions, and journal reading meetings across the project’s three phases will ensure a positive learning experience for the entire team.
The mentee will be working on extending the version 1 prototype of the HAL to version 2. As such the mentee will learn about software engineering concepts related to joining an existing project and extending it.
Week 1-2, Project Onboarding and Research:
The first two weeks will focus on onboarding the undergraduate mentee into the project. The mentee will engage with both professors to understand the project scope, objectives, and existing literature on RISC-V, and the necessary concepts for the project including Posits, Hardware Abstraction Layers, Linux, and git. Additionally, initial research will be conducted on current related solutions and techniques in the context of RISC-V architecture. This foundational knowledge will set the stage for the mentee to familiarize themselves with the relevant tools, open-source infrastructure, and community practices that will be essential as the project progresses.
Week 3-6, Design and Prototyping:
During weeks three to six, the mentee will begin the design phase of the next module of the HAL. This will extend the work done in Spring 2025. The mentee will be collaborating closely with the professors to outline key functionalities and requirements. This will involve creating design documentation, and working on the prototype of the HAL interface. Throughout this period, the mentee will receive feedback and guidance from the professors, allowing them to refine their technical skills and gain insights into effective software engineering practices. Regular code reviews and feedback sessions with the professors will ensure the quality and efficiency of the work. During this time, the mentee will also connect with stakeholders in the open-source community, seeking input and collaboration to enhance the library’s functionality and usability. By the end of week six, a version 2 prototype should be ready for initial testing.
Week 7-12, Implementation and Testing:
The final six weeks will focus on the implementation of the HAL based on the design and prototype developed earlier. The mentee will work on coding, integrating testing frameworks, and ensuring that the HAL functions correctly. Regular checkpoints with the professors will help track progress and address any technical challenges. Data collection for comparison metrics will be collected and compiled for presentation. This experience will not only solidify the mentee’s technical skills but will also foster valuable connections within the hardware development community. By week twelve, the mentee will complete the version 2 prototype ready for testing on HPCs and document an upgrade path from version 1.
Coding Challenge:
https://docs.google.com/document/d/1ZmDM9SV91GCDvo5TpotILZ4jenxOPeV_q4rGnqFJgls/edit?usp=sharing
To apply for this job please visit mentorship.lfx.linuxfoundation.org.