rtl refactoring

This commit is contained in:
Blaise Tine
2020-05-03 17:10:02 -04:00
parent a1dc90b951
commit 69f607b73e
83 changed files with 30487 additions and 30536 deletions

View File

@@ -2,7 +2,7 @@
COMP = ~/dev/riscv-gnu-toolchain/drops/bin/riscv32-unknown-elf-g++
#COMP = /opt/riscv-new/drops/bin/riscv32-unknown-elf-g++
CC_FLAGS = -march=rv32im -mabi=ilp32 -O0 -Wl,-Bstatic,-T,../../startup/vx_link.ld -ffreestanding -nostdlib
CC_FLAGS = -march=rv32im -mabi=ilp32 -O3 -Wl,-Bstatic,-T,../../startup/vx_link.ld -ffreestanding -nostdlib
DMP = ~/dev/riscv-gnu-toolchain/drops/bin/riscv32-unknown-elf-objdump
CPY = ~/dev/riscv-gnu-toolchain/drops/bin/riscv32-unknown-elf-objcopy
@@ -10,10 +10,10 @@ CPY = ~/dev/riscv-gnu-toolchain/drops/bin/riscv32-unknown-elf-objcopy
NEWLIB = ../../newlib/newlib.c
VX_STR = ../../startup/vx_start.S
VX_INT = ../../intrinsics/vx_intrinsics.s
VX_IO = ../../io/vx_io.s ../../io/vx_io.c
VX_INT = ../../intrinsics/vx_intrinsics.S
VX_IO = ../../io/vx_io.S ../../io/vx_io.c
VX_API = ../../vx_api/vx_api.c
VX_FIO = ../../fileio/fileio.s
VX_FIO = ../../fileio/fileio.S
VX_MAIN = vx_simple_main

View File

@@ -6,15 +6,19 @@
int tmc_array[4] = {5,5,5,5};
void test_tmc_impl()
{
unsigned tid = vx_thread_id(); // Get TID
tmc_array[tid] = tid;
}
void test_tmc()
{
//vx_print_str("testing_tmc\n");
vx_print_str("testing_tmc\n");
vx_tmc(4);
unsigned tid = vx_threadID(); // Get TID
tmc_array[tid] = tid;
test_tmc_impl();
vx_tmc(1);
@@ -34,7 +38,7 @@ int div_arr[4];
void test_divergence()
{
unsigned tid = vx_threadID(); // Get TID
unsigned tid = vx_thread_id(); // Get TID
bool b = tid < 2;
__if (b)
@@ -73,20 +77,16 @@ void test_divergence()
vx_print_str("\n");
vx_print_hex(div_arr[3]);
vx_print_str("\n");
}
unsigned wsapwn_arr[4];
void simple_kernel()
{
unsigned wid = vx_warpID();
unsigned wid = vx_warp_id();
wsapwn_arr[wid] = wid;
wid = vx_warpID();
if (wid != 0)
{
vx_tmc(0);

View File

@@ -24,7 +24,7 @@ unsigned y[] = {1, 1, 1, 1,
1, 1, 1, 1,
1, 1, 1, 1,
1, 1, 1, 1};
F
unsigned z[] = {0, 0, 0, 0,
0, 0, 0, 0,
0, 0, 0, 0,
@@ -34,8 +34,8 @@ void mat_add_kernel(void * void_arguments)
{
mat_add_args_t * arguments = (mat_add_args_t *) void_arguments;
unsigned wid = vx_warpID();
unsigned tid = vx_threadID();
unsigned wid = vx_warp_id();
unsigned tid = vx_thread_id();
bool valid = (wid < arguments->numRows) && (tid < arguments->numColums);
@@ -50,7 +50,7 @@ void mat_add_kernel(void * void_arguments)
int main()
{
// Main is called with all threads active of warp 0
// ensure single thread
vx_tmc(1);
vx_print_str("Let's start... (This might take a while)\n");
@@ -84,11 +84,9 @@ int main()
vx_print_str("Wr->read and repeat(Wr) tests passed!\n");
}
vx_print_str("Simple Main\n");
// // TMC test
// TMC test
test_tmc();
// Control Divergence Test
@@ -118,7 +116,7 @@ int main()
}
vx_print_str("vx_spawnWarps mat_add_kernel\n");
vx_print_str("vx_spawn_warps mat_add_kernel\n");
mat_add_args_t arguments;
arguments.x = x;
@@ -131,7 +129,7 @@ int main()
int numWarps = 4;
int numThreads = 4;
vx_spawnWarps(numWarps, numThreads, mat_add_kernel, &arguments);
vx_spawn_warps(numWarps, numThreads, mat_add_kernel, &arguments);
vx_print_str("Waiting to ensure other warps are done... (Takes a while)\n");
for (int i = 0; i < 5000; i++) {}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -2,7 +2,7 @@
#include "io/io.h" // Printing functions
#include "intrinsics/instrinsics.h" // vx_threadID and vx_WarpID
#include "intrinsics/instrinsics.h" // vx_thread_id and vx_WarpID
struct args
{
@@ -14,7 +14,7 @@ void function(void * arg)
{
struct args * real_arg = (struct args *) arg;
unsigned tid = vx_threadID();
unsigned tid = vx_thread_id();
unsigned wid = vx_WarpID();
__if(something) // Control divergent if
@@ -36,7 +36,7 @@ int main()
struct args arg;
arg.data = data;
vx_spawnWarps(numWarps, numThreads, function, &data);
vx_spawn_warps(numWarps, numThreads, function, &data);
}