COMPMID-3639: Fix script to generate *Kernels.h
authorSang-Hoon Park <sang-hoon.park@arm.com>
Wed, 4 Nov 2020 17:32:38 +0000 (17:32 +0000)
committerSang-Hoon Park <sang-hoon.park@arm.com>
Tue, 10 Nov 2020 09:55:19 +0000 (09:55 +0000)
Change-Id: Ie44fc807fe8d7ad04a97f0ea4f611b60cb8e0716
Signed-off-by: Sang-Hoon Park <sang-hoon.park@arm.com>
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/4325
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
Reviewed-by: Georgios Pinitas <georgios.pinitas@arm.com>
scripts/include_functions_kernels.py
src/core/NEON/NEKernels.h

index 074f7949b8f2170e3315b5da52d8d87a87362c3d..4db47ea754126daa5a0b707bfd899d1e1327b0e6 100755 (executable)
@@ -3,16 +3,30 @@ import glob
 import collections
 import os
 
-Target = collections.namedtuple('Target', 'name prefix')
-
-targets = [Target("NEON", "NE"), Target("CL", "CL"), Target("CPP", "CPP"), Target("GLES_COMPUTE", "GC")]
-
 armcv_path = "arm_compute"
-core_path = armcv_path + "/core/"
-runtime_path = armcv_path + "/runtime/"
+src_path ="src"
+
+Target = collections.namedtuple('Target', 'name prefix basepath')
+
+core_targets = [
+    Target("NEON", "NE", src_path),             # NEON kernels are under src
+    Target("CL", "CL", src_path),               # CL kernels are under src
+    Target("CPP", "CPP", armcv_path),           # CPP kernels are under arm_compute
+    Target("GLES_COMPUTE", "GC", armcv_path)    # GLES kernels are under arm_compute
+    ]
+
+# All functions are under arm_compute
+runtime_targets = [
+    Target("NEON", "NE", armcv_path),
+    Target("CL", "CL", armcv_path),
+    Target("CPP", "CPP", armcv_path),
+    Target("GLES_COMPUTE", "GC", armcv_path)
+    ]
+
+core_path = "/core/"
+runtime_path = "/runtime/"
 include_str = "#include \""
 
-
 def read_file(file):
     with open(file, "r") as f:
         lines = f.readlines()
@@ -43,9 +57,9 @@ def create_include_list(folder):
     return updated_files
 
 
-def include_components(path, header_prefix, folder, subfolders=None):
-    for t in targets:
-        target_path = path +  t.name + "/"
+def include_components(target, path, header_prefix, folder, subfolders=None):
+    for t in target:
+        target_path = t.basepath + path +  t.name + "/"
         components_file = target_path + t.prefix + header_prefix
         if os.path.exists(components_file):
             include_list = create_include_list(target_path + folder)
@@ -60,7 +74,7 @@ def include_components(path, header_prefix, folder, subfolders=None):
 
 if __name__ == "__main__":
     # Include kernels
-    include_components(core_path, "Kernels.h", "kernels", ["arm32", "arm64"])
+    include_components(core_targets, core_path, "Kernels.h", "kernels", ["arm32", "arm64"])
 
     # Include functions
-    include_components(runtime_path, "Functions.h", "functions")
+    include_components(runtime_targets, runtime_path, "Functions.h", "functions")
index c1924d673922b529656c2e0337ccba6631eab1f0..67562933d42a9de0805248184f42145b8f9e7df9 100644 (file)
 #include "src/core/NEON/kernels/NEWarpKernel.h"
 #include "src/core/NEON/kernels/NEWeightsReshapeKernel.h"
 #include "src/core/NEON/kernels/NEWidthConcatenateLayerKernel.h"
+#include "src/core/NEON/kernels/NEWinogradConvolutionLayerKernel.h"
 #include "src/core/NEON/kernels/NEYOLOLayerKernel.h"
 
 #endif /* ARM_COMPUTE_NEKERNELS_H */