This commit is contained in:
parent
8a6803a6fe
commit
c559658e25
@ -3,6 +3,8 @@ From: Qin Su <qsu@ti.com>
|
|||||||
Date: Fri, 22 Feb 2019 14:10:07 -0500
|
Date: Fri, 22 Feb 2019 14:10:07 -0500
|
||||||
Subject: [PATCH] add more test command line arguments
|
Subject: [PATCH] add more test command line arguments
|
||||||
|
|
||||||
|
Updated by Guillaume_G to apply properly (s/BOOST_ASSERT/ARMNN_ASSERT/)
|
||||||
|
|
||||||
Upstream-Status: Inappropriate [TI only test code]
|
Upstream-Status: Inappropriate [TI only test code]
|
||||||
Signed-off-by: Qin Su <qsu@ti.com>
|
Signed-off-by: Qin Su <qsu@ti.com>
|
||||||
---
|
---
|
||||||
@ -14,9 +16,9 @@ index 538720b..6fd21b8 100644
|
|||||||
--- a/tests/InferenceTest.inl
|
--- a/tests/InferenceTest.inl
|
||||||
+++ b/tests/InferenceTest.inl
|
+++ b/tests/InferenceTest.inl
|
||||||
@@ -326,6 +326,55 @@ int ClassifierInferenceTestMain(int argc,
|
@@ -326,6 +326,55 @@ int ClassifierInferenceTestMain(int argc,
|
||||||
BOOST_ASSERT(modelFilename);
|
ARMNN_ASSERT(modelFilename);
|
||||||
BOOST_ASSERT(inputBindingName);
|
ARMNN_ASSERT(inputBindingName);
|
||||||
BOOST_ASSERT(outputBindingName);
|
ARMNN_ASSERT(outputBindingName);
|
||||||
+ int count;
|
+ int count;
|
||||||
+ const char *p_input;
|
+ const char *p_input;
|
||||||
+ char inmodelname[500];
|
+ char inmodelname[500];
|
||||||
|
@ -6,6 +6,8 @@ Subject: [PATCH] add armnn mobilenet test example
|
|||||||
Upstream-Status: Inappropriate [TI only test code]
|
Upstream-Status: Inappropriate [TI only test code]
|
||||||
Signed-off-by: Qin Su <qsu@ti.com>
|
Signed-off-by: Qin Su <qsu@ti.com>
|
||||||
Signed-off-by: Djordje Senicic <x0157990@ti.com>
|
Signed-off-by: Djordje Senicic <x0157990@ti.com>
|
||||||
|
[Guillaume's update: Add boost_log dep]
|
||||||
|
[Guillaume's update: Update to apply on top of 20.08]
|
||||||
---
|
---
|
||||||
tests/CMakeLists.txt | 41 +++++++++++++++++++++++++++++++++++++++++
|
tests/CMakeLists.txt | 41 +++++++++++++++++++++++++++++++++++++++++
|
||||||
1 file changed, 41 insertions(+)
|
1 file changed, 41 insertions(+)
|
||||||
@ -21,8 +23,8 @@ index dfcf4b48..5a78d3a6 100644
|
|||||||
# UnitTests
|
# UnitTests
|
||||||
include(CheckIncludeFiles)
|
include(CheckIncludeFiles)
|
||||||
|
|
||||||
@@ -348,3 +351,41 @@ if(BUILD_ARMNN_QUANTIZER)
|
@@ -348,3 +351,42 @@ if(BUILD_ARMNN_QUANTIZER)
|
||||||
add_executable_ex(ImageCSVFileGenerator ${ImageCSVFileGenerator_sources})
|
target_include_directories(ImageCSVFileGenerator PRIVATE ../src/armnnUtils)
|
||||||
ImageTensorExecutor(ImageCSVFileGenerator)
|
ImageTensorExecutor(ImageCSVFileGenerator)
|
||||||
endif()
|
endif()
|
||||||
+
|
+
|
||||||
@ -57,6 +59,7 @@ index dfcf4b48..5a78d3a6 100644
|
|||||||
+ endif()
|
+ endif()
|
||||||
+
|
+
|
||||||
+ target_link_libraries(ArmnnExamples
|
+ target_link_libraries(ArmnnExamples
|
||||||
|
+ ${Boost_LOG_LIBRARY}
|
||||||
+ ${Boost_SYSTEM_LIBRARY}
|
+ ${Boost_SYSTEM_LIBRARY}
|
||||||
+ ${Boost_FILESYSTEM_LIBRARY}
|
+ ${Boost_FILESYSTEM_LIBRARY}
|
||||||
+ ${Boost_PROGRAM_OPTIONS_LIBRARY}
|
+ ${Boost_PROGRAM_OPTIONS_LIBRARY}
|
||||||
|
@ -5,6 +5,11 @@ Subject: [PATCH] armnn mobilenet test example
|
|||||||
|
|
||||||
Upstream-Status: Inappropriate [TI only test code]
|
Upstream-Status: Inappropriate [TI only test code]
|
||||||
Signed-off-by: Qin Su <qsu@ti.com>
|
Signed-off-by: Qin Su <qsu@ti.com>
|
||||||
|
|
||||||
|
[Guillaume's update: s#Logging.hpp#armnn/Logging.hpp#]
|
||||||
|
[Guillaume's update: Add #include <boost/log/trivial.hpp>]
|
||||||
|
[Guillaume's update: Drop armnnUtils::ConfigureLogging(...)]
|
||||||
|
[Guillaume's update: Handle boost::variant to mapbox::util::variant update]
|
||||||
---
|
---
|
||||||
tests/ArmnnExamples/ArmnnExamples.cpp | 654 ++++++++++++++++++++++++++++++++++
|
tests/ArmnnExamples/ArmnnExamples.cpp | 654 ++++++++++++++++++++++++++++++++++
|
||||||
1 file changed, 654 insertions(+)
|
1 file changed, 654 insertions(+)
|
||||||
@ -47,6 +52,7 @@ index 0000000..53a11cc
|
|||||||
+// See LICENSE file in the project root for full license information.
|
+// See LICENSE file in the project root for full license information.
|
||||||
+//
|
+//
|
||||||
+#include <armnn/ArmNN.hpp>
|
+#include <armnn/ArmNN.hpp>
|
||||||
|
+#include <boost/log/trivial.hpp>
|
||||||
+
|
+
|
||||||
+#include <utility>
|
+#include <utility>
|
||||||
+#include <armnn/TypesUtils.hpp>
|
+#include <armnn/TypesUtils.hpp>
|
||||||
@ -63,9 +69,9 @@ index 0000000..53a11cc
|
|||||||
+#if defined(ARMNN_ONNX_PARSER)
|
+#if defined(ARMNN_ONNX_PARSER)
|
||||||
+#include "armnnOnnxParser/IOnnxParser.hpp"
|
+#include "armnnOnnxParser/IOnnxParser.hpp"
|
||||||
+#endif
|
+#endif
|
||||||
+#include "CsvReader.hpp"
|
+#include <mapbox/variant.hpp> /*#include "CsvReader.hpp"*/
|
||||||
+#include "../InferenceTest.hpp"
|
+#include "../InferenceTest.hpp"
|
||||||
+#include <Logging.hpp>
|
+#include <armnn/Logging.hpp>
|
||||||
+#include <Profiling.hpp>
|
+#include <Profiling.hpp>
|
||||||
+
|
+
|
||||||
+#include <boost/algorithm/string/trim.hpp>
|
+#include <boost/algorithm/string/trim.hpp>
|
||||||
@ -312,7 +318,7 @@ index 0000000..53a11cc
|
|||||||
+ // Loads input tensor.
|
+ // Loads input tensor.
|
||||||
+ std::vector<uint8_t> input;
|
+ std::vector<uint8_t> input;
|
||||||
+ std::vector<float> input_resized;
|
+ std::vector<float> input_resized;
|
||||||
+ using TContainer = boost::variant<std::vector<float>, std::vector<int>, std::vector<unsigned char>>;
|
+ using TContainer = mapbox::util::variant<std::vector<float>, std::vector<int>, std::vector<unsigned char>>;
|
||||||
+
|
+
|
||||||
+ try
|
+ try
|
||||||
+ {
|
+ {
|
||||||
@ -392,7 +398,7 @@ index 0000000..53a11cc
|
|||||||
+ double preformance_ret = static_cast<double>(1.0/timeTakenS);
|
+ double preformance_ret = static_cast<double>(1.0/timeTakenS);
|
||||||
+
|
+
|
||||||
+ //retrieve output
|
+ //retrieve output
|
||||||
+ std::vector<float>& outputData = (boost::get<std::vector<float>>(outputDataContainers[0]));
|
+ std::vector<float>& outputData = (mapbox::util::get<std::vector<float>>(outputDataContainers[0]));
|
||||||
+ //output TOP predictions
|
+ //output TOP predictions
|
||||||
+ std::string predict_target_name;
|
+ std::string predict_target_name;
|
||||||
+ // find the out with the highest confidence
|
+ // find the out with the highest confidence
|
||||||
@ -583,7 +589,6 @@ index 0000000..53a11cc
|
|||||||
+ armnn::LogSeverity level = armnn::LogSeverity::Debug;
|
+ armnn::LogSeverity level = armnn::LogSeverity::Debug;
|
||||||
+#endif
|
+#endif
|
||||||
+ armnn::ConfigureLogging(true, true, level);
|
+ armnn::ConfigureLogging(true, true, level);
|
||||||
+ armnnUtils::ConfigureLogging(boost::log::core::get().get(), true, true, level);
|
|
||||||
+
|
+
|
||||||
+ std::string testCasesFile;
|
+ std::string testCasesFile;
|
||||||
+
|
+
|
||||||
|
@ -1,31 +0,0 @@
|
|||||||
From 38e8e4bc03a4c1ee801f6af50be94ccd971bf3eb Mon Sep 17 00:00:00 2001
|
|
||||||
From: Qin Su <qsu@ti.com>
|
|
||||||
Date: Tue, 27 Nov 2018 18:15:49 -0500
|
|
||||||
Subject: [PATCH] enable use of arm compute shared library
|
|
||||||
|
|
||||||
Upstream-Status: Inappropriate [configuration]
|
|
||||||
|
|
||||||
Signed-off-by: Qin Su <qsu@ti.com>
|
|
||||||
---
|
|
||||||
cmake/GlobalConfig.cmake | 5 +++++
|
|
||||||
1 file changed, 5 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/cmake/GlobalConfig.cmake b/cmake/GlobalConfig.cmake
|
|
||||||
index 491d87a..4cf40a2 100644
|
|
||||||
--- a/cmake/GlobalConfig.cmake
|
|
||||||
+++ b/cmake/GlobalConfig.cmake
|
|
||||||
@@ -285,6 +285,11 @@ if(ARMCOMPUTENEON OR ARMCOMPUTECL)
|
|
||||||
find_library(ARMCOMPUTE_CORE_LIBRARY_DEBUG NAMES arm_compute_core-static)
|
|
||||||
find_library(ARMCOMPUTE_CORE_LIBRARY_RELEASE NAMES arm_compute_core-static)
|
|
||||||
|
|
||||||
+ find_library(ARMCOMPUTE_LIBRARY_DEBUG NAMES arm_compute)
|
|
||||||
+ find_library(ARMCOMPUTE_LIBRARY_RELEASE NAMES arm_compute)
|
|
||||||
+ find_library(ARMCOMPUTE_CORE_LIBRARY_DEBUG NAMES arm_compute_core)
|
|
||||||
+ find_library(ARMCOMPUTE_CORE_LIBRARY_RELEASE NAMES arm_compute_core)
|
|
||||||
+
|
|
||||||
set(ARMCOMPUTE_LIBRARIES
|
|
||||||
debug ${ARMCOMPUTE_LIBRARY_DEBUG} ${ARMCOMPUTE_CORE_LIBRARY_DEBUG}
|
|
||||||
optimized ${ARMCOMPUTE_LIBRARY_RELEASE} ${ARMCOMPUTE_CORE_LIBRARY_RELEASE} )
|
|
||||||
--
|
|
||||||
1.9.1
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:ece7270a661fc38e913b44289269af92f208daf387e8de3f68684783e1e83a71
|
|
||||||
size 1095965
|
|
3
armnn-22.02.tar.gz
Normal file
3
armnn-22.02.tar.gz
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:b11fe8e4af3a178a1fd7405950e444e1358057921b97c864b91fcadd6ae41716
|
||||||
|
size 27958237
|
@ -1,79 +0,0 @@
|
|||||||
From d9f7c8ba3949823a623b407f4bd80d120ca0b5be Mon Sep 17 00:00:00 2001
|
|
||||||
From: Aron Virginas-Tar <Aron.Virginas-Tar@arm.com>
|
|
||||||
Date: Fri, 13 Sep 2019 13:37:03 +0100
|
|
||||||
Subject: [PATCH] IVGCVSW-3858 Fix RefTensorHandleTests on Raspberry Pi
|
|
||||||
|
|
||||||
* Fix alignment check to use sizeof(size_t) instead of a hard-coded value
|
|
||||||
|
|
||||||
Signed-off-by: Aron Virginas-Tar <Aron.Virginas-Tar@arm.com>
|
|
||||||
Change-Id: I092c4464c6cecb2403da9b7744b68ad063ddbad1
|
|
||||||
---
|
|
||||||
src/backends/backendsCommon/test/EndToEndTestImpl.hpp | 6 ++----
|
|
||||||
src/backends/reference/RefTensorHandle.cpp | 5 +++--
|
|
||||||
src/backends/reference/test/RefTensorHandleTests.cpp | 10 ++++++----
|
|
||||||
3 files changed, 11 insertions(+), 10 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/backends/backendsCommon/test/EndToEndTestImpl.hpp b/src/backends/backendsCommon/test/EndToEndTestImpl.hpp
|
|
||||||
index 8a3e44fc..040782bf 100644
|
|
||||||
--- a/src/backends/backendsCommon/test/EndToEndTestImpl.hpp
|
|
||||||
+++ b/src/backends/backendsCommon/test/EndToEndTestImpl.hpp
|
|
||||||
@@ -210,14 +210,12 @@ inline void ImportNonAlignedPointerTest(std::vector<BackendId> backends)
|
|
||||||
};
|
|
||||||
|
|
||||||
// Misaligned input
|
|
||||||
- float * misalignedInputData = inputData.data();
|
|
||||||
- misalignedInputData++;
|
|
||||||
+ float* misalignedInputData = reinterpret_cast<float*>(reinterpret_cast<char*>(inputData.data()) + 1);
|
|
||||||
|
|
||||||
std::vector<float> outputData(5);
|
|
||||||
|
|
||||||
// Misaligned output
|
|
||||||
- float * misalignedOutputData = outputData.data();
|
|
||||||
- misalignedOutputData++;
|
|
||||||
+ float* misalignedOutputData = reinterpret_cast<float*>(reinterpret_cast<char*>(outputData.data()) + 1);
|
|
||||||
|
|
||||||
InputTensors inputTensors
|
|
||||||
{
|
|
||||||
diff --git a/src/backends/reference/RefTensorHandle.cpp b/src/backends/reference/RefTensorHandle.cpp
|
|
||||||
index 42ac7f08..84a74edc 100644
|
|
||||||
--- a/src/backends/reference/RefTensorHandle.cpp
|
|
||||||
+++ b/src/backends/reference/RefTensorHandle.cpp
|
|
||||||
@@ -110,8 +110,9 @@ bool RefTensorHandle::Import(void* memory, MemorySource source)
|
|
||||||
{
|
|
||||||
if (source == MemorySource::Malloc)
|
|
||||||
{
|
|
||||||
- // Checks the 16 byte memory alignment.
|
|
||||||
- if (reinterpret_cast<uint64_t>(memory) % 16)
|
|
||||||
+ // Check memory alignment
|
|
||||||
+ constexpr uintptr_t alignment = sizeof(size_t);
|
|
||||||
+ if (reinterpret_cast<uintptr_t>(memory) % alignment)
|
|
||||||
{
|
|
||||||
if (m_Imported)
|
|
||||||
{
|
|
||||||
diff --git a/src/backends/reference/test/RefTensorHandleTests.cpp b/src/backends/reference/test/RefTensorHandleTests.cpp
|
|
||||||
index 2c5d6d49..be229bf8 100644
|
|
||||||
--- a/src/backends/reference/test/RefTensorHandleTests.cpp
|
|
||||||
+++ b/src/backends/reference/test/RefTensorHandleTests.cpp
|
|
||||||
@@ -92,15 +92,17 @@ BOOST_AUTO_TEST_CASE(MisalignedPointer)
|
|
||||||
TensorInfo info({2}, DataType::Float32);
|
|
||||||
RefTensorHandle handle(info, memoryManager, static_cast<unsigned int>(MemorySource::Malloc));
|
|
||||||
|
|
||||||
- // Allocates a 2 int array
|
|
||||||
+ // Allocate a 2 int array
|
|
||||||
int* testPtr = new int[2];
|
|
||||||
- int* misalignedPtr = testPtr + 1;
|
|
||||||
|
|
||||||
- BOOST_CHECK(!handle.Import(static_cast<void *>(misalignedPtr), MemorySource::Malloc));
|
|
||||||
+ // Increment pointer by 1 byte
|
|
||||||
+ void* misalignedPtr = static_cast<void*>(reinterpret_cast<char*>(testPtr) + 1);
|
|
||||||
+
|
|
||||||
+ BOOST_CHECK(!handle.Import(misalignedPtr, MemorySource::Malloc));
|
|
||||||
|
|
||||||
delete[] testPtr;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
-BOOST_AUTO_TEST_SUITE_END()
|
|
||||||
\ No newline at end of file
|
|
||||||
+BOOST_AUTO_TEST_SUITE_END()
|
|
@ -1,284 +0,0 @@
|
|||||||
From dcaa6109c95034aa3b945acd50a2882e40f13370 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Ferran Balaguer <ferran.balaguer@arm.com>
|
|
||||||
Date: Wed, 21 Aug 2019 13:28:38 +0100
|
|
||||||
Subject: [PATCH] IVGCVSW-3175 Add Regression Tests for Zero Copy
|
|
||||||
|
|
||||||
Signed-off-by: Ferran Balaguer <ferran.balaguer@arm.com>
|
|
||||||
Change-Id: I6f16ea0dca359283a3b187e2f046f82a7dc2ff7c
|
|
||||||
---
|
|
||||||
.../backendsCommon/test/EndToEndTestImpl.hpp | 153 ++++++++++++++++++
|
|
||||||
.../reference/test/RefEndToEndTests.cpp | 86 ++--------
|
|
||||||
2 files changed, 167 insertions(+), 72 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/backends/backendsCommon/test/EndToEndTestImpl.hpp b/src/backends/backendsCommon/test/EndToEndTestImpl.hpp
|
|
||||||
index f8673d69..8a3e44fc 100644
|
|
||||||
--- a/src/backends/backendsCommon/test/EndToEndTestImpl.hpp
|
|
||||||
+++ b/src/backends/backendsCommon/test/EndToEndTestImpl.hpp
|
|
||||||
@@ -8,6 +8,7 @@
|
|
||||||
|
|
||||||
#include <armnn/ArmNN.hpp>
|
|
||||||
#include <armnn/INetwork.hpp>
|
|
||||||
+#include <Profiling.hpp>
|
|
||||||
|
|
||||||
#include <backendsCommon/test/QuantizeHelper.hpp>
|
|
||||||
|
|
||||||
@@ -171,4 +172,156 @@ void EndToEndLayerTestImpl(INetworkPtr network,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
+inline void ImportNonAlignedPointerTest(std::vector<BackendId> backends)
|
|
||||||
+{
|
|
||||||
+ using namespace armnn;
|
|
||||||
+
|
|
||||||
+ // Create runtime in which test will run
|
|
||||||
+ IRuntime::CreationOptions options;
|
|
||||||
+ IRuntimePtr runtime(armnn::IRuntime::Create(options));
|
|
||||||
+
|
|
||||||
+ // build up the structure of the network
|
|
||||||
+ INetworkPtr net(INetwork::Create());
|
|
||||||
+
|
|
||||||
+ IConnectableLayer* input = net->AddInputLayer(0);
|
|
||||||
+
|
|
||||||
+ NormalizationDescriptor descriptor;
|
|
||||||
+ IConnectableLayer* norm = net->AddNormalizationLayer(descriptor);
|
|
||||||
+
|
|
||||||
+ IConnectableLayer* output = net->AddOutputLayer(0);
|
|
||||||
+
|
|
||||||
+ input->GetOutputSlot(0).Connect(norm->GetInputSlot(0));
|
|
||||||
+ norm->GetOutputSlot(0).Connect(output->GetInputSlot(0));
|
|
||||||
+
|
|
||||||
+ input->GetOutputSlot(0).SetTensorInfo(TensorInfo({ 1, 1, 4, 1 }, DataType::Float32));
|
|
||||||
+ norm->GetOutputSlot(0).SetTensorInfo(TensorInfo({ 1, 1, 4, 1 }, DataType::Float32));
|
|
||||||
+
|
|
||||||
+ // Optimize the network
|
|
||||||
+ IOptimizedNetworkPtr optNet = Optimize(*net, backends, runtime->GetDeviceSpec());
|
|
||||||
+
|
|
||||||
+ // Loads it into the runtime.
|
|
||||||
+ NetworkId netId;
|
|
||||||
+ runtime->LoadNetwork(netId, std::move(optNet));
|
|
||||||
+
|
|
||||||
+ // Creates structures for input & output
|
|
||||||
+ std::vector<float> inputData
|
|
||||||
+ {
|
|
||||||
+ 1.0f, 2.0f, 3.0f, 4.0f, 5.0f
|
|
||||||
+ };
|
|
||||||
+
|
|
||||||
+ // Misaligned input
|
|
||||||
+ float * misalignedInputData = inputData.data();
|
|
||||||
+ misalignedInputData++;
|
|
||||||
+
|
|
||||||
+ std::vector<float> outputData(5);
|
|
||||||
+
|
|
||||||
+ // Misaligned output
|
|
||||||
+ float * misalignedOutputData = outputData.data();
|
|
||||||
+ misalignedOutputData++;
|
|
||||||
+
|
|
||||||
+ InputTensors inputTensors
|
|
||||||
+ {
|
|
||||||
+ {0,armnn::ConstTensor(runtime->GetInputTensorInfo(netId, 0), misalignedInputData)},
|
|
||||||
+ };
|
|
||||||
+ OutputTensors outputTensors
|
|
||||||
+ {
|
|
||||||
+ {0,armnn::Tensor(runtime->GetOutputTensorInfo(netId, 0), misalignedOutputData)}
|
|
||||||
+ };
|
|
||||||
+
|
|
||||||
+ // The result of the inference is not important, just the fact that there
|
|
||||||
+ // should not be CopyMemGeneric workloads.
|
|
||||||
+ runtime->GetProfiler(netId)->EnableProfiling(true);
|
|
||||||
+
|
|
||||||
+ // Do the inference
|
|
||||||
+ runtime->EnqueueWorkload(netId, inputTensors, outputTensors);
|
|
||||||
+
|
|
||||||
+ // Retrieve the Profiler.Print() output to get the workload execution
|
|
||||||
+ ProfilerManager& profilerManager = armnn::ProfilerManager::GetInstance();
|
|
||||||
+ std::stringstream ss;
|
|
||||||
+ profilerManager.GetProfiler()->Print(ss);;
|
|
||||||
+ std::string dump = ss.str();
|
|
||||||
+
|
|
||||||
+ // Contains RefNormalizationWorkload
|
|
||||||
+ std::size_t found = dump.find("RefNormalizationWorkload");
|
|
||||||
+ BOOST_TEST(found != std::string::npos);
|
|
||||||
+ // No Contains SyncMemGeneric (Created when importing the output tensor handle)
|
|
||||||
+ found = dump.find("SyncMemGeneric");
|
|
||||||
+ BOOST_TEST(found == std::string::npos);
|
|
||||||
+ // Contains CopyMemGeneric
|
|
||||||
+ found = dump.find("CopyMemGeneric");
|
|
||||||
+ BOOST_TEST(found != std::string::npos);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+inline void ImportAlignedPointerTest(std::vector<BackendId> backends)
|
|
||||||
+{
|
|
||||||
+ using namespace armnn;
|
|
||||||
+
|
|
||||||
+ // Create runtime in which test will run
|
|
||||||
+ IRuntime::CreationOptions options;
|
|
||||||
+ IRuntimePtr runtime(armnn::IRuntime::Create(options));
|
|
||||||
+
|
|
||||||
+ // build up the structure of the network
|
|
||||||
+ INetworkPtr net(INetwork::Create());
|
|
||||||
+
|
|
||||||
+ IConnectableLayer* input = net->AddInputLayer(0);
|
|
||||||
+
|
|
||||||
+ NormalizationDescriptor descriptor;
|
|
||||||
+ IConnectableLayer* norm = net->AddNormalizationLayer(descriptor);
|
|
||||||
+
|
|
||||||
+ IConnectableLayer* output = net->AddOutputLayer(0);
|
|
||||||
+
|
|
||||||
+ input->GetOutputSlot(0).Connect(norm->GetInputSlot(0));
|
|
||||||
+ norm->GetOutputSlot(0).Connect(output->GetInputSlot(0));
|
|
||||||
+
|
|
||||||
+ input->GetOutputSlot(0).SetTensorInfo(TensorInfo({ 1, 1, 4, 1 }, DataType::Float32));
|
|
||||||
+ norm->GetOutputSlot(0).SetTensorInfo(TensorInfo({ 1, 1, 4, 1 }, DataType::Float32));
|
|
||||||
+
|
|
||||||
+ // Optimize the network
|
|
||||||
+ IOptimizedNetworkPtr optNet = Optimize(*net, backends, runtime->GetDeviceSpec());
|
|
||||||
+
|
|
||||||
+ // Loads it into the runtime.
|
|
||||||
+ NetworkId netId;
|
|
||||||
+ runtime->LoadNetwork(netId, std::move(optNet));
|
|
||||||
+
|
|
||||||
+ // Creates structures for input & output
|
|
||||||
+ std::vector<float> inputData
|
|
||||||
+ {
|
|
||||||
+ 1.0f, 2.0f, 3.0f, 4.0f
|
|
||||||
+ };
|
|
||||||
+
|
|
||||||
+ std::vector<float> outputData(4);
|
|
||||||
+
|
|
||||||
+ InputTensors inputTensors
|
|
||||||
+ {
|
|
||||||
+ {0,armnn::ConstTensor(runtime->GetInputTensorInfo(netId, 0), inputData.data())},
|
|
||||||
+ };
|
|
||||||
+ OutputTensors outputTensors
|
|
||||||
+ {
|
|
||||||
+ {0,armnn::Tensor(runtime->GetOutputTensorInfo(netId, 0), outputData.data())}
|
|
||||||
+ };
|
|
||||||
+
|
|
||||||
+ // The result of the inference is not important, just the fact that there
|
|
||||||
+ // should not be CopyMemGeneric workloads.
|
|
||||||
+ runtime->GetProfiler(netId)->EnableProfiling(true);
|
|
||||||
+
|
|
||||||
+ // Do the inference
|
|
||||||
+ runtime->EnqueueWorkload(netId, inputTensors, outputTensors);
|
|
||||||
+
|
|
||||||
+ // Retrieve the Profiler.Print() output to get the workload execution
|
|
||||||
+ ProfilerManager& profilerManager = armnn::ProfilerManager::GetInstance();
|
|
||||||
+ std::stringstream ss;
|
|
||||||
+ profilerManager.GetProfiler()->Print(ss);;
|
|
||||||
+ std::string dump = ss.str();
|
|
||||||
+
|
|
||||||
+ // Contains RefNormalizationWorkload
|
|
||||||
+ std::size_t found = dump.find("RefNormalizationWorkload");
|
|
||||||
+ BOOST_TEST(found != std::string::npos);
|
|
||||||
+ // Contains SyncMemGeneric
|
|
||||||
+ found = dump.find("SyncMemGeneric");
|
|
||||||
+ BOOST_TEST(found != std::string::npos);
|
|
||||||
+ // No contains CopyMemGeneric
|
|
||||||
+ found = dump.find("CopyMemGeneric");
|
|
||||||
+ BOOST_TEST(found == std::string::npos);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
} // anonymous namespace
|
|
||||||
diff --git a/src/backends/reference/test/RefEndToEndTests.cpp b/src/backends/reference/test/RefEndToEndTests.cpp
|
|
||||||
index 31e9b339..ee42c9e9 100644
|
|
||||||
--- a/src/backends/reference/test/RefEndToEndTests.cpp
|
|
||||||
+++ b/src/backends/reference/test/RefEndToEndTests.cpp
|
|
||||||
@@ -322,78 +322,6 @@ BOOST_AUTO_TEST_CASE(TrivialMin)
|
|
||||||
BOOST_TEST(outputData[3] == 2);
|
|
||||||
}
|
|
||||||
|
|
||||||
-BOOST_AUTO_TEST_CASE(RefNoCopyWorkloads)
|
|
||||||
-{
|
|
||||||
- using namespace armnn;
|
|
||||||
-
|
|
||||||
- // Create runtime in which test will run
|
|
||||||
- IRuntime::CreationOptions options;
|
|
||||||
- IRuntimePtr runtime(armnn::IRuntime::Create(options));
|
|
||||||
-
|
|
||||||
- // build up the structure of the network
|
|
||||||
- INetworkPtr net(INetwork::Create());
|
|
||||||
-
|
|
||||||
- IConnectableLayer* input = net->AddInputLayer(0);
|
|
||||||
-
|
|
||||||
- NormalizationDescriptor descriptor;
|
|
||||||
- IConnectableLayer* norm = net->AddNormalizationLayer(descriptor);
|
|
||||||
-
|
|
||||||
- IConnectableLayer* output = net->AddOutputLayer(0);
|
|
||||||
-
|
|
||||||
- input->GetOutputSlot(0).Connect(norm->GetInputSlot(0));
|
|
||||||
- norm->GetOutputSlot(0).Connect(output->GetInputSlot(0));
|
|
||||||
-
|
|
||||||
- input->GetOutputSlot(0).SetTensorInfo(TensorInfo({ 1, 1, 4, 1 }, DataType::Float32));
|
|
||||||
- norm->GetOutputSlot(0).SetTensorInfo(TensorInfo({ 1, 1, 4, 1 }, DataType::Float32));
|
|
||||||
-
|
|
||||||
- // Optimize the network
|
|
||||||
- IOptimizedNetworkPtr optNet = Optimize(*net, defaultBackends, runtime->GetDeviceSpec());
|
|
||||||
-
|
|
||||||
- // Loads it into the runtime.
|
|
||||||
- NetworkId netId;
|
|
||||||
- runtime->LoadNetwork(netId, std::move(optNet));
|
|
||||||
-
|
|
||||||
- // Creates structures for input & output
|
|
||||||
- std::vector<float> inputData
|
|
||||||
- {
|
|
||||||
- 1.0f, 2.0f, 3.0f, 4.0f
|
|
||||||
- };
|
|
||||||
-
|
|
||||||
- std::vector<float> outputData(4);
|
|
||||||
-
|
|
||||||
- InputTensors inputTensors
|
|
||||||
- {
|
|
||||||
- {0,armnn::ConstTensor(runtime->GetInputTensorInfo(netId, 0), inputData.data())},
|
|
||||||
- };
|
|
||||||
- OutputTensors outputTensors
|
|
||||||
- {
|
|
||||||
- {0,armnn::Tensor(runtime->GetOutputTensorInfo(netId, 0), outputData.data())}
|
|
||||||
- };
|
|
||||||
-
|
|
||||||
- // The result of the inference is not important, just the fact that there
|
|
||||||
- // should not be CopyMemGeneric workloads.
|
|
||||||
- runtime->GetProfiler(netId)->EnableProfiling(true);
|
|
||||||
-
|
|
||||||
- // Do the inference
|
|
||||||
- runtime->EnqueueWorkload(netId, inputTensors, outputTensors);
|
|
||||||
-
|
|
||||||
- // Retrieve the Profiler.Print() output to get the workload execution
|
|
||||||
- ProfilerManager& profilerManager = armnn::ProfilerManager::GetInstance();
|
|
||||||
- std::stringstream ss;
|
|
||||||
- profilerManager.GetProfiler()->Print(ss);;
|
|
||||||
- std::string dump = ss.str();
|
|
||||||
-
|
|
||||||
- // Contains RefNormalizationWorkload
|
|
||||||
- std::size_t found = dump.find("RefNormalizationWorkload");
|
|
||||||
- BOOST_TEST(found != std::string::npos);
|
|
||||||
- // Contains SyncMemGeneric
|
|
||||||
- found = dump.find("SyncMemGeneric");
|
|
||||||
- BOOST_TEST(found != std::string::npos);
|
|
||||||
- // No contains CopyMemGeneric
|
|
||||||
- found = dump.find("CopyMemGeneric");
|
|
||||||
- BOOST_TEST(found == std::string::npos);
|
|
||||||
-}
|
|
||||||
-
|
|
||||||
BOOST_AUTO_TEST_CASE(RefEqualSimpleEndToEndTest)
|
|
||||||
{
|
|
||||||
const std::vector<uint8_t> expectedOutput({ 1, 1, 1, 1, 0, 0, 0, 0,
|
|
||||||
@@ -1023,4 +951,18 @@ BOOST_AUTO_TEST_CASE(RefResizeNearestNeighborEndToEndInt16NhwcTest)
|
|
||||||
ResizeNearestNeighborEndToEnd<armnn::DataType::QuantisedSymm16>(defaultBackends, armnn::DataLayout::NHWC);
|
|
||||||
}
|
|
||||||
|
|
||||||
+#if !defined(__ANDROID__)
|
|
||||||
+// Only run these tests on non Android platforms
|
|
||||||
+BOOST_AUTO_TEST_CASE(RefImportNonAlignedPointerTest)
|
|
||||||
+{
|
|
||||||
+ ImportNonAlignedPointerTest(defaultBackends);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+BOOST_AUTO_TEST_CASE(RefImportAlignedPointerTest)
|
|
||||||
+{
|
|
||||||
+ ImportAlignedPointerTest(defaultBackends);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
BOOST_AUTO_TEST_SUITE_END()
|
|
||||||
\ No newline at end of file
|
|
@ -1,10 +0,0 @@
|
|||||||
--- armnn-19.02.orig/src/armnn/test/TensorHelpers.hpp 2019-03-26 16:08:56.403605790 +0100
|
|
||||||
+++ armnn-19.02/src/armnn/test/TensorHelpers.hpp 2019-03-26 16:09:58.448265384 +0100
|
|
||||||
@@ -13,6 +13,7 @@
|
|
||||||
#include <boost/assert.hpp>
|
|
||||||
#include <boost/test/tools/floating_point_comparison.hpp>
|
|
||||||
#include <boost/random/uniform_real_distribution.hpp>
|
|
||||||
+#define BOOST_ALLOW_DEPRECATED_HEADERS
|
|
||||||
#include <boost/random/mersenne_twister.hpp>
|
|
||||||
#include <boost/numeric/conversion/cast.hpp>
|
|
||||||
|
|
@ -1,119 +0,0 @@
|
|||||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
|
||||||
index fc68f3af..3616ae8e 100644
|
|
||||||
--- a/CMakeLists.txt
|
|
||||||
+++ b/CMakeLists.txt
|
|
||||||
@@ -7,6 +7,7 @@ project(armnn)
|
|
||||||
|
|
||||||
set(additional_cmake_files)
|
|
||||||
list(APPEND additional_cmake_files
|
|
||||||
+ cmake/armnnVersion.cmake
|
|
||||||
cmake/Utils.cmake
|
|
||||||
cmake/GlobalConfig.cmake
|
|
||||||
cmake/AddDllCopyCommands.cmake)
|
|
||||||
@@ -15,6 +16,21 @@ foreach(cmake_file ${additional_cmake_files})
|
|
||||||
include(${cmake_file})
|
|
||||||
endforeach()
|
|
||||||
|
|
||||||
+
|
|
||||||
+# Define LIB version
|
|
||||||
+set(GENERIC_LIB_VERSION "${ARMNN_MAJOR_VERSION}.${ARMNN_MINOR_VERSION}")
|
|
||||||
+# Define LIB soversion
|
|
||||||
+set(GENERIC_LIB_SOVERSION "${ARMNN_MAJOR_VERSION}")
|
|
||||||
+# Define _ARMNN_VERSION string to be used in include/armnn/Version.hpp for ARMNN_VERSION string
|
|
||||||
+set(_ARMNN_VERSION
|
|
||||||
+ "20${ARMNN_MAJOR_VERSION}${ARMNN_MINOR_VERSION}${ARMNN_BUILD_VERSION}")
|
|
||||||
+if(${CMAKE_VERSION} VERSION_LESS "3.12.0")
|
|
||||||
+ add_definitions(-D_ARMNN_VERSION=${_ARMNN_VERSION})
|
|
||||||
+else()
|
|
||||||
+ add_compile_definitions(_ARMNN_VERSION=${_ARMNN_VERSION})
|
|
||||||
+endif()
|
|
||||||
+
|
|
||||||
+
|
|
||||||
if (DYNAMIC_BACKEND_PATHS)
|
|
||||||
# It's expected to have the format: DYNAMIC_BACKEND_PATHS="PATH_1:PATH_2...:PATH_N"
|
|
||||||
add_definitions('-DDYNAMIC_BACKEND_PATHS="${DYNAMIC_BACKEND_PATHS}"')
|
|
||||||
@@ -95,6 +111,7 @@ if(BUILD_CAFFE_PARSER)
|
|
||||||
|
|
||||||
target_link_libraries(armnnCaffeParser armnn)
|
|
||||||
target_link_libraries(armnnCaffeParser ${PROTOBUF_LIBRARIES})
|
|
||||||
+ set_target_properties(armnnCaffeParser PROPERTIES VERSION ${GENERIC_LIB_VERSION} SOVERSION ${GENERIC_LIB_SOVERSION} )
|
|
||||||
|
|
||||||
endif()
|
|
||||||
|
|
||||||
@@ -119,6 +136,7 @@ if(BUILD_ONNX_PARSER)
|
|
||||||
|
|
||||||
# Protobuf
|
|
||||||
target_link_libraries(armnnOnnxParser ${PROTOBUF_LIBRARIES})
|
|
||||||
+ set_target_properties(armnnOnnxParser PROPERTIES VERSION ${GENERIC_LIB_VERSION} SOVERSION ${GENERIC_LIB_SOVERSION} )
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(BUILD_TF_PARSER)
|
|
||||||
@@ -142,6 +160,7 @@ if(BUILD_TF_PARSER)
|
|
||||||
|
|
||||||
# Protobuf (use the specific version tensorflow wants)
|
|
||||||
target_link_libraries(armnnTfParser ${PROTOBUF_LIBRARIES})
|
|
||||||
+ set_target_properties(armnnTfParser PROPERTIES VERSION ${GENERIC_LIB_VERSION} SOVERSION ${GENERIC_LIB_SOVERSION} )
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(BUILD_ARMNN_QUANTIZER AND ARMNNREF)
|
|
||||||
@@ -200,6 +219,8 @@ if(BUILD_ARMNN_QUANTIZER AND ARMNNREF)
|
|
||||||
target_link_libraries(ArmnnQuantizer pthread)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
+ set_target_properties(ArmnnQuantizer PROPERTIES VERSION ${GENERIC_LIB_VERSION} SOVERSION ${GENERIC_LIB_SOVERSION} )
|
|
||||||
+
|
|
||||||
endif()
|
|
||||||
|
|
||||||
|
|
||||||
@@ -539,6 +560,7 @@ endif()
|
|
||||||
if(PROFILING_BACKEND_STREAMLINE)
|
|
||||||
target_link_libraries(armnn pthread)
|
|
||||||
endif()
|
|
||||||
+set_target_properties( armnn PROPERTIES VERSION ${GENERIC_LIB_VERSION} SOVERSION ${GENERIC_LIB_SOVERSION} )
|
|
||||||
|
|
||||||
if(BUILD_UNIT_TESTS)
|
|
||||||
set(unittest_sources)
|
|
||||||
diff --git a/cmake/armnnVersion.cmake b/cmake/armnnVersion.cmake
|
|
||||||
new file mode 100644
|
|
||||||
index 00000000..68783370
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/cmake/armnnVersion.cmake
|
|
||||||
@@ -0,0 +1,4 @@
|
|
||||||
+# ArmNN version number components.
|
|
||||||
+set(ARMNN_MAJOR_VERSION 19)
|
|
||||||
+set(ARMNN_MINOR_VERSION 08)
|
|
||||||
+set(ARMNN_BUILD_VERSION 00)
|
|
||||||
diff --git a/include/armnn/Version.hpp b/include/armnn/Version.hpp
|
|
||||||
index 9d73cd54..735be6b9 100644
|
|
||||||
--- a/include/armnn/Version.hpp
|
|
||||||
+++ b/include/armnn/Version.hpp
|
|
||||||
@@ -9,4 +9,5 @@
|
|
||||||
// YYYY = 4-digit year number
|
|
||||||
// MM = 2-digit month number
|
|
||||||
// PP = 2-digit patch number
|
|
||||||
-#define ARMNN_VERSION "20190800"
|
|
||||||
+// Defined in CMakeLists.txt
|
|
||||||
+#define ARMNN_VERSION _ARMNN_VERSION
|
|
||||||
diff --git a/src/armnnSerializer/CMakeLists.txt b/src/armnnSerializer/CMakeLists.txt
|
|
||||||
index 225999bb..ccc924e6 100755
|
|
||||||
--- a/src/armnnSerializer/CMakeLists.txt
|
|
||||||
+++ b/src/armnnSerializer/CMakeLists.txt
|
|
||||||
@@ -43,4 +43,5 @@ if(BUILD_ARMNN_SERIALIZER)
|
|
||||||
|
|
||||||
install(TARGETS armnnSerializer
|
|
||||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
|
||||||
+ set_target_properties(armnnSerializer PROPERTIES VERSION ${GENERIC_LIB_VERSION} SOVERSION ${GENERIC_LIB_SOVERSION} )
|
|
||||||
endif()
|
|
||||||
diff --git a/src/armnnTfLiteParser/CMakeLists.txt b/src/armnnTfLiteParser/CMakeLists.txt
|
|
||||||
index 17d4cf68..ae60079a 100755
|
|
||||||
--- a/src/armnnTfLiteParser/CMakeLists.txt
|
|
||||||
+++ b/src/armnnTfLiteParser/CMakeLists.txt
|
|
||||||
@@ -21,6 +21,8 @@ if(BUILD_TF_LITE_PARSER)
|
|
||||||
target_link_libraries(armnnTfLiteParser ${Boost_FILESYSTEM_LIBRARY} ${Boost_THREAD_LIBRARY})
|
|
||||||
target_link_libraries(armnnTfLiteParser armnn ${FLATBUFFERS_LIBRARY})
|
|
||||||
|
|
||||||
+ set_target_properties(armnnTfLiteParser PROPERTIES VERSION ${GENERIC_LIB_VERSION} SOVERSION ${GENERIC_LIB_SOVERSION} )
|
|
||||||
+
|
|
||||||
install(TARGETS armnnTfLiteParser
|
|
||||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
|
||||||
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
|
|
271
armnn.changes
271
armnn.changes
@ -1,3 +1,274 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Mar 15 13:06:29 UTC 2022 - Guillaume GARDET <guillaume.gardet@opensuse.org>
|
||||||
|
|
||||||
|
- Update to 22.02:
|
||||||
|
* Changelog: https://github.com/ARM-software/armnn/releases/tag/v22.02
|
||||||
|
* Add libarmnnTestUtils
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Dec 1 10:03:31 UTC 2021 - Guillaume GARDET <guillaume.gardet@opensuse.org>
|
||||||
|
|
||||||
|
- Update to 21.11:
|
||||||
|
* Changelog: https://github.com/ARM-software/armnn/releases/tag/v21.11
|
||||||
|
* Main changes:
|
||||||
|
- New capabilities and improve performance
|
||||||
|
- ABI/API Changes
|
||||||
|
The following front-end API changes have occurred during the
|
||||||
|
implementation of 21.11 that users should be aware of before
|
||||||
|
upgrading. Due to these changes we have bumped our ARMNN_VERSION
|
||||||
|
to 27.0.0, the Delegate to 25.0.0 and also bumping
|
||||||
|
our Parsers to 24.3.0 following Semantic Versioning guidelines.
|
||||||
|
- Drop upstream patches:
|
||||||
|
* 96beb97.diff
|
||||||
|
* febc20f.diff
|
||||||
|
* e118e04.diff
|
||||||
|
* 0011-update-doctest-for-glibc2.34.patch
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Oct 25 07:21:27 UTC 2021 - Guillaume GARDET <guillaume.gardet@opensuse.org>
|
||||||
|
|
||||||
|
- Add upstream patch to fix stringop-overread error:
|
||||||
|
* e118e04.diff
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu Oct 21 15:24:42 UTC 2021 - Guillaume GARDET <guillaume.gardet@opensuse.org>
|
||||||
|
|
||||||
|
- Add upstream patch to fix uninitialized var error:
|
||||||
|
* febc20f.diff
|
||||||
|
- Remove most -Wno-error* flags which are not needed anymore
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Oct 20 08:41:14 UTC 2021 - Atri Bhattacharya <badshah400@gmail.com>
|
||||||
|
|
||||||
|
- Add 0011-update-doctest-for-glibc2.34.patch: Update doctest to
|
||||||
|
version 2.4.6 to allow Arm NN to build with glibc 2.34; patch
|
||||||
|
taken from upstream commits 13d2e0d and 4ec6d42and rebased for
|
||||||
|
current version.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu Sep 9 08:04:50 UTC 2021 - Guillaume GARDET <guillaume.gardet@opensuse.org>
|
||||||
|
|
||||||
|
- Update to 21.08:
|
||||||
|
* Changelog: https://github.com/ARM-software/armnn/releases/tag/v21.08
|
||||||
|
* Main changes:
|
||||||
|
- new capabilities and improve performance:
|
||||||
|
* Added the ability to import protected DMA Buffers and
|
||||||
|
allow Arm NN to run inferences that are in Protected GPU Memory.
|
||||||
|
As well as providing Custom Memory Allocator which supports
|
||||||
|
importing malloc, Dma_buf and protected Dma buffers.
|
||||||
|
* Users with multi core NPUs has been given the ability to pin
|
||||||
|
inferences to selected cores giving them the ability to balance
|
||||||
|
parallel workloads across the NPU and increase throughput.
|
||||||
|
* Boost has been completely removed from the code base making
|
||||||
|
Arm NN easier to integrate into other software stacks.
|
||||||
|
* Added support for non-constant weights and biases on
|
||||||
|
FullyConnected which lay the groundwork for supporting more models.
|
||||||
|
* More operators supported on Arm NN, TfLite Parser, TfLite
|
||||||
|
Delegate and Android NNAPI driver.
|
||||||
|
- Drop upstream patch:
|
||||||
|
* armnn-fix-include.patch
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Fri Jul 16 08:23:43 UTC 2021 - Guillaume GARDET <guillaume.gardet@opensuse.org>
|
||||||
|
|
||||||
|
- Add '-Wno-error=stringop-overread' to workaround build error
|
||||||
|
with GCC11 with openCL enabled
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Jul 13 08:07:14 UTC 2021 - Guillaume GARDET <guillaume.gardet@opensuse.org>
|
||||||
|
|
||||||
|
- Add '-Wno-error=uninitialized -Wno-error=array-bounds' to
|
||||||
|
workaround build issues with GCC11 - https://github.com/ARM-software/armnn/issues/548
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue May 25 06:49:01 UTC 2021 - Guillaume GARDET <guillaume.gardet@opensuse.org>
|
||||||
|
|
||||||
|
- Fix libarmnnOnnxParser version
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Fri May 21 06:55:48 UTC 2021 - Guillaume GARDET <guillaume.gardet@opensuse.org>
|
||||||
|
|
||||||
|
- Update to 21.05:
|
||||||
|
* Changelog: https://github.com/ARM-software/armnn/releases/tag/v21.05
|
||||||
|
* Main changes:
|
||||||
|
- new capabilities to allow users attain higher performance by:
|
||||||
|
* Making the Arm NN Core thread safe opening the possibility of
|
||||||
|
running multiple inferences on the same model in parallel
|
||||||
|
software threads.
|
||||||
|
* Allowing graphs on the GPU backend import their input and
|
||||||
|
output buffers either from correctly aligned main memory or
|
||||||
|
from kernel memory exposed as a dma_buf, thus reducing memory
|
||||||
|
usage and saving the time involved in copying data into and
|
||||||
|
out of the GPU memory space.
|
||||||
|
- In addition to this, support was added to allow the MobileBERT
|
||||||
|
network to be parsed and run.
|
||||||
|
- Finally three deprecated components: the Tensorflow Parser,
|
||||||
|
the Caffe Parser and the Arm NN Quantizer tool, were removed
|
||||||
|
- Add patch to fix include path:
|
||||||
|
* armnn-fix-include.patch
|
||||||
|
- Disable armnn-extratests as it fails to build with current version
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Mar 29 12:17:08 UTC 2021 - Guillaume GARDET <guillaume.gardet@opensuse.org>
|
||||||
|
|
||||||
|
- Update to 21.02:
|
||||||
|
* Changelog: https://github.com/ARM-software/armnn/releases/tag/v21.02
|
||||||
|
- Drop upstream patch:
|
||||||
|
* c5c40fe.diff
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Feb 15 09:48:06 UTC 2021 - Guillaume GARDET <guillaume.gardet@opensuse.org>
|
||||||
|
|
||||||
|
- Fix instalaltion of cmake files with an upstream patch:
|
||||||
|
* c5c40fe.diff
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Jan 25 08:21:39 UTC 2021 - Guillaume GARDET <guillaume.gardet@opensuse.org>
|
||||||
|
|
||||||
|
- Backport patch to fix tflite parser when built against
|
||||||
|
tensorflow 2.4:
|
||||||
|
* 96beb97.diff
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Dec 9 14:33:19 UTC 2020 - Guillaume GARDET <guillaume.gardet@opensuse.org>
|
||||||
|
|
||||||
|
- Update to 20.11:
|
||||||
|
* Changelog: https://github.com/ARM-software/armnn/releases/tag/v20.11
|
||||||
|
- Refresh patch to handle boost::variant to mapbox::util::variant update:
|
||||||
|
* 0006-armnn-mobilenet-test-example.patch
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Fri Sep 4 16:07:09 UTC 2020 - Guillaume GARDET <guillaume.gardet@opensuse.org>
|
||||||
|
|
||||||
|
- Add python support, disabled for now as it does not install
|
||||||
|
files atm
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Fri Sep 4 14:56:36 UTC 2020 - Guillaume GARDET <guillaume.gardet@opensuse.org>
|
||||||
|
|
||||||
|
- Package libtimelineDecoderJson
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu Sep 3 11:18:40 UTC 2020 - Guillaume GARDET <guillaume.gardet@opensuse.org>
|
||||||
|
|
||||||
|
- Update to 20.08:
|
||||||
|
* Changelog: https://github.com/ARM-software/armnn/releases/tag/v20.08
|
||||||
|
- Refresh patch:
|
||||||
|
* 0005-add-armnn-mobilenet-test-example.patch
|
||||||
|
- Drop upstream patch:
|
||||||
|
* armnn-fix-catch.patch
|
||||||
|
- Disable ONNX on Tumbleweed since there is a compatibility issue
|
||||||
|
with ONNX 1.7.0, see: https://github.com/ARM-software/armnn/issues/419
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Jun 17 07:19:10 UTC 2020 - Guillaume GARDET <guillaume.gardet@opensuse.org>
|
||||||
|
|
||||||
|
- Build only where ComputeLibrary is built:
|
||||||
|
aarch64 armv7 and x86_64
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu Jun 4 09:51:23 UTC 2020 - Guillaume GARDET <guillaume.gardet@opensuse.org>
|
||||||
|
|
||||||
|
- Unify Leap/SLE options
|
||||||
|
- Update to 20.05:
|
||||||
|
* Changelog: https://github.com/ARM-software/armnn/releases/tag/v20.05
|
||||||
|
- Drop upstream patch:
|
||||||
|
* armnn-enable-use-of-arm-compute-shared-library.patch
|
||||||
|
- Refresh patch:
|
||||||
|
* 0003-add-more-test-command-line-arguments.patch
|
||||||
|
- Add new patch to fix build with gcc10:
|
||||||
|
* armnn-fix-catch.patch
|
||||||
|
- Package new libtimelineDecode and libarmnnBasePipeServer
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu May 28 15:10:11 UTC 2020 - Guillaume GARDET <guillaume.gardet@opensuse.org>
|
||||||
|
|
||||||
|
- Apply boost link fixes only for armnn_extra_tests
|
||||||
|
- Apply patches for armnn_extra_tests only when
|
||||||
|
armnn_extra_tests is built
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Mar 31 15:23:29 UTC 2020 - Guillaume GARDET <guillaume.gardet@opensuse.org>
|
||||||
|
|
||||||
|
- Disable RPATH to fix build on Leap15.2/SLE15SP2
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Mar 24 14:01:29 UTC 2020 - Guillaume GARDET <guillaume.gardet@opensuse.org>
|
||||||
|
|
||||||
|
- Add '-Wno-error=deprecated-declarations' to fix build with latest
|
||||||
|
protobuf 3.11.x (Tumbleweed)
|
||||||
|
https://github.com/ARM-software/armnn/issues/366
|
||||||
|
- Use python-onnx package instead of python-onnx-devel, since it
|
||||||
|
is now a single package.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Mar 11 08:41:20 UTC 2020 - Guillaume GARDET <guillaume.gardet@opensuse.org>
|
||||||
|
|
||||||
|
- Fix build on Leap 15.2
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Mar 9 17:47:42 UTC 2020 - Guillaume GARDET <guillaume.gardet@opensuse.org>
|
||||||
|
|
||||||
|
- Update to 20.02:
|
||||||
|
* Changelog: https://github.com/ARM-software/armnn/releases/tag/v20.02
|
||||||
|
* Drop upstream patch:
|
||||||
|
- armnn-fix_include.patch
|
||||||
|
* Refresh patch:
|
||||||
|
- 0006-armnn-mobilenet-test-example.patch
|
||||||
|
* Replace downstream patch:
|
||||||
|
- 0007-enable-use-of-arm-compute-shared-library.patch
|
||||||
|
by upstream patch:
|
||||||
|
- armnn-enable-use-of-arm-compute-shared-library.patch
|
||||||
|
* Add 'vim' as BuildRequires since it needs 'xxd' tool
|
||||||
|
- Use TensorFlow 2 also on Leap 15.2 / SLE15SP2
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Feb 10 13:01:53 UTC 2020 - Guillaume GARDET <guillaume.gardet@opensuse.org>
|
||||||
|
|
||||||
|
- Use Tensorflow 2.x only for Tumbleweed, as TensorFlow2 is not
|
||||||
|
available in Leap 15.2
|
||||||
|
- Skip some tests if TensorFlow < 1.14 is used
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Jan 28 12:33:19 UTC 2020 - Guillaume GARDET <guillaume.gardet@opensuse.org>
|
||||||
|
|
||||||
|
- Enable ONNX on Leap 15.2
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Jan 28 09:48:55 UTC 2020 - Guillaume GARDET <guillaume.gardet@opensuse.org>
|
||||||
|
|
||||||
|
- Use tensorflow2 as armnn 19.11 now requires TensorFlow >= 1.14
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Jan 20 15:21:09 UTC 2020 - Guillaume GARDET <guillaume.gardet@opensuse.org>
|
||||||
|
|
||||||
|
- Disable ArmnnConverter and ArmnnQuantizer packaging by default
|
||||||
|
as it requires libQuantizer.so to be packaged, which is not yet
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Jan 14 13:07:58 UTC 2020 - Guillaume GARDET <guillaume.gardet@opensuse.org>
|
||||||
|
|
||||||
|
- Package ArmnnConverter and ArmnnQuantizer
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Jan 14 11:59:14 UTC 2020 - Dominique Leuenberger <dimstar@opensuse.org>
|
||||||
|
|
||||||
|
- ExcludeArch %ix86: Parts of the build deps (tensorflow/bazel) are
|
||||||
|
not supported on ix86.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Fri Dec 6 13:45:57 UTC 2019 - Guillaume GARDET <guillaume.gardet@opensuse.org>
|
||||||
|
|
||||||
|
- Update to 19.11:
|
||||||
|
* Changelog: https://github.com/ARM-software/armnn/releases/tag/v19.11
|
||||||
|
- Remove upstreamed patches:
|
||||||
|
* armnn-generate-versioned-library.patch
|
||||||
|
* armnn-fix_boost.patch
|
||||||
|
* armnn-fix_arm32_dep.patch
|
||||||
|
* armnn-fix_arm32.patch
|
||||||
|
- Add patch to fix include:
|
||||||
|
* armnn-fix_include.patch
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Mon Nov 25 14:16:29 UTC 2019 - Guillaume GARDET <guillaume.gardet@opensuse.org>
|
Mon Nov 25 14:16:29 UTC 2019 - Guillaume GARDET <guillaume.gardet@opensuse.org>
|
||||||
|
|
||||||
|
467
armnn.spec
467
armnn.spec
@ -1,7 +1,7 @@
|
|||||||
#
|
#
|
||||||
# spec file for package armnn
|
# spec file
|
||||||
#
|
#
|
||||||
# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
|
# Copyright (c) 2022 SUSE LLC
|
||||||
#
|
#
|
||||||
# All modifications and additions to the file contributed by third parties
|
# All modifications and additions to the file contributed by third parties
|
||||||
# remain the property of their copyright owners, unless otherwise agreed
|
# remain the property of their copyright owners, unless otherwise agreed
|
||||||
@ -12,94 +12,71 @@
|
|||||||
# license that conforms to the Open Source Definition (Version 1.9)
|
# license that conforms to the Open Source Definition (Version 1.9)
|
||||||
# published by the Open Source Initiative.
|
# published by the Open Source Initiative.
|
||||||
|
|
||||||
# Please submit bugfixes or comments via http://bugs.opensuse.org/
|
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
||||||
#
|
#
|
||||||
|
|
||||||
%define target @BUILD_FLAVOR@%{nil}
|
|
||||||
|
|
||||||
# Disable LTO until lto link is fixed - https://github.com/ARM-software/armnn/issues/251
|
# Disable LTO until UnitTests passes with LTO enabled - https://github.com/ARM-software/armnn/issues/623
|
||||||
%define _lto_cflags %{nil}
|
%define _lto_cflags %{nil}
|
||||||
|
|
||||||
|
# Disable Python binding for now
|
||||||
|
%bcond_with PyArmnn
|
||||||
|
|
||||||
|
%define target @BUILD_FLAVOR@%{nil}
|
||||||
%if "%{target}" != ""
|
%if "%{target}" != ""
|
||||||
%define package_suffix -%{target}
|
%define package_suffix -%{target}
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
# Compute library has neon enabled for aarch64 only
|
# Compute library has neon enabled for aarch64 only
|
||||||
%ifarch aarch64
|
%ifarch aarch64
|
||||||
%bcond_without compute_neon
|
%bcond_without compute_neon
|
||||||
%else
|
%else
|
||||||
%bcond_with compute_neon
|
%bcond_with compute_neon
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%if "%{target}" == "opencl"
|
%if "%{target}" == "opencl"
|
||||||
%bcond_without compute_cl
|
%bcond_without compute_cl
|
||||||
%else
|
%else
|
||||||
%bcond_with compute_cl
|
%bcond_with compute_cl
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
# stb-devel is available on Leap 15.1+
|
# stb-devel is available on Leap 15.1+
|
||||||
%if 0%{?suse_version} > 1500 || ( 0%{?sle_version} > 150000 && 0%{?is_opensuse} )
|
%if 0%{?suse_version} > 1500 || ( 0%{?sle_version} > 150000 && 0%{?is_opensuse} )
|
||||||
%bcond_without armnn_tests
|
%bcond_without armnn_tests
|
||||||
%else
|
%else
|
||||||
%bcond_with armnn_tests
|
%bcond_with armnn_tests
|
||||||
%endif
|
%endif
|
||||||
|
# Extra tests require opencv(3)-devel, but it is broken for Leap 15.1 - boo#1154091
|
||||||
# Extra tests require opencv(3)-devel, but it is broken for Leap 15.x - boo#1154091
|
%if 0%{?suse_version} > 1500 || 0%{?sle_version} >= 150200
|
||||||
%if 0%{?suse_version} > 1500
|
# FIXME: disabled for now, as it fails since version 21.05
|
||||||
%bcond_without armnn_extra_tests
|
%bcond_with armnn_extra_tests
|
||||||
%else
|
%else
|
||||||
%bcond_with armnn_extra_tests
|
%bcond_with armnn_extra_tests
|
||||||
%endif
|
%endif
|
||||||
|
# flatbuffers-devel is available on Leap 15.2+/SLE15SP2+
|
||||||
# flatbuffers-devel is available on Leap 15.2+
|
%if 0%{?suse_version} > 1500 || 0%{?sle_version} >= 150200
|
||||||
%if 0%{?suse_version} > 1500 || ( 0%{?sle_version} >= 150200 && 0%{?is_opensuse} )
|
|
||||||
%bcond_without armnn_flatbuffers
|
%bcond_without armnn_flatbuffers
|
||||||
%else
|
%else
|
||||||
%bcond_with armnn_flatbuffers
|
%bcond_with armnn_flatbuffers
|
||||||
%endif
|
%endif
|
||||||
|
# ONNX is available on Leap 15.2+/SLE15SP2+, but there is a compatibility issue
|
||||||
# Enable CAFFE
|
# with ONNX 1.7.0 in Tumbleweed - https://github.com/ARM-software/armnn/issues/419
|
||||||
%bcond_without armnn_caffe
|
%if 0%{?sle_version} >= 150200
|
||||||
|
|
||||||
# Enable TensorFlow only on TW aarch64 and x86_64 (TF fails to build on Leap 15.x and on armv7 TW)
|
|
||||||
%if 0%{?suse_version} > 1500
|
|
||||||
%ifarch aarch64 x86_64
|
|
||||||
%bcond_without armnn_tf
|
|
||||||
%else
|
|
||||||
%bcond_with armnn_tf
|
|
||||||
%endif # ifarch
|
|
||||||
%else # suse_version
|
|
||||||
%bcond_with armnn_tf
|
|
||||||
%endif # suse_version
|
|
||||||
|
|
||||||
# ONNX is available on Tumbleweed only
|
|
||||||
%if 0%{?suse_version} > 1500
|
|
||||||
%bcond_without armnn_onnx
|
%bcond_without armnn_onnx
|
||||||
%else
|
%else
|
||||||
%bcond_with armnn_onnx
|
%bcond_with armnn_onnx
|
||||||
%endif
|
%endif
|
||||||
|
%define version_major 22
|
||||||
%define version_major 19
|
%define version_minor 02
|
||||||
%define version_minor 08
|
%define version_lib 28
|
||||||
|
%define version_lib_tfliteparser 24
|
||||||
|
%define version_lib_onnxparser 24
|
||||||
Name: armnn%{?package_suffix}
|
Name: armnn%{?package_suffix}
|
||||||
Version: %{version_major}.%{version_minor}
|
Version: %{version_major}.%{version_minor}
|
||||||
Release: 0
|
Release: 0
|
||||||
Summary: Arm NN SDK enables machine learning workloads on power-efficient devices
|
Summary: Arm NN SDK enables machine learning workloads on power-efficient devices
|
||||||
License: MIT
|
License: MIT
|
||||||
Group: Development/Libraries/Other
|
Group: Development/Libraries/Other
|
||||||
Url: https://developer.arm.com/products/processors/machine-learning/arm-nn
|
URL: https://developer.arm.com/products/processors/machine-learning/arm-nn
|
||||||
Source0: https://github.com/ARM-software/armnn/archive/v%{version}.tar.gz#/armnn-%{version}.tar.gz
|
Source0: https://github.com/ARM-software/armnn/archive/v%{version}.tar.gz#/armnn-%{version}.tar.gz
|
||||||
Source1: armnn-rpmlintrc
|
Source1: armnn-rpmlintrc
|
||||||
# PATCH-FIX-UPSTREAM - https://github.com/ARM-software/armnn/issues/275
|
|
||||||
Patch1: armnn-generate-versioned-library.patch
|
|
||||||
# Patch: http://arago-project.org/git/?p=meta-arago.git;a=blob;f=meta-arago-extras/recipes-support/armnn/armnn/0007-enable-use-of-arm-compute-shared-library.patch;hb=master
|
|
||||||
Patch2: 0007-enable-use-of-arm-compute-shared-library.patch
|
|
||||||
# PATCH-FIX-UPSTREAM - https://github.com/ARM-software/armnn/issues/274
|
|
||||||
Patch3: armnn-fix_boost.patch
|
|
||||||
# PATCH-FIX-UPSTREAM - https://github.com/ARM-software/armnn/issues/266
|
|
||||||
Patch4: armnn-fix_arm32_dep.patch
|
|
||||||
Patch5: armnn-fix_arm32.patch
|
|
||||||
# PATCHES to add downstream ArmnnExamples binary - https://layers.openembedded.org/layerindex/recipe/87610/
|
# PATCHES to add downstream ArmnnExamples binary - https://layers.openembedded.org/layerindex/recipe/87610/
|
||||||
Patch200: 0003-add-more-test-command-line-arguments.patch
|
Patch200: 0003-add-more-test-command-line-arguments.patch
|
||||||
Patch201: 0005-add-armnn-mobilenet-test-example.patch
|
Patch201: 0005-add-armnn-mobilenet-test-example.patch
|
||||||
@ -107,31 +84,38 @@ Patch202: 0006-armnn-mobilenet-test-example.patch
|
|||||||
Patch203: 0009-command-line-options-for-video-port-selection.patch
|
Patch203: 0009-command-line-options-for-video-port-selection.patch
|
||||||
Patch204: 0010-armnnexamples-update-for-19.08-modifications.patch
|
Patch204: 0010-armnnexamples-update-for-19.08-modifications.patch
|
||||||
Patch205: armnn-fix_find_opencv.patch
|
Patch205: armnn-fix_find_opencv.patch
|
||||||
|
BuildRequires: ComputeLibrary-devel >= %{version_major}.%{version_minor}
|
||||||
|
BuildRequires: cmake >= 3.0.2
|
||||||
|
BuildRequires: gcc-c++
|
||||||
|
BuildRequires: protobuf-devel
|
||||||
|
BuildRequires: python-rpm-macros
|
||||||
|
BuildRequires: valgrind-devel
|
||||||
|
BuildRequires: vim
|
||||||
|
# Make armnn-opencl pulls lib*-opencl, and armnn pulls non opencl libs
|
||||||
|
Requires: libarmnn%{version_lib}%{?package_suffix} = %{version}
|
||||||
|
ExcludeArch: %ix86
|
||||||
%if 0%{?suse_version} < 1330
|
%if 0%{?suse_version} < 1330
|
||||||
BuildRequires: boost-devel >= 1.59
|
BuildRequires: boost-devel >= 1.59
|
||||||
%else
|
%else
|
||||||
BuildRequires: libboost_filesystem-devel >= 1.59
|
BuildRequires: libboost_filesystem-devel >= 1.59
|
||||||
BuildRequires: libboost_log-devel >= 1.59
|
|
||||||
BuildRequires: libboost_program_options-devel >= 1.59
|
BuildRequires: libboost_program_options-devel >= 1.59
|
||||||
BuildRequires: libboost_system-devel >= 1.59
|
BuildRequires: libboost_system-devel >= 1.59
|
||||||
BuildRequires: libboost_test-devel >= 1.59
|
BuildRequires: libboost_test-devel >= 1.59
|
||||||
|
%if %{with armnn_extra_tests}
|
||||||
|
BuildRequires: libboost_log-devel >= 1.59
|
||||||
BuildRequires: libboost_thread-devel >= 1.59
|
BuildRequires: libboost_thread-devel >= 1.59
|
||||||
%endif
|
%endif
|
||||||
%if %{with armnn_caffe}
|
|
||||||
BuildRequires: caffe-devel
|
|
||||||
%endif
|
%endif
|
||||||
BuildRequires: cmake >= 3.0.2
|
|
||||||
BuildRequires: ComputeLibrary-devel >= 19.08
|
|
||||||
BuildRequires: gcc-c++
|
|
||||||
%if %{with armnn_flatbuffers}
|
%if %{with armnn_flatbuffers}
|
||||||
BuildRequires: flatbuffers-devel
|
BuildRequires: flatbuffers-devel
|
||||||
BuildRequires: tensorflow-lite-devel
|
BuildRequires: tensorflow2-lite-devel
|
||||||
%endif
|
%endif
|
||||||
%if %{with compute_cl}
|
%if %{with compute_cl}
|
||||||
# Mesa-libOpenCl is required for tests
|
# Mesa-libOpenCl is required for tests
|
||||||
BuildRequires: Mesa-libOpenCL
|
BuildRequires: Mesa-libOpenCL
|
||||||
BuildRequires: ocl-icd-devel
|
BuildRequires: ocl-icd-devel
|
||||||
BuildRequires: opencl-cpp-headers
|
BuildRequires: opencl-cpp-headers
|
||||||
|
BuildRequires: opencl-headers
|
||||||
%endif
|
%endif
|
||||||
%if %{with armnn_extra_tests}
|
%if %{with armnn_extra_tests}
|
||||||
%if 0%{?suse_version} > 1500
|
%if 0%{?suse_version} > 1500
|
||||||
@ -141,34 +125,25 @@ BuildRequires: opencv-devel
|
|||||||
%endif
|
%endif
|
||||||
%endif
|
%endif
|
||||||
%if %{with armnn_onnx}
|
%if %{with armnn_onnx}
|
||||||
BuildRequires: python3-onnx-devel
|
BuildRequires: python3-onnx
|
||||||
%endif
|
%endif
|
||||||
BuildRequires: protobuf-devel
|
|
||||||
BuildRequires: python-rpm-macros
|
|
||||||
%if %{with armnn_tests}
|
%if %{with armnn_tests}
|
||||||
BuildRequires: stb-devel
|
BuildRequires: stb-devel
|
||||||
%endif
|
%endif
|
||||||
%if %{with armnn_tf}
|
%if %{with PyArmnn}
|
||||||
BuildRequires: tensorflow-devel
|
BuildRequires: python3-devel
|
||||||
|
BuildRequires: python3-wheel
|
||||||
|
BuildRequires: swig >= 4
|
||||||
%endif
|
%endif
|
||||||
BuildRequires: valgrind-devel
|
|
||||||
%if %{with compute_cl}
|
%if %{with compute_cl}
|
||||||
Recommends: Mesa-libOpenCL
|
Recommends: Mesa-libOpenCL
|
||||||
%endif
|
%endif
|
||||||
# Make armnn-opencl pulls lib*-opencl, and armnn pulls non opencl libs
|
|
||||||
Requires: libarmnn%{version_major}%{?package_suffix} = %{version}
|
|
||||||
%if %{with armnn_flatbuffers}
|
%if %{with armnn_flatbuffers}
|
||||||
Requires: libarmnnSerializer%{version_major}%{?package_suffix} = %{version}
|
Requires: libarmnnSerializer%{version_lib}%{?package_suffix} = %{version}
|
||||||
Requires: libarmnnTfLiteParser%{version_major}%{?package_suffix} = %{version}
|
Requires: libarmnnTfLiteParser%{version_lib_tfliteparser}%{?package_suffix} = %{version}
|
||||||
%endif
|
|
||||||
%if %{with armnn_caffe}
|
|
||||||
Requires: libarmnnCaffeParser%{version_major}%{?package_suffix} = %{version}
|
|
||||||
%endif
|
%endif
|
||||||
%if %{with armnn_onnx}
|
%if %{with armnn_onnx}
|
||||||
Requires: libarmnnOnnxParser%{version_major}%{?package_suffix} = %{version}
|
Requires: libarmnnOnnxParser%{version_lib_onnxparser}%{?package_suffix} = %{version}
|
||||||
%endif
|
|
||||||
%if %{with armnn_tf}
|
|
||||||
Requires: libarmnnTfParser%{version_major}%{?package_suffix} = %{version}
|
|
||||||
%endif
|
%endif
|
||||||
# Make sure we do not install both openCL and non-openCL (CPU only) versions.
|
# Make sure we do not install both openCL and non-openCL (CPU only) versions.
|
||||||
%if "%{target}" == "opencl"
|
%if "%{target}" == "opencl"
|
||||||
@ -176,45 +151,43 @@ Conflicts: armnn
|
|||||||
%else
|
%else
|
||||||
Conflicts: armnn-opencl
|
Conflicts: armnn-opencl
|
||||||
%endif
|
%endif
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
ExclusiveArch: aarch64 armv7l armv7hl x86_64
|
||||||
|
|
||||||
%description
|
%description
|
||||||
Arm NN is an inference engine for CPUs, GPUs and NPUs.
|
Arm NN is an inference engine for CPUs, GPUs and NPUs.
|
||||||
It bridges the gap between existing NN frameworks and the underlying IP.
|
It bridges the gap between existing NN frameworks and the underlying IP.
|
||||||
It enables efficient translation of existing neural network frameworks,
|
It enables efficient translation of existing neural network frameworks,
|
||||||
such as TensorFlow and Caffe, allowing them to run efficiently – without
|
such as TensorFlow Lite, allowing them to run efficiently – without
|
||||||
modification – across Arm Cortex CPUs and Arm Mali GPUs.
|
modification – across Arm Cortex CPUs and Arm Mali GPUs.
|
||||||
|
|
||||||
%package devel
|
%package devel
|
||||||
Summary: Development headers and libraries for armnn
|
Summary: Development headers and libraries for armnn
|
||||||
|
# Make sure we do not install both openCL and non-openCL (CPU only) versions.
|
||||||
Group: Development/Libraries/C and C++
|
Group: Development/Libraries/C and C++
|
||||||
|
Requires: %{name} = %{version}
|
||||||
|
Requires: libarmnn%{version_lib}%{?package_suffix} = %{version}
|
||||||
|
Requires: libarmnnBasePipeServer%{version_lib}%{?package_suffix} = %{version}
|
||||||
|
Requires: libtimelineDecoder%{version_lib}%{?package_suffix} = %{version}
|
||||||
|
Requires: libtimelineDecoderJson%{version_lib}%{?package_suffix} = %{version}
|
||||||
# Make sure we do not install both openCL and non-openCL (CPU only) versions.
|
# Make sure we do not install both openCL and non-openCL (CPU only) versions.
|
||||||
%if "%{target}" == "opencl"
|
%if "%{target}" == "opencl"
|
||||||
Conflicts: armnn-devel
|
Conflicts: armnn-devel
|
||||||
%else
|
%else
|
||||||
Conflicts: armnn-opencl-devel
|
Conflicts: armnn-opencl-devel
|
||||||
%endif
|
%endif
|
||||||
Requires: %{name} = %{version}
|
|
||||||
Requires: libarmnn%{version_major}%{?package_suffix} = %{version}
|
|
||||||
%if %{with armnn_flatbuffers}
|
%if %{with armnn_flatbuffers}
|
||||||
Requires: libarmnnSerializer%{version_major}%{?package_suffix} = %{version}
|
Requires: libarmnnSerializer%{version_lib}%{?package_suffix} = %{version}
|
||||||
Requires: libarmnnTfLiteParser%{version_major}%{?package_suffix} = %{version}
|
Requires: libarmnnTfLiteParser%{version_lib_tfliteparser}%{?package_suffix} = %{version}
|
||||||
%endif
|
|
||||||
%if %{with armnn_caffe}
|
|
||||||
Requires: libarmnnCaffeParser%{version_major}%{?package_suffix} = %{version}
|
|
||||||
%endif
|
%endif
|
||||||
%if %{with armnn_onnx}
|
%if %{with armnn_onnx}
|
||||||
Requires: libarmnnOnnxParser%{version_major}%{?package_suffix} = %{version}
|
Requires: libarmnnOnnxParser%{version_lib_onnxparser}%{?package_suffix} = %{version}
|
||||||
%endif
|
|
||||||
%if %{with armnn_tf}
|
|
||||||
Requires: libarmnnTfParser%{version_major}%{?package_suffix} = %{version}
|
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%description devel
|
%description devel
|
||||||
Arm NN is an inference engine for CPUs, GPUs and NPUs.
|
Arm NN is an inference engine for CPUs, GPUs and NPUs.
|
||||||
It bridges the gap between existing NN frameworks and the underlying IP.
|
It bridges the gap between existing NN frameworks and the underlying IP.
|
||||||
It enables efficient translation of existing neural network frameworks,
|
It enables efficient translation of existing neural network frameworks,
|
||||||
such as TensorFlow and Caffe, allowing them to run efficiently – without
|
such as TensorFlow Lite, allowing them to run efficiently – without
|
||||||
modification – across Arm Cortex CPUs and Arm Mali GPUs.
|
modification – across Arm Cortex CPUs and Arm Mali GPUs.
|
||||||
|
|
||||||
This package contains the development libraries and headers for armnn.
|
This package contains the development libraries and headers for armnn.
|
||||||
@ -222,136 +195,151 @@ This package contains the development libraries and headers for armnn.
|
|||||||
%if %{with armnn_extra_tests}
|
%if %{with armnn_extra_tests}
|
||||||
%package -n %{name}-extratests
|
%package -n %{name}-extratests
|
||||||
Summary: Additionnal downstream tests for Arm NN
|
Summary: Additionnal downstream tests for Arm NN
|
||||||
|
# Make sure we do not install both openCL and non-openCL (CPU only) versions.
|
||||||
Group: Development/Libraries/C and C++
|
Group: Development/Libraries/C and C++
|
||||||
|
Requires: %{name}
|
||||||
# Make sure we do not install both openCL and non-openCL (CPU only) versions.
|
# Make sure we do not install both openCL and non-openCL (CPU only) versions.
|
||||||
%if "%{target}" == "opencl"
|
%if "%{target}" == "opencl"
|
||||||
Conflicts: armnn-extratests
|
Conflicts: armnn-extratests
|
||||||
%else
|
%else
|
||||||
Conflicts: armnn-opencl-extratests
|
Conflicts: armnn-opencl-extratests
|
||||||
%endif
|
%endif
|
||||||
Requires: %{name}
|
|
||||||
|
|
||||||
%description -n %{name}-extratests
|
%description -n %{name}-extratests
|
||||||
Arm NN is an inference engine for CPUs, GPUs and NPUs.
|
Arm NN is an inference engine for CPUs, GPUs and NPUs.
|
||||||
It bridges the gap between existing NN frameworks and the underlying IP.
|
It bridges the gap between existing NN frameworks and the underlying IP.
|
||||||
It enables efficient translation of existing neural network frameworks,
|
It enables efficient translation of existing neural network frameworks,
|
||||||
such as TensorFlow and Caffe, allowing them to run efficiently – without
|
such as TensorFlow Lite, allowing them to run efficiently – without
|
||||||
modification – across Arm Cortex CPUs and Arm Mali GPUs.
|
modification – across Arm Cortex CPUs and Arm Mali GPUs.
|
||||||
|
|
||||||
This package contains additionnal downstream tests for armnn.
|
This package contains additionnal downstream tests for armnn.
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%package -n libarmnn%{version_major}%{?package_suffix}
|
%package -n libarmnn%{version_lib}%{?package_suffix}
|
||||||
%if "%{target}" == "opencl"
|
|
||||||
Conflicts: libarmnn%{version_major}
|
|
||||||
%else
|
|
||||||
Conflicts: libarmnn%{version_major}-opencl
|
|
||||||
%endif
|
|
||||||
Summary: libarmnn from armnn
|
Summary: libarmnn from armnn
|
||||||
Group: Development/Libraries/C and C++
|
Group: Development/Libraries/C and C++
|
||||||
|
%if "%{target}" == "opencl"
|
||||||
|
Conflicts: libarmnn%{version_lib}
|
||||||
|
%else
|
||||||
|
Conflicts: libarmnn%{version_lib}-opencl
|
||||||
|
%endif
|
||||||
|
|
||||||
%description -n libarmnn%{version_major}%{?package_suffix}
|
%description -n libarmnn%{version_lib}%{?package_suffix}
|
||||||
Arm NN is an inference engine for CPUs, GPUs and NPUs.
|
Arm NN is an inference engine for CPUs, GPUs and NPUs.
|
||||||
It bridges the gap between existing NN frameworks and the underlying IP.
|
It bridges the gap between existing NN frameworks and the underlying IP.
|
||||||
It enables efficient translation of existing neural network frameworks,
|
It enables efficient translation of existing neural network frameworks,
|
||||||
such as TensorFlow and Caffe, allowing them to run efficiently – without
|
such as TensorFlow Lite, allowing them to run efficiently – without
|
||||||
modification – across Arm Cortex CPUs and Arm Mali GPUs.
|
modification – across Arm Cortex CPUs and Arm Mali GPUs.
|
||||||
|
|
||||||
This package contains the libarmnn library from armnn.
|
This package contains the libarmnn library from armnn.
|
||||||
|
|
||||||
%if %{with armnn_flatbuffers}
|
%package -n libarmnnBasePipeServer%{version_lib}%{?package_suffix}
|
||||||
%package -n libarmnnSerializer%{version_major}%{?package_suffix}
|
Summary: libarmnnBasePipeServer from armnn
|
||||||
%if "%{target}" == "opencl"
|
|
||||||
Conflicts: libarmnnSerializer%{version_major}
|
|
||||||
%else
|
|
||||||
Conflicts: libarmnnSerializer%{version_major}-opencl
|
|
||||||
%endif
|
|
||||||
Summary: libarmnnSerializer from armnn
|
|
||||||
Group: Development/Libraries/C and C++
|
Group: Development/Libraries/C and C++
|
||||||
|
%if "%{target}" == "opencl"
|
||||||
|
Conflicts: libarmnnBasePipeServer%{version_lib}
|
||||||
|
%else
|
||||||
|
Conflicts: libarmnnBasePipeServer%{version_lib}-opencl
|
||||||
|
%endif
|
||||||
|
|
||||||
%description -n libarmnnSerializer%{version_major}%{?package_suffix}
|
%description -n libarmnnBasePipeServer%{version_lib}%{?package_suffix}
|
||||||
Arm NN is an inference engine for CPUs, GPUs and NPUs.
|
Arm NN is an inference engine for CPUs, GPUs and NPUs.
|
||||||
It bridges the gap between existing NN frameworks and the underlying IP.
|
It bridges the gap between existing NN frameworks and the underlying IP.
|
||||||
It enables efficient translation of existing neural network frameworks,
|
It enables efficient translation of existing neural network frameworks,
|
||||||
such as TensorFlow and Caffe, allowing them to run efficiently – without
|
such as TensorFlow Lite, allowing them to run efficiently – without
|
||||||
|
modification – across Arm Cortex CPUs and Arm Mali GPUs.
|
||||||
|
|
||||||
|
This package contains the libarmnnBasePipeServer library from armnn.
|
||||||
|
|
||||||
|
%package -n libtimelineDecoder%{version_lib}%{?package_suffix}
|
||||||
|
Summary: libtimelineDecoder from armnn
|
||||||
|
Group: Development/Libraries/C and C++
|
||||||
|
%if "%{target}" == "opencl"
|
||||||
|
Conflicts: libtimelineDecoder%{version_lib}
|
||||||
|
%else
|
||||||
|
Conflicts: libtimelineDecoder%{version_lib}-opencl
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%description -n libtimelineDecoder%{version_lib}%{?package_suffix}
|
||||||
|
Arm NN is an inference engine for CPUs, GPUs and NPUs.
|
||||||
|
It bridges the gap between existing NN frameworks and the underlying IP.
|
||||||
|
It enables efficient translation of existing neural network frameworks,
|
||||||
|
such as TensorFlow Lite, allowing them to run efficiently – without
|
||||||
|
modification – across Arm Cortex CPUs and Arm Mali GPUs.
|
||||||
|
|
||||||
|
This package contains the libtimelineDecoder library from armnn.
|
||||||
|
|
||||||
|
%package -n libtimelineDecoderJson%{version_lib}%{?package_suffix}
|
||||||
|
Summary: libtimelineDecoderJson from armnn
|
||||||
|
Group: Development/Libraries/C and C++
|
||||||
|
%if "%{target}" == "opencl"
|
||||||
|
Conflicts: libtimelineDecoderJson%{version_lib}
|
||||||
|
%else
|
||||||
|
Conflicts: libtimelineDecoderJson%{version_lib}-opencl
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%description -n libtimelineDecoderJson%{version_lib}%{?package_suffix}
|
||||||
|
Arm NN is an inference engine for CPUs, GPUs and NPUs.
|
||||||
|
It bridges the gap between existing NN frameworks and the underlying IP.
|
||||||
|
It enables efficient translation of existing neural network frameworks,
|
||||||
|
such as TensorFlow Lite, allowing them to run efficiently – without
|
||||||
|
modification – across Arm Cortex CPUs and Arm Mali GPUs.
|
||||||
|
|
||||||
|
This package contains the libtimelineDecoder library from armnn.
|
||||||
|
|
||||||
|
%if %{with armnn_flatbuffers}
|
||||||
|
%package -n libarmnnSerializer%{version_lib}%{?package_suffix}
|
||||||
|
Summary: libarmnnSerializer from armnn
|
||||||
|
Group: Development/Libraries/C and C++
|
||||||
|
%if "%{target}" == "opencl"
|
||||||
|
Conflicts: libarmnnSerializer%{version_lib}
|
||||||
|
%else
|
||||||
|
Conflicts: libarmnnSerializer%{version_lib}-opencl
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%description -n libarmnnSerializer%{version_lib}%{?package_suffix}
|
||||||
|
Arm NN is an inference engine for CPUs, GPUs and NPUs.
|
||||||
|
It bridges the gap between existing NN frameworks and the underlying IP.
|
||||||
|
It enables efficient translation of existing neural network frameworks,
|
||||||
|
such as TensorFlow Lite, allowing them to run efficiently – without
|
||||||
modification – across Arm Cortex CPUs and Arm Mali GPUs.
|
modification – across Arm Cortex CPUs and Arm Mali GPUs.
|
||||||
|
|
||||||
This package contains the libarmnnSerializer library from armnn.
|
This package contains the libarmnnSerializer library from armnn.
|
||||||
|
|
||||||
%package -n libarmnnTfLiteParser%{version_major}%{?package_suffix}
|
%package -n libarmnnTfLiteParser%{version_lib_tfliteparser}%{?package_suffix}
|
||||||
%if "%{target}" == "opencl"
|
|
||||||
Conflicts: libarmnnTfLiteParser%{version_major}
|
|
||||||
%else
|
|
||||||
Conflicts: libarmnnTfLiteParser%{version_major}-opencl
|
|
||||||
%endif
|
|
||||||
Summary: libarmnnTfLiteParser from armnn
|
Summary: libarmnnTfLiteParser from armnn
|
||||||
Group: Development/Libraries/C and C++
|
Group: Development/Libraries/C and C++
|
||||||
|
%if "%{target}" == "opencl"
|
||||||
|
Conflicts: libarmnnTfLiteParser%{version_lib_tfliteparser}
|
||||||
|
%else
|
||||||
|
Conflicts: libarmnnTfLiteParser%{version_lib_tfliteparser}-opencl
|
||||||
|
%endif
|
||||||
|
|
||||||
%description -n libarmnnTfLiteParser%{version_major}%{?package_suffix}
|
%description -n libarmnnTfLiteParser%{version_lib_tfliteparser}%{?package_suffix}
|
||||||
Arm NN is an inference engine for CPUs, GPUs and NPUs.
|
Arm NN is an inference engine for CPUs, GPUs and NPUs.
|
||||||
It bridges the gap between existing NN frameworks and the underlying IP.
|
It bridges the gap between existing NN frameworks and the underlying IP.
|
||||||
It enables efficient translation of existing neural network frameworks,
|
It enables efficient translation of existing neural network frameworks,
|
||||||
such as TensorFlow and Caffe, allowing them to run efficiently – without
|
such as TensorFlow Lite, allowing them to run efficiently – without
|
||||||
modification – across Arm Cortex CPUs and Arm Mali GPUs.
|
modification – across Arm Cortex CPUs and Arm Mali GPUs.
|
||||||
|
|
||||||
This package contains the libarmnnTfLiteParser library from armnn.
|
This package contains the libarmnnTfLiteParser library from armnn.
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%if %{with armnn_tf}
|
|
||||||
%package -n libarmnnTfParser%{version_major}%{?package_suffix}
|
|
||||||
%if "%{target}" == "opencl"
|
|
||||||
Conflicts: libarmnnTfParser%{version_major}
|
|
||||||
%else
|
|
||||||
Conflicts: libarmnnTfParser%{version_major}-opencl
|
|
||||||
%endif
|
|
||||||
Summary: libarmnnTfParser from armnn
|
|
||||||
Group: Development/Libraries/C and C++
|
|
||||||
|
|
||||||
%description -n libarmnnTfParser%{version_major}%{?package_suffix}
|
|
||||||
Arm NN is an inference engine for CPUs, GPUs and NPUs.
|
|
||||||
It bridges the gap between existing NN frameworks and the underlying IP.
|
|
||||||
It enables efficient translation of existing neural network frameworks,
|
|
||||||
such as TensorFlow and Caffe, allowing them to run efficiently – without
|
|
||||||
modification – across Arm Cortex CPUs and Arm Mali GPUs.
|
|
||||||
|
|
||||||
This package contains the libarmnnTfParser library from armnn.
|
|
||||||
%endif
|
|
||||||
|
|
||||||
%if %{with armnn_caffe}
|
|
||||||
%package -n libarmnnCaffeParser%{version_major}%{?package_suffix}
|
|
||||||
%if "%{target}" == "opencl"
|
|
||||||
Conflicts: libarmnnCaffeParser%{version_major}
|
|
||||||
%else
|
|
||||||
Conflicts: libarmnnCaffeParser%{version_major}-opencl
|
|
||||||
%endif
|
|
||||||
Summary: libarmnnCaffeParser from armnn
|
|
||||||
Group: Development/Libraries/C and C++
|
|
||||||
|
|
||||||
%description -n libarmnnCaffeParser%{version_major}%{?package_suffix}
|
|
||||||
Arm NN is an inference engine for CPUs, GPUs and NPUs.
|
|
||||||
It bridges the gap between existing NN frameworks and the underlying IP.
|
|
||||||
It enables efficient translation of existing neural network frameworks,
|
|
||||||
such as TensorFlow and Caffe, allowing them to run efficiently – without
|
|
||||||
modification – across Arm Cortex CPUs and Arm Mali GPUs.
|
|
||||||
|
|
||||||
This package contains the libarmnnCaffeParser library from armnn.
|
|
||||||
%endif
|
|
||||||
|
|
||||||
%if %{with armnn_onnx}
|
%if %{with armnn_onnx}
|
||||||
%package -n libarmnnOnnxParser%{version_major}%{?package_suffix}
|
%package -n libarmnnOnnxParser%{version_lib_onnxparser}%{?package_suffix}
|
||||||
%if "%{target}" == "opencl"
|
|
||||||
Conflicts: libarmnnOnnxParser%{version_major}
|
|
||||||
%else
|
|
||||||
Conflicts: libarmnnOnnxParser%{version_major}-opencl
|
|
||||||
%endif
|
|
||||||
Summary: libarmnnOnnxParser from armnn
|
Summary: libarmnnOnnxParser from armnn
|
||||||
Group: Development/Libraries/C and C++
|
Group: Development/Libraries/C and C++
|
||||||
|
%if "%{target}" == "opencl"
|
||||||
|
Conflicts: libarmnnOnnxParser%{version_lib_onnxparser}
|
||||||
|
%else
|
||||||
|
Conflicts: libarmnnOnnxParser%{version_lib_onnxparser}-opencl
|
||||||
|
%endif
|
||||||
|
|
||||||
%description -n libarmnnOnnxParser%{version_major}%{?package_suffix}
|
%description -n libarmnnOnnxParser%{version_lib_onnxparser}%{?package_suffix}
|
||||||
Arm NN is an inference engine for CPUs, GPUs and NPUs.
|
Arm NN is an inference engine for CPUs, GPUs and NPUs.
|
||||||
It bridges the gap between existing NN frameworks and the underlying IP.
|
It bridges the gap between existing NN frameworks and the underlying IP.
|
||||||
It enables efficient translation of existing neural network frameworks,
|
It enables efficient translation of existing neural network frameworks,
|
||||||
such as TensorFlow and Caffe, allowing them to run efficiently – without
|
such as TensorFlow Lite, allowing them to run efficiently – without
|
||||||
modification – across Arm Cortex CPUs and Arm Mali GPUs.
|
modification – across Arm Cortex CPUs and Arm Mali GPUs.
|
||||||
|
|
||||||
This package contains the libarmnnOnnxParser library from armnn.
|
This package contains the libarmnnOnnxParser library from armnn.
|
||||||
@ -359,23 +347,16 @@ This package contains the libarmnnOnnxParser library from armnn.
|
|||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -q -n armnn-%{version}
|
%setup -q -n armnn-%{version}
|
||||||
%patch1 -p1
|
%if %{with armnn_extra_tests}
|
||||||
%patch2 -p1
|
|
||||||
%patch3 -p1
|
|
||||||
%patch4 -p1
|
|
||||||
%patch5 -p1
|
|
||||||
%patch200 -p1
|
%patch200 -p1
|
||||||
%patch201 -p1
|
%patch201 -p1
|
||||||
%patch202 -p1
|
%patch202 -p1
|
||||||
%patch203 -p1
|
%patch203 -p1
|
||||||
%patch204 -p1
|
%patch204 -p1
|
||||||
%patch205 -p1
|
%patch205 -p1
|
||||||
# Boost fixes for dynamic linking
|
# Add Boost log as downstream extra test requires it
|
||||||
sed -i 's/add_definitions("-DBOOST_ALL_NO_LIB")/add_definitions("-DBOOST_ALL_DYN_LINK")/' ./cmake/GlobalConfig.cmake
|
sed -i 's/ find_package(Boost 1.59 REQUIRED COMPONENTS unit_test_framework)/find_package(Boost 1.59 REQUIRED COMPONENTS unit_test_framework filesystem system log program_options)/' ./cmake/GlobalConfig.cmake
|
||||||
sed -i 's/set(Boost_USE_STATIC_LIBS ON)/set(Boost_USE_STATIC_LIBS OFF)/' ./cmake/GlobalConfig.cmake
|
%endif
|
||||||
sed -i 's/find_package(Boost 1.59 REQUIRED COMPONENTS unit_test_framework system filesystem log program_options)/find_package(Boost 1.59 REQUIRED COMPONENTS unit_test_framework system filesystem log thread program_options)/' ./cmake/GlobalConfig.cmake
|
|
||||||
# Build fix
|
|
||||||
sed -i 's/-Wsign-conversion//' ./cmake/GlobalConfig.cmake
|
|
||||||
|
|
||||||
%build
|
%build
|
||||||
%if %{with armnn_onnx}
|
%if %{with armnn_onnx}
|
||||||
@ -384,14 +365,10 @@ PROTO=$(find %{_libdir} -name onnx.proto)
|
|||||||
protoc $PROTO --proto_path=. --proto_path=%{_includedir} --proto_path=$(dirname $(find %{_libdir} -name onnx)) --cpp_out=./onnx_deps
|
protoc $PROTO --proto_path=. --proto_path=%{_includedir} --proto_path=$(dirname $(find %{_libdir} -name onnx)) --cpp_out=./onnx_deps
|
||||||
%endif
|
%endif
|
||||||
%cmake \
|
%cmake \
|
||||||
-DCMAKE_CXX_FLAGS:STRING="%{optflags} -pthread" \
|
-DCMAKE_SKIP_RPATH=True \
|
||||||
|
-DSHARED_BOOST=1 \
|
||||||
|
-DCMAKE_CXX_FLAGS:STRING="%{optflags} -pthread " \
|
||||||
-DBOOST_LIBRARYDIR=%{_libdir} \
|
-DBOOST_LIBRARYDIR=%{_libdir} \
|
||||||
%if %{with armnn_caffe}
|
|
||||||
-DBUILD_CAFFE_PARSER=ON \
|
|
||||||
%else
|
|
||||||
-DBUILD_CAFFE_PARSER=OFF \
|
|
||||||
%endif
|
|
||||||
-DCAFFE_GENERATED_SOURCES=%{_includedir}/ \
|
|
||||||
%if %{with armnn_onnx}
|
%if %{with armnn_onnx}
|
||||||
-DBUILD_ONNX_PARSER=ON \
|
-DBUILD_ONNX_PARSER=ON \
|
||||||
-DONNX_GENERATED_SOURCES=../onnx_deps/ \
|
-DONNX_GENERATED_SOURCES=../onnx_deps/ \
|
||||||
@ -402,25 +379,18 @@ protoc $PROTO --proto_path=. --proto_path=%{_includedir} --proto_path=$(dirname
|
|||||||
-DBUILD_ARMNN_SERIALIZER=ON \
|
-DBUILD_ARMNN_SERIALIZER=ON \
|
||||||
-DFLATC_DIR=%{_bindir} \
|
-DFLATC_DIR=%{_bindir} \
|
||||||
-DFLATBUFFERS_INCLUDE_PATH=%{_includedir} \
|
-DFLATBUFFERS_INCLUDE_PATH=%{_includedir} \
|
||||||
-DBUILD_ARMNN_QUANTIZER=ON \
|
|
||||||
-DBUILD_TF_LITE_PARSER=ON \
|
-DBUILD_TF_LITE_PARSER=ON \
|
||||||
|
-DTfLite_Schema_INCLUDE_PATH=%{_includedir}/tensorflow/lite/schema/ \
|
||||||
-DTF_LITE_SCHEMA_INCLUDE_PATH=%{_includedir}/tensorflow/lite/schema/ \
|
-DTF_LITE_SCHEMA_INCLUDE_PATH=%{_includedir}/tensorflow/lite/schema/ \
|
||||||
%else
|
%else
|
||||||
-DBUILD_ARMNN_SERIALIZER=OFF \
|
-DBUILD_ARMNN_SERIALIZER=OFF \
|
||||||
-DBUILD_ARMNN_QUANTIZER=OFF \
|
|
||||||
-DBUILD_TF_LITE_PARSER=OFF \
|
-DBUILD_TF_LITE_PARSER=OFF \
|
||||||
%endif
|
%endif
|
||||||
%if %{with armnn_tf}
|
|
||||||
-DBUILD_TF_PARSER=ON \
|
|
||||||
-DTF_GENERATED_SOURCES=%{python3_sitelib}/tensorflow/include/ \
|
|
||||||
%else
|
|
||||||
-DBUILD_TF_PARSER=OFF \
|
|
||||||
%endif
|
|
||||||
%if %{with compute_neon} || %{with compute_cl}
|
%if %{with compute_neon} || %{with compute_cl}
|
||||||
-DARMCOMPUTE_INCLUDE=%{_includedir} \
|
-DARMCOMPUTE_INCLUDE=%{_includedir} \
|
||||||
-DHALF_INCLUDE=%{_includedir}/half \
|
-DHALF_INCLUDE=%{_includedir}/half \
|
||||||
-DARMCOMPUTE_BUILD_DIR=%{_libdir} \
|
-DARMCOMPUTE_BUILD_DIR=%{_libdir} \
|
||||||
-DARMCOMPUTE_ROOT=/usr \
|
-DARMCOMPUTE_ROOT=%{_prefix} \
|
||||||
%endif
|
%endif
|
||||||
%if %{with compute_neon}
|
%if %{with compute_neon}
|
||||||
-DARMCOMPUTENEON=ON \
|
-DARMCOMPUTENEON=ON \
|
||||||
@ -446,20 +416,27 @@ protoc $PROTO --proto_path=. --proto_path=%{_includedir} --proto_path=$(dirname
|
|||||||
-DBUILD_UNIT_TESTS=OFF \
|
-DBUILD_UNIT_TESTS=OFF \
|
||||||
-DBUILD_TESTS=OFF \
|
-DBUILD_TESTS=OFF \
|
||||||
%endif
|
%endif
|
||||||
|
%if %{with PyArmnn}
|
||||||
|
-DBUILD_PYTHON_WHL=ON \
|
||||||
|
-DBUILD_PYTHON_SRC=ON \
|
||||||
|
%else
|
||||||
|
-DBUILD_PYTHON_WHL=OFF \
|
||||||
|
-DBUILD_PYTHON_SRC=OFF \
|
||||||
|
%endif
|
||||||
%if %{with armnn_extra_tests}
|
%if %{with armnn_extra_tests}
|
||||||
-DBUILD_ARMNN_EXAMPLES=ON
|
-DBUILD_ARMNN_EXAMPLES=ON
|
||||||
%else
|
%else
|
||||||
-DBUILD_ARMNN_EXAMPLES=OFF
|
-DBUILD_ARMNN_EXAMPLES=OFF
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%if %{suse_version} > 1500
|
%if 0%{?suse_version} > 1500
|
||||||
%cmake_build
|
%cmake_build
|
||||||
%else
|
%else
|
||||||
%make_jobs
|
%make_jobs
|
||||||
%endif
|
%endif
|
||||||
%if %{with armnn_tests}
|
%if %{with armnn_tests}
|
||||||
pushd tests/
|
pushd tests/
|
||||||
%if %{suse_version} > 1500
|
%if 0%{?suse_version} > 1500
|
||||||
%cmake_build
|
%cmake_build
|
||||||
%else
|
%else
|
||||||
%make_jobs
|
%make_jobs
|
||||||
@ -479,62 +456,55 @@ find ./build/tests -maxdepth 1 -type f -executable -exec cp $CP_ARGS {} %{buildr
|
|||||||
# Install Sample app
|
# Install Sample app
|
||||||
cp $CP_ARGS ./build/samples/SimpleSample %{buildroot}%{_bindir}
|
cp $CP_ARGS ./build/samples/SimpleSample %{buildroot}%{_bindir}
|
||||||
%endif
|
%endif
|
||||||
|
# Drop static libs - https://github.com/ARM-software/armnn/issues/514
|
||||||
|
rm -f %{buildroot}%{_libdir}/*.a
|
||||||
|
|
||||||
# openCL UnitTests are failing in OBS due to the lack of openCL device
|
# openCL UnitTests are failing in OBS due to the lack of openCL device
|
||||||
%if %{without compute_cl} && %{with armnn_tests}
|
%if %{without compute_cl} && %{with armnn_tests}
|
||||||
%check
|
%check
|
||||||
# Run tests
|
# Run tests
|
||||||
LD_LIBRARY_PATH="$(pwd)/build/" \
|
LD_LIBRARY_PATH="$(pwd)/build/" \
|
||||||
./build/UnitTests
|
./build/UnitTests $UnitTestFlags
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%post -n libarmnn%{version_major}%{?package_suffix} -p /sbin/ldconfig
|
%post -n libarmnn%{version_lib}%{?package_suffix} -p /sbin/ldconfig
|
||||||
%postun -n libarmnn%{version_major}%{?package_suffix} -p /sbin/ldconfig
|
%postun -n libarmnn%{version_lib}%{?package_suffix} -p /sbin/ldconfig
|
||||||
|
|
||||||
|
%post -n libarmnnBasePipeServer%{version_lib}%{?package_suffix} -p /sbin/ldconfig
|
||||||
|
%postun -n libarmnnBasePipeServer%{version_lib}%{?package_suffix} -p /sbin/ldconfig
|
||||||
|
|
||||||
|
%post -n libtimelineDecoderJson%{version_lib}%{?package_suffix} -p /sbin/ldconfig
|
||||||
|
%postun -n libtimelineDecoderJson%{version_lib}%{?package_suffix} -p /sbin/ldconfig
|
||||||
|
|
||||||
|
%post -n libtimelineDecoder%{version_lib}%{?package_suffix} -p /sbin/ldconfig
|
||||||
|
%postun -n libtimelineDecoder%{version_lib}%{?package_suffix} -p /sbin/ldconfig
|
||||||
|
|
||||||
%if %{with armnn_flatbuffers}
|
%if %{with armnn_flatbuffers}
|
||||||
%post -n libarmnnSerializer%{version_major}%{?package_suffix} -p /sbin/ldconfig
|
%post -n libarmnnSerializer%{version_lib}%{?package_suffix} -p /sbin/ldconfig
|
||||||
%postun -n libarmnnSerializer%{version_major}%{?package_suffix} -p /sbin/ldconfig
|
%postun -n libarmnnSerializer%{version_lib}%{?package_suffix} -p /sbin/ldconfig
|
||||||
|
|
||||||
%post -n libarmnnTfLiteParser%{version_major}%{?package_suffix} -p /sbin/ldconfig
|
%post -n libarmnnTfLiteParser%{version_lib_tfliteparser}%{?package_suffix} -p /sbin/ldconfig
|
||||||
%postun -n libarmnnTfLiteParser%{version_major}%{?package_suffix} -p /sbin/ldconfig
|
%postun -n libarmnnTfLiteParser%{version_lib_tfliteparser}%{?package_suffix} -p /sbin/ldconfig
|
||||||
%endif
|
|
||||||
|
|
||||||
%if %{with armnn_tf}
|
|
||||||
%post -n libarmnnTfParser%{version_major}%{?package_suffix} -p /sbin/ldconfig
|
|
||||||
%postun -n libarmnnTfParser%{version_major}%{?package_suffix} -p /sbin/ldconfig
|
|
||||||
%endif
|
|
||||||
|
|
||||||
%if %{with armnn_caffe}
|
|
||||||
%post -n libarmnnCaffeParser%{version_major}%{?package_suffix} -p /sbin/ldconfig
|
|
||||||
%postun -n libarmnnCaffeParser%{version_major}%{?package_suffix} -p /sbin/ldconfig
|
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%if %{with armnn_onnx}
|
%if %{with armnn_onnx}
|
||||||
%post -n libarmnnOnnxParser%{version_major}%{?package_suffix} -p /sbin/ldconfig
|
%post -n libarmnnOnnxParser%{version_lib_onnxparser}%{?package_suffix} -p /sbin/ldconfig
|
||||||
%postun -n libarmnnOnnxParser%{version_major}%{?package_suffix} -p /sbin/ldconfig
|
%postun -n libarmnnOnnxParser%{version_lib_onnxparser}%{?package_suffix} -p /sbin/ldconfig
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
|
|
||||||
%files
|
%files
|
||||||
%defattr(-,root,root)
|
%defattr(-,root,root)
|
||||||
%doc README.md
|
%doc README.md
|
||||||
%license LICENSE
|
%license LICENSE
|
||||||
%if %{with armnn_tests}
|
%if %{with armnn_tests}
|
||||||
%{_bindir}/ExecuteNetwork
|
%{_bindir}/ExecuteNetwork
|
||||||
%if %{with armnn_caffe}
|
|
||||||
%{_bindir}/Caffe*-Armnn
|
|
||||||
%{_bindir}/MultipleNetworksCifar10
|
|
||||||
%endif
|
|
||||||
%if %{with armnn_flatbuffers}
|
%if %{with armnn_flatbuffers}
|
||||||
|
%{_bindir}/ArmnnConverter
|
||||||
%{_bindir}/TfLite*-Armnn
|
%{_bindir}/TfLite*-Armnn
|
||||||
%{_bindir}/Image*Generator
|
|
||||||
%endif
|
%endif
|
||||||
%if %{with armnn_onnx}
|
%if %{with armnn_onnx}
|
||||||
%{_bindir}/Onnx*-Armnn
|
%{_bindir}/Onnx*-Armnn
|
||||||
%endif
|
%endif
|
||||||
%if %{with armnn_tf}
|
|
||||||
%{_bindir}/Tf*-Armnn
|
|
||||||
%endif
|
|
||||||
%if %{with armnn_flatbuffers}
|
%if %{with armnn_flatbuffers}
|
||||||
%{_bindir}/SimpleSample
|
%{_bindir}/SimpleSample
|
||||||
%endif
|
%endif
|
||||||
@ -545,29 +515,28 @@ LD_LIBRARY_PATH="$(pwd)/build/" \
|
|||||||
%{_bindir}/ArmnnExamples
|
%{_bindir}/ArmnnExamples
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%files -n libarmnn%{version_major}%{?package_suffix}
|
%files -n libarmnn%{version_lib}%{?package_suffix}
|
||||||
%{_libdir}/libarmnn.so.*
|
%{_libdir}/libarmnn.so.*
|
||||||
|
|
||||||
|
%files -n libarmnnBasePipeServer%{version_lib}%{?package_suffix}
|
||||||
|
%{_libdir}/libarmnnBasePipeServer.so.*
|
||||||
|
|
||||||
|
%files -n libtimelineDecoder%{version_lib}%{?package_suffix}
|
||||||
|
%{_libdir}/libtimelineDecoder.so.*
|
||||||
|
|
||||||
|
%files -n libtimelineDecoderJson%{version_lib}%{?package_suffix}
|
||||||
|
%{_libdir}/libtimelineDecoderJson.so.*
|
||||||
|
|
||||||
%if %{with armnn_flatbuffers}
|
%if %{with armnn_flatbuffers}
|
||||||
%files -n libarmnnSerializer%{version_major}%{?package_suffix}
|
%files -n libarmnnSerializer%{version_lib}%{?package_suffix}
|
||||||
%{_libdir}/libarmnnSerializer.so.*
|
%{_libdir}/libarmnnSerializer.so.*
|
||||||
|
|
||||||
%files -n libarmnnTfLiteParser%{version_major}%{?package_suffix}
|
%files -n libarmnnTfLiteParser%{version_lib_tfliteparser}%{?package_suffix}
|
||||||
%{_libdir}/libarmnnTfLiteParser.so.*
|
%{_libdir}/libarmnnTfLiteParser.so.*
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%if %{with armnn_tf}
|
|
||||||
%files -n libarmnnTfParser%{version_major}%{?package_suffix}
|
|
||||||
%{_libdir}/libarmnnTfParser.so.*
|
|
||||||
%endif
|
|
||||||
|
|
||||||
%if %{with armnn_caffe}
|
|
||||||
%files -n libarmnnCaffeParser%{version_major}%{?package_suffix}
|
|
||||||
%{_libdir}/libarmnnCaffeParser.so.*
|
|
||||||
%endif
|
|
||||||
|
|
||||||
%if %{with armnn_onnx}
|
%if %{with armnn_onnx}
|
||||||
%files -n libarmnnOnnxParser%{version_major}%{?package_suffix}
|
%files -n libarmnnOnnxParser%{version_lib_onnxparser}%{?package_suffix}
|
||||||
%{_libdir}/libarmnnOnnxParser.so.*
|
%{_libdir}/libarmnnOnnxParser.so.*
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
@ -575,34 +544,40 @@ LD_LIBRARY_PATH="$(pwd)/build/" \
|
|||||||
%defattr(-,root,root)
|
%defattr(-,root,root)
|
||||||
%dir %{_includedir}/armnn/
|
%dir %{_includedir}/armnn/
|
||||||
%{_includedir}/armnn/*.hpp
|
%{_includedir}/armnn/*.hpp
|
||||||
%dir %{_includedir}/armnnCaffeParser/
|
%dir %{_includedir}/armnn/backends
|
||||||
%{_includedir}/armnnCaffeParser/ICaffeParser.hpp
|
%{_includedir}/armnn/backends/CMakeLists.txt
|
||||||
|
%{_includedir}/armnn/backends/*.hpp
|
||||||
|
%dir %{_includedir}/armnn/backends/profiling
|
||||||
|
%{_includedir}/armnn/backends/profiling/*.hpp
|
||||||
|
%dir %{_includedir}/armnn/profiling
|
||||||
|
%{_includedir}/armnn/profiling/*.hpp
|
||||||
|
%dir %{_includedir}/armnn/utility
|
||||||
|
%{_includedir}/armnn/utility/*.hpp
|
||||||
|
%dir %{_includedir}/armnnUtils
|
||||||
|
%{_includedir}/armnnUtils/*.hpp
|
||||||
%dir %{_includedir}/armnnOnnxParser/
|
%dir %{_includedir}/armnnOnnxParser/
|
||||||
%{_includedir}/armnnOnnxParser/IOnnxParser.hpp
|
%{_includedir}/armnnOnnxParser/*.hpp
|
||||||
%dir %{_includedir}/armnnTfLiteParser/
|
%dir %{_includedir}/armnnTfLiteParser/
|
||||||
%{_includedir}/armnnTfLiteParser/ITfLiteParser.hpp
|
%{_includedir}/armnnTfLiteParser/*.hpp
|
||||||
%dir %{_includedir}/armnnTfParser/
|
|
||||||
%{_includedir}/armnnTfParser/ITfParser.hpp
|
|
||||||
%dir %{_includedir}/armnnDeserializer/
|
%dir %{_includedir}/armnnDeserializer/
|
||||||
%{_includedir}/armnnDeserializer/IDeserializer.hpp
|
%{_includedir}/armnnDeserializer/IDeserializer.hpp
|
||||||
%dir %{_includedir}/armnnQuantizer
|
|
||||||
%{_includedir}/armnnQuantizer/INetworkQuantizer.hpp
|
|
||||||
%dir %{_includedir}/armnnSerializer/
|
%dir %{_includedir}/armnnSerializer/
|
||||||
%{_includedir}/armnnSerializer/ISerializer.hpp
|
%{_includedir}/armnnSerializer/ISerializer.hpp
|
||||||
|
%dir %{_includedir}/armnnTestUtils/
|
||||||
|
%{_includedir}/armnnTestUtils/*.hpp
|
||||||
|
%dir %{_libdir}/cmake/armnn
|
||||||
|
%{_libdir}/cmake/armnn/*
|
||||||
%{_libdir}/libarmnn.so
|
%{_libdir}/libarmnn.so
|
||||||
|
%{_libdir}/libarmnnBasePipeServer.so
|
||||||
|
%{_libdir}/libtimelineDecoder.so
|
||||||
|
%{_libdir}/libtimelineDecoderJson.so
|
||||||
%if %{with armnn_flatbuffers}
|
%if %{with armnn_flatbuffers}
|
||||||
%{_libdir}/libarmnnSerializer.so
|
%{_libdir}/libarmnnSerializer.so
|
||||||
%{_libdir}/libarmnnTfLiteParser.so
|
%{_libdir}/libarmnnTfLiteParser.so
|
||||||
%endif
|
%endif
|
||||||
%if %{with armnn_tf}
|
%{_libdir}/libarmnnTestUtils.so
|
||||||
%{_libdir}/libarmnnTfParser.so
|
|
||||||
%endif
|
|
||||||
%if %{with armnn_caffe}
|
|
||||||
%{_libdir}/libarmnnCaffeParser.so
|
|
||||||
%endif
|
|
||||||
%if %{with armnn_onnx}
|
%if %{with armnn_onnx}
|
||||||
%{_libdir}/libarmnnOnnxParser.so
|
%{_libdir}/libarmnnOnnxParser.so
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
Loading…
Reference in New Issue
Block a user