-
Notifications
You must be signed in to change notification settings - Fork 11
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Implement points array backend #154
Conversation
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #154 +/- ##
==========================================
- Coverage 96.39% 96.32% -0.08%
==========================================
Files 18 18
Lines 2583 2637 +54
==========================================
+ Hits 2490 2540 +50
- Misses 93 97 +4 ☔ View full report in Codecov by Sentry. |
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the You can disable this status message by setting the Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
This PR implements point storage using structured numpy arrays (similar to core SLEAP).
This provides a huge speed up when loading large datasets which can easily scale to millions or billions of points. Before this PR, the overhead of creating this many
Point
andPredictedPoint
objects would dominate runtime. By creating fewer numpy arrays with preallocated memory, loading is super fast.This does introduce breaking changes to anything that used the
Point
objects directly, but otherwise, almost all of the API is identical to before.Benchmark
Script
Data
Total: 1,275,000 points
Before (4.7 secs)
Runtime: 4.702
Points per sec: 271161.208
After (1.7 secs)
Runtime: 1.696
Points per sec: 751768.868
Speed-up: 2.77240566x