Update RedMulE to recent, memory-mapped (SystemRDL) based version#46
Update RedMulE to recent, memory-mapped (SystemRDL) based version#46FrancescoConti wants to merge 19 commits intomainfrom
Conversation
|
Integration test with new RedMulE works with a simple 24x8x8 job (same size as the accelerator itself). Subtiling is either broken, incorrectly used or something in between: to be checked. |
|
@belanoa the branch of RedMulE I targeted is based off |
There was a problem hiding this comment.
Pull request overview
This pull request integrates the latest version of RedMulE (based on HCI v2.1) into MAGIA, bringing significant infrastructure updates to support memory-mapped SystemRDL-based configuration. The changes span hardware integration, software APIs, and build system improvements.
Changes:
- Updates RedMulE to a memory-mapped (SystemRDL) version with HCI v2.1 infrastructure
- Adds new wrapper module (magia_redmule_wrap) to bridge between struct-based and interface-based ports
- Consolidates RedMulE configuration API by merging arithmetic configuration into the main config registers
- Updates test matrix sizes to 24×8×8 for initial validation (96×64×64 testing still pending)
- Improves Python3 compatibility for UNIBO machines and updates dependency versions
Reviewed changes
Copilot reviewed 18 out of 18 changed files in this pull request and generated 10 comments.
Show a summary per file
| File | Description |
|---|---|
| hw/tile/magia_tile_pkg.sv | Updates HCI typedef macros to v2.1 with ECC/error handling parameters |
| hw/tile/magia_tile.sv | Integrates new RedMulE wrapper and updates HCI interface declarations |
| hw/tile/magia_redmule_wrap.sv | New wrapper module converting between struct/interface-based ports |
| hw/tile/l1_spm.sv | Updates memory interface to use HCI v2.1 signals |
| hw/tile/converters/obi2hci.sv | Updates OBI-to-HCI converter for new HCI fields |
| hw/tile/converters/hci2obi.sv | Updates HCI-to-OBI converter with proper signal mapping |
| sw/utils/redmule_mm_utils.h | Restructures API with new register layout and configuration functions |
| sw/tests/mm_tests/redmule_test_mm.c | Updates test to use new API and smaller matrix sizes |
| sw/utils/x_input.h | Reduces test input data to match smaller test matrices |
| sw/utils/w_input.h | Reduces weight input data to match smaller test matrices |
| target/sim/src/tile/magia_tile_vip.sv | Initializes specific memory locations for simulation |
| target/sim/src/mesh/magia_vip.sv | Adds per-tile memory initialization in multi-tile setup |
| Makefile | Improves Python3 support by making BASE_PYTHON configurable |
| Bender.yml | Updates RedMulE, HCI, and HWPE-ctrl dependency versions |
| Bender.local | Removes HCI override now that official version is used |
| bender_profile.mk | Adds conditional standalone_tile target support |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Since the new RedMulE defaults to a lower number of pipeline stages (P=1 instead of P=3), the parametrization in this commit is arbitrarily set to H=16 x W=24. This is not necessarily the best choice (a square size seems more attractive), but it should be iso-throughput with the previous one (to be checked). Tests are reverted to previous status using 96x64x64 matrices.
|
Failing CI jobs are |
This pull request aims at integrating the latest version of RedMulE (based on HCI v2.1) in MAGIA.
The PR also includes, by necessity, an update of the HCI infrastructure in MAGIA and a few quality-of-life improvements (e.g.,
python3support on UNIBO machines).To-do before merging: