2727#include " infer_request.h"
2828
2929#include < boost/interprocess/sync/scoped_lock.hpp>
30+
3031#include " pb_utils.h"
3132#include " scoped_defer.h"
3233#ifdef TRITON_PB_STUB
@@ -40,12 +41,12 @@ InferRequest::InferRequest(
4041 const std::vector<std::shared_ptr<PbTensor>>& inputs,
4142 const std::set<std::string>& requested_output_names,
4243 const std::string& model_name, const int64_t model_version,
43- const uint32_t flags, const int32_t timeout,
44+ const std::string& parameters, const uint32_t flags, const int32_t timeout,
4445 const intptr_t response_factory_address, const intptr_t request_address)
4546 : request_id_(request_id), correlation_id_(correlation_id), inputs_(inputs),
4647 requested_output_names_ (requested_output_names), model_name_(model_name),
47- model_version_(model_version), flags_(flags ), timeout_(timeout ),
48- response_factory_address_(response_factory_address),
48+ model_version_(model_version), parameters_(parameters ), flags_(flags ),
49+ timeout_(timeout), response_factory_address_(response_factory_address),
4950 request_address_(request_address)
5051{
5152 for (auto & input : inputs) {
@@ -79,6 +80,12 @@ InferRequest::Inputs()
7980 return inputs_;
8081}
8182
83+ const std::string&
84+ InferRequest::Parameters ()
85+ {
86+ return parameters_;
87+ }
88+
8289const std::string&
8390InferRequest::RequestId ()
8491{
@@ -160,7 +167,8 @@ InferRequest::SaveToSharedMemory(std::unique_ptr<SharedMemoryManager>& shm_pool)
160167 sizeof (bi::managed_external_buffer::handle_t )) +
161168 (Inputs ().size () * sizeof (bi::managed_external_buffer::handle_t )) +
162169 PbString::ShmStructSize (ModelName ()) +
163- PbString::ShmStructSize (RequestId ()));
170+ PbString::ShmStructSize (RequestId ()) +
171+ PbString::ShmStructSize (Parameters ()));
164172
165173 infer_request_shm_ptr_ =
166174 reinterpret_cast <InferRequestShm*>(infer_request_shm.data_ .get ());
@@ -222,10 +230,18 @@ InferRequest::SaveToSharedMemory(std::unique_ptr<SharedMemoryManager>& shm_pool)
222230 reinterpret_cast <char *>(infer_request_shm_ptr_) + request_id_offset,
223231 infer_request_shm.handle_ + request_id_offset);
224232
233+ size_t parameters_offset =
234+ request_id_offset + PbString::ShmStructSize (RequestId ());
235+ std::unique_ptr<PbString> parameters_shm = PbString::Create (
236+ Parameters (),
237+ reinterpret_cast <char *>(infer_request_shm_ptr_) + parameters_offset,
238+ infer_request_shm.handle_ + parameters_offset);
239+
225240 // Save the references to shared memory.
226241 infer_request_shm_ = std::move (infer_request_shm);
227242 request_id_shm_ = std::move (request_id_shm);
228243 model_name_shm_ = std::move (model_name_shm);
244+ parameters_shm_ = std::move (parameters_shm);
229245 shm_handle_ = infer_request_shm_.handle_ ;
230246 requested_output_names_shm_ = std::move (requested_output_names_shm);
231247}
@@ -286,21 +302,28 @@ InferRequest::LoadFromSharedMemory(
286302 request_handle + request_id_offset,
287303 reinterpret_cast <char *>(infer_request_shm_ptr) + request_id_offset);
288304
305+ size_t parameters_offset = request_id_offset + request_id_shm->Size ();
306+ std::unique_ptr<PbString> parameters_shm = PbString::LoadFromSharedMemory (
307+ request_handle + request_id_offset,
308+ reinterpret_cast <char *>(infer_request_shm_ptr) + parameters_offset);
309+
289310 return std::unique_ptr<InferRequest>(new InferRequest (
290311 infer_request_shm, request_id_shm, requested_output_names_shm,
291- model_name_shm, input_tensors));
312+ model_name_shm, input_tensors, parameters_shm ));
292313}
293314
294315InferRequest::InferRequest (
295316 AllocatedSharedMemory<char >& infer_request_shm,
296317 std::unique_ptr<PbString>& request_id_shm,
297318 std::vector<std::unique_ptr<PbString>>& requested_output_names_shm,
298319 std::unique_ptr<PbString>& model_name_shm,
299- std::vector<std::shared_ptr<PbTensor>>& input_tensors)
320+ std::vector<std::shared_ptr<PbTensor>>& input_tensors,
321+ std::unique_ptr<PbString>& parameters_shm)
300322 : infer_request_shm_(std::move(infer_request_shm)),
301323 request_id_shm_(std::move(request_id_shm)),
302324 requested_output_names_shm_(std::move(requested_output_names_shm)),
303- model_name_shm_(std::move(model_name_shm))
325+ model_name_shm_(std::move(model_name_shm)),
326+ parameters_shm_(std::move(parameters_shm))
304327{
305328 infer_request_shm_ptr_ =
306329 reinterpret_cast <InferRequestShm*>(infer_request_shm_.data_ .get ());
@@ -325,6 +348,7 @@ InferRequest::InferRequest(
325348 }
326349
327350 request_id_ = request_id_shm_->String ();
351+ parameters_ = parameters_shm_->String ();
328352 requested_output_names_ = std::move (requested_output_names);
329353 model_name_ = model_name_shm_->String ();
330354 flags_ = infer_request_shm_ptr_->flags ;
0 commit comments