From cf3935ffd4c67d9396c2435a3a28d3a159753105 Mon Sep 17 00:00:00 2001 From: Giorgio Arena Date: Thu, 26 Oct 2017 17:14:13 +0100 Subject: COMPMID-627 Create CL SGEMM example Change-Id: I17478202348d34716d00c78e3cc21254c76b32e1 Reviewed-on: http://mpd-gerrit.cambridge.arm.com/93304 Tested-by: Kaizen Reviewed-by: Anthony Barbier --- utils/Utils.cpp | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) (limited to 'utils/Utils.cpp') diff --git a/utils/Utils.cpp b/utils/Utils.cpp index 5316690a3d..b99afb441c 100644 --- a/utils/Utils.cpp +++ b/utils/Utils.cpp @@ -167,5 +167,42 @@ std::tuple parse_ppm_header(std::ifstream &fs) return std::make_tuple(width, height, max_val); } + +std::tuple, bool, std::string> parse_npy_header(std::ifstream &fs) //NOLINT +{ + std::vector shape; // NOLINT + + // Check magic bytes and version number + unsigned char v_major = 0; + unsigned char v_minor = 0; + npy::read_magic(fs, &v_major, &v_minor); + + // Read header + std::string header; + if(v_major == 1 && v_minor == 0) + { + header = npy::read_header_1_0(fs); + } + else if(v_major == 2 && v_minor == 0) + { + header = npy::read_header_2_0(fs); + } + else + { + ARM_COMPUTE_ERROR("Unsupported file format version"); + } + + // Parse header + bool fortran_order = false; + std::string typestr; + npy::ParseHeader(header, typestr, &fortran_order, shape); + + if(!fortran_order) + { + std::reverse(shape.begin(), shape.end()); + } + + return std::make_tuple(shape, fortran_order, typestr); +} } // namespace utils } // namespace arm_compute -- cgit v1.2.1