diff --git a/compatibility_matrices/compatibility_matrix.current.xml b/compatibility_matrices/compatibility_matrix.current.xml index 7fa586efdb..0c7e58e05a 100644 --- a/compatibility_matrices/compatibility_matrix.current.xml +++ b/compatibility_matrices/compatibility_matrix.current.xml @@ -396,6 +396,7 @@ android.hardware.neuralnetworks + 1-2 IDevice .* diff --git a/neuralnetworks/1.3/vts/functional/Android.bp b/neuralnetworks/1.3/vts/functional/Android.bp index 1382bdb785..ab0a0184be 100644 --- a/neuralnetworks/1.3/vts/functional/Android.bp +++ b/neuralnetworks/1.3/vts/functional/Android.bp @@ -66,7 +66,7 @@ cc_test { "VtsHalNeuralNetworksV1_0_utils", "VtsHalNeuralNetworksV1_2_utils", "VtsHalNeuralNetworksV1_3_utils", - "android.hardware.neuralnetworks-V1-ndk", + "android.hardware.neuralnetworks-V2-ndk", "android.hardware.neuralnetworks@1.0", "android.hardware.neuralnetworks@1.1", "android.hardware.neuralnetworks@1.2", diff --git a/neuralnetworks/aidl/aidl_api/android.hardware.neuralnetworks/current/android/hardware/neuralnetworks/OperationType.aidl b/neuralnetworks/aidl/aidl_api/android.hardware.neuralnetworks/current/android/hardware/neuralnetworks/OperationType.aidl index de3b438115..425914347b 100644 --- a/neuralnetworks/aidl/aidl_api/android.hardware.neuralnetworks/current/android/hardware/neuralnetworks/OperationType.aidl +++ b/neuralnetworks/aidl/aidl_api/android.hardware.neuralnetworks/current/android/hardware/neuralnetworks/OperationType.aidl @@ -136,4 +136,5 @@ enum OperationType { HARD_SWISH = 99, FILL = 100, RANK = 101, + BATCH_MATMUL = 102, } diff --git a/neuralnetworks/aidl/android/hardware/neuralnetworks/OperationType.aidl b/neuralnetworks/aidl/android/hardware/neuralnetworks/OperationType.aidl index 52d2d70720..d9951d58ef 100644 --- a/neuralnetworks/aidl/android/hardware/neuralnetworks/OperationType.aidl +++ b/neuralnetworks/aidl/android/hardware/neuralnetworks/OperationType.aidl @@ -1471,6 +1471,7 @@ enum OperationType { * * {@link OperandType::TENSOR_FLOAT32} * * {@link OperandType::TENSOR_QUANT8_ASYMM} * * {@link OperandType::TENSOR_QUANT8_ASYMM_SIGNED} (since HAL version 1.3) + * * {@link OperandType::TENSOR_INT32} (since NNAPI feature level 6) * * Supported tensor rank: up to 4. * @@ -5236,4 +5237,40 @@ enum OperationType { * of the input tensor. */ RANK = 101, + + /** + * Performs multiplication of two tensors in batches. + * + * Multiplies all slices of two input tensors and arranges the individual + * results in a single output tensor of the same batch size. Each pair of + * slices in the same batch have identical {@link OperandType}. Each + * slice can optionally be adjointed (transpose and conjugate) before + * multiplication. + * + * The two input tensors and the output tensor must be 2-D or higher and + * have the same batch size. + * + * Supported tensor {@link OperandType}: + * * {@link OperandType::TENSOR_FLOAT16} + * * {@link OperandType::TENSOR_FLOAT32} + * * {@link OperandType::TENSOR_QUANT8_ASYMM_SIGNED} + * * {@link OperandType::TENSOR_INT32} + * + * Supported tensor rank: at least 2 and up to 4 + * + * Inputs: + * * 0: A tensor with 2-D or higher shape [..., r_x, c_x]. + * * 1: A tensor with 2-D or higher shape [..., r_y, c_y]. It has the same + * {@link OperandType} and batch size as input0. + * * 2: An optional {@link OperandType::BOOL} scalar adj_x, default + * to false. Set to true to adjoint the slices of input0. + * * 3: An optional {@link OperandType::BOOL} scalar adj_y, default + * to false. Set to true to adjoint the slices of input1. + * + * Outputs: + * * 0: A tensor with 2-D or higher shape [..., r_o, c_o], where + * r_o = c_x if adj_x else r_x + * c_o = r_y if adj_y else c_y + */ + BATCH_MATMUL = 102, } diff --git a/neuralnetworks/aidl/utils/Android.bp b/neuralnetworks/aidl/utils/Android.bp index 508b1eafec..cb67b84bf2 100644 --- a/neuralnetworks/aidl/utils/Android.bp +++ b/neuralnetworks/aidl/utils/Android.bp @@ -38,7 +38,7 @@ cc_library_static { "neuralnetworks_utils_hal_common", ], shared_libs: [ - "android.hardware.neuralnetworks-V1-ndk", + "android.hardware.neuralnetworks-V2-ndk", "libbinder_ndk", "libhidlbase", ], @@ -58,7 +58,7 @@ cc_test { static_libs: [ "android.hardware.common-V2-ndk", "android.hardware.graphics.common-V2-ndk", - "android.hardware.neuralnetworks-V1-ndk", + "android.hardware.neuralnetworks-V2-ndk", "libaidlcommonsupport", "libgmock", "libneuralnetworks_common", diff --git a/neuralnetworks/aidl/vts/functional/Android.bp b/neuralnetworks/aidl/vts/functional/Android.bp index 8fa9756edb..4dc2ed0f8c 100644 --- a/neuralnetworks/aidl/vts/functional/Android.bp +++ b/neuralnetworks/aidl/vts/functional/Android.bp @@ -51,7 +51,7 @@ cc_test { static_libs: [ "android.hardware.common-V2-ndk", "android.hardware.graphics.common-V2-ndk", - "android.hardware.neuralnetworks-V1-ndk", + "android.hardware.neuralnetworks-V2-ndk", "android.hidl.allocator@1.0", "android.hidl.memory@1.0", "libaidlcommonsupport", diff --git a/neuralnetworks/utils/common/Android.bp b/neuralnetworks/utils/common/Android.bp index 431885ccbf..f88e407923 100644 --- a/neuralnetworks/utils/common/Android.bp +++ b/neuralnetworks/utils/common/Android.bp @@ -35,7 +35,7 @@ cc_library_static { "neuralnetworks_types", ], shared_libs: [ - "android.hardware.neuralnetworks-V1-ndk", + "android.hardware.neuralnetworks-V2-ndk", "libhidlbase", "libbinder_ndk", ], diff --git a/neuralnetworks/utils/service/Android.bp b/neuralnetworks/utils/service/Android.bp index 653e51ad08..fbb8679508 100644 --- a/neuralnetworks/utils/service/Android.bp +++ b/neuralnetworks/utils/service/Android.bp @@ -39,7 +39,7 @@ cc_library_static { "neuralnetworks_utils_hal_common", ], shared_libs: [ - "android.hardware.neuralnetworks-V1-ndk", + "android.hardware.neuralnetworks-V2-ndk", "android.hardware.neuralnetworks@1.0", "android.hardware.neuralnetworks@1.1", "android.hardware.neuralnetworks@1.2",