public:
FeatureObject *create(const FeatureShape &shape);
- KernelObject *create(const nncc::core::ADT::kernel::Shape &shape);
template <typename T> T *create(void);
ker_layout->reorder<NCHWLayout>();
- auto ker_obj = m->entity()->object()->create(ker_shape);
+ auto ker_obj = m->entity()->object()->create<coco::KernelObject>();
ker_obj->bag(ker_bag);
ker_obj->layout(std::move(ker_layout));
TEST_F(Conv2DTest, ker_update)
{
// Prepare a kernel object for testing
- auto obj = obj_mgr.create(nncc::core::ADT::kernel::Shape{1, 1, 3, 3});
+ auto obj = obj_mgr.create<coco::KernelObject>();
// Test 'Conv2D' class
auto op = allocate();
TEST_F(Conv2DTest, destructor)
{
// Prepare a kernel object for testing
- auto obj = obj_mgr.create(nncc::core::ADT::kernel::Shape{1, 1, 3, 3});
+ auto obj = obj_mgr.create<coco::KernelObject>();
// Create 'Conv2D' op
auto op = make_unique<coco::Conv2D>();
ASSERT_EQ(entity->bag()->create(1)->module(), m.get());
ASSERT_EQ(entity->object()->create(feature::Shape{1, 2, 3})->module(), m.get());
- ASSERT_EQ(entity->object()->create(kernel::Shape{1, 2, 3, 4})->module(), m.get());
+ ASSERT_EQ(entity->object()->create<coco::KernelObject>()->module(), m.get());
#define OP(Name) ASSERT_EQ(entity->op()->create<Name>()->module(), m.get());
#include "coco/IR/Op.lst"
#undef OP
return take(std::move(feature));
}
-KernelObject *ObjectManager::create(const nncc::core::ADT::kernel::Shape &shape)
-{
- auto kernel = make_unique<KernelObject>(shape);
- auto kernel_ptr = kernel.get();
-
- modulize(kernel_ptr);
-
- return take(std::move(kernel));
-}
-
void ObjectManager::destroy(Object *o)
{
assert(o->def() == nullptr);
ASSERT_EQ(o->shape(), shape);
}
-TEST(IR_OBJECT_MANAGER, create_kernel)
-{
- using nncc::core::ADT::kernel::Shape;
-
- const Shape shape{1, 1, 3, 3};
-
- coco::ObjectManager mgr;
-
- auto o = mgr.create(shape);
-
- ASSERT_EQ(o->shape().count(), shape.count());
- ASSERT_EQ(o->shape().depth(), shape.depth());
- ASSERT_EQ(o->shape().height(), shape.height());
- ASSERT_EQ(o->shape().width(), shape.width());
-}
-
TEST(IR_OBJECT_MANAGER, create_feature_with_template)
{
coco::ObjectManager mgr;