-
Notifications
You must be signed in to change notification settings - Fork 5
Description
Summary
Currently, zlib-accel provides hardware acceleration through QAT and IAA with fallback to standard zlib software implementation. This creates a significant performance gap when hardware acceleration is unavailable. We propose integrating Intel ISA-L (Intelligent Storage Acceleration Library) as an intermediate performance layer to optimize the software fallback path.
Background
Zlib-accel's current fallback hierarchy:
- Hardware acceleration (QAT/IAA) - Best performance
- Software zlib - Standard performance with significant gap from hardware
The performance drop when falling back to software zlib can be substantial, potentially negating the benefits of using zlib-accel in mixed workload scenarios or systems without available hardware accelerators.
Proposed Solution
Integrate ISA-L's optimized compression implementation as an intermediate fallback layer:
- Hardware acceleration (QAT/IAA) - Best performance
- ISA-L optimized software - Enhanced performance using SIMD instructions
- Standard zlib - Compatibility fallback
Benefits
- Reduced performance gap: ISA-L can provide significant performance improvement over standard zlib
- Broader acceleration coverage: Systems without QAT/IAA still benefit from optimized compression
- Consistency: Better performance consistency across different hardware configurations
- Maintained compatibility: ISA-L maintains zlib API compatibility
Implementation Considerations
- Fallback logic: Modify the current fallback mechanism to include ISA-L as intermediate layer
- Configuration options: Allow users to configure fallback preferences
- Performance profiling: Benchmark ISA-L performance across different workloads
Questions for Discussion
- Should ISA-L integration be optional (compile-time flag) or always included?
- Should there be configuration options to skip ISA-L and fall directly to standard zlib?
References
Expected Impact
This enhancement would make zlib-accel more attractive for deployment in heterogeneous environments and provide consistent performance benefits even when hardware acceleration is unavailable, ultimately improving the overall value proposition of the library.