11 std::unique_ptr<armnn::IWorkload> CreateWorkload<armnn::SubtractionQueueDescriptor>(
16 return workloadFactory.CreateSubtraction(descriptor, info);
24 const unsigned int shape0[] = { 1, 1, 2, 2 };
25 const unsigned int shape1[] = { 1, 1, 2, 2 };
27 std::vector<uint8_t> input0 = { 10, 12, 14, 16 };
28 std::vector<uint8_t> input1 = { 1, 2, 1, 2 };
29 std::vector<uint8_t> output = { 3, 3, 5, 5 };
31 return ElementwiseTestHelper<4, armnn::SubtractionQueueDescriptor, armnn::DataType::QAsymmU8>(
54 const unsigned int shape0[] = { 1, 1, 2, 2 };
55 const unsigned int shape1[] = { 1, 1, 1, 1 };
57 std::vector<uint8_t> input0 = { 10, 12, 14, 16 };
59 std::vector<uint8_t> input1 = { 2 };
61 std::vector<uint8_t> output = { 5, 6, 7, 8 };
63 return ElementwiseTestHelper<4, armnn::SubtractionQueueDescriptor, armnn::DataType::QAsymmU8>(
86 const unsigned int shape0[] = { 1, 1, 2, 2 };
87 const unsigned int shape1[] = { 1, 1, 2, 1 };
89 std::vector<uint8_t> input0 = { 10, 12, 14, 16 };
91 std::vector<uint8_t> input1 = { 2, 1 };
93 std::vector<uint8_t> output = { 8, 11, 12, 15 };
95 return ElementwiseTestHelper<4, armnn::SubtractionQueueDescriptor, armnn::DataType::QAsymmU8>(
104 tensorHandleFactory);
112 const unsigned int shape0[] = { 1, 1, 2, 2 };
113 const unsigned int shape1[] = { 1, 1, 2, 2 };
115 std::vector<float> input0 = { 1, 2, 3, 4 };
116 std::vector<float> input1 = { 1, -1, 0, 2 };
117 std::vector<float> output = { 0, 3, 3, 2 };
119 return ElementwiseTestHelper<4, armnn::SubtractionQueueDescriptor, armnn::DataType::Float32>(
128 tensorHandleFactory);
136 const unsigned int shape0[] = { 1, 1, 2, 2 };
137 const unsigned int shape1[] = { 1, 1, 1, 1 };
139 std::vector<float> input0 = { 1, 2, 3, 4 };
141 std::vector<float> input1 = { 10 };
143 std::vector<float> output = { -9, -8, -7, -6 };
145 return ElementwiseTestHelper<4, armnn::SubtractionQueueDescriptor, armnn::DataType::Float32>(
154 tensorHandleFactory);
162 const unsigned int shape0[] = { 1, 1, 2, 2 };
163 const unsigned int shape1[] = { 1, 1, 1, 2 };
165 std::vector<float> input0 = { 1, 2, 3, 4 };
167 std::vector<float> input1 = { 10, -5 };
169 std::vector<float> output = { -9, 7, -7, 9 };
171 return ElementwiseTestHelper<4, armnn::SubtractionQueueDescriptor, armnn::DataType::Float32>(
180 tensorHandleFactory);
188 using namespace half_float::literal;
190 const unsigned int shape0[] = { 1, 1, 2, 2 };
191 const unsigned int shape1[] = { 1, 1, 2, 2 };
193 std::vector<armnn::Half> input0 = { 1._h, 2._h, 3._h, 4._h };
194 std::vector<armnn::Half> input1 = { 1._h, -1._h, 0._h, 2._h };
195 std::vector<armnn::Half> output = { 0._h, 3._h, 3._h, 2._h };
197 return ElementwiseTestHelper<4, armnn::SubtractionQueueDescriptor, armnn::DataType::Float16>(
206 tensorHandleFactory);
214 using namespace half_float::literal;
216 const unsigned int shape0[] = { 1, 1, 2, 2 };
217 const unsigned int shape1[] = { 1, 1, 1, 1 };
219 std::vector<armnn::Half> input0 = { 1._h, 2._h, 3._h, 4._h };
221 std::vector<armnn::Half> input1 = { 10._h };
223 std::vector<armnn::Half> output = { -9._h, -8._h, -7._h, -6._h };
225 return ElementwiseTestHelper<4, armnn::SubtractionQueueDescriptor, armnn::DataType::Float16>(
234 tensorHandleFactory);
242 using namespace half_float::literal;
244 const unsigned int shape0[] = { 1, 1, 2, 2 };
245 const unsigned int shape1[] = { 1, 1, 1, 2 };
247 std::vector<armnn::Half> input0 = { 1._h, 2._h, 3._h, 4._h };
249 std::vector<armnn::Half> input1 = { 10._h, -5._h };
251 std::vector<armnn::Half> output = { -9._h, 7._h, -7._h, 9._h };
253 return ElementwiseTestHelper<4, armnn::SubtractionQueueDescriptor, armnn::DataType::Float16>(
262 tensorHandleFactory);
270 const unsigned int shape[] = { 1, 1, 2, 2 };
272 std::vector<int16_t> input0 = { 10, 12, 14, 16 };
273 std::vector<int16_t> input1 = { 1, 2, 1, 2 };
274 std::vector<int16_t> output = { 3, 3, 5, 5 };
276 return ElementwiseTestHelper<4, armnn::SubtractionQueueDescriptor, armnn::DataType::QSymmS16>(
299 const unsigned int shape0[] = { 1, 1, 2, 2 };
300 const unsigned int shape1[] = { 1, 1, 1, 1 };
302 std::vector<int16_t> input0 = { 10, 12, 14, 16 };
304 std::vector<int16_t> input1 = { 2 };
306 std::vector<int16_t> output = { 3, 4, 5, 6 };
308 return ElementwiseTestHelper<4, armnn::SubtractionQueueDescriptor, armnn::DataType::QSymmS16>(
331 const unsigned int shape0[] = { 1, 1, 2, 2 };
332 const unsigned int shape1[] = { 1, 1, 2, 1 };
334 std::vector<int16_t> input0 = { 10, 12, 14, 16 };
336 std::vector<int16_t> input1 = { 2, 1 };
338 std::vector<int16_t> output = { 8, 11, 12, 15 };
340 return ElementwiseTestHelper<4, armnn::SubtractionQueueDescriptor, armnn::DataType::QSymmS16>(
349 tensorHandleFactory);
357 const unsigned int shape[] = { 1, 1, 2, 2 };
359 std::vector<int32_t> input0 = { 5, 6, 7, 8 };
360 std::vector<int32_t> input1 = { 1, 2, 1, 2 };
361 std::vector<int32_t> output = { 4, 4, 6, 6 };
363 return ElementwiseTestHelper<4, armnn::SubtractionQueueDescriptor, armnn::DataType::Signed32>(
386 const unsigned int shape0[] = { 1, 1, 2, 2 };
387 const unsigned int shape1[] = { 1, 1, 1, 1 };
389 std::vector<int32_t> input0 = { 5, 6, 7, 8 };
391 std::vector<int32_t> input1 = { 2 };
393 std::vector<int32_t> output = { 3, 4, 5, 6 };
395 return ElementwiseTestHelper<4, armnn::SubtractionQueueDescriptor, armnn::DataType::Signed32>(
418 const unsigned int shape0[] = { 1, 1, 2, 2 };
419 const unsigned int shape1[] = { 1, 1, 2, 1 };
421 std::vector<int32_t> input0 = { 10, 12, 14, 16 };
423 std::vector<int32_t> input1 = { 2, 1 };
425 std::vector<int32_t> output = { 8, 11, 12, 15 };
427 return ElementwiseTestHelper<4, armnn::SubtractionQueueDescriptor, armnn::DataType::Signed32>(
436 tensorHandleFactory);
LayerTestResult< armnn::Half, 4 > SubtractionBroadcast1ElementFloat16Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
LayerTestResult< int16_t, 4 > SubtractionBroadcastInt16Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
LayerTestResult< float, 4 > SubtractionBroadcast1ElementTest(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
LayerTestResult< uint8_t, 4 > SubtractionBroadcastUint8Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
LayerTestResult< armnn::Half, 4 > SubtractionFloat16Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
LayerTestResult< int32_t, 4 > SubtractionInt32Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
LayerTestResult< int32_t, 4 > SubtractionBroadcastInt32Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
std::shared_ptr< IMemoryManager > IMemoryManagerSharedPtr
LayerTestResult< int32_t, 4 > SubtractionBroadcast1ElementInt32Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
LayerTestResult< float, 4 > SubtractionBroadcastTest(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
LayerTestResult< uint8_t, 4 > SubtractionUint8Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
LayerTestResult< int16_t, 4 > SubtractionBroadcast1ElementInt16Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
LayerTestResult< float, 4 > SubtractionTest(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
LayerTestResult< uint8_t, 4 > SubtractionBroadcast1ElementUint8Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
LayerTestResult< armnn::Half, 4 > SubtractionBroadcastFloat16Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
LayerTestResult< int16_t, 4 > SubtractionInt16Test(armnn::IWorkloadFactory &workloadFactory, const armnn::IBackendInternal::IMemoryManagerSharedPtr &memoryManager, const armnn::ITensorHandleFactory &tensorHandleFactory)
Contains information about inputs and outputs to a layer.