awkward
numba-dpex
awkward | numba-dpex | |
---|---|---|
4 | 1 | |
793 | 69 | |
0.6% | - | |
9.6 | 9.8 | |
6 days ago | 1 day ago | |
Python | Python | |
BSD 3-clause "New" or "Revised" License | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
awkward
-
Efficient Jagged Arrays
there's a whole ecosystem in Python originally developed for high energy physics data processing: https://github.com/scikit-hep/awkward all because Numpy demands square N-dimensional array
Same technique used everywhere, here's a simple Julia pkg for the same thing: https://github.com/JuliaArrays/ArraysOfArrays.jl/blob/3a6f5b...
But Julia at least has the decency to just support ragged Vector{Vector} out of the box, and it's not that slow
-
The hand-picked selection of the best Python libraries released in 2021
Awkward Array.
-
Awkward: Nested, jagged, differentiable, mixed type, GPU-enabled, JIT'd NumPy
Numba's @vectorize decorator (https://numba.pydata.org/numba-doc/latest/user/vectorize.htm...) makes a ufunc, and Awkward Array knows how to implicitly map ufuncs. (It is necessary to specify the signature in the @vectorize argument; otherwise, it won't be a true ufunc and Awkward won't recognize it.)
When Numba's JIT encounters a ctypes function, it goes to the ABI source and inserts a function pointer in the LLVM IR that it's generating. Unfortunately, that means that there is function-pointer indirection on each call, and whether that matters depends on how long-running the function is. If you mean that your assembly function is 0.1 ns per call or something, then yes, that function-pointer indirection is going to be the bottleneck. If you mean that your assembly function is 1 μs per call and that's fast, given what it does, then I think it would be alright.
If you need to remove the function-pointer indirection and still run on Awkward Arrays, there are other things we can do, but they're more involved. Ping me in a GitHub Issue or Discussion on https://github.com/scikit-hep/awkward-1.0
numba-dpex
-
Intel Extension for Scikit-Learn
> Intel are focused on data-parallel C++ for delivering high performance, rightly or wrongly.
They also invest efforts in making it possible to write high performance kernels in Python using an extension to the numba Python compiler:
https://github.com/IntelPython/numba-dppy
What are some alternatives?
sqlmodel - SQL databases in Python, designed for simplicity, compatibility, and robustness.
pycrown - PyCrown - Fast raster-based individual tree segmentation for LiDAR data
DearPyGui - Dear PyGui: A fast and powerful Graphical User Interface Toolkit for Python with minimal dependencies
cuml - cuML - RAPIDS Machine Learning Library
uproot5 - ROOT I/O in pure Python and NumPy.
scikit-learn - scikit-learn: machine learning in Python
django-ninja - 💨 Fast, Async-ready, Openapi, type hints based framework for building APIs
stumpy - STUMPY is a powerful and scalable Python library for modern time series analysis
skweak - skweak: A software toolkit for weak supervision applied to NLP tasks
scikit-learn-intelex - Intel(R) Extension for Scikit-learn is a seamless way to speed up your Scikit-learn application
AugLy - A data augmentations library for audio, image, text, and video.
CyberRadio - 📻 An SDR Based FM/AM Radio For Desktop. Accelerated with #cuSignal and Numba.