-
-
Notifications
You must be signed in to change notification settings - Fork 3
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
Pr 36 #37
Conversation
StringZilla brings hardware-accelerated Look-Up Table transformations that can leverage AVX-512 VBMI instructions on recent Intel Ice Lake CPUs (installed in most DGX servers), as well as older Intel Haswell, and newer Arm CPUs, like AWS Graviton 4. Preliminary benchmarks on new x86 CPUs suggest up to 4x performance improvements compared to the OpenCV baselines.
Reviewer's Guide by SourceryThis pull request implements significant changes to the Albucore project, including refactoring of benchmark code, addition of new benchmarks, updates to existing tests, and modifications to project configuration files. The changes aim to improve performance, add new features, and enhance the overall structure of the project. Architecture diagram for CI/CD pipeline changesgraph TD;
A[CI/CD Pipeline] --> B[Python 3.9]
A --> C[Python 3.10]
A --> D[Python 3.11]
A --> E[Python 3.12]
A --> F[Python 3.13]
B --> G[Checkout]
C --> G
D --> G
E --> G
F --> G
G --> H[Install Dependencies]
H --> I[Run Checks]
I --> J[Run Tests]
Updated class diagram for BenchmarkTestclassDiagram
class BenchmarkTest {
<<abstract>>
- num_channels: int
- img_type: None
+ albucore_transform(img: np.ndarray) np.ndarray
+ opencv_transform(img: np.ndarray) np.ndarray
+ numpy_transform(img: np.ndarray) np.ndarray
+ lut_transform(img: np.ndarray) np.ndarray
+ torchvision_transform(img: torch.Tensor) torch.Tensor
+ __str__() str
}
Updated class diagram for apply_lut functionclassDiagram
class Functions {
+ create_lut_array(dtype: type[np.number], value: float | np.ndarray, operation: Literal["add", "multiply", "power"]) np.ndarray
+ sz_lut(img: np.ndarray, lut: np.ndarray, inplace: bool) np.ndarray
+ apply_lut(img: np.ndarray, value: float | np.ndarray, operation: Literal["add", "multiply", "power"], inplace: bool) np.ndarray
}
File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #37 +/- ##
=======================================
Coverage ? 59.55%
=======================================
Files ? 19
Lines ? 2119
Branches ? 0
=======================================
Hits ? 1262
Misses ? 857
Partials ? 0 ☔ View full report in Codecov by Sentry. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hey @ternaus - I've reviewed your changes - here's some feedback:
Overall Comments:
- Consider archiving or finding an alternative storage solution for the removed benchmark result files to preserve historical data.
Here's what I looked at during the review
- 🟢 General issues: all looks good
- 🟢 Security: all looks good
- 🟡 Testing: 5 issues found
- 🟡 Complexity: 1 issue found
- 🟡 Documentation: 1 issue found
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.
Summary by Sourcery
Enhance the benchmarking framework by introducing a new script for comparing LUT implementations, refactor the BenchmarkTest class for better extensibility, and add support for in-place operations in image processing functions. Update documentation and tests to reflect these changes, and expand CI coverage to include newer Python versions.
New Features:
Enhancements:
Build:
CI:
Documentation:
Tests: