Skip to content

Commit 3634cbb

Browse files
Merge pull request #6 from FrancescoOlivaTC/develop
Refactor gRPC client methods to use Nvidia proto requests
2 parents 74aea11 + 3d55897 commit 3634cbb

File tree

3 files changed

+84
-46
lines changed

3 files changed

+84
-46
lines changed

inference_client/examples/client_example_model_info.cpp

Lines changed: 22 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ int main(int, char**)
2525
auto client = tc::infer::create_client("localhost:8001");
2626

2727
auto model_name = "simple_int32";
28-
auto model_version = "1";
28+
auto model_version = "";
2929

3030
try
3131
{
@@ -34,6 +34,24 @@ int main(int, char**)
3434
spdlog::debug("\n");
3535
spdlog::debug("is_model_ready: {}", is_model_ready);
3636

37+
// Model List
38+
auto model_list = client->model_list();
39+
spdlog::debug("\n");
40+
spdlog::debug("model_list:");
41+
for (auto&& model : model_list)
42+
spdlog::debug(model);
43+
44+
// Model Load
45+
auto is_model_loaded = client->model_load(model_name, model_version);
46+
spdlog::debug("\n");
47+
spdlog::debug("model_load: {}", is_model_loaded);
48+
49+
if (!is_model_loaded)
50+
{
51+
spdlog::error("Model {} version {} not loaded", model_name, model_version);
52+
return EXIT_FAILURE;
53+
}
54+
3755
// Model Metadata
3856
auto model_metadata = client->model_metadata(model_name, model_version);
3957
spdlog::debug("\n");
@@ -59,25 +77,10 @@ int main(int, char**)
5977
spdlog::debug(" shape: [{}]", fmt::join(output.shape, ","));
6078
}
6179

62-
// Model List
63-
/* CURRENTLY NOT IMPLEMENTED IN TRITON INFERENCE SERVER (AMD SERVER ONLY) */
64-
// auto model_list = client->model_list();
65-
// spdlog::debug("\n");
66-
// spdlog::debug("model_list:");
67-
// for (auto&& model : model_list)
68-
// spdlog::debug(model);
69-
70-
// Model Load
71-
/* CURRENTLY NOT IMPLEMENTED IN TRITON INFERENCE SERVER (AMD SERVER ONLY) */
72-
// auto is_model_loaded = client->model_load(model_name, model_version);
73-
// spdlog::debug("\n");
74-
// spdlog::debug("model_load: {}", is_model_loaded);
75-
7680
// Model Unload
77-
/* CURRENTLY NOT IMPLEMENTED IN TRITON INFERENCE SERVER (AMD SERVER ONLY) */
78-
// auto is_model_unloaded = client->model_unload(model_name, model_version);
79-
// spdlog::debug("\n");
80-
// spdlog::debug("model_unload: {}", is_model_unloaded);
81+
auto is_model_unloaded = client->model_unload(model_name, model_version);
82+
spdlog::debug("\n");
83+
spdlog::debug("model_unload: {}", is_model_unloaded);
8184
}
8285
catch (const std::runtime_error& ex)
8386
{

inference_client/src/grpc_client.cpp

Lines changed: 24 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -107,45 +107,56 @@ bool grpc_client::is_model_ready(const std::string& model_name, const std::strin
107107

108108
std::vector<std::string> grpc_client::model_list()
109109
{
110-
inference::ModelListRequest request;
111-
inference::ModelListResponse response;
110+
inference::RepositoryIndexRequest request;
111+
inference::RepositoryIndexResponse response;
112112
grpc::ClientContext context;
113113

114+
// Set repository_name to empty string for default repository
115+
request.set_repository_name("");
116+
request.set_ready(false); // Get all models, not just ready ones
117+
114118
context.set_deadline(std::chrono::system_clock::now() + _rpc_timeout);
115-
grpc::Status rpc_status = _stub->ModelList(&context, request, &response);
119+
grpc::Status rpc_status = _stub->RepositoryIndex(&context, request, &response);
116120
check_status(rpc_status);
117121

118-
const auto models = response.models();
119-
const std::vector<std::string> model_list(models.begin(), models.end());
122+
std::vector<std::string> model_list;
123+
for (const auto& model : response.models())
124+
{
125+
model_list.push_back(model.name());
126+
}
120127

121128
return model_list;
122129
}
123130

124131
bool grpc_client::model_load(const std::string& model_name, const std::string&)
125132
{
126-
inference::ModelLoadRequest request;
127-
inference::ModelLoadResponse response;
133+
inference::RepositoryModelLoadRequest request;
134+
inference::RepositoryModelLoadResponse response;
128135
grpc::ClientContext context;
129136

130-
request.set_name(model_name);
137+
// Set repository_name to empty string for default repository
138+
request.set_repository_name("");
139+
request.set_model_name(model_name);
131140

132141
context.set_deadline(std::chrono::system_clock::now() + _rpc_timeout);
133-
grpc::Status rpc_status = _stub->ModelLoad(&context, request, &response);
142+
grpc::Status rpc_status = _stub->RepositoryModelLoad(&context, request, &response);
134143
check_status(rpc_status);
135144

136145
return true;
137146
}
138147

139148
bool grpc_client::model_unload(const std::string& model_name, const std::string&)
140149
{
141-
inference::ModelUnloadRequest request;
142-
inference::ModelUnloadResponse response;
150+
inference::RepositoryModelUnloadRequest request;
151+
inference::RepositoryModelUnloadResponse response;
143152
grpc::ClientContext context;
144153

145-
request.set_name(model_name);
154+
// Set repository_name to empty string for default repository
155+
request.set_repository_name("");
156+
request.set_model_name(model_name);
146157

147158
context.set_deadline(std::chrono::system_clock::now() + _rpc_timeout);
148-
grpc::Status rpc_status = _stub->ModelUnload(&context, request, &response);
159+
grpc::Status rpc_status = _stub->RepositoryModelUnload(&context, request, &response);
149160
check_status(rpc_status);
150161

151162
return true;

proto/services.proto

Lines changed: 38 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,11 @@ service GRPCInferenceService
66
rpc ServerLive(ServerLiveRequest) returns (ServerLiveResponse) {}
77
rpc ServerReady(ServerReadyRequest) returns (ServerReadyResponse) {}
88
rpc ServerMetadata(ServerMetadataRequest) returns (ServerMetadataResponse) {}
9-
109
rpc ModelReady(ModelReadyRequest) returns (ModelReadyResponse) {}
11-
rpc ModelList(ModelListRequest) returns (ModelListResponse) {}
10+
rpc RepositoryIndex(RepositoryIndexRequest) returns (RepositoryIndexResponse) {}
1211
rpc ModelMetadata(ModelMetadataRequest) returns (ModelMetadataResponse) {}
13-
rpc ModelLoad(ModelLoadRequest) returns (ModelLoadResponse) {}
14-
rpc ModelUnload(ModelUnloadRequest) returns (ModelUnloadResponse) {}
12+
rpc RepositoryModelLoad(RepositoryModelLoadRequest) returns (RepositoryModelLoadResponse) {}
13+
rpc RepositoryModelUnload(RepositoryModelUnloadRequest) returns (RepositoryModelUnloadResponse) {}
1514
rpc ModelInfer(ModelInferRequest) returns (ModelInferResponse) {}
1615
}
1716

@@ -37,10 +36,21 @@ message ModelReadyResponse
3736
bool ready = 1;
3837
}
3938

40-
message ModelListRequest {}
41-
message ModelListResponse
39+
message RepositoryIndexRequest
4240
{
43-
repeated string models = 1;
41+
string repository_name = 1;
42+
bool ready = 2;
43+
}
44+
message RepositoryIndexResponse
45+
{
46+
message ModelIndex
47+
{
48+
string name = 1;
49+
string version = 2;
50+
string state = 3;
51+
string reason = 4;
52+
}
53+
repeated ModelIndex models = 1;
4454
}
4555

4656
message ServerMetadataRequest {}
@@ -71,18 +81,32 @@ message ModelMetadataResponse
7181
repeated TensorMetadata outputs = 5;
7282
}
7383

74-
message ModelLoadRequest
84+
message ModelRepositoryParameter
7585
{
76-
string name = 1;
77-
map<string, InferParameter> parameters = 2;
86+
oneof parameter_choice
87+
{
88+
bool bool_param = 1;
89+
int64 int64_param = 2;
90+
string string_param = 3;
91+
bytes bytes_param = 4;
92+
}
7893
}
79-
message ModelLoadResponse {}
8094

81-
message ModelUnloadRequest
95+
message RepositoryModelLoadRequest
8296
{
83-
string name = 1;
97+
string repository_name = 1;
98+
string model_name = 2;
99+
map<string, ModelRepositoryParameter> parameters = 3;
100+
}
101+
message RepositoryModelLoadResponse {}
102+
103+
message RepositoryModelUnloadRequest
104+
{
105+
string repository_name = 1;
106+
string model_name = 2;
107+
map<string, ModelRepositoryParameter> parameters = 3;
84108
}
85-
message ModelUnloadResponse {}
109+
message RepositoryModelUnloadResponse {}
86110

87111
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
88112

0 commit comments

Comments
 (0)