Skip to main content

Mojo struct

ConvTransposedPacked

struct ConvTransposedPacked[input_element_shape_types: Variadic[CoordLike], input_linear_idx_type: DType, filter_element_shape_types: Variadic[CoordLike], filter_linear_idx_type: DType, output_element_shape_types: Variadic[CoordLike], output_linear_idx_type: DType, InputLayoutType: TensorLayout, FilterLayoutType: TensorLayout, OutputLayoutType: TensorLayout, conv_attr_rank: Int, //, input_origin: ImmutOrigin, filter_origin: ImmutOrigin, output_origin: MutOrigin, input_type: DType, filter_type: DType, output_type: DType, conv_attr: ConvInfoStatic[conv_attr_rank], elementwise_epilogue: Optional[elementwise_epilogue_type] = None]

Fields

  • output (TileTensor[output_type, OutputLayoutType, output_origin, linear_idx_type=output_linear_idx_type, element_shape_types=output_element_shape_types]):
  • input (TileTensor[input_type, InputLayoutType, input_origin, linear_idx_type=input_linear_idx_type, element_shape_types=input_element_shape_types]):
  • filter (TileTensor[filter_type, FilterLayoutType, filter_origin, linear_idx_type=filter_linear_idx_type, element_shape_types=filter_element_shape_types]):
  • conv_shape (ConvShape[conv_attr_rank]):
  • partition (ConvPartition):
  • cf_tile_size (IndexList[2]):

Implemented traits

AnyType, Copyable, ImplicitlyCopyable, ImplicitlyDestructible, Movable

comptime members

__copyinit__is_trivial

comptime __copyinit__is_trivial = True if True if True if FilterLayoutType.__copyinit__is_trivial if InputLayoutType.__copyinit__is_trivial if OutputLayoutType.__copyinit__is_trivial else OutputLayoutType.__copyinit__is_trivial else InputLayoutType.__copyinit__is_trivial if OutputLayoutType.__copyinit__is_trivial else OutputLayoutType.__copyinit__is_trivial else FilterLayoutType.__copyinit__is_trivial if InputLayoutType.__copyinit__is_trivial if OutputLayoutType.__copyinit__is_trivial else OutputLayoutType.__copyinit__is_trivial else InputLayoutType.__copyinit__is_trivial if OutputLayoutType.__copyinit__is_trivial else OutputLayoutType.__copyinit__is_trivial else True if FilterLayoutType.__copyinit__is_trivial if InputLayoutType.__copyinit__is_trivial if OutputLayoutType.__copyinit__is_trivial else OutputLayoutType.__copyinit__is_trivial else InputLayoutType.__copyinit__is_trivial if OutputLayoutType.__copyinit__is_trivial else OutputLayoutType.__copyinit__is_trivial else FilterLayoutType.__copyinit__is_trivial if InputLayoutType.__copyinit__is_trivial if OutputLayoutType.__copyinit__is_trivial else OutputLayoutType.__copyinit__is_trivial else InputLayoutType.__copyinit__is_trivial if OutputLayoutType.__copyinit__is_trivial else OutputLayoutType.__copyinit__is_trivial else True if True if FilterLayoutType.__copyinit__is_trivial if InputLayoutType.__copyinit__is_trivial if OutputLayoutType.__copyinit__is_trivial else OutputLayoutType.__copyinit__is_trivial else InputLayoutType.__copyinit__is_trivial if OutputLayoutType.__copyinit__is_trivial else OutputLayoutType.__copyinit__is_trivial else FilterLayoutType.__copyinit__is_trivial if InputLayoutType.__copyinit__is_trivial if OutputLayoutType.__copyinit__is_trivial else OutputLayoutType.__copyinit__is_trivial else InputLayoutType.__copyinit__is_trivial if OutputLayoutType.__copyinit__is_trivial else OutputLayoutType.__copyinit__is_trivial else True if FilterLayoutType.__copyinit__is_trivial if InputLayoutType.__copyinit__is_trivial if OutputLayoutType.__copyinit__is_trivial else OutputLayoutType.__copyinit__is_trivial else InputLayoutType.__copyinit__is_trivial if OutputLayoutType.__copyinit__is_trivial else OutputLayoutType.__copyinit__is_trivial else FilterLayoutType.__copyinit__is_trivial if InputLayoutType.__copyinit__is_trivial if OutputLayoutType.__copyinit__is_trivial else OutputLayoutType.__copyinit__is_trivial else InputLayoutType.__copyinit__is_trivial if OutputLayoutType.__copyinit__is_trivial else OutputLayoutType.__copyinit__is_trivial

__del__is_trivial

comptime __del__is_trivial = True if True if True if FilterLayoutType.__del__is_trivial if InputLayoutType.__del__is_trivial if OutputLayoutType.__del__is_trivial else OutputLayoutType.__del__is_trivial else InputLayoutType.__del__is_trivial if OutputLayoutType.__del__is_trivial else OutputLayoutType.__del__is_trivial else FilterLayoutType.__del__is_trivial if InputLayoutType.__del__is_trivial if OutputLayoutType.__del__is_trivial else OutputLayoutType.__del__is_trivial else InputLayoutType.__del__is_trivial if OutputLayoutType.__del__is_trivial else OutputLayoutType.__del__is_trivial else True if FilterLayoutType.__del__is_trivial if InputLayoutType.__del__is_trivial if OutputLayoutType.__del__is_trivial else OutputLayoutType.__del__is_trivial else InputLayoutType.__del__is_trivial if OutputLayoutType.__del__is_trivial else OutputLayoutType.__del__is_trivial else FilterLayoutType.__del__is_trivial if InputLayoutType.__del__is_trivial if OutputLayoutType.__del__is_trivial else OutputLayoutType.__del__is_trivial else InputLayoutType.__del__is_trivial if OutputLayoutType.__del__is_trivial else OutputLayoutType.__del__is_trivial else True if True if FilterLayoutType.__del__is_trivial if InputLayoutType.__del__is_trivial if OutputLayoutType.__del__is_trivial else OutputLayoutType.__del__is_trivial else InputLayoutType.__del__is_trivial if OutputLayoutType.__del__is_trivial else OutputLayoutType.__del__is_trivial else FilterLayoutType.__del__is_trivial if InputLayoutType.__del__is_trivial if OutputLayoutType.__del__is_trivial else OutputLayoutType.__del__is_trivial else InputLayoutType.__del__is_trivial if OutputLayoutType.__del__is_trivial else OutputLayoutType.__del__is_trivial else True if FilterLayoutType.__del__is_trivial if InputLayoutType.__del__is_trivial if OutputLayoutType.__del__is_trivial else OutputLayoutType.__del__is_trivial else InputLayoutType.__del__is_trivial if OutputLayoutType.__del__is_trivial else OutputLayoutType.__del__is_trivial else FilterLayoutType.__del__is_trivial if InputLayoutType.__del__is_trivial if OutputLayoutType.__del__is_trivial else OutputLayoutType.__del__is_trivial else InputLayoutType.__del__is_trivial if OutputLayoutType.__del__is_trivial else OutputLayoutType.__del__is_trivial

__moveinit__is_trivial

comptime __moveinit__is_trivial = True if True if True if FilterLayoutType.__moveinit__is_trivial if InputLayoutType.__moveinit__is_trivial if OutputLayoutType.__moveinit__is_trivial else OutputLayoutType.__moveinit__is_trivial else InputLayoutType.__moveinit__is_trivial if OutputLayoutType.__moveinit__is_trivial else OutputLayoutType.__moveinit__is_trivial else FilterLayoutType.__moveinit__is_trivial if InputLayoutType.__moveinit__is_trivial if OutputLayoutType.__moveinit__is_trivial else OutputLayoutType.__moveinit__is_trivial else InputLayoutType.__moveinit__is_trivial if OutputLayoutType.__moveinit__is_trivial else OutputLayoutType.__moveinit__is_trivial else True if FilterLayoutType.__moveinit__is_trivial if InputLayoutType.__moveinit__is_trivial if OutputLayoutType.__moveinit__is_trivial else OutputLayoutType.__moveinit__is_trivial else InputLayoutType.__moveinit__is_trivial if OutputLayoutType.__moveinit__is_trivial else OutputLayoutType.__moveinit__is_trivial else FilterLayoutType.__moveinit__is_trivial if InputLayoutType.__moveinit__is_trivial if OutputLayoutType.__moveinit__is_trivial else OutputLayoutType.__moveinit__is_trivial else InputLayoutType.__moveinit__is_trivial if OutputLayoutType.__moveinit__is_trivial else OutputLayoutType.__moveinit__is_trivial else True if True if FilterLayoutType.__moveinit__is_trivial if InputLayoutType.__moveinit__is_trivial if OutputLayoutType.__moveinit__is_trivial else OutputLayoutType.__moveinit__is_trivial else InputLayoutType.__moveinit__is_trivial if OutputLayoutType.__moveinit__is_trivial else OutputLayoutType.__moveinit__is_trivial else FilterLayoutType.__moveinit__is_trivial if InputLayoutType.__moveinit__is_trivial if OutputLayoutType.__moveinit__is_trivial else OutputLayoutType.__moveinit__is_trivial else InputLayoutType.__moveinit__is_trivial if OutputLayoutType.__moveinit__is_trivial else OutputLayoutType.__moveinit__is_trivial else True if FilterLayoutType.__moveinit__is_trivial if InputLayoutType.__moveinit__is_trivial if OutputLayoutType.__moveinit__is_trivial else OutputLayoutType.__moveinit__is_trivial else InputLayoutType.__moveinit__is_trivial if OutputLayoutType.__moveinit__is_trivial else OutputLayoutType.__moveinit__is_trivial else FilterLayoutType.__moveinit__is_trivial if InputLayoutType.__moveinit__is_trivial if OutputLayoutType.__moveinit__is_trivial else OutputLayoutType.__moveinit__is_trivial else InputLayoutType.__moveinit__is_trivial if OutputLayoutType.__moveinit__is_trivial else OutputLayoutType.__moveinit__is_trivial

Methods

run

static run(output: TileTensor[output_type, OutputLayoutType, output_origin, linear_idx_type=output_linear_idx_type, element_shape_types=output_element_shape_types], input: TileTensor[input_type, InputLayoutType, input_origin, linear_idx_type=input_linear_idx_type, element_shape_types=input_element_shape_types], filter: TileTensor[filter_type, FilterLayoutType, filter_origin, linear_idx_type=filter_linear_idx_type, element_shape_types=filter_element_shape_types], conv_shape: ConvShape[conv_attr_rank])

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[output_dt: DType, input_dt: DType, filter_dt: DType, //, micro_kernel_height: Int, micro_kernel_width: Int, has_residual: Bool, last_c_tile: Bool](self, output: UnsafePointer[Scalar[output_dt], origin], input: UnsafePointer[Scalar[input_dt], origin], filter: UnsafePointer[Scalar[filter_dt], origin], 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[Scalar[output_dt], origin], input: UnsafePointer[Scalar[input_dt], origin], filter: UnsafePointer[Scalar[filter_dt], origin], 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?