MCPcopy Create free account
hub / github.com/alibaba/MNN / main

Function main

tools/cpp/GpuInterTest.cpp:234–434  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

232#endif
233
234int main(int argc, char *argv[]) {
235 if (argc < 3) {
236 MNN_ERROR("Usage: ./GpuInterTest.out ${test.mnn} ${Dir} [testMode] [forwardType] [numberThread] [precision | memory]\n");
237 return 0;
238 }
239 std::string modelName = argv[1];
240 std::string directName = argv[2];
241 MNN_PRINT("Test %s from input info: %s\n", modelName.c_str(), directName.c_str());
242 std::map<std::string, float> inputInfo;
243 std::map<std::string, std::vector<int>> inputShape;
244 std::vector<std::string> inputNames;
245 std::vector<std::string> outputNames;
246 int repeatNumber = 1;
247 bool shapeMutable = true;
248 std::vector<VARP> inputs;
249 std::vector<VARP> outputs;
250 if (inputNames.empty()) {
251 rapidjson::Document document;
252 std::ostringstream jsonNameOs;
253 jsonNameOs << directName << "/input.json";
254 std::ifstream fileNames(jsonNameOs.str().c_str());
255 std::ostringstream output;
256 output << fileNames.rdbuf();
257 auto outputStr = output.str();
258 document.Parse(outputStr.c_str());
259 if (document.HasParseError()) {
260 MNN_ERROR("Invalid json\n");
261 return 0;
262 }
263 if (document.HasMember("inputs")) {
264 auto inputsInfo = document["inputs"].GetArray();
265 for (auto iter = inputsInfo.begin(); iter !=inputsInfo.end(); iter++) {
266 auto obj = iter->GetObject();
267 std::string name = obj["name"].GetString();
268 inputNames.emplace_back(name);
269 MNN_PRINT("%s\n", name.c_str());
270 if (obj.HasMember("value")) {
271 float value = obj["value"].GetFloat();
272 inputInfo.insert(std::make_pair(name, value));
273 }
274 if (obj.HasMember("shape")) {
275 auto dims = obj["shape"].GetArray();
276 std::vector<int> shapes;
277 for (auto iter = dims.begin(); iter != dims.end(); iter++) {
278 shapes.emplace_back(iter->GetInt());
279 }
280 inputShape.insert(std::make_pair(name, shapes));
281 }
282 }
283 }
284 if (document.HasMember("outputs")) {
285 auto array = document["outputs"].GetArray();
286 for (auto iter = array.begin(); iter !=array.end(); iter++) {
287 std::string name = iter->GetString();
288 MNN_PRINT("output: %s\n", name.c_str());
289 outputNames.emplace_back(name);
290 }
291 }

Callers

nothing calls this directly

Calls 15

_InputFunction · 0.85
creatAHardwareBufferFunction · 0.85
HasMemberMethod · 0.80
copyToDevicePtrMethod · 0.80
updateCacheMethod · 0.80
ReleaseAHardWareBufferFunction · 0.70
loadFunction · 0.50
c_strMethod · 0.45
emptyMethod · 0.45
strMethod · 0.45
ParseMethod · 0.45
HasParseErrorMethod · 0.45

Tested by

no test coverage detected