mirror of
https://github.com/Evolution-X/hardware_interfaces
synced 2026-02-01 11:36:00 +00:00
Merge "Add control flow performance to NNAPI Capabilities"
This commit is contained in:
committed by
Android (Google) Code Review
commit
372b792efe
@@ -676,7 +676,7 @@ a3eddd9bbdc87e8c22764070037dd1154f1cf006e6fba93364c4f85d4c134a19 android.hardwar
|
||||
2fa3679ad7c94b5e88724adcd560c561041068a4ca565c63830e68101988746a android.hardware.neuralnetworks@1.3::IFencedExecutionCallback
|
||||
237b23b126a66f3432658020fed78cdd06ba6297459436fe6bae0ba753370833 android.hardware.neuralnetworks@1.3::IPreparedModel
|
||||
0439a1fbbec7f16e5e4c653d85ac685d51bfafbae15b8f8cca530acdd7d6a8ce android.hardware.neuralnetworks@1.3::IPreparedModelCallback
|
||||
2fabd246f985d94a0172dacefb0d6cf19e2aeb2d5f17752653988ef39570a52d android.hardware.neuralnetworks@1.3::types
|
||||
5e2a14b40dc11da9d478185838f4401b652739922d14cecea0a0ce4c1359fe21 android.hardware.neuralnetworks@1.3::types
|
||||
3e01d4446cd69fd1c48f8572efd97487bc179564b32bd795800b97bbe10be37b android.hardware.wifi@1.4::IWifi
|
||||
c67aaf26a7a40d14ea61e70e20afacbd0bb906df1704d585ac8599fbb69dd44b android.hardware.wifi.hostapd@1.2::IHostapd
|
||||
2b5a7ea572b736030c64a3b4043af244425477c4672301780fe15aba5ed393d9 android.hardware.wifi.hostapd@1.2::types
|
||||
|
||||
@@ -5176,8 +5176,10 @@ enum Priority : int32_t {
|
||||
/**
|
||||
* The capabilities of a driver.
|
||||
*
|
||||
* Performance of an operation comes from the type of its first operand.
|
||||
* This represents performance for non extension operand types.
|
||||
* This represents performance of non-extension operations.
|
||||
*
|
||||
* Performance of an operation other than {@link OperationType::IF} and
|
||||
* {@link OperationType::WHILE} comes from the type of its first operand.
|
||||
*/
|
||||
struct Capabilities {
|
||||
/**
|
||||
@@ -5200,11 +5202,32 @@ struct Capabilities {
|
||||
|
||||
/**
|
||||
* Performance by operand type. Must be sorted by OperandType.
|
||||
* If a particular OperandType is not present in operandPerformance,
|
||||
*
|
||||
* If a particular {@link OperandType} is not present in operandPerformance,
|
||||
* its performance is treated as
|
||||
* { .execTime = FLT_MAX, .powerUsage = FLT_MAX }.
|
||||
*
|
||||
* Performance does not apply to {@link OperandType::SUBGRAPH}, and a driver
|
||||
* must not report operand performance for {@link OperandType::SUBGRAPH}.
|
||||
*/
|
||||
vec<OperandPerformance> operandPerformance;
|
||||
|
||||
/**
|
||||
* Performance of an {@link OperationType::IF} operation is the sum of
|
||||
* {@link Capabilities::ifPerformance} and the mean of performance for the
|
||||
* two branch subgraphs, where performance for a subgraph is the sum of the
|
||||
* performance of all operations within the subgraph.
|
||||
*/
|
||||
PerformanceInfo ifPerformance;
|
||||
|
||||
/**
|
||||
* Performance of a {@link OperationType::WHILE} operation is the sum of
|
||||
* {@link Capabilities::whilePerformance}, performance for the condition
|
||||
* subgraph and performance for the body subgraph, where performance for a
|
||||
* subgraph is the sum of the performance of all operations within the
|
||||
* subgraph.
|
||||
*/
|
||||
PerformanceInfo whilePerformance;
|
||||
};
|
||||
|
||||
/**
|
||||
|
||||
@@ -103,8 +103,10 @@ enum Priority : int32_t {
|
||||
/**
|
||||
* The capabilities of a driver.
|
||||
*
|
||||
* Performance of an operation comes from the type of its first operand.
|
||||
* This represents performance for non extension operand types.
|
||||
* This represents performance of non-extension operations.
|
||||
*
|
||||
* Performance of an operation other than {@link OperationType::IF} and
|
||||
* {@link OperationType::WHILE} comes from the type of its first operand.
|
||||
*/
|
||||
struct Capabilities {
|
||||
/**
|
||||
@@ -127,11 +129,32 @@ struct Capabilities {
|
||||
|
||||
/**
|
||||
* Performance by operand type. Must be sorted by OperandType.
|
||||
* If a particular OperandType is not present in operandPerformance,
|
||||
*
|
||||
* If a particular {@link OperandType} is not present in operandPerformance,
|
||||
* its performance is treated as
|
||||
* { .execTime = FLT_MAX, .powerUsage = FLT_MAX }.
|
||||
*
|
||||
* Performance does not apply to {@link OperandType::SUBGRAPH}, and a driver
|
||||
* must not report operand performance for {@link OperandType::SUBGRAPH}.
|
||||
*/
|
||||
vec<OperandPerformance> operandPerformance;
|
||||
|
||||
/**
|
||||
* Performance of an {@link OperationType::IF} operation is the sum of
|
||||
* {@link Capabilities::ifPerformance} and the mean of performance for the
|
||||
* two branch subgraphs, where performance for a subgraph is the sum of the
|
||||
* performance of all operations within the subgraph.
|
||||
*/
|
||||
PerformanceInfo ifPerformance;
|
||||
|
||||
/**
|
||||
* Performance of a {@link OperationType::WHILE} operation is the sum of
|
||||
* {@link Capabilities::whilePerformance}, performance for the condition
|
||||
* subgraph and performance for the body subgraph, where performance for a
|
||||
* subgraph is the sum of the performance of all operations within the
|
||||
* subgraph.
|
||||
*/
|
||||
PerformanceInfo whilePerformance;
|
||||
};
|
||||
|
||||
/**
|
||||
|
||||
@@ -57,6 +57,11 @@ TEST_P(NeuralnetworksHidlTest, GetCapabilitiesTest) {
|
||||
[](const OperandPerformance& a, const OperandPerformance& b) {
|
||||
return a.type < b.type;
|
||||
}));
|
||||
EXPECT_TRUE(std::all_of(opPerf.begin(), opPerf.end(), [](const OperandPerformance& a) {
|
||||
return a.type != OperandType::SUBGRAPH;
|
||||
}));
|
||||
EXPECT_TRUE(isPositive(capabilities.ifPerformance));
|
||||
EXPECT_TRUE(isPositive(capabilities.whilePerformance));
|
||||
});
|
||||
EXPECT_TRUE(ret.isOk());
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user