You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add streaming filter support for conv1d, resample_poly, channelize_poly (#1209)
* Add streaming filter support for conv1d, resample_poly, channelize_poly
Add Conv1DStream, ResamplePolyStream, and ChannelizePolyStream objects
that filter arbitrarily long signals delivered in segments. Segments of
any size are supplied via feed() and a final flush() emits the trailing
outputs and ends the stream. The concatenated outputs match the
corresponding one-shot transform. Objects are created with the
make_*_stream() factories and support CUDA and host executors.
Each object retains only a small history buffer between calls, and
feed()/flush() write into a caller-provided output buffer sized once
via max_output(), so no allocation occurs during streaming. conv1d
supports FULL/SAME/VALID modes. To support the internal windowed
one-shot calls, the resample_poly and channelize_poly transforms and
kernels gain output-window offset parameters.
See examples/streaming.cu and the API Reference section Signal and
Image Processing / Streaming for usage and per-transform caveats.
Tests cover one-shot equivalence across filter/segment configurations,
varying segment schedules, end-of-stream semantics, and host executors.
Signed-off-by: Thomas Benson <tbenson@nvidia.com>
"lu", "|yes|", "|yes|", "|yes|", "Host support requires the CPU solver backend. CUDAJITExecutor supports cuSolverDx-backed lazy projections for supported types and shapes."
143
+
"make_channelize_poly_stream", "|yes|", "|yes|", "|no|", "Streaming (segmented) polyphase channelizer object; feeds segments through the one-shot channelize_poly over a retained history. Host and CUDA executors; the streaming object is a stateful driver, not a JIT-fusable expression."
144
+
"make_conv1d_stream", "|yes|", "|yes|", "|no|", "Streaming (segmented) 1D convolution object built on the direct conv1d; host and CUDA executors. The direct method limits the filter to 1024 taps. The streaming object is a stateful driver, not a JIT-fusable expression."
145
+
"make_resample_poly_stream", "|yes|", "|yes|", "|no|", "Streaming (segmented) polyphase resampler object; feeds segments through the one-shot resample_poly over a retained history. Host and CUDA executors; the streaming object is a stateful driver, not a JIT-fusable expression."
143
146
"matmul", "|yes|", "|yes|", "|yes|", "Host support requires the CPU BLAS backend and supported floating or complex types. CUDAJITExecutor support uses cuBLASDx through MathDx for supported runtime shapes, precisions, layouts, and block-size intersections."
144
147
"matrix_norm", "|partial|", "|yes|", "|no|", "Reduction transform; host execution is available but reductions are not generally parallelized across host threads."
145
148
"matvec", "|yes|", "|yes|", "|yes|", "Host support requires the CPU BLAS backend and supported floating or complex types. CUDAJITExecutor support follows cuBLASDx matmul constraints."
0 commit comments