[ 
https://issues.apache.org/jira/browse/MXNET-796?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Anton Chernov updated MXNET-796:
--------------------------------
    Description: 
h2. Problem

The current cmake CUDA support has multiple major problems.

*Multiple not compatible definitions*

CUDA can be part of cmake language detection and is not for older cmake 
versions.

CUDA architectures can be detected by build-in cmake file. This would be 
preferred, but is not used by the current MXNet cmake scripts.

CUDA is detected by 3 different files in the current cmake scripts and the 
choice of those is based on a obscure logic with involves different versions of 
cmake and platforms which it's building on
 * CMakeLists.txt
 * cmake/FirstClassLangCuda.cmake
 * 3rdparty/mshadow/cmake/Cuda.cmake

*No support for new CUDA architectures or faulty detection*

Only 3rdparty/mshadow/cmake/Cuda.cmake supports Volta architecture, but not in 
all circumstances.

In a lot of situations the right architecture can not be detected properly and 
the script falls back to build all architectures bowing up both: build time and 
artefact size.

cmake/FirstClassLangCuda.cmake is outdated and does not support Volta at all.

*Confusing and misleading cmake user options*

Currently USE_CUDA / USE_OLDCMAKECUDA. Some of them will do or not do what they 
supposed to based on cmake generator version and version of cmake.

*Other problems with dependencies*

For example the caffe integration raises the minimum required cmake version to 
3.3 due required to c++11 support.
h2. Solution

As a solution all custom detection of CUDA should be removed and if CUDA is 
used the minimum cmake version should be raised to 3.10 due to support of 
latest Volta architectures.

 

https://github.com/apache/incubator-mxnet/issues/12107

  was:
h2. Problem

The current cmake CUDA support has multiple major problems.

*Multiple not compatible definitions*

CUDA can be part of cmake language detection and is not for older cmake 
versions.

CUDA architectures can be detected by build-in cmake file. This would be 
preferred, but is not used by the current MXNet cmake scripts.

CUDA is detected by 3 different files in the current cmake scripts and the 
choice of those is based on a obscure logic with involves different versions of 
cmake and platforms which it's building on
 * CMakeLists.txt
 * cmake/FirstClassLangCuda.cmake
 * 3rdparty/mshadow/cmake/Cuda.cmake

*No support for new CUDA architectures or faulty detection*

Only 3rdparty/mshadow/cmake/Cuda.cmake supports Volta architecture, but not in 
all circumstances.

In a lot of situations the right architecture can not be detected properly and 
the script falls back to build all architectures bowing up both: build time and 
artefact size.

cmake/FirstClassLangCuda.cmake is outdated and does not support Volta at all.

*Confusing and misleading cmake user options*

Currently USE_CUDA / USE_OLDCMAKECUDA. Some of them will do or not do what they 
supposed to based on cmake generator version and version of cmake.

*Other problems with dependencies*

For example the caffe integration raises the minimum required cmake version to 
3.3 due required to c++11 support.
h2. Solution

As a solution all custom detection of CUDA should be removed and if CUDA is 
used the minimum cmake version should be raised to 3.10 due to support of 
latest Volta architectures.


> Faulty CUDA detection with cmake
> --------------------------------
>
>                 Key: MXNET-796
>                 URL: https://issues.apache.org/jira/browse/MXNET-796
>             Project: Apache MXNet
>          Issue Type: Bug
>            Reporter: Anton Chernov
>            Priority: Major
>
> h2. Problem
> The current cmake CUDA support has multiple major problems.
> *Multiple not compatible definitions*
> CUDA can be part of cmake language detection and is not for older cmake 
> versions.
> CUDA architectures can be detected by build-in cmake file. This would be 
> preferred, but is not used by the current MXNet cmake scripts.
> CUDA is detected by 3 different files in the current cmake scripts and the 
> choice of those is based on a obscure logic with involves different versions 
> of cmake and platforms which it's building on
>  * CMakeLists.txt
>  * cmake/FirstClassLangCuda.cmake
>  * 3rdparty/mshadow/cmake/Cuda.cmake
> *No support for new CUDA architectures or faulty detection*
> Only 3rdparty/mshadow/cmake/Cuda.cmake supports Volta architecture, but not 
> in all circumstances.
> In a lot of situations the right architecture can not be detected properly 
> and the script falls back to build all architectures bowing up both: build 
> time and artefact size.
> cmake/FirstClassLangCuda.cmake is outdated and does not support Volta at all.
> *Confusing and misleading cmake user options*
> Currently USE_CUDA / USE_OLDCMAKECUDA. Some of them will do or not do what 
> they supposed to based on cmake generator version and version of cmake.
> *Other problems with dependencies*
> For example the caffe integration raises the minimum required cmake version 
> to 3.3 due required to c++11 support.
> h2. Solution
> As a solution all custom detection of CUDA should be removed and if CUDA is 
> used the minimum cmake version should be raised to 3.10 due to support of 
> latest Volta architectures.
>  
> https://github.com/apache/incubator-mxnet/issues/12107



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to