Mojo struct
ConvTransposedPacked
struct ConvTransposedPacked[input_mut: Bool, input_element_layout: Layout, input_layout_int_type: DType, input_linear_idx_type: DType, input_masked: Bool, input_alignment: Int, filter_mut: Bool, filter_element_layout: Layout, filter_layout_int_type: DType, filter_linear_idx_type: DType, filter_masked: Bool, filter_alignment: Int, output_element_layout: Layout, output_layout_int_type: DType, output_linear_idx_type: DType, output_masked: Bool, output_alignment: Int, //, input_origin: Origin[input_mut], filter_origin: Origin[filter_mut], output_origin: MutableOrigin, input_layout: Layout, filter_layout: Layout, output_layout: Layout, input_type: DType, filter_type: DType, output_type: DType, conv_attr: ConvInfoStatic[(input_layout.rank() + -2)], elementwise_epilogue: OptionalReg[fn[Int](coords: IndexList[$0], f_size: Int) capturing -> None] = OptionalReg[fn[Int](coords: IndexList[$0], f_size: Int) capturing -> None]({:i1 0, 1})]
Fields
- output (
LayoutTensor[output_type, output_layout, output_origin, element_layout=output_element_layout, layout_int_type=output_layout_int_type, linear_idx_type=output_linear_idx_type, masked=output_masked, alignment=output_alignment]
): - input (
LayoutTensor[input_type, input_layout, input_origin, element_layout=input_element_layout, layout_int_type=input_layout_int_type, linear_idx_type=input_linear_idx_type, masked=input_masked, alignment=input_alignment]
): - filter (
LayoutTensor[filter_type, filter_layout, filter_origin, element_layout=filter_element_layout, layout_int_type=filter_layout_int_type, linear_idx_type=filter_linear_idx_type, masked=filter_masked, alignment=filter_alignment]
): - conv_shape (
ConvShape[(input_layout.rank() + -2)]
): - partition (
ConvPartition
): - cf_tile_size (
IndexList[2]
):
Implemented traits
AnyType
,
Copyable
,
Movable
,
UnknownDestructibility
Methods
run
static run(output: LayoutTensor[output_type, output_layout, output_origin, element_layout=output_element_layout, layout_int_type=output_layout_int_type, linear_idx_type=output_linear_idx_type, masked=output_masked, alignment=output_alignment], input: LayoutTensor[input_type, input_layout, input_origin, element_layout=input_element_layout, layout_int_type=input_layout_int_type, linear_idx_type=input_linear_idx_type, masked=input_masked, alignment=input_alignment], filter: LayoutTensor[filter_type, filter_layout, filter_origin, element_layout=filter_element_layout, layout_int_type=filter_layout_int_type, linear_idx_type=filter_linear_idx_type, masked=filter_masked, alignment=filter_alignment], conv_shape: ConvShape[(input_layout.rank() + -2)])
input_space_loop
input_space_loop[micro_kernel_height: Int, micro_kernel_width: Int, has_residual: Bool, last_c_tile: Bool](self, n: Int, f_tile_offset: Int, f_tile_size: Int, c_tile_offset: Int, c_tile_size: Int)
input_space_loop_2d
input_space_loop_2d[micro_kernel_height: Int, micro_kernel_width: Int, has_residual: Bool, last_c_tile: Bool, output_dt: DType, input_dt: DType, filter_dt: DType](self, output: UnsafePointer[SIMD[output_dt, 1]], input: UnsafePointer[SIMD[input_dt, 1]], filter: UnsafePointer[SIMD[filter_dt, 1]], n: Int, first_c_tile_in_group: Bool, c_tile_size: Int, f_tile_offset: Int, f_tile_size: Int, left_pad_impact_end: Int, right_pad_impact_start: Int)
input_space_loop_3d
input_space_loop_3d[micro_kernel_height: Int, micro_kernel_width: Int, has_residual: Bool, last_c_tile: Bool, output_dt: DType, input_dt: DType, filter_dt: DType](self, output: UnsafePointer[SIMD[output_dt, 1]], input: UnsafePointer[SIMD[input_dt, 1]], filter: UnsafePointer[SIMD[filter_dt, 1]], n: Int, first_c_tile_in_group: Bool, c_tile_size: Int, f_tile_offset: Int, f_tile_size: Int, left_pad_impact_end: Int, right_pad_impact_start: Int)
apply_epilogue
apply_epilogue(self, n: Int, g: Int)
Was this page helpful?
Thank you! We'll create more content like this.
Thank you for helping us improve!