Releases: aestream/aestream
v0.6.4 Improved camera support and memory leak fix
This minor release adds some flags to help detect and work with Porphesee cameras and fixes a memory leak when working with CUDA tensors (thanks to @Huizerd!)
What's Changed
- Fixed METAVISION flag by @Jegp in #101
- Fixed prophesee flag by @Jegp in #102
- nb::any is removed in nanobind v2.0.0 by @Huizerd in #106
- Addressed memory leak on CUDA devices by @Jegp in #108
New Contributors
Full Changelog: v0.6.3...v0.6.4
Prophesee support in Python and CUDA fixes
What's Changed
Full Changelog: v0.6.2...v0.6.3
Support for Jax
This release vastly simplifies the code structure (thanks @cameron-git!), switches to scikit-build-core and simplifies the Python interface code.
What's Changed
Full Changelog: v0.6...v0.6.2
ZMQ, EVT3 support, event viewer, and bug fixes
This release marks the addition of the SynSense Speck chip (via ZMQ) and the EVT3 Metavision file format.
We also implemented a rudimentary event viewer, requiring SDL2 as dependency.
Additionally, we found and resolved a memory leak when streaming tensors to the GPU.
What's Changed
- Fix broken link to libcaer. by @emijan-kth in #65
- norse/aestream -> aestream/aestream by @Jegp in #68
- Fixed buffer overflow for large aedat4 files by @Jegp in #71
- Re-introduced python support for inivation cameras by @Jegp in #72
- Added CSV reading by @Jegp in #74
- GeNN support by @neworderofjamie in #75
- Fixed segfault issue when closing camera and added dev docs by @Jegp in #76
- late-night capocaccia mac ports by @Jegp in #80
- Feature leak by @Jegp in #81
- More refined GeNN by @neworderofjamie in #77
- Feature evt3 by @Jegp in #83
- Feature viewer by @Jegp in #82
- Feature logo by @Jegp in #84
- Add Zmq support and a speck subcommand in CLI and Python by @Jegp in #86
New Contributors
- @neworderofjamie made their first contribution in #75
Full Changelog: v0.5...v0.6
Support for DAT files and native GPU
The most significant change in this release is the migration to the DLPack in-memory structure via nanobind. Briefly speaking, this means cleaner integration with numpy and native integration with device tensors, via accelerators such as PyTorch or Jax. In practice, we can now remove heavy dependencies because we hand off event data solely based on their memory pointers, without requiring large library APIs.
This release took a while, but it's worth the effort, and there are many future enhancements in the works. For instance, support for Inivation and Prophesee cameras, support for additional file formats, and performance improvements. 🚀
A big thank you to @stevenabreu7 for helping with M1 support, @cameron-git for efforts around documentation, API design, and reviews, and @cantordust for participating in API design, reviews, and lively discussions about C++ shenaningans ❤️
What's Changed
- Package restructure by @Jegp in #46
- Support for both numpy and pytorch by @Jegp in #52
- Documentation by @Jegp in #55
- add M1 support by @stevenabreu7 in #56
- Re-introduced file reading with nanobind primitives by @Jegp in #57
- Re-introduced AEDAT4 and restructured file reading by @Jegp in #59
Full Changelog: v0.4.0...v0.5
Performance and robustness improvements
This release contributes performance improvements for the GPU accelerated tensor code and robust continuous integration builds, so we can ensure that AEStream works correctly across multiple versions of OSs and Python
Specifically, we have
- Split CPU and GPU builds, which allows us to test them independently
- Migrated to scikit-build to support matrix builds in continuous integration
- Added the
aestream
binary onpip install
, so users can avoid cmake'ing the project from source - Performance improvements for assigning event-data to CUDA tensors
Device discovery and CUDA acceleration
This release features device-agnostic discovery, which removes the need for USB hardware addresses in the Python interface. Devices can now directly be opened by USBInput((X,Y))
instead of USBInput(hw_bus, hw_address, (X, Y))
.
Additionally, CUDA code was added to accelerate GPU-related code while fixing a memory-related bug in recent versions of CUDA/PyTorch.
Finally, we added smaller fixes related to Prophesee cameras, GitHub workflows, and documentation.
AEStream v0.2.0: Aedat4 output support and PyPi wheels
This release adds support to dump .aedat4
files from any input source as well as a number of smaller bugfixes.
Behind the scenes, we have also added continuous integration testing and wheel building, which should make Python installations of aestream via pip much faster.
What's Changed
- Added install target by @Jegp in #18
- Feature aedat output by @Jegp in #19
- Feature cpp improvements by @Jegp in #30
- Feature manylinux by @Jegp in #31
- Feature cpp nix by @Jegp in #34
Full Changelog: v0.1.0...v0.2.0
AEStream v0.1.0
First public release of aestream with both C++ and Python interfaces.
This release introduces support for
- Python: USB (Inivation cameras) and UDP (network via the SPIF protocol) inputs
- C++:
- Inputs: USB (Inivation and Prophesee cameras), files (
.aedat
and.aedat4
) - Outputs: Stdout and UDP (network via the SPIF protocol)
- Inputs: USB (Inivation and Prophesee cameras), files (