Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CUDA 12 + Windows support #119

Closed

Conversation

RaulPPelaez
Copy link
Contributor

@RaulPPelaez RaulPPelaez commented Nov 17, 2023

Checklist

  • Used a personal fork of the feedstock to propose changes
  • Bumped the build number (if the version is unchanged)
  • Reset the build number to 0 (if the version changed)
  • Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
  • Ensured the license file is being packaged.

The transition to CUDA 12 SDK includes new packages for all CUDA libraries and
build tools. Notably, the cudatoolkit package no longer exists, and packages
should depend directly on the specific CUDA libraries (libcublas, libcusolver,
etc) as needed. For an in-depth overview of the changes and to report problems
[see this issue]( conda-forge/conda-forge.github.io#1963 ).
Please feel free to raise any issues encountered there. Thank you! 🙏
@conda-forge-webservices
Copy link

Hi! This is the friendly automated conda-forge-linting service.

I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

@RaulPPelaez
Copy link
Contributor Author

Windows builds still fail by trying to install cuda-compat:

WARNING: failed to get install actions, retrying.  exception was: Unsatisfiable dependencies for platform win-64: {MatchSpec("cuda-compat")}
Encountered problems while solving:
  - nothing provides requested cuda-compat

However, if I am using this command right, nothing depends on this package:

$ mamba repoquery whoneeds --recursive  -t -c conda-forge cuda-compat

Executing the query cuda-compat

conda-forge/linux-64                                        Using cache
conda-forge/noarch                                          Using cache


cuda-compat
  └─ cuda-compat[12.0.0]

Not sure who is trying to install this one.

@jakirkham
Copy link
Member

Thanks Raul! 🙏

Yeah cuda-compat is Linux only. Think we can just add a selector to restrict when it is used

@RaulPPelaez
Copy link
Contributor Author

RaulPPelaez commented Nov 17, 2023

But cuda-compat is not explicitly listed as a dependency in the meta.yaml file
EDIT: Oh wow it actually is, dont know how I missed it -.-

@jakirkham
Copy link
Member

jakirkham commented Nov 17, 2023

Think it is coming up in the test/requires (a bit buried in there)

Also seeing cuda-driver-dev, which is Linux only as well

Guessing we can change all the OSes in those selectors to linux, which may make a bit clearer

- cuda-compat # [(linux64 or ppc64le or win) and (cuda_compiler_version or "").startswith("12")]
{% if with_test_suite == 'true' %}

@RaulPPelaez
Copy link
Contributor Author

Success!

recipe/meta.yaml Outdated
Comment on lines 72 to 74
- libcufft-dev # [linux64 or ppc64le or win]
- cuda-profiler-api # [linux64 or ppc64le or win]
- cuda-nvrtc-dev # [linux64 or ppc64le or win]
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would suggest just using linux here

Suggested change
- libcufft-dev # [linux64 or ppc64le or win]
- cuda-profiler-api # [linux64 or ppc64le or win]
- cuda-nvrtc-dev # [linux64 or ppc64le or win]
- libcufft-dev # [linux or win]
- cuda-profiler-api # [linux or win]
- cuda-nvrtc-dev # [linux or win]

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This breaks aarch64 builds.

[ 90%] Built target OpenMMPME
[ 90%] Building CXX object plugins/cudacompiler/CMakeFiles/OpenMMCudaCompiler.dir/src/CudaCompilerKernelFactory.cpp.o
In file included from /home/conda/feedstock_root/build_artifacts/openmm_1700463049050/work/platforms/cuda/include/CudaKernels.h:31,
                 from /home/conda/feedstock_root/build_artifacts/openmm_1700463049050/work/plugins/cudacompiler/src/CudaCompilerKernels.h:36,
                 from /home/conda/feedstock_root/build_artifacts/openmm_1700463049050/work/plugins/cudacompiler/src/CudaCompilerKernelFactory.cpp:28:
/home/conda/feedstock_root/build_artifacts/openmm_1700463049050/work/platforms/cuda/include/CudaArray.h:33:10: fatal error: cuda.h: No such file or directory
   33 | #include <cuda.h>
      |          ^~~~~~~~

Weird because CUDA packages seem to be there:

    cuda-driver-dev:                  12.0.107-hac28a21_6            conda-forge
    cuda-driver-dev_linux-aarch64:    12.0.107-hac28a21_6            conda-forge

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes because the same change is needed above

@jakirkham
Copy link
Member

Thanks Raul! 🙏

Had a minor suggestion above to simplify the selectors

RaulPPelaez and others added 2 commits November 20, 2023 07:31
Co-authored-by: jakirkham <jakirkham@gmail.com>
@RaulPPelaez
Copy link
Contributor Author

I think the OSX build is an isolated error that will be solved by rerunning:

+ mamba install --update-specs --quiet --yes --channel conda-forge --strict-channel-priority pip mamba conda-build conda-forge-ci-setup=4
Download error (28) Timeout was reached [https://conda.anaconda.org/conda-forge/osx-64/xorg-libxdmcp-1.1.3-h35c211d_0.tar.bz2]
Operation too slow. Less than 30 bytes/sec transferred the last 60 seconds

@jakirkham
Copy link
Member

@conda-forge-admin , please re-render

1 similar comment
@jakirkham
Copy link
Member

@conda-forge-admin , please re-render

@conda-forge-webservices
Copy link

Hi! This is the friendly automated conda-forge-linting service.

I was trying to look for recipes to lint for you, but it appears we have a merge conflict.
Please try to merge or rebase with the base branch to resolve this conflict.

Please ping the 'conda-forge/core' team (using the @ notation in a comment) if you believe this is a bug.

@jakirkham
Copy link
Member

Thanks Raul! 🙏

It looks like the update to OpenMM 8.1.0 ( #120 ) introduced conflicts

Could you please take a look? 🙂

@RaulPPelaez
Copy link
Contributor Author

I will close this and reopen

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants