diff --git a/tests/regression/sgemm_wg/main.cpp b/tests/regression/sgemm_wg/main.cpp index 229463ef..93152896 100644 --- a/tests/regression/sgemm_wg/main.cpp +++ b/tests/regression/sgemm_wg/main.cpp @@ -58,9 +58,9 @@ static void parse_args(int argc, char **argv) { void cleanup() { if (device) { - vx_mem_free(device, kernel_arg.addr_a); - vx_mem_free(device, kernel_arg.addr_b); - vx_mem_free(device, kernel_arg.addr_c); + // vx_mem_free(device, kernel_arg.addr_a); + // vx_mem_free(device, kernel_arg.addr_b); + // vx_mem_free(device, kernel_arg.addr_c); vx_dev_close(device); } } @@ -108,6 +108,17 @@ int run_test(const kernel_arg_t& kernel_arg, std::cout << "download destination buffer" << std::endl; 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(staging_buf.data()), buf_size); + file.close(); + // verify result std::cout << "verify result" << std::endl; { @@ -166,9 +177,12 @@ int main(int argc, char *argv[]) { // allocate device memory 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_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, 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, 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_n = dim_n; @@ -222,7 +236,7 @@ int main(int argc, char *argv[]) { << src_a_buf_size << " bytes\n"; std::ofstream file("input.a.bin", std::ios::binary | std::ios::out); 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); } file.write(reinterpret_cast(buf_ptr), src_a_buf_size); @@ -239,7 +253,7 @@ int main(int argc, char *argv[]) { << src_b_buf_size << " bytes\n"; std::ofstream file("input.b.bin", std::ios::binary | std::ios::out); 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); } file.write(reinterpret_cast(buf_ptr), src_b_buf_size);