Added runtime (kernel 2.0)
This commit is contained in:
24
runtime/intrinsics/vx_intrinsics.h
Normal file
24
runtime/intrinsics/vx_intrinsics.h
Normal file
@@ -0,0 +1,24 @@
|
||||
|
||||
// Spawns Warps
|
||||
void vx_wspawn (unsigned numWarps, unsigned PC_spawn);
|
||||
|
||||
// Changes thread mask (activated/deactivates threads)
|
||||
void vx_tmc (unsigned numThreads);
|
||||
|
||||
// Warp Barrier
|
||||
void vx_barrier(unsigned barriedID, unsigned numWarps);
|
||||
|
||||
// split on a predicate
|
||||
void vx_split (unsigned predicate);
|
||||
|
||||
|
||||
// Join
|
||||
void vx_join (void);
|
||||
|
||||
|
||||
// Get Hardware thread ID
|
||||
unsigned vx_threadID(void);
|
||||
|
||||
|
||||
// Get hardware warp ID
|
||||
unsigned vx_warpID(void);
|
||||
50
runtime/intrinsics/vx_intrinsics.s
Normal file
50
runtime/intrinsics/vx_intrinsics.s
Normal file
@@ -0,0 +1,50 @@
|
||||
|
||||
|
||||
|
||||
.section .text
|
||||
|
||||
|
||||
.type vx_wsapwn, @function
|
||||
.global vx_wsapwn
|
||||
vx_wsapwn:
|
||||
.word 0x00b5106b # wspawn a0(numWarps), a1(PC SPAWN)
|
||||
ret
|
||||
|
||||
.type vx_tmc, @function
|
||||
.global vx_tmc
|
||||
vx_tmc:
|
||||
.word 0x0005006b # tmc a0
|
||||
ret
|
||||
|
||||
|
||||
.type vx_barrier, @function
|
||||
.global vx_barrier
|
||||
vx_barrier:
|
||||
.word 0x00b5406b # barrier a0(barrier id), a1(numWarps)
|
||||
ret
|
||||
|
||||
.type vx_split, @function
|
||||
.global vx_split
|
||||
vx_split:
|
||||
.word 0x0005206b # split a0
|
||||
|
||||
.type vx_join, @function
|
||||
.global vx_join
|
||||
vx_join:
|
||||
.word 0x0000306b #join
|
||||
ret
|
||||
|
||||
|
||||
.type vx_warpID, @function
|
||||
.global vx_warpID
|
||||
vx_warpID:
|
||||
csrr a0, 0x21 # read warp IDs
|
||||
ret
|
||||
|
||||
|
||||
.type vx_threadID, @function
|
||||
.global vx_threadID
|
||||
vx_threadID:
|
||||
csrr a0, 0x20 # read thread IDs
|
||||
ret
|
||||
|
||||
Reference in New Issue
Block a user