CIL icon indicating copy to clipboard operation
CIL copied to clipboard

CI: windows conda build

Open casperdcl opened this issue 1 year ago • 6 comments

  • [x] fix missing conda deps @gfardell
    • [x] ccpi-regulariser=24.0.1
    • [x] tigre=2.6
    • [ ] astra (or skip the tests?)
  • [x] conda build windows matrix @casperdcl
    • [x] fix msvc-python-cmake interoperability
      • [x] revert hardcoded generator & toolset #1928
  • [x] drop unused LIBRARY_LIB & LIBRARY_INC @casperdcl
  • [x] drop recipe/conda_build_config.yaml in favour of CI matrix @casperdcl
    • [ ] revert debug commit @casperdcl

links

  • follow-up to #1914
  • part of #1598
  • related to #1880
  • related to #1324

casperdcl avatar Aug 30 '24 10:08 casperdcl

It seems to fail import astra but it has installed it.

https://github.com/TomographicImaging/CIL/actions/runs/11062036734/job/30735765603?pr=1918#step:5:863

paskino avatar Sep 27 '24 07:09 paskino

It looks like libastra might be the 11.2 version - I have no idea why, but we want the cuda 11.8 version. Not sure if that's the issue though. libastra: 2.1.0-cuda11.2hb8489e9_0 conda-forge

my local environent has: libastra 2.1.0 cuda11.8hb8fb34d_111 conda-forge

gfardell avatar Sep 27 '24 09:09 gfardell

Looks like there is still the error on astra

File "C:\Miniconda\envs\test\conda-bld\cil_1746634437096\_test_env\Lib\site-packages\astra\matlab.py", line 38, in <module>
    from . import astra_c
ImportError: DLL load failed while importing astra_c: The specified module could not be found.

The CI installed version is

astra-toolbox:                        2.1.0-cudapy312h0f47501_105      conda-forge
libastra:                             2.1.0-cuda11.2hb8489e9_0         conda-forge

In my local working environment I have

astra-toolbox             2.1.0           cudapy312h0f47501_105    conda-forge
libastra                  2.1.0           cuda11.8hb8fb34d_111    conda-forge

@gfardell pointed out the different cuda sdk linked on libastra. However, this could be a red herring, because the system says it's not got an NVIDIA GPU:

----------------------------------------------------------------------
TEST SYSTEM CONFIGURATION
CIL version:  24.3.0.dev47+g66da58b1
{'has_astra': True,
 'has_ccpi_regularisation': True,
 'has_cvxpy': False,
 'has_ipp': True,
 'has_matplotlib': True,
 'has_numba': True,
 'has_nvidia': False,
 'has_tigre': True,
 'has_tomophantom': False,
 'has_zenodo_get': True}
----------------------------------------------------------------------

Also, did we not understand that we should use the astra-toolbox channel instead of conda-forge?

paskino avatar May 08 '25 06:05 paskino

Really should be installing cpu-only packages. GPU versions should be skipped on GitHub's runners.

casperdcl avatar May 08 '25 07:05 casperdcl

Maybe, but the point is not that it has installed the gpu version, rather that it can't find the library, no?

For sure, the ASTRA GPU package can be installed on a system without GPU and the import above should not fail.

paskino avatar May 08 '25 07:05 paskino

to avoid doubling the CI usage on master, we could just do one windows build per python version.

Yep, i think that's a good plan. On a tag I guess we can set the numpy versions we build and test with to cover the range at least?

On a push to master potentially just one python version is sufficient? The full functionality is tested by the linux tests, and it gives us one nightly to use if we need.

On a any branch push I'd be tempted to drop to one linux version only, cpu and gpu? But maybe this is a bigger discussion.

gfardell avatar Aug 13 '25 07:08 gfardell