Recent Releases of 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 https://github.com/aestream/aestream/pull/101
  • Fixed prophesee flag by @Jegp in https://github.com/aestream/aestream/pull/102
  • nb::any is removed in nanobind v2.0.0 by @Huizerd in https://github.com/aestream/aestream/pull/106
  • Addressed memory leak on CUDA devices by @Jegp in https://github.com/aestream/aestream/pull/108

New Contributors

  • @Huizerd made their first contribution in https://github.com/aestream/aestream/pull/106

Full Changelog: https://github.com/aestream/aestream/compare/v0.6.3...v0.6.4

- C++
Published by Jegp about 2 years ago

aestream - Prophesee support in Python and CUDA fixes

What's Changed

  • Added Prophesee support for Python by @Jegp in https://github.com/aestream/aestream/pull/98
  • Fixed CUDA bug by @Jegp in https://github.com/aestream/aestream/pull/100

Full Changelog: https://github.com/aestream/aestream/compare/v0.6.2...v0.6.3

- C++
Published by Jegp over 2 years ago

aestream - 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

  • Scikit build core by @Jegp in https://github.com/aestream/aestream/pull/89
  • Reorganized Python interface and added Jax by @Jegp in https://github.com/aestream/aestream/pull/96

Full Changelog: https://github.com/aestream/aestream/compare/v0.6...v0.6.2

- C++
Published by Jegp over 2 years ago

aestream - 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 https://github.com/aestream/aestream/pull/65
  • norse/aestream -> aestream/aestream by @Jegp in https://github.com/aestream/aestream/pull/68
  • Fixed buffer overflow for large aedat4 files by @Jegp in https://github.com/aestream/aestream/pull/71
  • Re-introduced python support for inivation cameras by @Jegp in https://github.com/aestream/aestream/pull/72
  • Added CSV reading by @Jegp in https://github.com/aestream/aestream/pull/74
  • GeNN support by @neworderofjamie in https://github.com/aestream/aestream/pull/75
  • Fixed segfault issue when closing camera and added dev docs by @Jegp in https://github.com/aestream/aestream/pull/76
  • late-night capocaccia mac ports by @Jegp in https://github.com/aestream/aestream/pull/80
  • Feature leak by @Jegp in https://github.com/aestream/aestream/pull/81
  • More refined GeNN by @neworderofjamie in https://github.com/aestream/aestream/pull/77
  • Feature evt3 by @Jegp in https://github.com/aestream/aestream/pull/83
  • Feature viewer by @Jegp in https://github.com/aestream/aestream/pull/82
  • Feature logo by @Jegp in https://github.com/aestream/aestream/pull/84
  • Add Zmq support and a speck subcommand in CLI and Python by @Jegp in https://github.com/aestream/aestream/pull/86

New Contributors

  • @neworderofjamie made their first contribution in https://github.com/aestream/aestream/pull/75

Full Changelog: https://github.com/aestream/aestream/compare/v0.5...v0.6

- C++
Published by Jegp almost 3 years ago

aestream - 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. :rocket:

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 :heart:

What's Changed

  • Package restructure by @Jegp in https://github.com/norse/aestream/pull/46
  • Support for both numpy and pytorch by @Jegp in https://github.com/norse/aestream/pull/52
  • Documentation by @Jegp in https://github.com/norse/aestream/pull/55
  • add M1 support by @stevenabreu7 in https://github.com/norse/aestream/pull/56
  • Re-introduced file reading with nanobind primitives by @Jegp in https://github.com/norse/aestream/pull/57
  • Re-introduced AEDAT4 and restructured file reading by @Jegp in https://github.com/norse/aestream/pull/59

Full Changelog: https://github.com/norse/aestream/compare/v0.4.0...v0.5

- C++
Published by Jegp over 3 years ago

aestream - 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 on pip install, so users can avoid cmake'ing the project from source * Performance improvements for assigning event-data to CUDA tensors

- C++
Published by Jegp over 3 years ago

aestream - 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.

- C++
Published by Jegp almost 4 years ago

aestream - 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 https://github.com/norse/aestream/pull/18
  • Feature aedat output by @Jegp in https://github.com/norse/aestream/pull/19
  • Feature cpp improvements by @Jegp in https://github.com/norse/aestream/pull/30
  • Feature manylinux by @Jegp in https://github.com/norse/aestream/pull/31
  • Feature cpp nix by @Jegp in https://github.com/norse/aestream/pull/34

Full Changelog: https://github.com/norse/aestream/compare/v0.1.0...v0.2.0

- C++
Published by Jegp almost 4 years ago

aestream - 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)

- C++
Published by Jegp over 4 years ago