aboutsummaryrefslogtreecommitdiff
path: root/examples/neon_gemm_qasymm8.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'examples/neon_gemm_qasymm8.cpp')
-rw-r--r--examples/neon_gemm_qasymm8.cpp23
1 files changed, 12 insertions, 11 deletions
diff --git a/examples/neon_gemm_qasymm8.cpp b/examples/neon_gemm_qasymm8.cpp
index f6f5dc1026..3aaad02f8a 100644
--- a/examples/neon_gemm_qasymm8.cpp
+++ b/examples/neon_gemm_qasymm8.cpp
@@ -22,10 +22,11 @@
* SOFTWARE.
*/
#include "arm_compute/core/Types.h"
-#include "arm_compute/core/WindowIterator.h"
#include "arm_compute/core/utils/quantization/AsymmHelpers.h"
+#include "arm_compute/core/WindowIterator.h"
#include "arm_compute/runtime/NEON/NEFunctions.h"
#include "arm_compute/runtime/NEON/NEScheduler.h"
+
#include "support/ToolchainSupport.h"
#include "utils/Utils.h"
@@ -38,7 +39,7 @@ using namespace utils;
void find_min_max(int size, const float *data, float *min, float *max)
{
*min = *max = data[0];
- for(int i = 0; i < size; i++)
+ for (int i = 0; i < size; i++)
{
const float val = data[i];
*min = std::min(*min, val);
@@ -66,11 +67,11 @@ QuantizationInfo choose_quantization_params(float min, float max)
// But we need to nudge the zero_point to an integer (exact quantized value)
std::uint8_t zero_point_nudged = 0;
- if(zero_point_real < qmin)
+ if (zero_point_real < qmin)
{
zero_point_nudged = qmin;
}
- else if(zero_point_real > qmax)
+ else if (zero_point_real > qmax)
{
zero_point_nudged = qmax;
}
@@ -85,7 +86,7 @@ QuantizationInfo choose_quantization_params(float min, float max)
void quantize_values(int size, qasymm8_t *output, float *input, const QuantizationInfo qinfo)
{
- for(int i = 0; i < size; i++)
+ for (int i = 0; i < size; i++)
{
output[i] = quantize_qasymm8(input[i], qinfo);
}
@@ -108,7 +109,7 @@ int main(int argc, char **argv)
bool default_input = true;
// Parse args
- if(argc < 3) /* case default matrix sizes */
+ if (argc < 3) /* case default matrix sizes */
{
// Print help
std::cout << "Usage: ./build/neon_gemm_qasymm8 M N K\n";
@@ -144,23 +145,23 @@ int main(int argc, char **argv)
// Fill in: one is the identity matrix, other is sequential values
// src1: Identity matrix
- for(size_t i = 0; i < M * K; i++)
+ for (size_t i = 0; i < M * K; i++)
{
src1_ptr[i] = 0;
}
- for(size_t i = 0; i < M; i++)
+ for (size_t i = 0; i < M; i++)
{
src1_ptr[i * K + i] = 1.0f;
}
// src2: Sequential values matrix
- for(size_t i = 0; i < K * N; i++)
+ for (size_t i = 0; i < K * N; i++)
{
src2_ptr[i] = i * 1.123f;
}
// Otherwise if M, N, K is given, fill in with random values
- if(!default_input)
+ if (!default_input)
{
fill_random_tensor(src1, 0.f, 1.f);
fill_random_tensor(src2, 0.f, 1.f);
@@ -223,7 +224,7 @@ int main(int argc, char **argv)
NEGEMMLowpOutputStage gemmlowp_output_stage;
int output_multiplier;
int output_shift;
- float multiplier = (src1_qinfo.uniform().scale * src2_qinfo.uniform().scale) / dst0_qinfo.uniform().scale;
+ float multiplier = (src1_qinfo.uniform().scale * src2_qinfo.uniform().scale) / dst0_qinfo.uniform().scale;
quantization::calculate_quantized_multiplier_less_than_one(multiplier, &output_multiplier, &output_shift);
std::cout << "(q_multiplier, q_shift) = (" << output_multiplier << ", " << output_shift << ")\n\n";