29 namespace experimental
31 namespace dynamic_fusion
36 TensorComponentType component)
41 const auto &strides =
info->strides_in_bytes();
45 case TensorComponentType::OffsetFirstElement:
46 kernel.setArg<cl_uint>(idx++,
info->offset_first_element_in_bytes());
48 case TensorComponentType::Stride0:
49 kernel.setArg<cl_uint>(idx++, strides[0]);
51 case TensorComponentType::Stride1:
52 kernel.setArg<cl_uint>(idx++, strides[1]);
54 case TensorComponentType::Stride2:
55 kernel.setArg<cl_uint>(idx++, strides[2]);
57 case TensorComponentType::Stride3:
58 kernel.setArg<cl_uint>(idx++, strides[3]);
60 case TensorComponentType::Stride4:
61 kernel.setArg<cl_uint>(idx++, strides[4]);
63 case TensorComponentType::Dim0:
64 kernel.setArg<cl_uint>(idx++,
info->dimension(0));
66 case TensorComponentType::Dim1:
67 kernel.setArg<cl_uint>(idx++,
info->dimension(1));
69 case TensorComponentType::Dim2:
70 kernel.setArg<cl_uint>(idx++,
info->dimension(2));
72 case TensorComponentType::Dim3:
73 kernel.setArg<cl_uint>(idx++,
info->dimension(3));
75 case TensorComponentType::Dim4:
76 kernel.setArg<cl_uint>(idx++,
info->dimension(4));
78 case TensorComponentType::Dim1xDim2:
79 kernel.setArg<cl_uint>(idx++,
info->dimension(1) *
info->dimension(2));
81 case TensorComponentType::Dim2xDim3:
82 kernel.setArg<cl_uint>(idx++,
info->dimension(2) *
info->dimension(3));
84 case TensorComponentType::Dim1xDim2xDim3:
85 kernel.setArg<cl_uint>(idx++,
info->dimension(1) *
info->dimension(2) *
info->dimension(3));
87 case TensorComponentType::Unknown:
95 kernel.setArg(idx++, buffer);
100 kernel.setArg(idx++,
image);