CXX and CUDACXX

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

CXX and CUDACXX

Dustyn Blasig
Hi All,

I'd like to understand the expectations with CMake 3.12+ with the following setup.

project(foo LANGUAGES CXX CUDA)

By default, should the CUDACXX compiler be using the found compiler for CXX for host-side compilation? 

What I'm seeing is that host-side compilation for CUDA is not passing -ccbin to NVCC or setting up the environment in a way that nvcc will use the CXX configured compiler but rather just using the c++ it finds on PATH. 

Is there a best practice for telling the CUDA language to use the CXX settings for host-side compilation?

Thanks!

--

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
https://cmake.org/mailman/listinfo/cmake
Reply | Threaded
Open this post in threaded view
|

Re: CXX and CUDACXX

CMake mailing list
The default implementation is to defer to  CUDA for selecting what
ever host compiler it would like. To make sure that CMake uses the
same CXX and CUDACXX compiler you will need to explicitly state that
either through the CUDAHOSTCXX env variable (
https://cmake.org/cmake/help/v3.12/envvar/CUDAHOSTCXX.html ) or with
CMAKE_CUDA_HOST_COMPILER on the initial configuration of a project.
--

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
https://cmake.org/mailman/listinfo/cmake
Reply | Threaded
Open this post in threaded view
|

Re: CXX and CUDACXX

Dustyn Blasig
Thx for the info. 

Since CXX and CUDA are defined together in the project() command, I don't see a way to inject code to use the CXX compiler if no CUDAHOSTCXX or CMAKE_CUDA_HOST_COMPILER is given without replicating the CXX search. I tried moving CUDA out to an enable_language(CUDA) call instead so I could set those variables between project(foo LANGUAGES CXX) and enable_language(CUDA), but I'm seeing other issues with that approach. 

Any other suggestions? If not, we'll just wrap our cmake invocation in a script to help setup the environment properly for now.

Thx!

On Tue, Apr 16, 2019 at 1:10 PM Robert Maynard <[hidden email]> wrote:
The default implementation is to defer to  CUDA for selecting what
ever host compiler it would like. To make sure that CMake uses the
same CXX and CUDACXX compiler you will need to explicitly state that
either through the CUDAHOSTCXX env variable (
https://cmake.org/cmake/help/v3.12/envvar/CUDAHOSTCXX.html ) or with
CMAKE_CUDA_HOST_COMPILER on the initial configuration of a project.

--

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
https://cmake.org/mailman/listinfo/cmake
Reply | Threaded
Open this post in threaded view
|

Re: CXX and CUDACXX

CMake mailing list
I don't have any other suggestions. In general I recommend the script
approach or using enable_language(CUDA). The enable_language approach
should work, so I am curious what other issues you are seeing.

On Tue, Apr 16, 2019 at 2:24 PM Dustyn Blasig <[hidden email]> wrote:

>
> Thx for the info.
>
> Since CXX and CUDA are defined together in the project() command, I don't see a way to inject code to use the CXX compiler if no CUDAHOSTCXX or CMAKE_CUDA_HOST_COMPILER is given without replicating the CXX search. I tried moving CUDA out to an enable_language(CUDA) call instead so I could set those variables between project(foo LANGUAGES CXX) and enable_language(CUDA), but I'm seeing other issues with that approach.
>
> Any other suggestions? If not, we'll just wrap our cmake invocation in a script to help setup the environment properly for now.
>
> Thx!
>
> On Tue, Apr 16, 2019 at 1:10 PM Robert Maynard <[hidden email]> wrote:
>>
>> The default implementation is to defer to  CUDA for selecting what
>> ever host compiler it would like. To make sure that CMake uses the
>> same CXX and CUDACXX compiler you will need to explicitly state that
>> either through the CUDAHOSTCXX env variable (
>> https://cmake.org/cmake/help/v3.12/envvar/CUDAHOSTCXX.html ) or with
>> CMAKE_CUDA_HOST_COMPILER on the initial configuration of a project.
--

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
https://cmake.org/mailman/listinfo/cmake