}
};
-namespace {
-struct attach {
- attach() {
- implementation_map<concatenation>::add({
- {std::make_tuple(engine_types::ocl, data_types::f32, format::yxfb), concatenation_gpu::create},
- {std::make_tuple(engine_types::ocl, data_types::f16, format::yxfb), concatenation_gpu::create},
- {std::make_tuple(engine_types::ocl, data_types::i8, format::yxfb), concatenation_gpu::create},
- {std::make_tuple(engine_types::ocl, data_types::u8, format::yxfb), concatenation_gpu::create},
- {std::make_tuple(engine_types::ocl, data_types::i32, format::yxfb), concatenation_gpu::create},
- {std::make_tuple(engine_types::ocl, data_types::i64, format::yxfb), concatenation_gpu::create},
- {std::make_tuple(engine_types::ocl, data_types::f32, format::bfyx), concatenation_gpu::create},
- {std::make_tuple(engine_types::ocl, data_types::f16, format::bfyx), concatenation_gpu::create},
- {std::make_tuple(engine_types::ocl, data_types::i8, format::bfyx), concatenation_gpu::create},
- {std::make_tuple(engine_types::ocl, data_types::u8, format::bfyx), concatenation_gpu::create},
- {std::make_tuple(engine_types::ocl, data_types::i32, format::bfyx), concatenation_gpu::create},
- {std::make_tuple(engine_types::ocl, data_types::i64, format::bfyx), concatenation_gpu::create},
- {std::make_tuple(engine_types::ocl, data_types::f32, format::byxf), concatenation_gpu::create},
- {std::make_tuple(engine_types::ocl, data_types::f16, format::byxf), concatenation_gpu::create},
- {std::make_tuple(engine_types::ocl, data_types::i8, format::byxf), concatenation_gpu::create},
- {std::make_tuple(engine_types::ocl, data_types::u8, format::byxf), concatenation_gpu::create},
- {std::make_tuple(engine_types::ocl, data_types::i32, format::byxf), concatenation_gpu::create},
- {std::make_tuple(engine_types::ocl, data_types::i64, format::byxf), concatenation_gpu::create},
- {std::make_tuple(engine_types::ocl, data_types::f32, format::fyxb), concatenation_gpu::create},
- {std::make_tuple(engine_types::ocl, data_types::f16, format::fyxb), concatenation_gpu::create},
- // 5D
- {std::make_tuple(engine_types::ocl, data_types::f32, format::bfzyx), concatenation_gpu::create},
- {std::make_tuple(engine_types::ocl, data_types::f16, format::bfzyx), concatenation_gpu::create},
- {std::make_tuple(engine_types::ocl, data_types::i8, format::bfzyx), concatenation_gpu::create},
- {std::make_tuple(engine_types::ocl, data_types::i32, format::bfzyx), concatenation_gpu::create},
- {std::make_tuple(engine_types::ocl, data_types::i64, format::bfzyx), concatenation_gpu::create},
- // block f16 format
- {std::make_tuple(engine_types::ocl, data_types::f16, format::bfyx_f16), concatenation_gpu::create},
- {std::make_tuple(engine_types::ocl, data_types::f32, format::bfyx_f16), concatenation_gpu::create},
- // MMAD
- {std::make_tuple(engine_types::ocl, data_types::i8, format::byxf_af32), concatenation_gpu::create},
- // 6D
- {std::make_tuple(engine_types::ocl, data_types::f32, format::bfwzyx), concatenation_gpu::create},
- {std::make_tuple(engine_types::ocl, data_types::f16, format::bfwzyx), concatenation_gpu::create},
- {std::make_tuple(engine_types::ocl, data_types::u8, format::bfwzyx), concatenation_gpu::create},
- {std::make_tuple(engine_types::ocl, data_types::i8, format::bfwzyx), concatenation_gpu::create},
- {std::make_tuple(engine_types::ocl, data_types::i32, format::bfwzyx), concatenation_gpu::create},
- {std::make_tuple(engine_types::ocl, data_types::i64, format::bfwzyx), concatenation_gpu::create},
- });
- }
- ~attach() {}
-};
-} // namespace
-
-attach attach_impl;
+namespace detail {
+
+attach_concatenation_gpu::attach_concatenation_gpu() {
+ implementation_map<concatenation>::add({
+ {std::make_tuple(engine_types::ocl, data_types::f32, format::yxfb), concatenation_gpu::create},
+ {std::make_tuple(engine_types::ocl, data_types::f16, format::yxfb), concatenation_gpu::create},
+ {std::make_tuple(engine_types::ocl, data_types::i8, format::yxfb), concatenation_gpu::create},
+ {std::make_tuple(engine_types::ocl, data_types::u8, format::yxfb), concatenation_gpu::create},
+ {std::make_tuple(engine_types::ocl, data_types::i32, format::yxfb), concatenation_gpu::create},
+ {std::make_tuple(engine_types::ocl, data_types::i64, format::yxfb), concatenation_gpu::create},
+ {std::make_tuple(engine_types::ocl, data_types::f32, format::bfyx), concatenation_gpu::create},
+ {std::make_tuple(engine_types::ocl, data_types::f16, format::bfyx), concatenation_gpu::create},
+ {std::make_tuple(engine_types::ocl, data_types::i8, format::bfyx), concatenation_gpu::create},
+ {std::make_tuple(engine_types::ocl, data_types::u8, format::bfyx), concatenation_gpu::create},
+ {std::make_tuple(engine_types::ocl, data_types::i32, format::bfyx), concatenation_gpu::create},
+ {std::make_tuple(engine_types::ocl, data_types::i64, format::bfyx), concatenation_gpu::create},
+ {std::make_tuple(engine_types::ocl, data_types::f32, format::byxf), concatenation_gpu::create},
+ {std::make_tuple(engine_types::ocl, data_types::f16, format::byxf), concatenation_gpu::create},
+ {std::make_tuple(engine_types::ocl, data_types::i8, format::byxf), concatenation_gpu::create},
+ {std::make_tuple(engine_types::ocl, data_types::u8, format::byxf), concatenation_gpu::create},
+ {std::make_tuple(engine_types::ocl, data_types::i32, format::byxf), concatenation_gpu::create},
+ {std::make_tuple(engine_types::ocl, data_types::i64, format::byxf), concatenation_gpu::create},
+ {std::make_tuple(engine_types::ocl, data_types::f32, format::fyxb), concatenation_gpu::create},
+ {std::make_tuple(engine_types::ocl, data_types::f16, format::fyxb), concatenation_gpu::create},
+ // 5D
+ {std::make_tuple(engine_types::ocl, data_types::f32, format::bfzyx), concatenation_gpu::create},
+ {std::make_tuple(engine_types::ocl, data_types::f16, format::bfzyx), concatenation_gpu::create},
+ {std::make_tuple(engine_types::ocl, data_types::i8, format::bfzyx), concatenation_gpu::create},
+ {std::make_tuple(engine_types::ocl, data_types::i32, format::bfzyx), concatenation_gpu::create},
+ {std::make_tuple(engine_types::ocl, data_types::i64, format::bfzyx), concatenation_gpu::create},
+ { std::make_tuple(engine_types::ocl, data_types::f32, format::bfzyx_f16), concatenation_gpu::create },
+ { std::make_tuple(engine_types::ocl, data_types::f16, format::bfzyx_f16), concatenation_gpu::create },
+ { std::make_tuple(engine_types::ocl, data_types::i8, format::bfzyx_f16), concatenation_gpu::create },
+ { std::make_tuple(engine_types::ocl, data_types::i32, format::bfzyx_f16), concatenation_gpu::create },
+ { std::make_tuple(engine_types::ocl, data_types::i64, format::bfzyx_f16), concatenation_gpu::create },
+ // block f16 format
+ {std::make_tuple(engine_types::ocl, data_types::f16, format::bfyx_f16), concatenation_gpu::create},
+ {std::make_tuple(engine_types::ocl, data_types::f32, format::bfyx_f16), concatenation_gpu::create},
+ // MMAD
+ {std::make_tuple(engine_types::ocl, data_types::i8, format::byxf_af32), concatenation_gpu::create},
+ // 6D
+ {std::make_tuple(engine_types::ocl, data_types::f32, format::bfwzyx), concatenation_gpu::create},
+ {std::make_tuple(engine_types::ocl, data_types::f16, format::bfwzyx), concatenation_gpu::create},
+ {std::make_tuple(engine_types::ocl, data_types::u8, format::bfwzyx), concatenation_gpu::create},
+ {std::make_tuple(engine_types::ocl, data_types::i8, format::bfwzyx), concatenation_gpu::create},
+ {std::make_tuple(engine_types::ocl, data_types::i32, format::bfwzyx), concatenation_gpu::create},
+ {std::make_tuple(engine_types::ocl, data_types::i64, format::bfwzyx), concatenation_gpu::create},
+ });
+}
+} // namespace detail
} // namespace gpu
} // namespace cldnn