Lines Matching full:capabilities

232 // Capabilities::operandPerformance utilities.
233 // The field Capabilities::operandPerformance is a vector sorted by the field
234 // Capabilities::OperandPerformance::type.
257 template hardware::hidl_vec<V1_2::Capabilities::OperandPerformance>
259 template hardware::hidl_vec<V1_3::Capabilities::OperandPerformance>
275 void update(hardware::hidl_vec<V1_2::Capabilities::OperandPerformance>* operandPerformance, in update()
279 void update(hardware::hidl_vec<V1_3::Capabilities::OperandPerformance>* operandPerformance, in update()
303 const hardware::hidl_vec<V1_2::Capabilities::OperandPerformance>& operandPerformance, in lookup()
308 const hardware::hidl_vec<V1_3::Capabilities::OperandPerformance>& operandPerformance, in lookup()
311 << "Use Capabilities::ifPerformance or Capabilities::whilePerformance"; in lookup()
328 static bool isQuantized8PerformanceConsistentWithP(const V1_2::Capabilities& capabilities) { in isQuantized8PerformanceConsistentWithP() argument
330 lookup(capabilities.operandPerformance, V1_2::OperandType::TENSOR_QUANT8_ASYMM); in isQuantized8PerformanceConsistentWithP()
333 [quantized8Performance, &capabilities](V1_3::OperandType type) { in isQuantized8PerformanceConsistentWithP()
335 lookup(capabilities.operandPerformance, in isQuantized8PerformanceConsistentWithP()
340 static bool isQuantized8PerformanceConsistentWithP(const V1_3::Capabilities& capabilities) { in isQuantized8PerformanceConsistentWithP() argument
342 lookup(capabilities.operandPerformance, V1_3::OperandType::TENSOR_QUANT8_ASYMM); in isQuantized8PerformanceConsistentWithP()
345 [quantized8Performance, &capabilities](V1_3::OperandType type) { in isQuantized8PerformanceConsistentWithP()
347 lookup(capabilities.operandPerformance, type); in isQuantized8PerformanceConsistentWithP()
351 static hardware::hidl_vec<V1_2::Capabilities::OperandPerformance>
353 hardware::hidl_vec<V1_2::Capabilities::OperandPerformance> ret( in makeQuantized8PerformanceConsistentWithP()
358 V1_3::OperandType type) -> V1_2::Capabilities::OperandPerformance { in makeQuantized8PerformanceConsistentWithP()
364 bool compliantWithV1_0(const V1_0::Capabilities&) { in compliantWithV1_0() argument
368 bool compliantWithV1_0(const V1_1::Capabilities& capabilities) { in compliantWithV1_0() argument
369 return capabilities.relaxedFloat32toFloat16Performance == capabilities.float32Performance; in compliantWithV1_0()
372 bool compliantWithV1_0(const V1_2::Capabilities& capabilities) { in compliantWithV1_0() argument
374 lookup(capabilities.operandPerformance, V1_2::OperandType::TENSOR_FLOAT32); in compliantWithV1_0()
376 lookup(capabilities.operandPerformance, V1_2::OperandType::FLOAT32); in compliantWithV1_0()
378 perfTensorFloat32 != capabilities.relaxedFloat32toFloat16PerformanceTensor || in compliantWithV1_0()
379 perfFloat32 != capabilities.relaxedFloat32toFloat16PerformanceScalar) { in compliantWithV1_0()
383 return isQuantized8PerformanceConsistentWithP(capabilities); in compliantWithV1_0()
386 bool compliantWithV1_0(const V1_3::Capabilities& capabilities) { in compliantWithV1_0() argument
388 lookup(capabilities.operandPerformance, V1_3::OperandType::TENSOR_FLOAT32); in compliantWithV1_0()
390 lookup(capabilities.operandPerformance, V1_3::OperandType::FLOAT32); in compliantWithV1_0()
392 perfTensorFloat32 != capabilities.relaxedFloat32toFloat16PerformanceTensor || in compliantWithV1_0()
393 perfFloat32 != capabilities.relaxedFloat32toFloat16PerformanceScalar) { in compliantWithV1_0()
397 return isQuantized8PerformanceConsistentWithP(capabilities); in compliantWithV1_0()
400 bool compliantWithV1_1(const V1_0::Capabilities&) { in compliantWithV1_1() argument
404 bool compliantWithV1_1(const V1_1::Capabilities&) { in compliantWithV1_1() argument
408 bool compliantWithV1_1(const V1_2::Capabilities& capabilities) { in compliantWithV1_1() argument
409 if ((capabilities.relaxedFloat32toFloat16PerformanceTensor != in compliantWithV1_1()
410 capabilities.relaxedFloat32toFloat16PerformanceScalar) || in compliantWithV1_1()
411 (lookup(capabilities.operandPerformance, V1_2::OperandType::TENSOR_FLOAT32) != in compliantWithV1_1()
412 lookup(capabilities.operandPerformance, V1_2::OperandType::FLOAT32))) { in compliantWithV1_1()
416 return isQuantized8PerformanceConsistentWithP(capabilities); in compliantWithV1_1()
419 bool compliantWithV1_1(const V1_3::Capabilities& capabilities) { in compliantWithV1_1() argument
420 if ((capabilities.relaxedFloat32toFloat16PerformanceTensor != in compliantWithV1_1()
421 capabilities.relaxedFloat32toFloat16PerformanceScalar) || in compliantWithV1_1()
422 (lookup(capabilities.operandPerformance, V1_3::OperandType::TENSOR_FLOAT32) != in compliantWithV1_1()
423 lookup(capabilities.operandPerformance, V1_3::OperandType::FLOAT32))) { in compliantWithV1_1()
427 return isQuantized8PerformanceConsistentWithP(capabilities); in compliantWithV1_1()
430 bool compliantWithV1_2(const V1_0::Capabilities&) { in compliantWithV1_2() argument
434 bool compliantWithV1_2(const V1_1::Capabilities&) { in compliantWithV1_2() argument
438 bool compliantWithV1_2(const V1_2::Capabilities&) { in compliantWithV1_2() argument
442 bool compliantWithV1_2(const V1_3::Capabilities&) { in compliantWithV1_2() argument
446 bool compliantWithV1_3(const V1_0::Capabilities&) { in compliantWithV1_3() argument
450 bool compliantWithV1_3(const V1_1::Capabilities&) { in compliantWithV1_3() argument
454 bool compliantWithV1_3(const V1_2::Capabilities&) { in compliantWithV1_3() argument
458 bool compliantWithV1_3(const V1_3::Capabilities&) { in compliantWithV1_3() argument
547 V1_0::Capabilities convertToV1_0(const V1_0::Capabilities& capabilities) { in convertToV1_0() argument
548 return capabilities; in convertToV1_0()
551 V1_0::Capabilities convertToV1_0(const V1_1::Capabilities& capabilities) { in convertToV1_0() argument
552 if (!compliantWithV1_0(capabilities)) { in convertToV1_0()
553 LOG(ERROR) << "Upcasting non-compliant capabilities " << toString(capabilities) in convertToV1_0()
554 << " from V1_1::Capabilities to V1_0::Capabilities"; in convertToV1_0()
556 return {.float32Performance = capabilities.float32Performance, in convertToV1_0()
557 .quantized8Performance = capabilities.quantized8Performance}; in convertToV1_0()
560 V1_0::Capabilities convertToV1_0(const V1_2::Capabilities& capabilities) { in convertToV1_0() argument
561 if (!compliantWithV1_0(capabilities)) { in convertToV1_0()
562 LOG(ERROR) << "Upcasting non-compliant capabilities " << toString(capabilities) in convertToV1_0()
563 << " from V1_2::Capabilities to V1_0::Capabilities"; in convertToV1_0()
566 lookup(capabilities.operandPerformance, V1_2::OperandType::TENSOR_FLOAT32), in convertToV1_0()
567 .quantized8Performance = lookup(capabilities.operandPerformance, in convertToV1_0()
571 V1_0::Capabilities convertToV1_0(const V1_3::Capabilities& capabilities) { in convertToV1_0() argument
572 if (!compliantWithV1_0(capabilities)) { in convertToV1_0()
573 LOG(ERROR) << "Upcasting non-compliant capabilities " << toString(capabilities) in convertToV1_0()
574 << " from V1_3::Capabilities to V1_0::Capabilities"; in convertToV1_0()
577 lookup(capabilities.operandPerformance, V1_3::OperandType::TENSOR_FLOAT32), in convertToV1_0()
578 .quantized8Performance = lookup(capabilities.operandPerformance, in convertToV1_0()
582 V1_1::Capabilities convertToV1_1(const V1_0::Capabilities& capabilities) { in convertToV1_1() argument
583 return {.float32Performance = capabilities.float32Performance, in convertToV1_1()
584 .quantized8Performance = capabilities.quantized8Performance, in convertToV1_1()
585 .relaxedFloat32toFloat16Performance = capabilities.float32Performance}; in convertToV1_1()
588 V1_1::Capabilities convertToV1_1(const V1_1::Capabilities& capabilities) { in convertToV1_1() argument
589 return capabilities; in convertToV1_1()
592 V1_1::Capabilities convertToV1_1(const V1_2::Capabilities& capabilities) { in convertToV1_1() argument
593 if (!compliantWithV1_1(capabilities)) { in convertToV1_1()
594 LOG(ERROR) << "Upcasting non-compliant capabilities " << toString(capabilities) in convertToV1_1()
595 << " from V1_2::Capabilities to V1_1::Capabilities"; in convertToV1_1()
598 lookup(capabilities.operandPerformance, V1_2::OperandType::TENSOR_FLOAT32), in convertToV1_1()
600 lookup(capabilities.operandPerformance, V1_2::OperandType::TENSOR_QUANT8_ASYMM), in convertToV1_1()
602 capabilities.relaxedFloat32toFloat16PerformanceTensor}; in convertToV1_1()
605 V1_1::Capabilities convertToV1_1(const V1_3::Capabilities& capabilities) { in convertToV1_1() argument
606 if (!compliantWithV1_1(capabilities)) { in convertToV1_1()
607 LOG(ERROR) << "Upcasting non-compliant capabilities " << toString(capabilities) in convertToV1_1()
608 << " from V1_3::Capabilities to V1_1::Capabilities"; in convertToV1_1()
611 lookup(capabilities.operandPerformance, V1_3::OperandType::TENSOR_FLOAT32), in convertToV1_1()
613 lookup(capabilities.operandPerformance, V1_3::OperandType::TENSOR_QUANT8_ASYMM), in convertToV1_1()
615 capabilities.relaxedFloat32toFloat16PerformanceTensor}; in convertToV1_1()
618 V1_2::Capabilities convertToV1_2(const V1_0::Capabilities& capabilities) { in convertToV1_2() argument
619 V1_2::Capabilities ret = { in convertToV1_2()
620 .relaxedFloat32toFloat16PerformanceScalar = capabilities.float32Performance, in convertToV1_2()
621 .relaxedFloat32toFloat16PerformanceTensor = capabilities.float32Performance, in convertToV1_2()
623 makeQuantized8PerformanceConsistentWithP(capabilities.quantized8Performance)}; in convertToV1_2()
627 capabilities.float32Performance}; in convertToV1_2()
628 opPerf[opPerf.size() - 1] = {V1_2::OperandType::FLOAT32, capabilities.float32Performance}; in convertToV1_2()
629 using OperandPerformance = V1_2::Capabilities::OperandPerformance; in convertToV1_2()
637 V1_2::Capabilities convertToV1_2(const V1_1::Capabilities& capabilities) { in convertToV1_2() argument
638 V1_2::Capabilities ret = {.relaxedFloat32toFloat16PerformanceScalar = in convertToV1_2()
639 capabilities.relaxedFloat32toFloat16Performance, in convertToV1_2()
641 capabilities.relaxedFloat32toFloat16Performance, in convertToV1_2()
643 capabilities.quantized8Performance)}; in convertToV1_2()
647 capabilities.float32Performance}; in convertToV1_2()
648 opPerf[opPerf.size() - 1] = {V1_2::OperandType::FLOAT32, capabilities.float32Performance}; in convertToV1_2()
649 using OperandPerformance = V1_2::Capabilities::OperandPerformance; in convertToV1_2()
657 V1_2::Capabilities convertToV1_2(const V1_2::Capabilities& capabilities) { in convertToV1_2() argument
658 return capabilities; in convertToV1_2()
661 V1_2::Capabilities convertToV1_2(const V1_3::Capabilities& capabilities) { in convertToV1_2() argument
662 V1_2::Capabilities ret = { in convertToV1_2()
664 capabilities.relaxedFloat32toFloat16PerformanceScalar, in convertToV1_2()
666 capabilities.relaxedFloat32toFloat16PerformanceTensor, in convertToV1_2()
668 const auto& inputOpPerf = capabilities.operandPerformance; in convertToV1_2()
669 hardware::hidl_vec<V1_3::Capabilities::OperandPerformance> opPerfSupported; in convertToV1_2()
673 [](V1_3::Capabilities::OperandPerformance opPerf) { in convertToV1_2()
681 [](V1_3::Capabilities::OperandPerformance opPerf) { in convertToV1_2()
682 return V1_2::Capabilities::OperandPerformance{ in convertToV1_2()
688 V1_3::Capabilities convertToV1_3(const V1_0::Capabilities& capabilities) { in convertToV1_3() argument
689 return convertToV1_3(convertToV1_2(capabilities)); in convertToV1_3()
692 V1_3::Capabilities convertToV1_3(const V1_1::Capabilities& capabilities) { in convertToV1_3() argument
693 return convertToV1_3(convertToV1_2(capabilities)); in convertToV1_3()
696 V1_3::Capabilities convertToV1_3(const V1_2::Capabilities& capabilities) { in convertToV1_3() argument
697 V1_3::Capabilities ret = { in convertToV1_3()
699 capabilities.relaxedFloat32toFloat16PerformanceScalar, in convertToV1_3()
701 capabilities.relaxedFloat32toFloat16PerformanceTensor, in convertToV1_3()
706 opPerf.resize(capabilities.operandPerformance.size()); in convertToV1_3()
707 std::transform(capabilities.operandPerformance.begin(), capabilities.operandPerformance.end(), in convertToV1_3()
708 opPerf.begin(), [](V1_2::Capabilities::OperandPerformance opPerf) { in convertToV1_3()
709 return V1_3::Capabilities::OperandPerformance{ in convertToV1_3()
715 V1_3::Capabilities convertToV1_3(const V1_3::Capabilities& capabilities) { in convertToV1_3() argument
716 return capabilities; in convertToV1_3()
1593 Capabilities uncheckedConvert(const V1_3::Capabilities& capabilities) { in uncheckedConvert() argument
1594 return handleError(convert(capabilities)); in uncheckedConvert()
1597 Capabilities::OperandPerformance uncheckedConvert( in uncheckedConvert()
1598 const V1_3::Capabilities::OperandPerformance& operandPerformance) { in uncheckedConvert()
1602 Capabilities::PerformanceInfo uncheckedConvert(const V1_0::PerformanceInfo& performanceInfo) { in uncheckedConvert()