19 template<armnn::DataType ArmnnType,
typename T, std::
size_t NumDims>
25 const std::vector<T>& inputX,
26 const std::vector<T>& inputY,
27 const std::vector<T>& outputExpected,
34 std::unique_ptr<armnn::ITensorHandle> inputXHandle = tensorHandleFactory.
CreateTensorHandle(inputXInfo);
35 std::unique_ptr<armnn::ITensorHandle> inputYHandle = tensorHandleFactory.
CreateTensorHandle(inputYInfo);
36 std::unique_ptr<armnn::ITensorHandle> outputHandle = tensorHandleFactory.
CreateTensorHandle(outputInfo);
42 AddInputToWorkload(queueDescriptor, workloadInfo, inputXInfo, inputXHandle.get());
43 AddInputToWorkload(queueDescriptor, workloadInfo, inputYInfo, inputYHandle.get());
44 AddOutputToWorkload(queueDescriptor, workloadInfo, outputInfo, outputHandle.get());
48 inputXHandle->Allocate();
49 inputYHandle->Allocate();
50 outputHandle->Allocate();
55 workload->PostAllocationConfigure();
56 ExecuteWorkload(*workload, memoryManager);
62 outputHandle->GetShape(),
66 template<armnn::DataType ArmnnType,
typename T>
92 std::vector<T> inputX = armnnUtils::QuantizedVector<T>({
97 std::vector<T> inputY = armnnUtils::QuantizedVector<T>({
102 std::vector<T> outputExpected = armnnUtils::QuantizedVector<T>({
107 return BatchMatMulTestImpl<ArmnnType, T, 2>(workloadFactory,
120 BatchMatMul2DSimpleTest<armnn::DataType::BFloat16>(
126 BatchMatMul2DSimpleTest<armnn::DataType::Float32>(
132 BatchMatMul2DSimpleTest<armnn::DataType::Float16>(
138 BatchMatMul2DSimpleTest<armnn::DataType::QAsymmS8>(
144 BatchMatMul2DSimpleTest<armnn::DataType::QAsymmU8>(
150 BatchMatMul2DSimpleTest<armnn::DataType::QSymmS16>(
155 template<armnn::DataType ArmnnType,
typename T>
181 std::vector<T> inputX = armnnUtils::QuantizedVector<T>({
186 std::vector<T> inputY = armnnUtils::QuantizedVector<T>({
191 std::vector<T> outputExpected = armnnUtils::QuantizedVector<T>({
196 return BatchMatMulTestImpl<ArmnnType, T, 3>(workloadFactory,
209 BatchMatMul3DSimpleTest<armnn::DataType::BFloat16>(
215 BatchMatMul3DSimpleTest<armnn::DataType::Float32>(
221 BatchMatMul3DSimpleTest<armnn::DataType::Float16>(
227 BatchMatMul3DSimpleTest<armnn::DataType::QAsymmS8>(
233 BatchMatMul3DSimpleTest<armnn::DataType::QAsymmU8>(
239 BatchMatMul3DSimpleTest<armnn::DataType::QSymmS16>(
244 template<armnn::DataType ArmnnType,
typename T>
272 std::vector<T> inputX = armnnUtils::QuantizedVector<T>({
277 std::vector<T> inputY = armnnUtils::QuantizedVector<T>({
282 std::vector<T> outputExpected = armnnUtils::QuantizedVector<T>({
287 return BatchMatMulTestImpl<ArmnnType, T, 4>(workloadFactory,
300 BatchMatMulNCHWSimpleTest<armnn::DataType::BFloat16>(
306 BatchMatMulNCHWSimpleTest<armnn::DataType::Float32>(
312 BatchMatMulNCHWSimpleTest<armnn::DataType::Float16>(
318 BatchMatMulNCHWSimpleTest<armnn::DataType::QAsymmS8>(
324 BatchMatMulNCHWSimpleTest<armnn::DataType::QAsymmU8>(
330 BatchMatMulNCHWSimpleTest<armnn::DataType::QSymmS16>(
335 template<armnn::DataType ArmnnType,
typename T>
363 std::vector<T> inputX = armnnUtils::QuantizedVector<T>({
368 std::vector<T> inputY = armnnUtils::QuantizedVector<T>({
373 std::vector<T> outputExpected = armnnUtils::QuantizedVector<T>({
378 return BatchMatMulTestImpl<ArmnnType, T, 4>(workloadFactory,
391 BatchMatMulNHWCSimpleTest<armnn::DataType::BFloat16>(
397 BatchMatMulNHWCSimpleTest<armnn::DataType::Float32>(
403 BatchMatMulNHWCSimpleTest<armnn::DataType::Float16>(
409 BatchMatMulNHWCSimpleTest<armnn::DataType::QAsymmS8>(
415 BatchMatMulNHWCSimpleTest<armnn::DataType::QAsymmU8>(
421 BatchMatMulNHWCSimpleTest<armnn::DataType::QSymmS16>(
426 template<armnn::DataType ArmnnType,
typename T>
452 std::vector<T> inputX = armnnUtils::QuantizedVector<T>({
460 std::vector<T> inputY = armnnUtils::QuantizedVector<T>({
468 std::vector<T> outputExpected = armnnUtils::QuantizedVector<T>({
476 return BatchMatMulTestImpl<ArmnnType, T, 3>(workloadFactory,
489 BatchMatMul3DBatchTest<armnn::DataType::BFloat16>(
495 BatchMatMul3DBatchTest<armnn::DataType::Float32>(
501 BatchMatMul3DBatchTest<armnn::DataType::Float16>(
507 BatchMatMul3DBatchTest<armnn::DataType::QAsymmS8>(
513 BatchMatMul3DBatchTest<armnn::DataType::QAsymmU8>(
519 BatchMatMul3DBatchTest<armnn::DataType::QSymmS16>(
524 template<armnn::DataType ArmnnType,
typename T>
550 std::vector<T> inputX = armnnUtils::QuantizedVector<T>({
558 std::vector<T> inputY = armnnUtils::QuantizedVector<T>({
563 std::vector<T> outputExpected = armnnUtils::QuantizedVector<T>({
571 return BatchMatMulTestImpl<ArmnnType, T, 3>(workloadFactory,
584 BatchMatMul3DBroadcastTest<armnn::DataType::BFloat16>(
590 BatchMatMul3DBroadcastTest<armnn::DataType::Float32>(
596 BatchMatMul3DBroadcastTest<armnn::DataType::Float16>(
602 BatchMatMul3DBroadcastTest<armnn::DataType::QAsymmS8>(
608 BatchMatMul3DBroadcastTest<armnn::DataType::QAsymmU8>(
614 BatchMatMul3DBroadcastTest<armnn::DataType::QSymmS16>(
619 template<armnn::DataType ArmnnType,
typename T>
645 std::vector<T> inputX = armnnUtils::QuantizedVector<T>({
653 std::vector<T> inputY = armnnUtils::QuantizedVector<T>({
658 std::vector<T> outputExpected = armnnUtils::QuantizedVector<T>({
666 return BatchMatMulTestImpl<ArmnnType, T, 3>(workloadFactory,
679 BatchMatMul3D2DBroadcastTest<armnn::DataType::BFloat16>(
685 BatchMatMul3D2DBroadcastTest<armnn::DataType::Float32>(
691 BatchMatMul3D2DBroadcastTest<armnn::DataType::Float16>(
697 BatchMatMul3D2DBroadcastTest<armnn::DataType::QAsymmS8>(
703 BatchMatMul3D2DBroadcastTest<armnn::DataType::QAsymmU8>(
709 BatchMatMul3D2DBroadcastTest<armnn::DataType::QSymmS16>(
714 template<armnn::DataType ArmnnType,
typename T>
742 std::vector<T> inputX = armnnUtils::QuantizedVector<T>({
750 std::vector<T> inputY = armnnUtils::QuantizedVector<T>({
758 std::vector<T> outputExpected = armnnUtils::QuantizedVector<T>({
766 return BatchMatMulTestImpl<ArmnnType, T, 5>(workloadFactory,
779 BatchMatMulNDHWCNHWCTest<armnn::DataType::BFloat16>(
785 BatchMatMulNDHWCNHWCTest<armnn::DataType::Float32>(
791 BatchMatMulNDHWCNHWCTest<armnn::DataType::Float16>(
797 BatchMatMulNDHWCNHWCTest<armnn::DataType::QAsymmS8>(
803 BatchMatMulNDHWCNHWCTest<armnn::DataType::QAsymmU8>(
809 BatchMatMulNDHWCNHWCTest<armnn::DataType::QSymmS16>(
814 template<armnn::DataType ArmnnType,
typename T>
840 std::vector<T> inputX = armnnUtils::QuantizedVector<T>({
844 std::vector<T> inputY = armnnUtils::QuantizedVector<T>({
848 std::vector<T> outputExpected = armnnUtils::QuantizedVector<T>({
852 return BatchMatMulTestImpl<ArmnnType, T, 2>(workloadFactory,
865 BatchMatMul2DTinyTest<armnn::DataType::BFloat16>(
871 BatchMatMul2DTinyTest<armnn::DataType::Float32>(
877 BatchMatMul2DTinyTest<armnn::DataType::Float16>(
883 BatchMatMul2DTinyTest<armnn::DataType::QAsymmS8>(
889 BatchMatMul2DTinyTest<armnn::DataType::QAsymmU8>(
895 BatchMatMul2DTinyTest<armnn::DataType::QSymmS16>(
900 template<armnn::DataType ArmnnType,
typename T>
926 std::vector<T> inputX = armnnUtils::QuantizedVector<T>({
940 std::vector<T> inputY = armnnUtils::QuantizedVector<T>({
950 std::vector<T> outputExpected = armnnUtils::QuantizedVector<T>({
964 return BatchMatMulTestImpl<ArmnnType, T, 3>(workloadFactory,
977 BatchMatMul3DNonSquareTest<armnn::DataType::BFloat16>(
983 BatchMatMul3DNonSquareTest<armnn::DataType::Float32>(
989 BatchMatMul3DNonSquareTest<armnn::DataType::Float16>(
995 BatchMatMul3DNonSquareTest<armnn::DataType::QAsymmS8>(
1001 BatchMatMul3DNonSquareTest<armnn::DataType::QAsymmU8>(
1007 BatchMatMul3DNonSquareTest<armnn::DataType::QSymmS16>(
LayerTestResult< T, 2 > BatchMatMul2DTinyTest(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
const TensorShape & GetShape() const
LayerTestResult< T, 4 > BatchMatMulNHWCSimpleTest(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
LayerTestResult< T, 4 > BatchMatMulNCHWSimpleTest(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
LayerTestResult< T, 2 > BatchMatMul2DSimpleTest(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
LayerTestResult< T, 3 > BatchMatMul3DNonSquareTest(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
LayerTestResult< T, 3 > BatchMatMul3DBatchTest(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
LayerTestResult< T, 5 > BatchMatMulNDHWCNHWCTest(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
LayerDescriptor m_Parameters
LayerTestResult< T, 3 > BatchMatMul3DBroadcastTest(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
std::shared_ptr< IMemoryManager > IMemoryManagerSharedPtr
LayerTestResult< T, 3 > BatchMatMul3D2DBroadcastTest(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
void CopyDataFromITensorHandle(void *mem, const armnn::ITensorHandle *tensorHandle)
A BatchMatMulDescriptor for the BatchMatMul operator.
void CopyDataToITensorHandle(armnn::ITensorHandle *tensorHandle, const void *memory)
Contains information about TensorInfos of a layer.
LayerTestResult< T, 3 > BatchMatMul3DSimpleTest(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
virtual std::unique_ptr< IWorkload > CreateWorkload(LayerType type, const QueueDescriptor &descriptor, const WorkloadInfo &info) const
virtual std::unique_ptr< ITensorHandle > CreateTensorHandle(const TensorInfo &tensorInfo) const =0
LayerTestResult< T, NumDims > BatchMatMulTestImpl(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory, armnn::BatchMatMulDescriptor descriptor, const std::vector< T > &inputX, const std::vector< T > &inputY, const std::vector< T > &outputExpected, const armnn::TensorInfo &inputXInfo, const armnn::TensorInfo &inputYInfo, const armnn::TensorInfo &outputInfo)
unsigned int GetNumElements() const