Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
817b61e
Initilized variable in Pearl script to avoid non-initialization message
May 25, 2026
a1c8ec2
Changed FS mode to stalling
May 25, 2026
0def979
Added AllReduce Workload that uses FractalSync
May 25, 2026
05d3adc
Added Bitonic Sort test using FractalSync
May 26, 2026
a2fd613
Changed compiler optimization flag
May 26, 2026
227ed17
Added MeshGEMM test using FractalSync
May 26, 2026
7c480e8
Added MeshGEMV algorithm using FractalSync
May 26, 2026
b5b69c0
Switched to CV323E40X core to support AMOs and switched ISA accordingly
May 29, 2026
ce6117b
Added back support for AMO utils expanding them
May 29, 2026
11dc854
Added AMO test
May 29, 2026
58a6475
Updated Hello, World! test to remove Float operations, which are no l…
May 29, 2026
d264a33
Updated target MAGIA V1/V2 flows and used ISAs
Jun 3, 2026
721755f
Updated SDK V1 Address Map to align with MAGIA's main Spatz branch
Jun 3, 2026
7e6676c
Updated test list for the V1
Jun 3, 2026
37459fa
Added utils for NoC/AMO-based global, row and column synchronization …
Jun 3, 2026
145da45
Alligned NoC/AMO-based synchronization utils with AMO primities
Jun 3, 2026
ead0049
Added NoC/AMO-based synchronization AllReduce test
Jun 3, 2026
beb76e7
Updated AMO primitives removing non-clubbered registers bug
Jun 4, 2026
747d060
Added AMO/NoC-based Bitonic Sort test
Jun 4, 2026
257daab
Changed FS mode to stalling
May 25, 2026
25b8c4f
Added AllReduce Workload that uses FractalSync
May 25, 2026
8a675bd
Added Bitonic Sort test using FractalSync
May 26, 2026
8338920
Changed compiler optimization flag
May 26, 2026
ad94d5a
Added MeshGEMM test using FractalSync
May 26, 2026
5bc8cd1
Added MeshGEMV algorithm using FractalSync
May 26, 2026
f3df5f7
Switched to CV323E40X core to support AMOs and switched ISA accordingly
May 29, 2026
f12658f
Added back support for AMO utils expanding them
May 29, 2026
f7744da
Added AMO test
May 29, 2026
e02f98f
Updated Hello, World! test to remove Float operations, which are no l…
May 29, 2026
b66f690
Merge branch 'vi/workloads' of github.com:pulp-platform/magia-sdk int…
Dequino Jun 5, 2026
9856778
Added NoC/AMO-based synchronization MeshGEMM test
Jun 5, 2026
a4edf29
Added NoC/AMO-based synchronization MeshGEMV test
Jun 5, 2026
845c15c
Solved merge conflicts
Jun 5, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ project(magia-sdk LANGUAGES C ASM)

set(ABI ilp32)
if (TARGET_PLATFORM STREQUAL "magia_v1")
set(ISA rv32imafc)
set(ISA rv32imac)
elseif (TARGET_PLATFORM STREQUAL "magia_v2")
set(ISA rv32imcxgap9)
endif ()
Expand Down
8 changes: 5 additions & 3 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ fsync_mode ?= stall
mesh_dv ?= 1
fast_sim ?= 0
eval ?= 0
stalling ?= 0
stalling ?= 1
fsync_mm ?= 1
idma_mm ?= 1
redmule_mm ?= 1
Expand All @@ -46,9 +46,11 @@ profile_cmi ?= 0
profile_cmo ?= 0
profile_snc ?= 0

target_platform ?= magia_v2
# target_platform ?= magia_v2
target_platform ?= magia_v1
compiler ?= GCC_PULP
ISA ?= rv32imcxgap9
# ISA ?= rv32imcxgap9
ISA ?= rv32imac
gui ?= 0
tiles ?= 2
spatz ?= 1
Expand Down
8 changes: 5 additions & 3 deletions targets/magia_v1/include/addr_map/tile_addr_map.h
Original file line number Diff line number Diff line change
Expand Up @@ -39,12 +39,14 @@
#define FSYNC_END (0x000006FF)
#define EU_BASE (0x00000700)
#define EU_END (0x000016FF)
#define RESERVED_START (0x00001700)
// #define SPATZ_CTRL_BASE (0x00001700)
// #define SPATZ_CTRL_END (0x000017FF)
#define RESERVED_START (0x00001800)
#define RESERVED_END (0x0000FFFF)
#define STACK_START (0x00010000)
#define STACK_END (0x0001FFFF)
#define L1_BASE (0x00020000)
#define L1_SIZE (0x000DFFFF)
#define L1_SIZE (0x000E0000)
#define L1_TILE_OFFSET (0x00100000)
#define L2_BASE (0xCC000000)
#define TEST_END_ADDR (0xCCFF0000)
Expand All @@ -62,7 +64,7 @@

#define STR_OFFSET (0x00000000)
#define STR_BASE (RESERVED_START + STR_OFFSET)
#define SYNC_OFFSET (0x0000F000)
#define SYNC_OFFSET (0x0000D800)
#define SYNC_BASE (RESERVED_START + SYNC_OFFSET)
#define SYNC_EN (SYNC_BASE + 0x4)

Expand Down
2 changes: 2 additions & 0 deletions targets/magia_v1/include/tile.h
Original file line number Diff line number Diff line change
Expand Up @@ -22,5 +22,7 @@
#include "utils/performance_utils.h"
#include "utils/amo_utils.h"
#include "utils/eu_isa_utils.h"
#include "utils/nsync_utils.h"


#endif //_TILE_INCLUDE_GUARD_
16 changes: 2 additions & 14 deletions targets/magia_v1/include/utils/amo_utils.h
Original file line number Diff line number Diff line change
Expand Up @@ -32,20 +32,8 @@ typedef struct node {
/**
* Atomically increase the value stored in addr by an immediate value
*/
int amo_add_immediate(uint32_t addr, uint32_t immediate){
asm volatile("addi t0, %0, 0" ::"r"(addr));
asm volatile("mv t1, %0" ::"r"(immediate));
asm volatile("amoadd.w t2, t1, (t0)" ::);
return 0;
}

/**
* Atomically increase the value in addr by 1
*/
inline void amo_increment(volatile uint32_t addr){
asm volatile("addi t0, %0, 0" ::"r"(addr));
asm volatile("li t1, 1" ::);
asm volatile("amoadd.w t2, t1, (t0)" ::);
static inline void amo_add_imm(volatile uint32_t addr, volatile uint32_t imm){
asm volatile("amoadd.w x0, %1, (%0)" ::"r"(addr), "r"(imm):"memory");
}

/**
Expand Down
Loading
Loading