Merge branch 'kernels' of https://github.com/hansungk/vortex-private into kernels
This commit is contained in:
@@ -58,9 +58,9 @@ static void parse_args(int argc, char **argv) {
|
|||||||
|
|
||||||
void cleanup() {
|
void cleanup() {
|
||||||
if (device) {
|
if (device) {
|
||||||
vx_mem_free(device, kernel_arg.addr_a);
|
// vx_mem_free(device, kernel_arg.addr_a);
|
||||||
vx_mem_free(device, kernel_arg.addr_b);
|
// vx_mem_free(device, kernel_arg.addr_b);
|
||||||
vx_mem_free(device, kernel_arg.addr_c);
|
// vx_mem_free(device, kernel_arg.addr_c);
|
||||||
vx_dev_close(device);
|
vx_dev_close(device);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -108,6 +108,17 @@ int run_test(const kernel_arg_t& kernel_arg,
|
|||||||
std::cout << "download destination buffer" << std::endl;
|
std::cout << "download destination buffer" << std::endl;
|
||||||
RT_CHECK(vx_copy_from_dev(device, staging_buf.data(), kernel_arg.addr_c, buf_size));
|
RT_CHECK(vx_copy_from_dev(device, staging_buf.data(), kernel_arg.addr_c, buf_size));
|
||||||
|
|
||||||
|
std::cout << "downloading result C matrix from device, device mem address="
|
||||||
|
<< std::hex << kernel_arg.addr_c << ", size=" << std::dec
|
||||||
|
<< buf_size << " bytes\n";
|
||||||
|
std::ofstream file("output.c.bin", std::ios::binary | std::ios::out);
|
||||||
|
if (!file) {
|
||||||
|
std::cerr << "error: failed to open output.c.bin for writing\n";
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
|
file.write(reinterpret_cast<char *>(staging_buf.data()), buf_size);
|
||||||
|
file.close();
|
||||||
|
|
||||||
// verify result
|
// verify result
|
||||||
std::cout << "verify result" << std::endl;
|
std::cout << "verify result" << std::endl;
|
||||||
{
|
{
|
||||||
@@ -166,9 +177,12 @@ int main(int argc, char *argv[]) {
|
|||||||
|
|
||||||
// allocate device memory
|
// allocate device memory
|
||||||
std::cout << "allocate device memory" << std::endl;
|
std::cout << "allocate device memory" << std::endl;
|
||||||
RT_CHECK(vx_mem_alloc(device, src_a_buf_size, VX_MEM_TYPE_GLOBAL, &kernel_arg.addr_a));
|
// RT_CHECK(vx_mem_alloc(device, src_a_buf_size, VX_MEM_TYPE_GLOBAL, &kernel_arg.addr_a));
|
||||||
RT_CHECK(vx_mem_alloc(device, src_b_buf_size, VX_MEM_TYPE_GLOBAL, &kernel_arg.addr_b));
|
// RT_CHECK(vx_mem_alloc(device, src_b_buf_size, VX_MEM_TYPE_GLOBAL, &kernel_arg.addr_b));
|
||||||
RT_CHECK(vx_mem_alloc(device, dst_buf_size, VX_MEM_TYPE_GLOBAL, &kernel_arg.addr_c));
|
// RT_CHECK(vx_mem_alloc(device, dst_buf_size, VX_MEM_TYPE_GLOBAL, &kernel_arg.addr_c));
|
||||||
|
kernel_arg.addr_a = 0x20000UL;
|
||||||
|
kernel_arg.addr_b = 0x28000UL;
|
||||||
|
kernel_arg.addr_c = 0xc0000000UL;
|
||||||
|
|
||||||
kernel_arg.dim_m = dim_m;
|
kernel_arg.dim_m = dim_m;
|
||||||
kernel_arg.dim_n = dim_n;
|
kernel_arg.dim_n = dim_n;
|
||||||
@@ -222,7 +236,7 @@ int main(int argc, char *argv[]) {
|
|||||||
<< src_a_buf_size << " bytes\n";
|
<< src_a_buf_size << " bytes\n";
|
||||||
std::ofstream file("input.a.bin", std::ios::binary | std::ios::out);
|
std::ofstream file("input.a.bin", std::ios::binary | std::ios::out);
|
||||||
if (!file) {
|
if (!file) {
|
||||||
std::cerr << "error: failed to open args.bin for writing\n";
|
std::cerr << "error: failed to open input.a.bin for writing\n";
|
||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
file.write(reinterpret_cast<char *>(buf_ptr), src_a_buf_size);
|
file.write(reinterpret_cast<char *>(buf_ptr), src_a_buf_size);
|
||||||
@@ -239,7 +253,7 @@ int main(int argc, char *argv[]) {
|
|||||||
<< src_b_buf_size << " bytes\n";
|
<< src_b_buf_size << " bytes\n";
|
||||||
std::ofstream file("input.b.bin", std::ios::binary | std::ios::out);
|
std::ofstream file("input.b.bin", std::ios::binary | std::ios::out);
|
||||||
if (!file) {
|
if (!file) {
|
||||||
std::cerr << "error: failed to open args.bin for writing\n";
|
std::cerr << "error: failed to open input.b.bin for writing\n";
|
||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
file.write(reinterpret_cast<char *>(buf_ptr), src_b_buf_size);
|
file.write(reinterpret_cast<char *>(buf_ptr), src_b_buf_size);
|
||||||
|
|||||||
Reference in New Issue
Block a user