aboutsummaryrefslogtreecommitdiff
path: root/utils
diff options
context:
space:
mode:
authorGian Marco <gianmarco.iodice@arm.com>2017-12-12 10:08:38 +0000
committerAnthony Barbier <anthony.barbier@arm.com>2018-11-02 16:42:33 +0000
commitbfa3b52de2cfbd330efc19e2096134a20c645406 (patch)
tree30812054cbeaa87a268bb21174402d3b2ec199d4 /utils
parent397252889a2d7e7d9d241ee9dcecff3edf2bcff7 (diff)
downloadComputeLibrary-bfa3b52de2cfbd330efc19e2096134a20c645406.tar.gz
COMPMID-556 - Fix examples
- Fixed data type issue in cl_sgemm - Added support for NEON and OpenCL targets in graph examples. Before we could run only OpenCL target - Add auto_init() in NEDepthwiseVectorToTensorKernel Change-Id: I4410ce6f4992b2375b980634fe55f1083cf3c471 Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/112850 Reviewed-by: Anthony Barbier <anthony.barbier@arm.com> Tested-by: BSG Visual Compute Jenkins server to access repositories on http://mpd-gerrit.cambridge.arm.com <bsgcomp@arm.com>
Diffstat (limited to 'utils')
-rw-r--r--utils/GraphUtils.h21
-rw-r--r--utils/Utils.h12
2 files changed, 27 insertions, 6 deletions
diff --git a/utils/GraphUtils.h b/utils/GraphUtils.h
index d7d5cd6778..429394d1cc 100644
--- a/utils/GraphUtils.h
+++ b/utils/GraphUtils.h
@@ -25,6 +25,7 @@
#define __ARM_COMPUTE_GRAPH_UTILS_H__
#include "arm_compute/core/PixelValue.h"
+#include "arm_compute/graph/Graph.h"
#include "arm_compute/graph/ITensorAccessor.h"
#include "arm_compute/graph/Types.h"
@@ -220,6 +221,26 @@ inline std::unique_ptr<graph::ITensorAccessor> get_input_accessor(const std::str
}
}
+/** Utility function to return the TargetHint
+ *
+ * @param[in] target Integer value which expresses the selected target. Must be 0 for NEON or 1 for OpenCL
+ *
+ * @return the TargetHint
+ */
+inline graph::TargetHint set_target_hint(int target)
+{
+ ARM_COMPUTE_ERROR_ON_MSG(target > 1, "Invalid target. Target must be 0 (NEON) or 1 (OpenCL)");
+ if(target == 1 && graph::Graph::opencl_is_available())
+ {
+ // If type of target is OpenCL, check if OpenCL is available and initialize the scheduler
+ return graph::TargetHint::OPENCL;
+ }
+ else
+ {
+ return graph::TargetHint::NEON;
+ }
+}
+
/** Generates appropriate output accessor according to the specified labels_path
*
* @note If labels_path is empty will generate a DummyAccessor else will generate a TopNPredictionsAccessor
diff --git a/utils/Utils.h b/utils/Utils.h
index 9133fd0ac0..eb4e846e80 100644
--- a/utils/Utils.h
+++ b/utils/Utils.h
@@ -708,7 +708,7 @@ void save_to_ppm(T &tensor, const std::string &ppm_filename)
/** Template helper function to save a tensor image to a NPY file.
*
- * @note Only F32 format supported.
+ * @note Only F32 data type supported.
* @note Only works with 2D tensors.
* @note If the input tensor is a CLTensor, the function maps and unmaps the image
*
@@ -719,7 +719,7 @@ void save_to_ppm(T &tensor, const std::string &ppm_filename)
template <typename T>
void save_to_npy(T &tensor, const std::string &npy_filename, bool fortran_order)
{
- ARM_COMPUTE_ERROR_ON_FORMAT_NOT_IN(&tensor, arm_compute::Format::F32);
+ ARM_COMPUTE_ERROR_ON_DATA_TYPE_NOT_IN(&tensor, arm_compute::DataType::F32);
ARM_COMPUTE_ERROR_ON(tensor.info()->num_dimensions() > 2);
std::ofstream fs;
@@ -745,9 +745,9 @@ void save_to_npy(T &tensor, const std::string &npy_filename, bool fortran_order)
// Map buffer if creating a CLTensor
map(tensor, true);
- switch(tensor.info()->format())
+ switch(tensor.info()->data_type())
{
- case arm_compute::Format::F32:
+ case arm_compute::DataType::F32:
{
std::vector<float> tmp; /* Used only to get the typestring */
npy::Typestring typestring_o{ tmp };
@@ -851,9 +851,9 @@ void fill_random_tensor(T &tensor, float lower_bound, float upper_bound)
Iterator it(&tensor, window);
- switch(tensor.info()->format())
+ switch(tensor.info()->data_type())
{
- case arm_compute::Format::F32:
+ case arm_compute::DataType::F32:
{
std::uniform_real_distribution<float> dist(lower_bound, upper_bound);