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

New CMake CUDA tools, better cross platform support #94

Open
wants to merge 61 commits into
base: master
Choose a base branch
from

Conversation

ironictoo
Copy link

The CUDA support in CMake has been much improved since 3.18 and now the architectures can easily be set and cuBLAS easily included. Previously including cuBLAS was kind of hacky and it seemed to give some people trouble (myself included). With standard support in CMake now, this should improve consistency for people.

I updated the cmake files to use this, this requires cmake 3.18 or higher.

@jkfindeisen jkfindeisen self-requested a review August 23, 2021 09:03
@jkfindeisen jkfindeisen self-assigned this Aug 23, 2021
@jkfindeisen
Copy link
Collaborator

I'll have a look at it. Will test also with some older CUDA versions (which I still have installed).

@ironictoo
Copy link
Author

It appears I messed up and accidentally included some of my edits to files other than the cmakelists.txt files in this branch. You can just ignore the three *.sh files (those are part of the #93 pull request).

@jkfindeisen
Copy link
Collaborator

I cannot review this feature request before the next release of the software. I basically run your branch on Windows and I got problems (cublas_static.lib not existing or some compile flags mismatch). It's probably solvable, but I don't have the time for it. I will review it later.

@ironictoo
Copy link
Author

This has been updated with all the recent CMake changes discussed with @superchromix and @jimkring . Brief summary

  • Switch from deprecated find_package(Cuda) to supported language CUDA
  • Switch from deprecated find_package(PythonInterp) to supported find_package(Python)
  • Switch from deprecated MSVC static link find/replace strings to supported PROPERTY MSVC_RUNTIME_LIBRARY
  • Set CXX standard to 20, and CUDA standard to 17 (latest supported)
  • CUBLAS linking is much simpler and same for all platforms
  • added create package script for linux (including .deb generation)

This fixes all the build action errors that have come up recently, you can see them all for a wide variety of platforms and versions here.

We could probably still remove a lot of the old architectures (they trigger warnings that they are deprecated) and the stuff about MSVC 12 and 14, but I didn't have any reason to change that so left it in for now.

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