Closed otakarkuchar closed 3 years ago
You should be able to install via PIP and it's possible it works with Windows. If you run into trouble you could try running RAPIDS on WSL, which may provide an alternative path forward . We just released 21.08 on pypi yesterday
You should be able to install via PIP and it's possible it works with Windows
That sounds fantastic! However, when I run pip, it says:
C:\structure\code\pyclesperanto_prototype>pip install cucim==21.08
ERROR: Could not find a version that satisfies the requirement cucim==21.08 (from versions: none)
ERROR: No matching distribution found for cucim==21.08
Any ideas how to debug this?
Btw. WSL is no way forward in my usecase unfortunately...
On PyPi, I believe the version is 21.8.1
. Running pip install cucim
should be the latest version
On PyPi, I believe the version is
21.8.1
. Runningpip install cucim
should be the latest version
When I did: pip install PyPi Successfully installed PyPi-2.1
pip install cucim ERROR: Could not find a version that satisfies the requirement cucim (from versions: none) ERROR: No matching distribution found for cucim
Can you please describe the installation procedure steps? thank you so much
Hi @otakarkuchar,
Since the image loader part(cucim.clara
module) of cuCIM supports (and assumed) Linux environment only, the current PyPI package (wheel[.whl] file) doesn't support Windows (although it supports WSL) for now.
Could you tell us your use case with cuCIM? If you only needs image processing API based on CuPy (cucim.skimage
module which is pure python code), I think it is possible that we may be able to release a PyPI package for Windows, having only cucim.skimage
module in the next release.
Hi @otakarkuchar,
Since the image loader part(
cucim.clara
module) of cuCIM supports (and assumed) Linux environment only, the current PyPI package (wheel[.whl] file) doesn't support Windows (although it supports WSL) for now.Could you tell us your use case with cuCIM? If you only needs image processing API based on CuPy (
cucim.skimage
module which is pure python code), I think it is possible that we may be able to release a PyPI package for Windows, having onlycucim.skimage
module in the next release.
Yes, my case is only image processing on 3D datasets. If you do that, it will be great! I am looking forward to try cucim.skimage library! ... Thank you guys!
I think it is possible that we may be able to release a PyPI package for Windows, having only
cucim.skimage
module in the next release.
Oh that would be great indeed! ❤️
Although not officially documented, as long as you have CuPy >= 9.0 installed you should be able to install cucim.skimage
standalone (without the need to compile any code) as described here: https://github.com/rapidsai/cucim/issues/64#issuecomment-878535597
Although not officially documented, as long as you have CuPy >= 9.0 installed you should be able to install
cucim.skimage
standalone (without the need to compile any code) as described here: #64 (comment)
That's great! Are there any plans for making an independent package out of that? Would be great to pip install cucim-scikit-image
. ;-)
Are there any plans for making an independent package out of that?
I will try to discuss with @gigony and the team next week about what potential options for this might be across pip and conda installs. I suppose we could make a cucim_skimage
conda package that installed as described in my prior comment as long as we mark that package in conflict with the main cucim
one so that users can only install one or the other, but not both. A second option is splitting the cucim
package into separate cucim.clara
and cucim.skimage
namespace packages, but I would like to avoid that if possible.
Hi @otakarkuchar and @haesleinhuepf ,
The team had a discussion yesterday regarding this issue (providing a PyPI windows package).
pip install -e "git+https://github.com/rapidsai/cucim.git@<tag(version)>#egg=cucim&subdirectory=python/cucim" scipy scikit-image
pip install -e "git+https://github.com/rapidsai/cucim.git@v21.08.01#egg=cucim&subdirectory=python/cucim" scipy scikit-image
cuCIM is part of RAPIDS project and all RAPIDS projects (cuDF, cuSignal, cuGraph, cuML, etc) except cuCIM are focusing on the Linux platform only and dropped the support for PyPI since RAPIDS v0.7.
cuCIM is exceptionally providing a Linux PyPI package separately by NVIDIA Clara team to support MONAI and Clara Train use case.
Since all RAPIDS projects depend on GPU CI to build and release a conda package, we don't have a good infra to build/test a conda package on Windows platform (We had a Windows-specific bug before ).
For this reason, we have decided to focus on the Linux Platform and implementing other requested features for now. Instead, we would like to give you a workaround solution to install cuCIM on Windows.
After cupy is installed (via conda or pip: See https://docs.cupy.dev/en/stable/install.html), please execute the following command (double-quote("
) is necessary on Windows):
pip install -e "git+https://github.com/rapidsai/cucim.git@v21.08.01#egg=cucim&subdirectory=python/cucim" scipy scikit-image
In above command, v21.08.01
is a tag name available here.
I have tested it on my personal machine and it worked:
conda create -n cucim -c conda-forge python=3.8 cudatoolkit=11.0 cupy cudnn cutensor
conda activate cucim
pip install -e "git+https://github.com/rapidsai/cucim.git@v21.08.01#egg=cucim&subdirectory=python/cucim" scipy scikit-image
You can also install cuCIM thorough requirements.txt
file
=requirement.txt=
-e "git+https://github.com/rapidsai/cucim.git@v21.08.01#egg=cucim&subdirectory=python/cucim"
scipy
scikit-image
= In terminal =
pip install -r requirements.txt
We are sorry that we couldn't provide PyPI package for Windows. we hope this solution resolves your use cases.
Thanks!
Thanks for your feedback @gigony !
We are sorry that we couldn't provide PyPI package for Windows. we hope this solution resolves your use cases.
I was hoping to make cuCIM available to end-users without coding skills via the napari platform (see also). But I see the point. I also struggle with multi-platform build / CI infrastructure when using GPUs. If you ever come to the point where you want to reach more end-users, e.g. using Windows, please get in touch! :-)
@haesleinhuepf, indeed it would be very nice to provide access to cuCIM functions through napari. This can potentially reach a wide audience of users who would not otherwise use the package directly.
Ideally, longer term, scikit-image itself will be able to dispatch to a cuCIM backend similar to how scipy.fft
can already be configured to use CuPy as a backend. SciPy is in the process of extending that approach to the ndimage
, linalg
and special
modules as well (ndimage has been completed and is under review).
One issue with the initial uarray
-based FFT backends was that users had to explicitly set a global backend or use a context manager. However, we recently changed the default global backend to be tried last. That way a user can call register_backend
once and the registered backend would always be tried first (see example at the top of that issue).
I have been testing a similar backend approach for skimage.filters
with intention to eventually have cuCIM
as a backend option (no PR open yet for this).
This is getting a ways off topic for the issue here, but I am happy to discuss more either in another issue (or possibly at https://skimage.zulipchat.com or in a community call with the scikit-image team).
@gigony
Instruction to install cuCIM on Windows After cupy is installed
then why need cuCIM if CuPy should be installed?
Hello @iperov
Thanks for the question!
cuCIM's scikit-image API (image processing module based on CuPy) comes from @grlee77 (co-author of cuCIM)'s project named cupyimg
which extends CuPy with additional functions for image/signal processing.
With cuCIM, you can use other image processing algorithms that are not in CuPy's cupyx.scipy.ndimage
.
Since pip install cucim
would build&install from the source which takes a long time, CuPy(https://cupy.dev/) provides pre-built packages for each CUDA Toolkit version(such as cupy-cuda110
).
In addition, since users may want to use only data loader part (cucim.CuImage
or cucim.clara
which doesn't require CuPy) or just clara.skimage
module, we made cupy
not a mandatory package to install (please see setup.py).
When import cucim
is executed, it first tries to import cupy
and import cupy.Image
(requires CUDA >= 11.0) optionally (please see __init__.py
.
Please let me know if you have other questions. Thank you!
I don't like such a Game of Dependencies. I want to see cuCIM lib that will implement all cupy + gpu image processing only with cuda lib, without dependencies. Notify me when it happens.
Thanks @iperov for the feedback! We have a plan to implement some image processing algorithms in C++ that don't depend on CuPy but implementing all the image processing algorithms are not feasible and would take much time to implement. For this reason, we are also thinking about providing existing GPU-accelerated image processing implementations from 3rdparty libraries as a plugin. Arrayfire is one of the candidates. Please take a look at the library (it has a python wrapper, instruction) and it would be great if you could share your experience with it in terms of usability/functionality that is missing. Thank you!
I want to see cuCIM lib that will implement all cupy + gpu image processing only with cuda lib, without dependencies.
As you are likely aware, if you are working with 2D images, there is NVIDIA's NPP. It is a free CUDA library, but is not open source.
Closing this issue. Please feel free to reopen if you have any other questions. Thank you!
I have tried install in Conda prompt: pip install cucim ERROR: Could not find a version that satisfies the requirement cucim (from versions: none) ERROR: No matching distribution found for cucim
Is it available for OS Win or what I have made done wrong? Thank you for asist