[enco] Use pre-defined NCHW layout in Caffe frontend (#1737)
author박종현/동작제어Lab(SR)/Staff Engineer/삼성전자 <jh1302.park@samsung.com>
Thu, 4 Oct 2018 03:55:02 +0000 (12:55 +0900)
committerGitHub Enterprise <noreply-CODE@samsung.com>
Thu, 4 Oct 2018 03:55:02 +0000 (12:55 +0900)
This commit rewrites Caffe frontend to use pre-defined NCHW kernel layout
instead of Generic one (for performance optimization).

Signed-off-by: Jonghyun Park <jh1302.park@samsung.com>
contrib/enco/frontend/caffe/src/Frontend.cpp

index aecba5d..dbda2ca 100644 (file)
@@ -227,15 +227,14 @@ enco::Bundle Frontend::load(void) const
       ofm_obj->layout(coco::FeatureLayouts::BCHW::create(ofm_obj->shape()));
 
       // Create an object for kernel
+      using namespace coco::KernelLayouts;
+
       const auto ker_shape = spec.ker_shape();
       auto ker_bag = m->entity()->bag()->create(num_elements(ker_shape));
-      auto ker_obj = m->entity()->object()->create(morph::caffe::as_kernel_shape(ker_shape));
-      auto ker_layout = make_unique<coco::GenericKernelLayout>(ker_obj->shape());
-
-      ker_layout->reorder<kernel::NCHWLayout>();
+      auto ker_obj = m->entity()->object()->create<coco::KernelObject>();
 
       ker_obj->bag(ker_bag);
-      ker_obj->layout(std::move(ker_layout));
+      ker_obj->layout(NCHW::create((morph::caffe::as_kernel_shape(ker_shape))));
 
       // Create a kernel overlay for the kernel object
       d->f32()->allocate(ker_obj);