cucim icon indicating copy to clipboard operation
cucim copied to clipboard

Add Windows wheel build for x86_64 platform

Open gigony opened this issue 1 year ago • 2 comments

Addresses #763

  • #763

This PR builds the wheel for Windows (only for amd64) if the current arch is x86_64, by updating build_wheel.sh.

Since CI is building the wheel with multiple configurations, it is currently generating the same Windows wheel for both Python 3.10 and 3.11 (resulting in four identical Windows wheels for both cucim-cu11 and cucim-cu12 PyPI registry).

Currently, there is no way to determine if the build is using the latest available Python version from build_wheel.sh. It can be controlled by updating the CI workflow, but we'll need help from the DevOps team.

The Windows wheel size is around 700KB, and hopefully, the redundant wheel files across multiple configurations won't cause any issues when registering them to PyPI from the S3 location (such as this).

gigony avatar Aug 20 '24 22:08 gigony

I can see windows wheels are available here: https://downloads.rapids.ai/ci/cucim/pull-request/765/2ec710e/

gigony avatar Aug 21 '24 15:08 gigony

Thanks @gigony,

I downloaded the Python 3.10 artifacts from the link you provided and installed the cucim_cu12-24.10.0a9-py3-none-win_amd64.whl in a Python 3.10 environment on a Windows 11 system with an RTX A3000 GPU and CUDA Toolkit 12.6 installed.

I used a Python 3.10 conda environment with NumPy 1.26.4 and CuPy 13.3.0 (cupy_cuda12x installed via pip). This was in native Windows 11 (not WSL). I ran the test suites for cucim.core and cucim.skimage and almost all test cases pass.

The only failures were in a small number of tests internal 2D separable filtering kernels that are not part of CuPy. I will make a separate MR to disable using these cuCIM kernels on Windows and always fall back to the default CuPy elementwise kernels on Windows.

grlee77 avatar Aug 26 '24 15:08 grlee77