-
Notifications
You must be signed in to change notification settings - Fork 6.8k
Use CMake standard library to handle CUDA #17031
Conversation
5e35717
to
24e7209
Compare
Consider integration #16980 and update cmake to 3.15.5. |
Currently #16980 is waiting for ci to upgrade cmake. I don't know when the upgrade is complete. |
i see apache/mxnet-ci#17 is merged.When can upgrade complete? I'm not sure about this process. |
@yajiedesign I think the change will be picked up within 7 days. But @marcoabreu may provide more details (or can force the change to be picked up earlier). The current PR is also waiting for apache/mxnet-ci#17 to be picked up. |
24e7209
to
251f8d8
Compare
The change should be picked up as soon as you merge this from master in your branch. |
What do you mean? It's for the Windows images used by the CI. When will the CI use the updated images? |
f1c0dbe
to
37c9680
Compare
@marcoabreu can you share the date when mxnet-CI will use the updated Windows AMI? |
Oh yes I got confused sorry. We would have to update the AMIs used by CI. This needs to be done by an Amazon engineer. Marco is not involved. |
37c9680
to
cfc2a2f
Compare
Ok, thank you. I saw Marco mentioned this is done automatically every 7 days (https://github.com/apache/incubator-mxnet-ci/blob/master/services/jenkins-slave-creation-windows/README.md). Is it wrong? |
19088f7
to
08017fe
Compare
I passed on your request to the engineering team. |
a94bbf8
to
e8163e6
Compare
899277f
to
80d3e7a
Compare
Why are the dockcross images related to CMake changes?? |
Because the edge build is currently completely broken and only keeps on working in some special settings due to caching effects. Updating cmake on the current dockcross images is one case that will break the caching effects and thus disable the build. Updating the dockcross images fixes the It's not necessary to merge the dockcross change as part of this PR. But until the |
80d3e7a
to
6763f48
Compare
Rebased after #17098 got merged. |
6763f48
to
85f7ece
Compare
Ping for review @szha @yajiedesign or anyone willing |
Introduce unified MXNET_CUDA_ARCH option to specify cuda architectures. Previously cuda architecture setting was partially broken and different options were applied to different parts of the build (CUDA_ARCH_NAME CUDA_ARCH_BIN CUDA_ARCH_PTX and CUDA_ARCH_LIST). Include FindCUDAToolkit from CMake 3.17, which replaces the deprecated FindCUDA functionality for finding the cuda toolkit include directories and libraries.
85f7ece
to
d949e0c
Compare
Introduce unified MXNET_CUDA_ARCH option to specify cuda architectures. Previously cuda architecture setting was partially broken and different options were applied to different parts of the build (CUDA_ARCH_NAME CUDA_ARCH_BIN CUDA_ARCH_PTX and CUDA_ARCH_LIST). Include FindCUDAToolkit from CMake 3.17, which replaces the deprecated FindCUDA functionality for finding the cuda toolkit include directories and libraries. Workaround for DLL size limitation on Windows (apache#16980) * change windows build system. add gen_warp cpp version add add_custom_command to run warp_gen add download cmake add option change option add dynamic read mxnet dll
Switch to modern CMake CUDA handling (apache#17031) Introduce unified MXNET_CUDA_ARCH option to specify cuda architectures. Previously cuda architecture setting was partially broken and different options were applied to different parts of the build (CUDA_ARCH_NAME CUDA_ARCH_BIN CUDA_ARCH_PTX and CUDA_ARCH_LIST). Include FindCUDAToolkit from CMake 3.17, which replaces the deprecated FindCUDA functionality for finding the cuda toolkit include directories and libraries. Workaround for DLL size limitation on Windows (apache#16980) * change windows build system. add gen_warp cpp version add add_custom_command to run warp_gen add download cmake add option change option add dynamic read mxnet dll
…ranch Fix CUDNN detection for CMake build (apache#17019) Replace mxnet_option macro with standard CMAKE_DEPENDENT_OPTION (apache#17018) Switch to modern CMake CUDA handling (apache#17031) Introduce unified MXNET_CUDA_ARCH option to specify cuda architectures. Previously cuda architecture setting was partially broken and different options were applied to different parts of the build (CUDA_ARCH_NAME CUDA_ARCH_BIN CUDA_ARCH_PTX and CUDA_ARCH_LIST). Include FindCUDAToolkit from CMake 3.17, which replaces the deprecated FindCUDA functionality for finding the cuda toolkit include directories and libraries. Workaround for DLL size limitation on Windows (apache#16980) * change windows build system. add gen_warp cpp version add add_custom_command to run warp_gen add download cmake add option change option add dynamic read mxnet dll
Fix CUDNN detection for CMake build (#17019) Replace mxnet_option macro with standard CMAKE_DEPENDENT_OPTION (#17018) Switch to modern CMake CUDA handling (#17031) Introduce unified MXNET_CUDA_ARCH option to specify cuda architectures. Previously cuda architecture setting was partially broken and different options were applied to different parts of the build (CUDA_ARCH_NAME CUDA_ARCH_BIN CUDA_ARCH_PTX and CUDA_ARCH_LIST). Include FindCUDAToolkit from CMake 3.17, which replaces the deprecated FindCUDA functionality for finding the cuda toolkit include directories and libraries. Workaround for DLL size limitation on Windows (#16980) * change windows build system. add gen_warp cpp version add add_custom_command to run warp_gen add download cmake add option change option add dynamic read mxnet dll Co-authored-by: Leonard Lausen <[email protected]>
endif() | ||
|
||
|
||
get_filename_component(CUDAToolkit_ROOT_DIR ${CUDAToolkit_BIN_DIR} DIRECTORY ABSOLUTE) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I understand this has been included from https://gitlab.kitware.com/cmake/cmake/merge_requests/4093
However, I'm confused between CUDAToolkit_ROOT_DIR
and CUDA_TOOLKIT_ROOT_DIR
that's used at rest of the places in cmake in our codebase.
Are they both pointing to same thing? @leezu Thanks
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, it should be insensitive to capitalization
Description
Use CMake standard library to handle CUDA.
Makes our code more maintainable and may fix bugs, because we rely on code tested by all CMake users, instead of the small subset of MXNet CMake users.
Include FindCUDAToolkit that replaces the deprecated FindCUDA module as of CMake 1.17.
https://gitlab.kitware.com/cmake/cmake/merge_requests/4093
Checklist
Essentials
Please feel free to remove inapplicable items for your PR.
Changes
Comments
https://gitlab.kitware.com/cmake/cmake/issues/19199