|
1 | | -# cuCIM 21.12.00 (Date TBD) |
| 1 | +# cuCIM 22.02.00 (2 Feb 2022) |
2 | 2 |
|
3 | | -Please see https://github.com/rapidsai/cucim/releases/tag/v21.12.00a for the latest changes to this development branch. |
| 3 | +## 🚨 Beaking Changes |
| 4 | + |
| 5 | +- Update cucim.skimage API to match scikit-image 0.19 ([#190](https://github.com/rapidsai/cucim/pull/190)) [@glee77](https://github.com/glee77) |
| 6 | + |
| 7 | +## 📖 Documentation |
| 8 | + |
| 9 | +- PyPI v21.12.00 elease ([#182](https://github.com/rapidsai/cucim/pull/182)) [@gigony](https://github.com/gigony) |
| 10 | + |
| 11 | +## 🚀 New Featues |
| 12 | + |
| 13 | +- Allow CuPy 10 ([#195](https://github.com/rapidsai/cucim/pull/195)) [@jakikham](https://github.com/jakikham) |
| 14 | +- Suppot multi-theads and batch, and suppot nvJPEG fo JPEG-compessed images ([#191](https://github.com/rapidsai/cucim/pull/191)) [@gigony](https://github.com/gigony) |
| 15 | +- Update cucim.skimage API to match scikit-image 0.19 ([#190](https://github.com/rapidsai/cucim/pull/190)) [@glee77](https://github.com/glee77) |
| 16 | + |
| 17 | +## 🛠️ Impovements |
| 18 | + |
| 19 | +- Upgade Numpy to 1.19 fo Python 3.9 suppot ([#203](https://github.com/rapidsai/cucim/pull/203)) [@Ethyling](https://github.com/Ethyling) |
| 20 | +- Allow installation with CuPy 10 ([#197](https://github.com/rapidsai/cucim/pull/197)) [@glee77](https://github.com/glee77) |
| 21 | +- Upgade Numpy to 1.18 fo Python 3.9 suppot ([#196](https://github.com/rapidsai/cucim/pull/196)) [@Ethyling](https://github.com/Ethyling) |
| 22 | +- Add missing impots tests ([#183](https://github.com/rapidsai/cucim/pull/183)) [@Ethyling](https://github.com/Ethyling) |
| 23 | + |
| 24 | +# cuCIM 21.12.00 (9 Dec 2021) |
| 25 | + |
| 26 | +## 🚀 New Features |
| 27 | + |
| 28 | +1. Support Aperio SVS with CPU LZW and jpeg2k decoder ([#141](https://github.com/rapidsai/cucim/pull/141)) [[@gigony](https://github.com/gigony)](https://github.com/gigony](https://github.com/gigony)) |
| 29 | +2. Add NVTX support for performance analysis ([#144](https://github.com/rapidsai/cucim/pull/144)) [[@gigony](https://github.com/gigony)](https://github.com/gigony](https://github.com/gigony)) |
| 30 | +3. Normalize operation ([#150](https://github.com/rapidsai/cucim/pull/150)) [[@shekhardw](https://github.com/shekhardw)](https://github.com/shekhardw](https://github.com/shekhardw)) |
| 31 | + |
| 32 | +### 1. Support Aperio SVS (.svs) |
| 33 | + |
| 34 | +cuCIM now supports [Aperio SVS format](https://openslide.org/formats/aperio/) with help of [OpenJpeg](https://www.openjpeg.org/) for decoding jpeg2k-compressed data. |
| 35 | + |
| 36 | +Please check [this notebook](https://nbviewer.org/github/rapidsai/cucim/blob/branch-21.12/notebooks/Supporting_Aperio_SVS_Format.ipynb) to see how to use the feature. |
| 37 | + |
| 38 | +#### Unaligned Case (`per_process`, JPEG-compressed SVS file) |
| 39 | + |
| 40 | + |
| 41 | + |
| 42 | +#### Unaligned Case (`per_process`, JPEG2000 RGB-compressed SVS file) |
| 43 | + |
| 44 | + |
| 45 | + |
| 46 | +#### Unaligned Case (`per_process`, JPEG2000 YCbCr-compressed SVS file) |
| 47 | + |
| 48 | + |
| 49 | + |
| 50 | +The detailed data is available [here](https://docs.google.com/spreadsheets/d/15D1EqNI_E9x_S8i3kJLwBxMcEmwk8SafW0WryMrAm6A/edit#gid=369408723). |
| 51 | + |
| 52 | +### 2. Add NVTX support for performance analysis |
| 53 | + |
| 54 | +Important methods in cuCIM are instrumented with [NVTX](https://docs.nvidia.com/gameworks/index.html#gameworkslibrary/nvtx/nvidia_tools_extension_library_nvtx.htm) so can see performance bottlenecks easily with [NSight systems](https://developer.nvidia.com/nsight-systems). |
| 55 | + |
| 56 | +Tracing can be enabled through config file or environment variable or through API and less than 1% performance overheads in normal execution. |
| 57 | + |
| 58 | +#### Enabling Tracing |
| 59 | +##### Through `.cucim.json` file |
| 60 | + |
| 61 | +```json |
| 62 | +{ |
| 63 | + "profiler" : { "trace": true } |
| 64 | +} |
| 65 | +``` |
| 66 | + |
| 67 | +##### Through Environment variable |
| 68 | + |
| 69 | +```bash |
| 70 | +CUCIM_TRACE=1 python |
| 71 | +``` |
| 72 | + |
| 73 | +##### Through API |
| 74 | + |
| 75 | +```python |
| 76 | +from cucim import CuImage |
| 77 | + |
| 78 | +CuImage.profiler(trace=True) |
| 79 | +#or |
| 80 | +CuImage.profiler().trace(True) |
| 81 | + |
| 82 | +CuImage.profiler().config |
| 83 | +# {'trace': True} |
| 84 | +CuImage.profiler().trace() |
| 85 | +# True |
| 86 | +CuImage.is_trace_enabled # this is simpler method. |
| 87 | +# True |
| 88 | +``` |
| 89 | + |
| 90 | +#### Profiling with NVIDIA Nsight Systems |
| 91 | + |
| 92 | +```bash |
| 93 | +nsys profile -f true -t cuda,nvtx,osrt -s cpu -x true --trace-fork-before-exec true -o my_profile `which python` benchmark.py |
| 94 | +# can add `--stats true` |
| 95 | +``` |
| 96 | + |
| 97 | +Then, execute `nsight-sys` to open the profile results (my_profile.qdrep). |
| 98 | + |
| 99 | + |
| 100 | + |
| 101 | +With this feature, a bug in cuCIM [v21.10.01](https://github.com/rapidsai/cucim/wiki/release_notes_v21.10.01) (thread contention in Cache) was found and fixed ([#145](https://github.com/rapidsai/cucim/pull/145)). |
| 102 | + |
| 103 | +### 3. Normalize operation |
| 104 | + |
| 105 | +CUDA-based normalization operation is added. Normalization supports the following types. |
| 106 | + |
| 107 | +1. Simple range based normalization |
| 108 | +2. Arctangent based normalization |
| 109 | + |
| 110 | +Arctangent-based normalization helps to stretch lower intensity pixels in the image slightly better than range-based normalization. If you look at its [graph](https://mathworld.wolfram.com/InverseTangent.html), 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. |
| 111 | + |
| 112 | +Please check the [test cases](https://github.com/rapidsai/cucim/blob/branch-21.12/python/cucim/src/cucim/core/operations/intensity/tests/test_normalize.py) to see how you can use the operation. |
| 113 | + |
| 114 | + |
| 115 | +## 🐛 Bug Fixes |
| 116 | + |
| 117 | +- Load libcufile.so with RTLD_NODELETE flag ([#177](https://github.com/rapidsai/cucim/pull/177)) [[@gigony](https://github.com/gigony)](https://github.com/gigony](https://github.com/gigony)) |
| 118 | +- Remove rmm/nvcc dependencies to fix cudaErrorUnsupportedPtxVersion error ([#175](https://github.com/rapidsai/cucim/pull/175)) [[@gigony](https://github.com/gigony)](https://github.com/gigony](https://github.com/gigony)) |
| 119 | +- Do not compile code with nvcc if no CUDA kernel exists ([#171](https://github.com/rapidsai/cucim/pull/171)) [[@gigony](https://github.com/gigony)](https://github.com/gigony](https://github.com/gigony)) |
| 120 | +- Fix a segmentation fault due to unloaded libcufile ([#158](https://github.com/rapidsai/cucim/pull/158)) [[@gigony](https://github.com/gigony)](https://github.com/gigony](https://github.com/gigony)) |
| 121 | +- Fix thread contention in Cache ([#145](https://github.com/rapidsai/cucim/pull/145)) [[@gigony](https://github.com/gigony)](https://github.com/gigony](https://github.com/gigony)) |
| 122 | +- Build with NumPy 1.17 ([#148](https://github.com/rapidsai/cucim/pull/148)) [[@jakirkham](https://github.com/jakirkham)](https://github.com/jakirkham](https://github.com/jakirkham)) |
| 123 | + |
| 124 | +## 📖 Documentation |
| 125 | + |
| 126 | +- Add Jupyter notebook for SVS Support ([#147](https://github.com/rapidsai/cucim/pull/147)) [[@gigony](https://github.com/gigony)](https://github.com/gigony](https://github.com/gigony)) |
| 127 | +- Update change log for v21.10.01 ([#142](https://github.com/rapidsai/cucim/pull/142)) [[@gigony](https://github.com/gigony)](https://github.com/gigony](https://github.com/gigony)) |
| 128 | +- update docs theme to pydata-sphinx-theme ([#138](https://github.com/rapidsai/cucim/pull/138)) [[@quasiben](https://github.com/quasiben)](https://github.com/quasiben](https://github.com/quasiben)) |
| 129 | +- Update Github links in README.md through script ([#132](https://github.com/rapidsai/cucim/pull/132)) [[@gigony](https://github.com/gigony)](https://github.com/gigony](https://github.com/gigony)) |
| 130 | +- Fix GDS link in Jupyter notebook ([#131](https://github.com/rapidsai/cucim/pull/131)) [[@gigony](https://github.com/gigony)](https://github.com/gigony](https://github.com/gigony)) |
| 131 | +- Update notebook for the interoperability with DALI ([#127](https://github.com/rapidsai/cucim/pull/127)) [[@gigony](https://github.com/gigony)](https://github.com/gigony](https://github.com/gigony)) |
| 132 | + |
| 133 | + |
| 134 | + |
| 135 | +## 🛠️ Improvements |
| 136 | + |
| 137 | +- Update `conda` recipes for Enhanced Compatibility effort by ([#164](https://github.com/rapidsai/cucim/pull/164)) [[@ajschmidt8](https://github.com/ajschmidt8)](https://github.com/ajschmidt8](https://github.com/ajschmidt8)) |
| 138 | +- Fix Changelog Merge Conflicts for `branch-21.12` ([#156](https://github.com/rapidsai/cucim/pull/156)) [[@ajschmidt8](https://github.com/ajschmidt8)](https://github.com/ajschmidt8](https://github.com/ajschmidt8)) |
| 139 | +- Add cucim.kit.cumed plugin with skeleton ([#129](https://github.com/rapidsai/cucim/pull/129)) [[@gigony](https://github.com/gigony)](https://github.com/gigony](https://github.com/gigony)) |
| 140 | +- Update initial cpp unittests ([#128](https://github.com/rapidsai/cucim/pull/128)) [[@gigony](https://github.com/gigony)](https://github.com/gigony](https://github.com/gigony)) |
| 141 | +- Optimize zoom out implementation with separate padding kernel ([#125](https://github.com/rapidsai/cucim/pull/125)) [[@chirayuG-nvidia](https://github.com/chirayuG-nvidia)](https://github.com/chirayuG-nvidia](https://github.com/chirayuG-nvidia)) |
| 142 | +- Do not force install linux-64 version of openslide-python ([#124](https://github.com/rapidsai/cucim/pull/124)) [[@Ethyling](https://github.com/Ethyling)](https://github.com/Ethyling](https://github.com/Ethyling)) |
4 | 143 |
|
5 | 144 | # cuCIM 21.10.00 (7 Oct 2021) |
6 | 145 |
|
|
0 commit comments