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?
Thank you! We'll create more content like this.
Thank you for helping us improve!