IMPORTANT: To view this page as Markdown, append `.md` to the URL (e.g. /max/get-started.md). For the complete documentation index, see llms.txt.
Skip to main content
For the complete documentation index, see llms.txt. Markdown versions of all pages are available by appending .md to any URL (e.g. /max/get-started.md).

Mojo function

conv3d_gpu_naive_ndhwc_qrscf

def conv3d_gpu_naive_ndhwc_qrscf[input_layout: Layout, filter_layout: Layout, output_layout: Layout, input_type: DType, filter_type: DType, output_type: DType, block_size: Int, maybe_epilogue_func: Optional[def[dtype: DType, rank: Int, width: SIMDLength, alignment: Int = Int(1)](IndexList[rank], SIMD[dtype, width]) capturing thin -> None]](input: LayoutTensor[input_type, input_layout, MutAnyOrigin], filter: LayoutTensor[filter_type, filter_layout, MutAnyOrigin], output: LayoutTensor[output_type, output_layout, MutAnyOrigin], stride: IndexList[Int(3)], dilation: IndexList[Int(3)], padding: IndexList[Int(3)], num_groups: Int)

Naive GPU kernel for 3D NDHWC convolution with QRSCF filter layout.

Each thread computes one output voxel across all output channels, iterating over the Q x R x S filter window with vectorized input loads and scalar filter accumulation.

Arguments: input: Input activation tensor in NDHWC layout. filter: Convolution weight tensor in QRSCF layout. output: Output activation tensor in NDHWC layout. stride: Per-spatial-axis convolution stride as (depth, height, width). dilation: Per-spatial-axis filter dilation as (depth, height, width). padding: Per-spatial-axis symmetric padding as (depth, height, width). num_groups: Number of convolution groups for grouped convolution.

Parameters:

Was this page helpful?