12 std::ifstream file(filename, std::ios::binary);
14 std::cerr <<
"Error opening " << filename << std::endl;
17 file.seekg(0, std::ios::end);
18 std::vector<char> inbuf(file.tellg());
19 file.seekg(0, std::ios::beg);
20 file.read(inbuf.data(), inbuf.size());
37 std::cerr <<
"logger = " << &logger << std::endl;
41 const std::string engineFile =
"/data/users/xsup/MachineLearning/2024B_OnSky/Models/test_build_2024b";
42 std::vector<char> engineData;
47 std::ifstream file(engineFile, std::ios::binary);
49 std::cerr <<
"Error opening " << engineFile << std::endl;
52 file.seekg(0, std::ios::end);
53 std::vector<char> inbuf(file.tellg());
54 file.seekg(0, std::ios::beg);
55 file.read(inbuf.data(), inbuf.size());
59 IRuntime* runtime = createInferRuntime(logger);
61 std::cout <<
"Failed to createInferRuntime\n";
63 ICudaEngine* engine = runtime->deserializeCudaEngine(engineData.data(), engineData.size());
65 std::cout <<
"Failed to deserialize CUDA engine from " << engineFile <<
"\n";
68 std::cout <<
"Deserialized CUDA engine from " << engineFile <<
"\n";
70 IExecutionContext* context = engine->createExecutionContext();
73 const int inputSize = 4 * 60 * 60;
74 const int outputSize = 1564;
76 float inputData[inputSize] = {0};
77 float outputData[outputSize] = {0};
80 float* d_input =
nullptr;
81 float* d_output =
nullptr;
82 cudaMalloc((
void**)&d_input, inputSize *
sizeof(
float));
83 cudaMalloc((
void**)&d_output, outputSize *
sizeof(
float));
86 cudaMemcpy(d_input, inputData, inputSize *
sizeof(
float), cudaMemcpyHostToDevice);
89 void* buffers[] = {d_input, d_output};
90 context->executeV2(buffers);
93 cudaMemcpy(outputData, d_output, outputSize *
sizeof(
float), cudaMemcpyDeviceToHost);
103 std::cout <<
"Inference done! Output[0] = " << outputData[0] << std::endl;