many fixes

This commit is contained in:
Blaise Tine
2021-03-27 20:58:12 -04:00
parent 2d48fe13c8
commit 39a8579c27
34 changed files with 5021 additions and 515 deletions

View File

@@ -24,7 +24,7 @@ LDFLAGS +=
PROJECT = basic
SRCS = basic.cpp
SRCS = main.cpp
all: $(PROJECT) kernel.bin kernel.dump

View File

@@ -22,7 +22,7 @@ CXXFLAGS += -I../../include
PROJECT = demo
SRCS = demo.cpp
SRCS = main.cpp
all: $(PROJECT) kernel.bin kernel.dump

View File

@@ -24,7 +24,7 @@ CXXFLAGS += -I../../include -I../../../hw
PROJECT = dogfood
SRCS = dogfood.cpp
SRCS = main.cpp
all: $(PROJECT) kernel.bin kernel.dump

View File

@@ -1,2 +1,2 @@
demo.o: demo.cpp ../../include/vortex.h common.h utils.h
main.o: main.cpp ../../include/vortex.h common.h utils.h
utils.o: utils.cpp utils.h

View File

@@ -13,6 +13,8 @@ VX_CFLAGS += -I$(VORTEX_RT_PATH)/include -I$(VORTEX_RT_PATH)/../hw
VX_LDFLAGS += -Wl,-Bstatic,-T,$(VORTEX_RT_PATH)/linker/vx_link.ld -Wl,--gc-sections $(VORTEX_RT_PATH)/libvortexrt.a
VX_LDFLAGS += -lm
VX_SRCS = kernel.c
#CXXFLAGS += -std=c++11 -O2 -Wall -Wextra -pedantic -Wfatal-errors
@@ -22,7 +24,7 @@ CXXFLAGS += -I../../include
PROJECT = demo
SRCS = demo.cpp utils.cpp
SRCS = main.cpp utils.cpp
all: $(PROJECT) kernel.bin kernel.dump

View File

@@ -1,5 +1,8 @@
#ifndef _COMMON_H_
#define _COMMON_H_
#define KERNEL_ARG_DEV_MEM_ADDR 0x7ffff000
struct kernel_arg_t {
uint32_t num_tasks;
uint32_t src_width;

Binary file not shown.

Binary file not shown.

View File

@@ -37,16 +37,15 @@ void kernel_body(int task_id, void* arg) {
}
int main() {
struct kernel_arg_t* arg = (struct kernel_arg_t*)0x0;
struct kernel_arg_t* arg = (struct kernel_arg_t*)KERNEL_ARG_DEV_MEM_ADDR;
// configure texture unit
vx_csr_write(CSR_TEX_ADDR(0), arg->src_ptr);
vx_csr_write(CSR_TEX_FORMAT(0), 0);
vx_csr_write(CSR_TEX_MIPOFF(0), 0);
vx_csr_write(CSR_TEX_WIDTH(0), ilog2(arg->src_width));
vx_csr_write(CSR_TEX_HEIGHT(0), ilog2(arg->src_height));
vx_csr_write(CSR_TEX_STRIDE(0), ilog2(arg->src_stride));
vx_csr_write(CSR_TEX_WRAP_U(0), 0);
vx_csr_write(CSR_TEX_WRAP_V(0), 0);
vx_csr_write(CSR_TEX_FORMAT(0), 0);
vx_csr_write(CSR_TEX_WRAP(0), 0);
vx_csr_write(CSR_TEX_FILTER(0), 0);
struct tile_arg_t targ;
@@ -56,5 +55,5 @@ int main() {
targ.deltaX = 1.0f / arg->dst_width;
targ.deltaY = 1.0f / arg->dst_height;
vx_spawn_tasks(arg->num_tasks, kernel_body, targ);
vx_spawn_tasks(arg->num_tasks, kernel_body, &targ);
}

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@@ -134,14 +134,10 @@ int main(int argc, char *argv[]) {
// allocate device memory
std::cout << "allocate device memory" << std::endl;
size_t arg_addr, src_addr, dst_addr;
RT_CHECK(vx_alloc_dev_mem(device, sizeof(kernel_arg_t), &arg_addr));
size_t src_addr, dst_addr;
RT_CHECK(vx_alloc_dev_mem(device, src_bufsize, &src_addr));
RT_CHECK(vx_alloc_dev_mem(device, dst_bufsize, &dst_addr));
assert(arg_addr == ALLOC_BASE_ADDR);
std::cout << "arg_addr=" << std::hex << arg_addr << std::endl;
std::cout << "src_addr=" << std::hex << src_addr << std::endl;
std::cout << "dst_addr=" << std::hex << dst_addr << std::endl;
@@ -154,20 +150,22 @@ int main(int argc, char *argv[]) {
std::cout << "upload kernel argument" << std::endl;
{
kernel_arg.num_tasks = std::min<uint32_t>(num_tasks, dst_height);
kernel_arg.src_width = src_width;
kernel_arg.src_height = src_height;
kernel_arg.src_stride = src_bpp;
kernel_arg.src_pitch = src_bpp * src_width * src_height;
kernel_arg.src_ptr = src_addr;
kernel_arg.dst_width = dst_width;
kernel_arg.dst_height = dst_height;
kernel_arg.dst_stride = dst_bpp;
kernel_arg.dst_pitch = dst_bpp * dst_width * dst_height;
kernel_arg.src_ptr = src_addr;
kernel_arg.dst_pitch = dst_bpp * dst_width * dst_height;
kernel_arg.dst_ptr = dst_addr;
auto buf_ptr = (int*)vx_host_ptr(buffer);
memcpy(buf_ptr, &kernel_arg, sizeof(kernel_arg_t));
RT_CHECK(vx_copy_to_dev(buffer, arg_addr, sizeof(kernel_arg_t), 0));
RT_CHECK(vx_copy_to_dev(buffer, KERNEL_ARG_DEV_MEM_ADDR, sizeof(kernel_arg_t), 0));
}
// upload source buffer0