vecaddx: Write args.bin and input.bin

This commit is contained in:
Hansung Kim
2024-03-26 10:44:02 -07:00
parent ff401bdec0
commit cc7b34ec5b

View File

@@ -1,4 +1,5 @@
#include <iostream> #include <iostream>
#include <fstream>
#include <unistd.h> #include <unistd.h>
#include <string.h> #include <string.h>
#include <vector> #include <vector>
@@ -201,10 +202,19 @@ int main(int argc, char *argv[]) {
memcpy(staging_buf.data(), &kernel_arg, sizeof(kernel_arg_t)); memcpy(staging_buf.data(), &kernel_arg, sizeof(kernel_arg_t));
RT_CHECK(vx_copy_to_dev(device, KERNEL_ARG_DEV_MEM_ADDR, staging_buf.data(), sizeof(kernel_arg_t))); RT_CHECK(vx_copy_to_dev(device, KERNEL_ARG_DEV_MEM_ADDR, staging_buf.data(), sizeof(kernel_arg_t)));
std::ofstream file("args.bin", std::ios::binary | std::ios::out);
if (!file) {
std::cerr << "error: failed to open args.bin for writing\n";
exit(EXIT_FAILURE);
}
file.write(reinterpret_cast<char *>(staging_buf.data()), sizeof(kernel_arg_t));
file.close();
// generate source data // generate source data
source_data.resize(2 * num_points); source_data.resize(2 * num_points);
for (uint32_t i = 0; i < source_data.size(); ++i) { for (uint32_t i = 0; i < source_data.size(); ++i) {
source_data[i] = Comparator<TYPE>::generate(); // source_data[i] = Comparator<TYPE>::generate();
source_data[i] = static_cast<float>(i);
} }
// upload source buffer0 // upload source buffer0
@@ -215,6 +225,14 @@ int main(int argc, char *argv[]) {
buf_ptr[i] = source_data[2 * i + 0]; buf_ptr[i] = source_data[2 * i + 0];
} }
RT_CHECK(vx_copy_to_dev(device, kernel_arg.src0_addr, staging_buf.data(), buf_size)); RT_CHECK(vx_copy_to_dev(device, kernel_arg.src0_addr, staging_buf.data(), buf_size));
std::ofstream file("input.a.bin", std::ios::binary | std::ios::out);
if (!file) {
std::cerr << "error: failed to open input.a.bin for writing\n";
exit(EXIT_FAILURE);
}
file.write(reinterpret_cast<char *>(buf_ptr), buf_size);
file.close();
} }
// upload source buffer1 // upload source buffer1
@@ -225,6 +243,14 @@ int main(int argc, char *argv[]) {
buf_ptr[i] = source_data[2 * i + 1]; buf_ptr[i] = source_data[2 * i + 1];
} }
RT_CHECK(vx_copy_to_dev(device, kernel_arg.src1_addr, staging_buf.data(), buf_size)); RT_CHECK(vx_copy_to_dev(device, kernel_arg.src1_addr, staging_buf.data(), buf_size));
std::ofstream file("input.b.bin", std::ios::binary | std::ios::out);
if (!file) {
std::cerr << "error: failed to open input.b.bin for writing\n";
exit(EXIT_FAILURE);
}
file.write(reinterpret_cast<char *>(buf_ptr), buf_size);
file.close();
} }
// clear destination buffer // clear destination buffer