v0.1.5
What's new
New Python version support
The spdl-io packages now include binaries for Python 3.13t, 3.14 and 3.14t on all supported platforms (macOS, Linux aarch64, Linux x86_64 and Windows).
They are now compiled with CUDA 12.8.1.
(spdl-core remains pure Python package without any dependency.)
Pipeline profiling and self-diagnostic mode
Pipeline profiling function
The spdl.pipeline.profile_pipeline function is added.
This function executes each stage separately with different multi-threading concurrency and reports the speed of executions. This helps find how each stage function scales with multi-threading.
Please check out the example for the usage and what you can infer from the profiling result.
Self-diagnostic mode
By setting environment variable SPDL_PIPELINE_DIAGNOSTIC_MODE=1, the Pipeline is built with self-diagnostic mode.
In this mode, internally it calls the profile_pipeline and exit.
This helps profiling the pipeline in production environment without changing the code.
(contributed by @ncorriveau and @mthrok)
Support for sub-pipelines
A new pipeline definition component, spdl.pipeline.defs.MergeConfig and its factory function spdl.pipeline.defs.Merge
have been added.
This allows to merge multiple pipelines and attach downstream stages.
Please check out the example for the usage.
spdl.io.load_wav for loading WAV from memory without copy
The spdl.io.load_wav function is added. This function is specialized for loading WAV audio from memory. It does not make any copy, so it is very fast. Please refer to the benchmark.
spdl.io.iter_tarfile for iterating TAR files
The spdl.io.iter_tarfile function is added. This function can iterate on TAR file in memory or file-like object. It is at least as fast as Python's built-in tarfile module. If the input is bytes type, then it can perform zero-copy parsing. (Proposed by @nicolas-dufour, @npuichigo [discussion])
Updates on failure monitoring mechanism
- You can now overwrite the
max_failuresat each stage. (Proposed by @EthanRosenthal #942)
Pass max_failures to spdl.pipeline.PipelineBuilder.pipe method, or spdl.pipeline.defs.Pipe function.
- Fix the way failed stages are reported (#1006)
When a pipeline stage fails more than it is allowed, the pipeline fails with error message. Previously all the stages were included in the message. Now, only the stages that actually failed are included.
What's Changed
-
zlib is statically linked in Linux/macOS binaries
Previously, thespdl_iopackages required an external installation ofzlibfor Linux and macOS, while it was statically linked in Windows packages. Nowzlibis also statically linked in Linux/macOS, making NumPy the only required dependency ofspdl-io,
New Contributors
- @ncorriveau made their first contribution in #957
Full Changelog: v0.1.4...v0.1.5