Lines Matching refs:model
46 const std::string& message, const Model& model) { in validateGetSupportedOperations() argument
50 const auto retStatus = device->getSupportedOperations(model, &supported); in validateGetSupportedOperations()
59 const Model& model, ExecutionPreference preference, in validatePrepareModel() argument
66 device->prepareModel(model, preference, priority, kNoDeadline, {}, {}, kEmptyCacheToken, in validatePrepareModel()
81 const std::string& message, const Model& model, in validatePrepareModelWithConfig() argument
88 model, {preference, priority, kNoDeadline, {}, {}, kEmptyCacheTokenArray, {}, {}}, in validatePrepareModelWithConfig()
118 Model model = utils::clone(originalModel).value(); in validate() local
121 mutate(&model, &preference, &priority); in validate()
124 validateGetSupportedOperations(device, message, model); in validate()
127 validatePrepareModel(device, message, model, preference, priority); in validate()
133 validatePrepareModelWithConfig(device, message, model, preference, priority); in validate()
137 static uint32_t addOperand(Model* model) { in addOperand() argument
138 model->main.operands.push_back({ in addOperand()
146 return model->main.operands.size() - 1; in addOperand()
149 static uint32_t addOperand(Model* model, OperandLifeTime lifetime) { in addOperand() argument
150 uint32_t index = addOperand(model); in addOperand()
151 model->main.operands[index].lifetime = lifetime; in addOperand()
159 static size_t constantCopyExtraSize(const Model& model, size_t operandSize) { in constantCopyExtraSize() argument
160 const size_t operandValuesSize = model.operandValues.size(); in constantCopyExtraSize()
187 static void becomeConstantCopy(Model* model, Operand* operand) { in becomeConstantCopy() argument
194 if (model->operandValues.size() < sizeOfOperand) { in becomeConstantCopy()
195 model->operandValues.resize(sizeOfOperand); in becomeConstantCopy()
328 size_t sizeForBinder(const Model& model) { in sizeForBinder() argument
331 size += sizeForBinder(model.main); in sizeForBinder()
332 size += sizeForBinder(model.referenced); in sizeForBinder()
333 size += sizeForBinder(model.operandValues); in sizeForBinder()
334 size += sizeForBinder(model.pools); in sizeForBinder()
335 size += sizeForBinder(model.relaxComputationFloat32toFloat16); in sizeForBinder()
336 size += sizeForBinder(model.extensionNameToPrefix); in sizeForBinder()
369 static void mutateExecutionOrderTest(const std::shared_ptr<IDevice>& device, const Model& model, in mutateExecutionOrderTest() argument
371 for (size_t operation = 0; operation < model.main.operations.size(); ++operation) { in mutateExecutionOrderTest()
372 const Operation& operationObj = model.main.operations[operation]; in mutateExecutionOrderTest()
374 if (model.main.operands[input].lifetime == OperandLifeTime::TEMPORARY_VARIABLE || in mutateExecutionOrderTest()
375 model.main.operands[input].lifetime == OperandLifeTime::SUBGRAPH_OUTPUT) { in mutateExecutionOrderTest()
383 validate(device, message, model, in mutateExecutionOrderTest()
384 [operation](Model* model, ExecutionPreference*, Priority*) { in mutateExecutionOrderTest() argument
385 auto& operations = model->main.operations; in mutateExecutionOrderTest()
401 validate(device, message, model, in mutateExecutionOrderTest()
402 [operation](Model* model, ExecutionPreference*, Priority*) { in mutateExecutionOrderTest() argument
403 auto& operations = model->main.operations; in mutateExecutionOrderTest()
420 static void mutateOperandTypeTest(const std::shared_ptr<IDevice>& device, const Model& model) { in mutateOperandTypeTest() argument
421 for (size_t operand = 0; operand < model.main.operands.size(); ++operand) { in mutateOperandTypeTest()
426 validate(device, message, model, in mutateOperandTypeTest()
427 [operand, invalidOperandType](Model* model, ExecutionPreference*, Priority*) { in mutateOperandTypeTest() argument
428 model->main.operands[operand].type = in mutateOperandTypeTest()
460 static void mutateOperandRankTest(const std::shared_ptr<IDevice>& device, const Model& model) { in mutateOperandRankTest() argument
461 for (size_t operand = 0; operand < model.main.operands.size(); ++operand) { in mutateOperandRankTest()
462 const uint32_t invalidRank = getInvalidRank(model.main.operands[operand].type); in mutateOperandRankTest()
468 validate(device, message, model, in mutateOperandRankTest()
469 [operand, invalidRank](Model* model, ExecutionPreference*, Priority*) { in mutateOperandRankTest() argument
470 model->main.operands[operand].dimensions = in mutateOperandRankTest()
503 static void mutateOperandScaleTest(const std::shared_ptr<IDevice>& device, const Model& model) { in mutateOperandScaleTest() argument
504 for (size_t operand = 0; operand < model.main.operands.size(); ++operand) { in mutateOperandScaleTest()
505 const float invalidScale = getInvalidScale(model.main.operands[operand].type); in mutateOperandScaleTest()
508 validate(device, message, model, in mutateOperandScaleTest()
509 [operand, invalidScale](Model* model, ExecutionPreference*, Priority*) { in mutateOperandScaleTest() argument
510 model->main.operands[operand].scale = invalidScale; in mutateOperandScaleTest()
544 static void mutateOperandZeroPointTest(const std::shared_ptr<IDevice>& device, const Model& model) { in mutateOperandZeroPointTest() argument
545 for (size_t operand = 0; operand < model.main.operands.size(); ++operand) { in mutateOperandZeroPointTest()
547 getInvalidZeroPoints(model.main.operands[operand].type); in mutateOperandZeroPointTest()
552 validate(device, message, model, in mutateOperandZeroPointTest()
553 [operand, invalidZeroPoint](Model* model, ExecutionPreference*, Priority*) { in mutateOperandZeroPointTest() argument
554 model->main.operands[operand].zeroPoint = invalidZeroPoint; in mutateOperandZeroPointTest()
562 static std::vector<OperandLifeTime> getInvalidLifeTimes(const Model& model, size_t modelSize, in getInvalidLifeTimes() argument
602 exceedsBinderSizeLimit(modelSize + constantCopyExtraSize(model, operandSize))) { in getInvalidLifeTimes()
610 static void mutateOperandLifeTimeTest(const std::shared_ptr<IDevice>& device, const Model& model) { in mutateOperandLifeTimeTest() argument
611 const size_t modelSize = sizeForBinder(model); in mutateOperandLifeTimeTest()
612 for (size_t operand = 0; operand < model.main.operands.size(); ++operand) { in mutateOperandLifeTimeTest()
614 getInvalidLifeTimes(model, modelSize, model.main.operands[operand]); in mutateOperandLifeTimeTest()
619 toString(model.main.operands[operand].lifetime); in mutateOperandLifeTimeTest()
620 validate(device, message, model, in mutateOperandLifeTimeTest()
621 [operand, invalidLifeTime](Model* model, ExecutionPreference*, Priority*) { in mutateOperandLifeTimeTest() argument
623 Operand& operandObj = model->main.operands[operand]; in mutateOperandLifeTimeTest()
626 auto& inputs = model->main.inputIndexes; in mutateOperandLifeTimeTest()
632 auto& outputs = model->main.outputIndexes; in mutateOperandLifeTimeTest()
644 becomeConstantCopy(model, &operandObj); in mutateOperandLifeTimeTest()
648 model->main.inputIndexes.push_back(operand); in mutateOperandLifeTimeTest()
651 model->main.outputIndexes.push_back(operand); in mutateOperandLifeTimeTest()
663 static std::optional<OperandLifeTime> getInputOutputLifeTime(const Model& model, size_t modelSize, in getInputOutputLifeTime() argument
675 exceedsBinderSizeLimit(modelSize + constantCopyExtraSize(model, operandSize))) { in getInputOutputLifeTime()
703 const Model& model) { in mutateOperandInputOutputTest() argument
704 const size_t modelSize = sizeForBinder(model); in mutateOperandInputOutputTest()
705 for (size_t operand = 0; operand < model.main.operands.size(); ++operand) { in mutateOperandInputOutputTest()
707 getInputOutputLifeTime(model, modelSize, model.main.operands[operand]); in mutateOperandInputOutputTest()
712 toString(model.main.operands[operand].lifetime); in mutateOperandInputOutputTest()
713 validate(device, message, model, in mutateOperandInputOutputTest()
714 [operand, changedLifeTime](Model* model, ExecutionPreference*, Priority*) { in mutateOperandInputOutputTest() argument
716 Operand& operandObj = model->main.operands[operand]; in mutateOperandInputOutputTest()
720 becomeConstantCopy(model, &operandObj); in mutateOperandInputOutputTest()
729 static void mutateOperandAddWriterTest(const std::shared_ptr<IDevice>& device, const Model& model) { in mutateOperandAddWriterTest() argument
730 for (size_t operation = 0; operation < model.main.operations.size(); ++operation) { in mutateOperandAddWriterTest()
732 badOutputNum < model.main.operations[operation].outputs.size(); ++badOutputNum) { in mutateOperandAddWriterTest()
734 model.main.operations[operation].outputs[badOutputNum]; in mutateOperandAddWriterTest()
742 validate(device, message, model, in mutateOperandAddWriterTest()
743 [operation, badOutputNum](Model* model, ExecutionPreference*, Priority*) { in mutateOperandAddWriterTest() argument
744 Operation newOperation = model->main.operations[operation]; in mutateOperandAddWriterTest()
750 model->main.operands[newOperation.outputs[outputNum]]; in mutateOperandAddWriterTest()
757 newOperation.outputs[outputNum] = model->main.operands.size(); in mutateOperandAddWriterTest()
758 model->main.operands.push_back(operandValue); in mutateOperandAddWriterTest()
765 model->main.operations.push_back(newOperation); in mutateOperandAddWriterTest()
834 static bool mutateOperationOperandTypeSkip(size_t operand, OperandType type, const Model& model) { in mutateOperationOperandTypeSkip() argument
835 if (type == model.main.operands[operand].type) { in mutateOperationOperandTypeSkip()
838 for (const Operation& operation : model.main.operations) { in mutateOperationOperandTypeSkip()
940 const Model& model) { in mutateOperationOperandTypeTest() argument
941 for (size_t operand = 0; operand < model.main.operands.size(); ++operand) { in mutateOperationOperandTypeTest()
943 if (mutateOperationOperandTypeSkip(operand, invalidOperandType, model)) { in mutateOperationOperandTypeTest()
949 validate(device, message, model, in mutateOperationOperandTypeTest()
950 [operand, invalidOperandType](Model* model, ExecutionPreference*, Priority*) { in mutateOperationOperandTypeTest() argument
951 mutateOperand(&model->main.operands[operand], invalidOperandType); in mutateOperationOperandTypeTest()
964 static void mutateOperationTypeTest(const std::shared_ptr<IDevice>& device, const Model& model) { in mutateOperationTypeTest() argument
965 for (size_t operation = 0; operation < model.main.operations.size(); ++operation) { in mutateOperationTypeTest()
970 validate(device, message, model, in mutateOperationTypeTest()
971 [operation, invalidOperationType](Model* model, ExecutionPreference*, in mutateOperationTypeTest()
973 model->main.operations[operation].type = in mutateOperationTypeTest()
983 const Model& model) { in mutateOperationInputOperandIndexTest() argument
984 for (size_t operation = 0; operation < model.main.operations.size(); ++operation) { in mutateOperationInputOperandIndexTest()
985 const uint32_t invalidOperand = model.main.operands.size(); in mutateOperationInputOperandIndexTest()
986 for (size_t input = 0; input < model.main.operations[operation].inputs.size(); ++input) { in mutateOperationInputOperandIndexTest()
990 validate(device, message, model, in mutateOperationInputOperandIndexTest()
991 [operation, input, invalidOperand](Model* model, ExecutionPreference*, in mutateOperationInputOperandIndexTest() argument
993 model->main.operations[operation].inputs[input] = invalidOperand; in mutateOperationInputOperandIndexTest()
1002 const Model& model) { in mutateOperationOutputOperandIndexTest() argument
1003 for (size_t operation = 0; operation < model.main.operations.size(); ++operation) { in mutateOperationOutputOperandIndexTest()
1004 const uint32_t invalidOperand = model.main.operands.size(); in mutateOperationOutputOperandIndexTest()
1005 for (size_t output = 0; output < model.main.operations[operation].outputs.size(); in mutateOperationOutputOperandIndexTest()
1010 validate(device, message, model, in mutateOperationOutputOperandIndexTest()
1011 [operation, output, invalidOperand](Model* model, ExecutionPreference*, in mutateOperationOutputOperandIndexTest() argument
1013 model->main.operations[operation].outputs[output] = invalidOperand; in mutateOperationOutputOperandIndexTest()
1022 const Model& model, in mutateOperationRemoveWriteTest() argument
1024 for (size_t operation = 0; operation < model.main.operations.size(); ++operation) { in mutateOperationRemoveWriteTest()
1025 for (size_t outputNum = 0; outputNum < model.main.operations[operation].outputs.size(); in mutateOperationRemoveWriteTest()
1027 const uint32_t outputOperandIndex = model.main.operations[operation].outputs[outputNum]; in mutateOperationRemoveWriteTest()
1032 validate(device, message, model, in mutateOperationRemoveWriteTest()
1033 [operation, outputNum](Model* model, ExecutionPreference*, Priority*) { in mutateOperationRemoveWriteTest() argument
1035 model->main.operations[operation].outputs[outputNum]; in mutateOperationRemoveWriteTest()
1036 Operand operandValue = model->main.operands[outputOperandIndex]; in mutateOperationRemoveWriteTest()
1043 outputOperandIndex = model->main.operands.size(); in mutateOperationRemoveWriteTest()
1044 model->main.operands.push_back(operandValue); in mutateOperationRemoveWriteTest()
1064 static void removeOperand(Model* model, uint32_t index) { in removeOperand() argument
1065 model->main.operands.erase(model->main.operands.begin() + index); in removeOperand()
1066 for (Operation& operation : model->main.operations) { in removeOperand()
1070 removeValueAndDecrementGreaterValues(&model->main.inputIndexes, index); in removeOperand()
1071 removeValueAndDecrementGreaterValues(&model->main.outputIndexes, index); in removeOperand()
1074 static bool removeOperandSkip(size_t operandIndex, const Model& model, in removeOperandSkip() argument
1080 for (const Operation& operation : model.main.operations) { in removeOperandSkip()
1110 static void removeOperandTest(const std::shared_ptr<IDevice>& device, const Model& model, in removeOperandTest() argument
1112 for (size_t operand = 0; operand < model.main.operands.size(); ++operand) { in removeOperandTest()
1113 if (removeOperandSkip(operand, model, numberOfConsumers)) { in removeOperandTest()
1117 validate(device, message, model, [operand](Model* model, ExecutionPreference*, Priority*) { in removeOperandTest() argument
1118 removeOperand(model, operand); in removeOperandTest()
1125 static void removeOperation(Model* model, uint32_t index) { in removeOperation() argument
1126 auto& operations = model->main.operations; in removeOperation()
1130 static void removeOperationTest(const std::shared_ptr<IDevice>& device, const Model& model) { in removeOperationTest() argument
1131 for (size_t operation = 0; operation < model.main.operations.size(); ++operation) { in removeOperationTest()
1133 validate(device, message, model, in removeOperationTest()
1134 [operation](Model* model, ExecutionPreference*, Priority*) { in removeOperationTest() argument
1135 removeOperation(model, operation); in removeOperationTest()
1220 static void removeOperationInputTest(const std::shared_ptr<IDevice>& device, const Model& model) { in removeOperationInputTest() argument
1221 for (size_t operation = 0; operation < model.main.operations.size(); ++operation) { in removeOperationInputTest()
1222 for (size_t input = 0; input < model.main.operations[operation].inputs.size(); ++input) { in removeOperationInputTest()
1223 const Operation& op = model.main.operations[operation]; in removeOperationInputTest()
1230 validate(device, message, model, in removeOperationInputTest()
1231 [operation, input](Model* model, ExecutionPreference*, Priority*) { in removeOperationInputTest() argument
1232 auto& inputs = model->main.operations[operation].inputs; in removeOperationInputTest()
1241 static void removeOperationOutputTest(const std::shared_ptr<IDevice>& device, const Model& model) { in removeOperationOutputTest() argument
1242 for (size_t operation = 0; operation < model.main.operations.size(); ++operation) { in removeOperationOutputTest()
1243 for (size_t output = 0; output < model.main.operations[operation].outputs.size(); in removeOperationOutputTest()
1248 validate(device, message, model, in removeOperationOutputTest()
1249 [operation, output](Model* model, ExecutionPreference*, Priority*) { in removeOperationOutputTest() argument
1250 auto& outputs = model->main.operations[operation].outputs; in removeOperationOutputTest()
1279 static void addOperationInputTest(const std::shared_ptr<IDevice>& device, const Model& model) { in addOperationInputTest() argument
1280 for (size_t operation = 0; operation < model.main.operations.size(); ++operation) { in addOperationInputTest()
1281 if (addOperationInputSkip(model.main.operations[operation])) { in addOperationInputTest()
1285 validate(device, message, model, in addOperationInputTest()
1286 [operation](Model* model, ExecutionPreference*, Priority*) { in addOperationInputTest() argument
1287 uint32_t index = addOperand(model, OperandLifeTime::SUBGRAPH_INPUT); in addOperationInputTest()
1288 model->main.operations[operation].inputs.push_back(index); in addOperationInputTest()
1289 model->main.inputIndexes.push_back(index); in addOperationInputTest()
1296 static void addOperationOutputTest(const std::shared_ptr<IDevice>& device, const Model& model) { in addOperationOutputTest() argument
1297 for (size_t operation = 0; operation < model.main.operations.size(); ++operation) { in addOperationOutputTest()
1300 validate(device, message, model, in addOperationOutputTest()
1301 [operation](Model* model, ExecutionPreference*, Priority*) { in addOperationOutputTest() argument
1302 uint32_t index = addOperand(model, OperandLifeTime::SUBGRAPH_OUTPUT); in addOperationOutputTest()
1303 model->main.operations[operation].outputs.push_back(index); in addOperationOutputTest()
1304 model->main.outputIndexes.push_back(index); in addOperationOutputTest()
1317 const Model& model) { in mutateExecutionPreferenceTest() argument
1321 validate(device, message, model, in mutateExecutionPreferenceTest()
1336 const Model& model) { in mutateExecutionPriorityTest() argument
1340 validate(device, message, model, in mutateExecutionPriorityTest()
1349 void validateModel(const std::shared_ptr<IDevice>& device, const Model& model) { in validateModel() argument
1351 countNumberOfConsumers(model.main.operands.size(), in validateModel()
1352 nn::unvalidatedConvert(model.main.operations).value()) in validateModel()
1354 mutateExecutionOrderTest(device, model, numberOfConsumers); in validateModel()
1355 mutateOperandTypeTest(device, model); in validateModel()
1356 mutateOperandRankTest(device, model); in validateModel()
1357 mutateOperandScaleTest(device, model); in validateModel()
1358 mutateOperandZeroPointTest(device, model); in validateModel()
1359 mutateOperandLifeTimeTest(device, model); in validateModel()
1360 mutateOperandInputOutputTest(device, model); in validateModel()
1361 mutateOperandAddWriterTest(device, model); in validateModel()
1362 mutateOperationOperandTypeTest(device, model); in validateModel()
1363 mutateOperationTypeTest(device, model); in validateModel()
1364 mutateOperationInputOperandIndexTest(device, model); in validateModel()
1365 mutateOperationOutputOperandIndexTest(device, model); in validateModel()
1366 mutateOperationRemoveWriteTest(device, model, numberOfConsumers); in validateModel()
1367 removeOperandTest(device, model, numberOfConsumers); in validateModel()
1368 removeOperationTest(device, model); in validateModel()
1369 removeOperationInputTest(device, model); in validateModel()
1370 removeOperationOutputTest(device, model); in validateModel()
1371 addOperationInputTest(device, model); in validateModel()
1372 addOperationOutputTest(device, model); in validateModel()
1373 mutateExecutionPreferenceTest(device, model); in validateModel()
1374 mutateExecutionPriorityTest(device, model); in validateModel()