-
Notifications
You must be signed in to change notification settings - Fork 61
release_notes_v21.12.00
This version would be available through both Conda (https://anaconda.org/rapidsai/cucim) and PyPI package (https://pypi.org/project/cucim/21.12.0/).
- Support Aperio SVS with CPU LZW and jpeg2k decoder (#141) @gigony
- Add NVTX support for performance analysis (#144) @gigony
- Normalize operation (#150) @shekhardw
cuCIM now supports Aperio SVS format with help of OpenJpeg for decoding jpeg2k-compressed data.
Please check this notebook to see how to use the feature.
The detailed data is available here.
Important methods in cuCIM are instrumented with NVTX so can see performance bottlenecks easily with NSight systems.
Tracing can be enabled through config file or environment variable or through API and less than 1% performance overheads in normal execution.
{
"profiler" : { "trace": true }
}
CUCIM_TRACE=1 python
from cucim import CuImage
CuImage.profiler(trace=True)
#or
CuImage.profiler().trace(True)
CuImage.profiler().config
# {'trace': True}
CuImage.profiler().trace()
# True
CuImage.is_trace_enabled # this is simpler method.
# True
nsys profile -f true -t cuda,nvtx,osrt -s cpu -x true --trace-fork-before-exec true -o my_profile `which python` benchmark.py
# can add `--stats true`
Then, execute nsight-sys
to open the profile results (my_profile.qdrep).
With this feature, a bug in cuCIM v21.10.01 (thread contention in Cache) was found and fixed (#145).
CUDA-based normalization operation is added. Normalization supports the following types.
- Simple range based normalization
- Arctangent based normalization
Arctangent-based normalization helps to stretch lower intensity pixels in the image slightly better than range-based normalization. If you look at its graph, there is a huge variation at certain lower intensities, but as intensities become higher, the curve becomes flatter. This helps in isolating regions like lungs (and regions within lungs) more efficiently. There can be separate use cases depending on the modality and the application.
Please check the test cases to see how you can use the operation.
- Load libcufile.so with RTLD_NODELETE flag (#177) @gigony
- Remove rmm/nvcc dependencies to fix cudaErrorUnsupportedPtxVersion error (#175) @gigony
- Do not compile code with nvcc if no CUDA kernel exists (#171) @gigony
- Fix a segmentation fault due to unloaded libcufile (#158) @gigony
- Fix thread contention in Cache (#145) @gigony
- Build with NumPy 1.17 (#148) @jakirkham
- Add Jupyter notebook for SVS Support (#147) @gigony
- Update change log for v21.10.01 (#142) @gigony
- update docs theme to pydata-sphinx-theme (#138) @quasiben
- Update Github links in README.md through script (#132) @gigony
- Fix GDS link in Jupyter notebook (#131) @gigony
- Update notebook for the interoperability with DALI (#127) @gigony
- Update
conda
recipes for Enhanced Compatibility effort by (#164) @ajschmidt8 - Fix Changelog Merge Conflicts for
branch-21.12
(#156) @ajschmidt8 - Add cucim.kit.cumed plugin with skeleton (#129) @gigony
- Update initial cpp unittests (#128) @gigony
- Optimize zoom out implementation with separate padding kernel (#125) @chirayuG-nvidia
- Do not force install linux-64 version of openslide-python (#124) @Ethyling
Project Management
- Roadmap
- Development Process
- Architecture Decision Records
- Issue Tracking
- Release Process
- Related Projects
Contributing
- How to Contribute
- Submitting Bugs and Suggestions
- Source Code Organization
- Coding Guidelines
- Contributor License Agreement
Documentation