diff --git a/src/results.txt b/src/results.txt index ac49e2f8..456e56f9 100644 --- a/src/results.txt +++ b/src/results.txt @@ -1,74 +1,2 @@ start ./riscv_gpgpu/gpgpu_test.hex -ABOUT TO START -INTERRUPT ECALL/EBREAK -INTERRUPT ECALL/EBREAK -INTERRUPT ECALL/EBREAK -INTERRUPT ECALL/EBREAK -Total steps: 300 -Total insts: 1503 -=== Warp 0 === -Steps : 300 -Insts : 504 -Loads : 0 -Stores: 112 -GRADE: FAILED 0 -=== Warp 1 === -Steps : 129 -Insts : 333 -Loads : 0 -Stores: 76 -GRADE: FAILED 0 -=== Warp 2 === -Steps : 129 -Insts : 333 -Loads : 0 -Stores: 76 -GRADE: FAILED 0 -=== Warp 3 === -Steps : 129 -Insts : 333 -Loads : 0 -Stores: 76 -GRADE: FAILED 0 -=== Warp 4 === -Steps : 0 -Insts : 0 -Loads : 0 -Stores: 0 -GRADE: FAILED 0 -=== Warp 5 === -Steps : 0 -Insts : 0 -Loads : 0 -Stores: 0 -GRADE: FAILED 0 -=== Warp 6 === -Steps : 0 -Insts : 0 -Loads : 0 -Stores: 0 -GRADE: FAILED 0 -=== Warp 7 === -Steps : 0 -Insts : 0 -Loads : 0 -Stores: 0 -GRADE: FAILED 0 -81000000 = 1 -81000004 = 3 -81000008 = 8 -8100000c = 0 -81000010 = 8 -81000014 = 1 -81000018 = 2 -8100001c = 3 -81000020 = 4 -81000024 = 5 -81000028 = 6 -8100002c = 7 -81000030 = 8 -81000034 = 9 -81000038 = a -8100003c = b - diff --git a/src/riscv_gpgpu/gpgpu_test.c b/src/riscv_gpgpu/gpgpu_test.c index 5afa8694..1f07271f 100644 --- a/src/riscv_gpgpu/gpgpu_test.c +++ b/src/riscv_gpgpu/gpgpu_test.c @@ -13,8 +13,8 @@ unsigned x[] = {1, 1, 6, 0, 3, 1, 1, 2, 0, 3, 6, 7, 5, 7, 7, 9}; unsigned y[] = {0, 2, 2, 0, 5, 0, 1, 1, 4, 2, 0, 0, 3, 2, 3, 2}; unsigned z[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; -#define NUM_WARPS 4 -#define NUM_THREADS 4 +#define NUM_WARPS 8 +#define NUM_THREADS 2 int main() { diff --git a/src/riscv_gpgpu/gpgpu_test.dump b/src/riscv_gpgpu/gpgpu_test.dump index d7e01d79..94d6ac87 100644 --- a/src/riscv_gpgpu/gpgpu_test.dump +++ b/src/riscv_gpgpu/gpgpu_test.dump @@ -18,8 +18,8 @@ Disassembly of section .text: 80000028: 04068693 addi a3,a3,64 # 81000040 8000002c: 80000637 lui a2,0x80000 80000030: 05860613 addi a2,a2,88 # 80000058 -80000034: 00400593 li a1,4 -80000038: 00400513 li a0,4 +80000034: 00200593 li a1,2 +80000038: 00800513 li a0,8 8000003c: 1d4000ef jal ra,80000210 80000040: 00000793 li a5,0 80000044: 00078513 mv a0,a5 @@ -42,7 +42,7 @@ Disassembly of section .text: 80000080: 2b0000ef jal ra,80000330 80000084: fea42223 sw a0,-28(s0) 80000088: fd842783 lw a5,-40(s0) -8000008c: 00279793 slli a5,a5,0x2 +8000008c: 00179793 slli a5,a5,0x1 80000090: fdc42703 lw a4,-36(s0) 80000094: 00f707b3 add a5,a4,a5 80000098: fef42023 sw a5,-32(s0) diff --git a/src/riscv_gpgpu/gpgpu_test.elf b/src/riscv_gpgpu/gpgpu_test.elf index 2448e0b5..11744f4d 100755 Binary files a/src/riscv_gpgpu/gpgpu_test.elf and b/src/riscv_gpgpu/gpgpu_test.elf differ diff --git a/src/riscv_gpgpu/gpgpu_test.hex b/src/riscv_gpgpu/gpgpu_test.hex index 87df92ef..10ba28ef 100644 --- a/src/riscv_gpgpu/gpgpu_test.hex +++ b/src/riscv_gpgpu/gpgpu_test.hex @@ -2,12 +2,12 @@ :10000000130101FF232611002324810013040101A1 :10001000EF008034B707008193870700370700811E :1000200013070708B7060081938606043706008089 -:10003000130686059305400013054000EF00401DA0 +:10003000130686059305200013058000EF00401D80 :1000400093070000138507008320C100032481006B :100050001301010167800000130101FD2326110235 :100060002324810213040103232EA4FC232CB4FCBB :10007000EF0000272326A4FEEF0000292324A4FE7E -:10008000EF00002B2322A4FE832784FD93972700F3 +:10008000EF00002B2322A4FE832784FD9397170003 :100090000327C4FDB307F7002320F4FE832704FEE3 :1000A000939727000327C4FEB307F70083A6070032 :1000B000832704FE93972700032784FEB307F700E6 diff --git a/src/riscv_gpgpu/lib/a.out b/src/riscv_gpgpu/lib/a.out new file mode 100755 index 00000000..af6f6043 Binary files /dev/null and b/src/riscv_gpgpu/lib/a.out differ diff --git a/src/riscv_gpgpu/lib/hi.sh b/src/riscv_gpgpu/lib/hi.sh new file mode 100755 index 00000000..e2aa26b1 --- /dev/null +++ b/src/riscv_gpgpu/lib/hi.sh @@ -0,0 +1,3 @@ + /opt/riscv-nommu/bin/riscv32-unknown-linux-gnu-gcc -march=rv32i -mabi=ilp32 -O0 -Wl,-Bstatic,-T,linker.ld -ffreestanding -nostdlib queue.c -o queue.elf + /opt/riscv-nommu/bin/riscv32-unknown-linux-gnu-objdump -D queue.elf > queue.dump + /opt/riscv-nommu/bin/riscv32-unknown-linux-gnu-objcopy -O ihex queue.elf queue.hex \ No newline at end of file diff --git a/src/riscv_gpgpu/lib/lib.c b/src/riscv_gpgpu/lib/lib.c index 0660dc9e..11ca4a59 100644 --- a/src/riscv_gpgpu/lib/lib.c +++ b/src/riscv_gpgpu/lib/lib.c @@ -4,7 +4,6 @@ // { - void createThreads(unsigned num_threads, unsigned wid, unsigned func_addr, unsigned * x_ptr, unsigned * y_ptr, unsigned * z_ptr) { register unsigned *xx asm("s2") = x_ptr; diff --git a/src/riscv_gpgpu/lib/linker.ld b/src/riscv_gpgpu/lib/linker.ld new file mode 100644 index 00000000..676b1783 --- /dev/null +++ b/src/riscv_gpgpu/lib/linker.ld @@ -0,0 +1,44 @@ +/* ---- Original Script: /opt/riscv32i/riscv32-unknown-elf/lib/ldscripts/elf32lriscv.x ---- */ +/* Default linker script, for normal executables */ +/* Copyright (C) 2014-2017 Free Software Foundation, Inc. + Copying and distribution of this script, with or without modification, + are permitted in any medium without royalty provided the copyright + notice and this notice are preserved. */ +OUTPUT_FORMAT("elf32-littleriscv", "elf32-littleriscv", + "elf32-littleriscv") +OUTPUT_ARCH(riscv) +ENTRY(main) +SECTIONS +{ + . = 0x80000000; + .text : + { + *(.text) + *(.text.unlikely .text.*_unlikely .text.unlikely.*) + *(.text.exit .text.exit.*) + *(.text.startup .text.startup.*) + *(.text.hot .text.hot.*) + *(.stub .text.* .gnu.linkonce.t.*) + /* .gnu.warning sections are handled specially by elf32.em. */ + *(.gnu.warning) + } + .init : + { + KEEP (*(SORT_NONE(.init))) + } + .plt : { *(.plt) } + .iplt : { *(.iplt) } + .fini : + { + KEEP (*(SORT_NONE(.fini))) + } + PROVIDE (__etext = .); + PROVIDE (_etext = .); + PROVIDE (etext = .); + . = 0x81000000; + .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } + .rodata1 : { *(.rodata1) } + . = 0x82000000; + .comment : { *(.comment) } + +} diff --git a/src/riscv_gpgpu/lib/queue.c b/src/riscv_gpgpu/lib/queue.c new file mode 100644 index 00000000..36100983 --- /dev/null +++ b/src/riscv_gpgpu/lib/queue.c @@ -0,0 +1,126 @@ + +#include "queue.h" + +unsigned x[] = {1, 1, 6, 0, 3, 1, 1, 2, 0, 3, 6, 7, 5, 7, 7, 9}; +unsigned y[] = {0, 2, 2, 0, 5, 0, 1, 1, 4, 2, 0, 0, 3, 2, 3, 2}; +unsigned z[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; + +int main() +{ + + Job j; + j.func_ptr = (unsigned) func; + j.x = x; + j.y = y; + j.z = z; + + enqueue(j); + enqueue(j); + enqueue(j); + enqueue(j); + enqueue(j); + enqueue(j); + j = dequeue(); + j = dequeue(); + enqueue(j); + enqueue(j); + + if (!isFull()) + { + enqueue(j); + } + + if (!isFull()) + { + enqueue(j); + } + + if (!isFull()) + { + enqueue(j); + } + + + if (!isFull()) + { + enqueue(j); + } + + if (!isFull()) + { + enqueue(j); + } + + if (!isFull()) + { + enqueue(j); + } + + + + dequeue(); + dequeue(); + dequeue(); + dequeue(); + dequeue(); + dequeue(); + dequeue(); + dequeue(); + dequeue(); + dequeue(); + + + + return 0; +} + +void initialize_queue(void) +{ + q.start_i = 0; + q.end_i = 0; + q.num_j = 0; +} + +void enqueue(Job j) +{ + q.num_j++; + q.jobs[q.end_i] = j; + if ((q.end_i + 1) < SIZE) + { + q.end_i++; + } + else + { + q.end_i = 0; + } + +} + +Job dequeue(void) +{ + q.num_j--; + Job j = q.jobs[q.start_i]; + if ((q.start_i + 1) < SIZE) + { + q.start_i++; + } + else + { + q.start_i = 0; + } +} + +int isFull(void) +{ + return (q.num_j == SIZE); +} + +int isEmpty(void) +{ + return (q.num_j == 0); +} + +void func() +{ + +} \ No newline at end of file diff --git a/src/riscv_gpgpu/lib/queue.dump b/src/riscv_gpgpu/lib/queue.dump new file mode 100644 index 00000000..21c86fe1 --- /dev/null +++ b/src/riscv_gpgpu/lib/queue.dump @@ -0,0 +1,481 @@ + +queue.elf: file format elf32-littleriscv + + +Disassembly of section .text: + +80000000
: +80000000: fd010113 addi sp,sp,-48 +80000004: 02112623 sw ra,44(sp) +80000008: 02812423 sw s0,40(sp) +8000000c: 03010413 addi s0,sp,48 +80000010: 800007b7 lui a5,0x80000 +80000014: 5e078793 addi a5,a5,1504 # 800005e0 +80000018: fef42023 sw a5,-32(s0) +8000001c: 810007b7 lui a5,0x81000 +80000020: 0ec78793 addi a5,a5,236 # 810000ec +80000024: fef42223 sw a5,-28(s0) +80000028: 810007b7 lui a5,0x81000 +8000002c: 12c78793 addi a5,a5,300 # 8100012c +80000030: fef42423 sw a5,-24(s0) +80000034: 810007b7 lui a5,0x81000 +80000038: 00078793 mv a5,a5 +8000003c: fef42623 sw a5,-20(s0) +80000040: fe042603 lw a2,-32(s0) +80000044: fe442683 lw a3,-28(s0) +80000048: fe842703 lw a4,-24(s0) +8000004c: fec42783 lw a5,-20(s0) +80000050: fcc42823 sw a2,-48(s0) +80000054: fcd42a23 sw a3,-44(s0) +80000058: fce42c23 sw a4,-40(s0) +8000005c: fcf42e23 sw a5,-36(s0) +80000060: fd040793 addi a5,s0,-48 +80000064: 00078513 mv a0,a5 +80000068: 390000ef jal ra,800003f8 +8000006c: fe042603 lw a2,-32(s0) +80000070: fe442683 lw a3,-28(s0) +80000074: fe842703 lw a4,-24(s0) +80000078: fec42783 lw a5,-20(s0) +8000007c: fcc42823 sw a2,-48(s0) +80000080: fcd42a23 sw a3,-44(s0) +80000084: fce42c23 sw a4,-40(s0) +80000088: fcf42e23 sw a5,-36(s0) +8000008c: fd040793 addi a5,s0,-48 +80000090: 00078513 mv a0,a5 +80000094: 364000ef jal ra,800003f8 +80000098: fe042603 lw a2,-32(s0) +8000009c: fe442683 lw a3,-28(s0) +800000a0: fe842703 lw a4,-24(s0) +800000a4: fec42783 lw a5,-20(s0) +800000a8: fcc42823 sw a2,-48(s0) +800000ac: fcd42a23 sw a3,-44(s0) +800000b0: fce42c23 sw a4,-40(s0) +800000b4: fcf42e23 sw a5,-36(s0) +800000b8: fd040793 addi a5,s0,-48 +800000bc: 00078513 mv a0,a5 +800000c0: 338000ef jal ra,800003f8 +800000c4: fe042603 lw a2,-32(s0) +800000c8: fe442683 lw a3,-28(s0) +800000cc: fe842703 lw a4,-24(s0) +800000d0: fec42783 lw a5,-20(s0) +800000d4: fcc42823 sw a2,-48(s0) +800000d8: fcd42a23 sw a3,-44(s0) +800000dc: fce42c23 sw a4,-40(s0) +800000e0: fcf42e23 sw a5,-36(s0) +800000e4: fd040793 addi a5,s0,-48 +800000e8: 00078513 mv a0,a5 +800000ec: 30c000ef jal ra,800003f8 +800000f0: fe042603 lw a2,-32(s0) +800000f4: fe442683 lw a3,-28(s0) +800000f8: fe842703 lw a4,-24(s0) +800000fc: fec42783 lw a5,-20(s0) +80000100: fcc42823 sw a2,-48(s0) +80000104: fcd42a23 sw a3,-44(s0) +80000108: fce42c23 sw a4,-40(s0) +8000010c: fcf42e23 sw a5,-36(s0) +80000110: fd040793 addi a5,s0,-48 +80000114: 00078513 mv a0,a5 +80000118: 2e0000ef jal ra,800003f8 +8000011c: fe042603 lw a2,-32(s0) +80000120: fe442683 lw a3,-28(s0) +80000124: fe842703 lw a4,-24(s0) +80000128: fec42783 lw a5,-20(s0) +8000012c: fcc42823 sw a2,-48(s0) +80000130: fcd42a23 sw a3,-44(s0) +80000134: fce42c23 sw a4,-40(s0) +80000138: fcf42e23 sw a5,-36(s0) +8000013c: fd040793 addi a5,s0,-48 +80000140: 00078513 mv a0,a5 +80000144: 2b4000ef jal ra,800003f8 +80000148: fe040793 addi a5,s0,-32 +8000014c: 00078513 mv a0,a5 +80000150: 36c000ef jal ra,800004bc +80000154: fd040793 addi a5,s0,-48 +80000158: 00078513 mv a0,a5 +8000015c: 360000ef jal ra,800004bc +80000160: fd042603 lw a2,-48(s0) +80000164: fd442683 lw a3,-44(s0) +80000168: fd842703 lw a4,-40(s0) +8000016c: fdc42783 lw a5,-36(s0) +80000170: fec42023 sw a2,-32(s0) +80000174: fed42223 sw a3,-28(s0) +80000178: fee42423 sw a4,-24(s0) +8000017c: fef42623 sw a5,-20(s0) +80000180: fe042603 lw a2,-32(s0) +80000184: fe442683 lw a3,-28(s0) +80000188: fe842703 lw a4,-24(s0) +8000018c: fec42783 lw a5,-20(s0) +80000190: fcc42823 sw a2,-48(s0) +80000194: fcd42a23 sw a3,-44(s0) +80000198: fce42c23 sw a4,-40(s0) +8000019c: fcf42e23 sw a5,-36(s0) +800001a0: fd040793 addi a5,s0,-48 +800001a4: 00078513 mv a0,a5 +800001a8: 250000ef jal ra,800003f8 +800001ac: fe042603 lw a2,-32(s0) +800001b0: fe442683 lw a3,-28(s0) +800001b4: fe842703 lw a4,-24(s0) +800001b8: fec42783 lw a5,-20(s0) +800001bc: fcc42823 sw a2,-48(s0) +800001c0: fcd42a23 sw a3,-44(s0) +800001c4: fce42c23 sw a4,-40(s0) +800001c8: fcf42e23 sw a5,-36(s0) +800001cc: fd040793 addi a5,s0,-48 +800001d0: 00078513 mv a0,a5 +800001d4: 224000ef jal ra,800003f8 +800001d8: 3a4000ef jal ra,8000057c +800001dc: 00050793 mv a5,a0 +800001e0: 02079863 bnez a5,80000210 +800001e4: fe042603 lw a2,-32(s0) +800001e8: fe442683 lw a3,-28(s0) +800001ec: fe842703 lw a4,-24(s0) +800001f0: fec42783 lw a5,-20(s0) +800001f4: fcc42823 sw a2,-48(s0) +800001f8: fcd42a23 sw a3,-44(s0) +800001fc: fce42c23 sw a4,-40(s0) +80000200: fcf42e23 sw a5,-36(s0) +80000204: fd040793 addi a5,s0,-48 +80000208: 00078513 mv a0,a5 +8000020c: 1ec000ef jal ra,800003f8 +80000210: 36c000ef jal ra,8000057c +80000214: 00050793 mv a5,a0 +80000218: 02079863 bnez a5,80000248 +8000021c: fe042603 lw a2,-32(s0) +80000220: fe442683 lw a3,-28(s0) +80000224: fe842703 lw a4,-24(s0) +80000228: fec42783 lw a5,-20(s0) +8000022c: fcc42823 sw a2,-48(s0) +80000230: fcd42a23 sw a3,-44(s0) +80000234: fce42c23 sw a4,-40(s0) +80000238: fcf42e23 sw a5,-36(s0) +8000023c: fd040793 addi a5,s0,-48 +80000240: 00078513 mv a0,a5 +80000244: 1b4000ef jal ra,800003f8 +80000248: 334000ef jal ra,8000057c +8000024c: 00050793 mv a5,a0 +80000250: 02079863 bnez a5,80000280 +80000254: fe042603 lw a2,-32(s0) +80000258: fe442683 lw a3,-28(s0) +8000025c: fe842703 lw a4,-24(s0) +80000260: fec42783 lw a5,-20(s0) +80000264: fcc42823 sw a2,-48(s0) +80000268: fcd42a23 sw a3,-44(s0) +8000026c: fce42c23 sw a4,-40(s0) +80000270: fcf42e23 sw a5,-36(s0) +80000274: fd040793 addi a5,s0,-48 +80000278: 00078513 mv a0,a5 +8000027c: 17c000ef jal ra,800003f8 +80000280: 2fc000ef jal ra,8000057c +80000284: 00050793 mv a5,a0 +80000288: 02079863 bnez a5,800002b8 +8000028c: fe042603 lw a2,-32(s0) +80000290: fe442683 lw a3,-28(s0) +80000294: fe842703 lw a4,-24(s0) +80000298: fec42783 lw a5,-20(s0) +8000029c: fcc42823 sw a2,-48(s0) +800002a0: fcd42a23 sw a3,-44(s0) +800002a4: fce42c23 sw a4,-40(s0) +800002a8: fcf42e23 sw a5,-36(s0) +800002ac: fd040793 addi a5,s0,-48 +800002b0: 00078513 mv a0,a5 +800002b4: 144000ef jal ra,800003f8 +800002b8: 2c4000ef jal ra,8000057c +800002bc: 00050793 mv a5,a0 +800002c0: 02079863 bnez a5,800002f0 +800002c4: fe042603 lw a2,-32(s0) +800002c8: fe442683 lw a3,-28(s0) +800002cc: fe842703 lw a4,-24(s0) +800002d0: fec42783 lw a5,-20(s0) +800002d4: fcc42823 sw a2,-48(s0) +800002d8: fcd42a23 sw a3,-44(s0) +800002dc: fce42c23 sw a4,-40(s0) +800002e0: fcf42e23 sw a5,-36(s0) +800002e4: fd040793 addi a5,s0,-48 +800002e8: 00078513 mv a0,a5 +800002ec: 10c000ef jal ra,800003f8 +800002f0: 28c000ef jal ra,8000057c +800002f4: 00050793 mv a5,a0 +800002f8: 02079863 bnez a5,80000328 +800002fc: fe042603 lw a2,-32(s0) +80000300: fe442683 lw a3,-28(s0) +80000304: fe842703 lw a4,-24(s0) +80000308: fec42783 lw a5,-20(s0) +8000030c: fcc42823 sw a2,-48(s0) +80000310: fcd42a23 sw a3,-44(s0) +80000314: fce42c23 sw a4,-40(s0) +80000318: fcf42e23 sw a5,-36(s0) +8000031c: fd040793 addi a5,s0,-48 +80000320: 00078513 mv a0,a5 +80000324: 0d4000ef jal ra,800003f8 +80000328: fd040793 addi a5,s0,-48 +8000032c: 00078513 mv a0,a5 +80000330: 18c000ef jal ra,800004bc +80000334: fd040793 addi a5,s0,-48 +80000338: 00078513 mv a0,a5 +8000033c: 180000ef jal ra,800004bc +80000340: fd040793 addi a5,s0,-48 +80000344: 00078513 mv a0,a5 +80000348: 174000ef jal ra,800004bc +8000034c: fd040793 addi a5,s0,-48 +80000350: 00078513 mv a0,a5 +80000354: 168000ef jal ra,800004bc +80000358: fd040793 addi a5,s0,-48 +8000035c: 00078513 mv a0,a5 +80000360: 15c000ef jal ra,800004bc +80000364: fd040793 addi a5,s0,-48 +80000368: 00078513 mv a0,a5 +8000036c: 150000ef jal ra,800004bc +80000370: fd040793 addi a5,s0,-48 +80000374: 00078513 mv a0,a5 +80000378: 144000ef jal ra,800004bc +8000037c: fd040793 addi a5,s0,-48 +80000380: 00078513 mv a0,a5 +80000384: 138000ef jal ra,800004bc +80000388: fd040793 addi a5,s0,-48 +8000038c: 00078513 mv a0,a5 +80000390: 12c000ef jal ra,800004bc +80000394: fd040793 addi a5,s0,-48 +80000398: 00078513 mv a0,a5 +8000039c: 120000ef jal ra,800004bc +800003a0: 00000793 li a5,0 +800003a4: 00078513 mv a0,a5 +800003a8: 02c12083 lw ra,44(sp) +800003ac: 02812403 lw s0,40(sp) +800003b0: 03010113 addi sp,sp,48 +800003b4: 00008067 ret + +800003b8 : +800003b8: ff010113 addi sp,sp,-16 +800003bc: 00812623 sw s0,12(sp) +800003c0: 01010413 addi s0,sp,16 +800003c4: 810007b7 lui a5,0x81000 +800003c8: 04078793 addi a5,a5,64 # 81000040 +800003cc: 0a07a023 sw zero,160(a5) +800003d0: 810007b7 lui a5,0x81000 +800003d4: 04078793 addi a5,a5,64 # 81000040 +800003d8: 0a07a223 sw zero,164(a5) +800003dc: 810007b7 lui a5,0x81000 +800003e0: 04078793 addi a5,a5,64 # 81000040 +800003e4: 0a07a423 sw zero,168(a5) +800003e8: 00000013 nop +800003ec: 00c12403 lw s0,12(sp) +800003f0: 01010113 addi sp,sp,16 +800003f4: 00008067 ret + +800003f8 : +800003f8: ff010113 addi sp,sp,-16 +800003fc: 00812623 sw s0,12(sp) +80000400: 00912423 sw s1,8(sp) +80000404: 01010413 addi s0,sp,16 +80000408: 00050493 mv s1,a0 +8000040c: 810007b7 lui a5,0x81000 +80000410: 04078793 addi a5,a5,64 # 81000040 +80000414: 0a87a783 lw a5,168(a5) +80000418: 00178713 addi a4,a5,1 +8000041c: 810007b7 lui a5,0x81000 +80000420: 04078793 addi a5,a5,64 # 81000040 +80000424: 0ae7a423 sw a4,168(a5) +80000428: 810007b7 lui a5,0x81000 +8000042c: 04078793 addi a5,a5,64 # 81000040 +80000430: 0a47a703 lw a4,164(a5) +80000434: 810007b7 lui a5,0x81000 +80000438: 00471713 slli a4,a4,0x4 +8000043c: 04078793 addi a5,a5,64 # 81000040 +80000440: 00f707b3 add a5,a4,a5 +80000444: 0004a583 lw a1,0(s1) +80000448: 0044a603 lw a2,4(s1) +8000044c: 0084a683 lw a3,8(s1) +80000450: 00c4a703 lw a4,12(s1) +80000454: 00b7a023 sw a1,0(a5) +80000458: 00c7a223 sw a2,4(a5) +8000045c: 00d7a423 sw a3,8(a5) +80000460: 00e7a623 sw a4,12(a5) +80000464: 810007b7 lui a5,0x81000 +80000468: 04078793 addi a5,a5,64 # 81000040 +8000046c: 0a47a783 lw a5,164(a5) +80000470: 00178713 addi a4,a5,1 +80000474: 00900793 li a5,9 +80000478: 02e7e263 bltu a5,a4,8000049c +8000047c: 810007b7 lui a5,0x81000 +80000480: 04078793 addi a5,a5,64 # 81000040 +80000484: 0a47a783 lw a5,164(a5) +80000488: 00178713 addi a4,a5,1 +8000048c: 810007b7 lui a5,0x81000 +80000490: 04078793 addi a5,a5,64 # 81000040 +80000494: 0ae7a223 sw a4,164(a5) +80000498: 0100006f j 800004a8 +8000049c: 810007b7 lui a5,0x81000 +800004a0: 04078793 addi a5,a5,64 # 81000040 +800004a4: 0a07a223 sw zero,164(a5) +800004a8: 00000013 nop +800004ac: 00c12403 lw s0,12(sp) +800004b0: 00812483 lw s1,8(sp) +800004b4: 01010113 addi sp,sp,16 +800004b8: 00008067 ret + +800004bc : +800004bc: fd010113 addi sp,sp,-48 +800004c0: 02812623 sw s0,44(sp) +800004c4: 03010413 addi s0,sp,48 +800004c8: fca42e23 sw a0,-36(s0) +800004cc: 810007b7 lui a5,0x81000 +800004d0: 04078793 addi a5,a5,64 # 81000040 +800004d4: 0a87a783 lw a5,168(a5) +800004d8: fff78713 addi a4,a5,-1 +800004dc: 810007b7 lui a5,0x81000 +800004e0: 04078793 addi a5,a5,64 # 81000040 +800004e4: 0ae7a423 sw a4,168(a5) +800004e8: 810007b7 lui a5,0x81000 +800004ec: 04078793 addi a5,a5,64 # 81000040 +800004f0: 0a07a703 lw a4,160(a5) +800004f4: 810007b7 lui a5,0x81000 +800004f8: 00471713 slli a4,a4,0x4 +800004fc: 04078793 addi a5,a5,64 # 81000040 +80000500: 00f707b3 add a5,a4,a5 +80000504: 0007a603 lw a2,0(a5) +80000508: 0047a683 lw a3,4(a5) +8000050c: 0087a703 lw a4,8(a5) +80000510: 00c7a783 lw a5,12(a5) +80000514: fec42023 sw a2,-32(s0) +80000518: fed42223 sw a3,-28(s0) +8000051c: fee42423 sw a4,-24(s0) +80000520: fef42623 sw a5,-20(s0) +80000524: 810007b7 lui a5,0x81000 +80000528: 04078793 addi a5,a5,64 # 81000040 +8000052c: 0a07a783 lw a5,160(a5) +80000530: 00178713 addi a4,a5,1 +80000534: 00900793 li a5,9 +80000538: 02e7e263 bltu a5,a4,8000055c +8000053c: 810007b7 lui a5,0x81000 +80000540: 04078793 addi a5,a5,64 # 81000040 +80000544: 0a07a783 lw a5,160(a5) +80000548: 00178713 addi a4,a5,1 +8000054c: 810007b7 lui a5,0x81000 +80000550: 04078793 addi a5,a5,64 # 81000040 +80000554: 0ae7a023 sw a4,160(a5) +80000558: 0100006f j 80000568 +8000055c: 810007b7 lui a5,0x81000 +80000560: 04078793 addi a5,a5,64 # 81000040 +80000564: 0a07a023 sw zero,160(a5) +80000568: 00000013 nop +8000056c: fdc42503 lw a0,-36(s0) +80000570: 02c12403 lw s0,44(sp) +80000574: 03010113 addi sp,sp,48 +80000578: 00008067 ret + +8000057c : +8000057c: ff010113 addi sp,sp,-16 +80000580: 00812623 sw s0,12(sp) +80000584: 01010413 addi s0,sp,16 +80000588: 810007b7 lui a5,0x81000 +8000058c: 04078793 addi a5,a5,64 # 81000040 +80000590: 0a87a783 lw a5,168(a5) +80000594: ff678793 addi a5,a5,-10 +80000598: 0017b793 seqz a5,a5 +8000059c: 0ff7f793 andi a5,a5,255 +800005a0: 00078513 mv a0,a5 +800005a4: 00c12403 lw s0,12(sp) +800005a8: 01010113 addi sp,sp,16 +800005ac: 00008067 ret + +800005b0 : +800005b0: ff010113 addi sp,sp,-16 +800005b4: 00812623 sw s0,12(sp) +800005b8: 01010413 addi s0,sp,16 +800005bc: 810007b7 lui a5,0x81000 +800005c0: 04078793 addi a5,a5,64 # 81000040 +800005c4: 0a87a783 lw a5,168(a5) +800005c8: 0017b793 seqz a5,a5 +800005cc: 0ff7f793 andi a5,a5,255 +800005d0: 00078513 mv a0,a5 +800005d4: 00c12403 lw s0,12(sp) +800005d8: 01010113 addi sp,sp,16 +800005dc: 00008067 ret + +800005e0 : +800005e0: ff010113 addi sp,sp,-16 +800005e4: 00812623 sw s0,12(sp) +800005e8: 01010413 addi s0,sp,16 +800005ec: 00000013 nop +800005f0: 00c12403 lw s0,12(sp) +800005f4: 01010113 addi sp,sp,16 +800005f8: 00008067 ret + +Disassembly of section .bss: + +81000000 : + ... + +81000040 : + ... + +Disassembly of section .data: + +810000ec : +810000ec: 0001 nop +810000ee: 0000 unimp +810000f0: 0001 nop +810000f2: 0000 unimp +810000f4: 0006 c.slli zero,0x1 +810000f6: 0000 unimp +810000f8: 0000 unimp +810000fa: 0000 unimp +810000fc: 00000003 lb zero,0(zero) # 0 +81000100: 0001 nop +81000102: 0000 unimp +81000104: 0001 nop +81000106: 0000 unimp +81000108: 0002 c.slli64 zero +8100010a: 0000 unimp +8100010c: 0000 unimp +8100010e: 0000 unimp +81000110: 00000003 lb zero,0(zero) # 0 +81000114: 0006 c.slli zero,0x1 +81000116: 0000 unimp +81000118: 00000007 0x7 +8100011c: 0005 c.nop 1 +8100011e: 0000 unimp +81000120: 00000007 0x7 +81000124: 00000007 0x7 +81000128: 0009 c.nop 2 + ... + +8100012c : +8100012c: 0000 unimp +8100012e: 0000 unimp +81000130: 0002 c.slli64 zero +81000132: 0000 unimp +81000134: 0002 c.slli64 zero +81000136: 0000 unimp +81000138: 0000 unimp +8100013a: 0000 unimp +8100013c: 0005 c.nop 1 +8100013e: 0000 unimp +81000140: 0000 unimp +81000142: 0000 unimp +81000144: 0001 nop +81000146: 0000 unimp +81000148: 0001 nop +8100014a: 0000 unimp +8100014c: 0004 0x4 +8100014e: 0000 unimp +81000150: 0002 c.slli64 zero + ... +8100015a: 0000 unimp +8100015c: 00000003 lb zero,0(zero) # 0 +81000160: 0002 c.slli64 zero +81000162: 0000 unimp +81000164: 00000003 lb zero,0(zero) # 0 +81000168: 0002 c.slli64 zero + ... + +Disassembly of section .comment: + +82000000 <.comment>: +82000000: 3a434347 fmsub.d ft6,ft6,ft4,ft7,rmm +82000004: 2820 fld fs0,80(s0) +82000006: 29554e47 fmsub.s ft8,fa0,fs5,ft5,rmm +8200000a: 3820 fld fs0,112(s0) +8200000c: 322e fld ft4,232(sp) +8200000e: 302e fld ft0,232(sp) + ... diff --git a/src/riscv_gpgpu/lib/queue.elf b/src/riscv_gpgpu/lib/queue.elf new file mode 100755 index 00000000..2893e5d7 Binary files /dev/null and b/src/riscv_gpgpu/lib/queue.elf differ diff --git a/src/riscv_gpgpu/lib/queue.h b/src/riscv_gpgpu/lib/queue.h new file mode 100644 index 00000000..bca856f8 --- /dev/null +++ b/src/riscv_gpgpu/lib/queue.h @@ -0,0 +1,44 @@ + +#ifndef __QUEUE__ + +#define __QUEUE__ + + + +#define SIZE 10 + + +typedef struct Job_t +{ + unsigned func_ptr; + unsigned * x; + unsigned * y; + unsigned * z; + +} Job; + +typedef struct Queue_t +{ + + struct Job_t jobs[SIZE]; + unsigned start_i; + unsigned end_i; + unsigned num_j; + +} Queue; + +Queue q; + +void initialize_queue(void); + +void enqueue(Job); + +Job dequeue(void); + +int isFull(void); +int isEmpty(void); + + +void func(); + +#endif \ No newline at end of file diff --git a/src/riscv_gpgpu/lib/queue.hex b/src/riscv_gpgpu/lib/queue.hex new file mode 100644 index 00000000..2af2f29b --- /dev/null +++ b/src/riscv_gpgpu/lib/queue.hex @@ -0,0 +1,108 @@ +:0200000480007A +:10000000130101FD2326110223248102130401039D +:10001000B70700809387075E2320F4FEB7070081AF +:100020009387C70E2322F4FEB70700819387C71278 +:100030002324F4FEB7070081938707002326F4FEEC +:10004000032604FE832644FE032784FE8327C4FE82 +:100050002328C4FC232AD4FC232CE4FC232EF4FC08 +:10006000930704FD13850700EF000039032604FE03 +:10007000832644FE032784FE8327C4FE2328C4FC72 +:10008000232AD4FC232CE4FC232EF4FC930704FD48 +:1000900013850700EF004036032604FE832644FE46 +:1000A000032784FE8327C4FE2328C4FC232AD4FC10 +:1000B000232CE4FC232EF4FC930704FD1385070096 +:1000C000EF008033032604FE832644FE032784FECC +:1000D0008327C4FE2328C4FC232AD4FC232CE4FC5D +:1000E000232EF4FC930704FD13850700EF00C030B6 +:1000F000032604FE832644FE032784FE8327C4FED2 +:100100002328C4FC232AD4FC232CE4FC232EF4FC57 +:10011000930704FD13850700EF00002E032604FE5D +:10012000832644FE032784FE8327C4FE2328C4FCC1 +:10013000232AD4FC232CE4FC232EF4FC930704FD97 +:1001400013850700EF00402B930704FE138507007B +:10015000EF00C036930704FD13850700EF0000365B +:10016000032604FD832644FD032784FD8327C4FD65 +:100170002320C4FE2322D4FE2324E4FE2326F4FEFF +:10018000032604FE832644FE032784FE8327C4FE41 +:100190002328C4FC232AD4FC232CE4FC232EF4FCC7 +:1001A000930704FD13850700EF000025032604FED6 +:1001B000832644FE032784FE8327C4FE2328C4FC31 +:1001C000232AD4FC232CE4FC232EF4FC930704FD07 +:1001D00013850700EF004022EF00403A9307050027 +:1001E00063980702032604FE832644FE032784FE49 +:1001F0008327C4FE2328C4FC232AD4FC232CE4FC3C +:10020000232EF4FC930704FD13850700EF00C01EA6 +:10021000EF00C0369307050063980702032604FE2B +:10022000832644FE032784FE8327C4FE2328C4FCC0 +:10023000232AD4FC232CE4FC232EF4FC930704FD96 +:1002400013850700EF00401BEF00403393070500C4 +:1002500063980702032604FE832644FE032784FED8 +:100260008327C4FE2328C4FC232AD4FC232CE4FCCB +:10027000232EF4FC930704FD13850700EF00C0173D +:10028000EF00C02F9307050063980702032604FEC2 +:10029000832644FE032784FE8327C4FE2328C4FC50 +:1002A000232AD4FC232CE4FC232EF4FC930704FD26 +:1002B00013850700EF004014EF00402C9307050062 +:1002C00063980702032604FE832644FE032784FE68 +:1002D0008327C4FE2328C4FC232AD4FC232CE4FC5B +:1002E000232EF4FC930704FD13850700EF00C010D4 +:1002F000EF00C0289307050063980702032604FE59 +:10030000832644FE032784FE8327C4FE2328C4FCDF +:10031000232AD4FC232CE4FC232EF4FC930704FDB5 +:1003200013850700EF00400D930704FD13850700B8 +:10033000EF00C018930704FD13850700EF000018B5 +:10034000930704FD13850700EF004017930704FD92 +:1003500013850700EF008016930704FD138507003F +:10036000EF00C015930704FD13850700EF0000158B +:10037000930704FD13850700EF004014930704FD65 +:1003800013850700EF008013930704FD1385070012 +:10039000EF00C012930704FD13850700EF00001261 +:1003A00093070000138507008320C1020324810204 +:1003B0001301010367800000130101FF2326810060 +:1003C00013040101B70700819387070423A0070ADC +:1003D000B70700819387070423A2070AB7070081A4 +:1003E0009387070423A4070A130000000324C10015 +:1003F0001301010167800000130101FF2326810022 +:10040000232491001304010193040500B707008120 +:100410009387070483A7870A13871700B70700810C +:100420009387070423A4E70AB7070081938707048B +:1004300003A7470AB70700811317470093870704EC +:10044000B307F70083A5040003A6440083A6840035 +:1004500003A7C40023A0B70023A2C70023A4D7008A +:1004600023A6E700B70700819387070483A7470AFD +:10047000138717009307900063E2E702B707008134 +:100480009387070483A7470A13871700B7070081DC +:100490009387070423A2E70A6F000001B7070081D2 +:1004A0009387070423A2070A130000000324C10056 +:1004B000832481001301010167800000130101FD05 +:1004C0002326810213040103232EA4FCB707008115 +:1004D0009387070483A7870A1387F7FFB70700816D +:1004E0009387070423A4E70AB707008193870704CB +:1004F00003A7070AB707008113174700938707046C +:10050000B307F70003A6070083A6470003A78700E9 +:1005100083A7C7002320C4FE2322D4FE2324E4FEA5 +:100520002326F4FEB70700819387070483A7070AF1 +:10053000138717009307900063E2E702B707008173 +:100540009387070483A7070A13871700B70700815B +:100550009387070423A0E70A6F000001B707008113 +:100560009387070423A0070A130000000325C4FD96 +:100570000324C1021301010367800000130101FF7E +:100580002326810013040101B70700819387070424 +:1005900083A7870A938767FF93B7170093F7F70F2F +:1005A000138507000324C1001301010167800000C7 +:1005B000130101FF2326810013040101B707008105 +:1005C0009387070483A7870A93B7170093F7F70F5A +:1005D000138507000324C100130101016780000097 +:1005E000130101FF23268100130401011300000001 +:0C05F0000324C10013010101678000001A +:02000004810079 +:1000EC0001000000010000000600000000000000FC +:1000FC0003000000010000000100000002000000ED +:10010C0000000000030000000600000007000000D3 +:10011C0005000000070000000700000009000000B7 +:10012C0000000000020000000200000000000000BF +:10013C0005000000000000000100000001000000AC +:10014C00040000000200000000000000000000009D +:10015C000300000002000000030000000200000089 +:040000058000000077 +:00000001FF diff --git a/src/riscv_gpgpu/linker.ld b/src/riscv_gpgpu/linker.ld index 9a7d48ba..676b1783 100644 --- a/src/riscv_gpgpu/linker.ld +++ b/src/riscv_gpgpu/linker.ld @@ -41,4 +41,4 @@ SECTIONS . = 0x82000000; .comment : { *(.comment) } -} \ No newline at end of file +} diff --git a/src/test_riscv.sh b/src/test_riscv.sh index 09a4ad5d..0acc7d9b 100755 --- a/src/test_riscv.sh +++ b/src/test_riscv.sh @@ -1,4 +1,4 @@ echo start > results.txt echo ./riscv_gpgpu/gpgpu_test.hex >> results.txt -./harptool -E -a rv32i --core ./riscv_gpgpu/gpgpu_test.hex -s -b &>> results.txt \ No newline at end of file +./harptool -E -a rv32i --core ./riscv_gpgpu/gpgpu_test.hex -s -b \ No newline at end of file