Today ComplexConv1d.forward always falls back to 2× torch.nn.Conv1d calls even when set_backend("nki"). No NKI dispatch path exists (only ComplexLinear has one).
Options:
- im2col-style kernel that unrolls the conv into a GEMM, reuses
_complex_gemm_kernel
- Native conv kernel with direct windowed memory access
Motivated by speech enhancement workloads (cIRM) that use ComplexConv1d in the front-end.
Today
ComplexConv1d.forwardalways falls back to 2×torch.nn.Conv1dcalls even whenset_backend("nki"). No NKI dispatch path exists (only ComplexLinear has one).Options:
_complex_gemm_kernelMotivated by speech enhancement workloads (cIRM) that use ComplexConv1d in the front-end.