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

Forward Compatibility CUDA bug with CMake 3.17+ #110

Open
cameronrutherford opened this issue Jul 1, 2022 · 20 comments
Open

Forward Compatibility CUDA bug with CMake 3.17+ #110

cameronrutherford opened this issue Jul 1, 2022 · 20 comments

Comments

@cameronrutherford
Copy link

cameronrutherford commented Jul 1, 2022

In HiOp, we link against CUDA in the following fashion:

find_package(CUDAToolkit REQUIRED)

if(HIOP_BUILD_SHARED)
  target_link_libraries(hiop_cuda INTERFACE
    CUDA::cusolver
    CUDA::cusparse
    CUDA::cudart
    CUDA::cublasLt
    )
endif()
if(HIOP_BUILD_STATIC)
  target_link_libraries(hiop_cuda INTERFACE 
    CUDA::cusolver_static
    CUDA::cusparse_static
    CUDA::cudart_static
    CUDA::cublasLt_static
    )
endif()

However, when building [email protected] with [email protected] and [email protected], the camp CMake exported configuration ends up creating the camp target as follows (in campTargets.cmake):

# Create imported target camp
add_library(camp STATIC IMPORTED)

set_target_properties(camp PROPERTIES
  INTERFACE_COMPILE_FEATURES "cxx_std_14"
  INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include"
  INTERFACE_LINK_LIBRARIES "cuda_runtime"
)

Per CMake documentation https://cmake.org/cmake/help/latest/module/FindCUDAToolkit.html#module:FindCUDAToolkit, this breaks forward compatibility for including and linking CUDA libraries.

When building and running with this configuration of camp, RAJA and Umpire, I end up getting the following adding to my link line:

.../libumpire.a .../libRAJA.so .../libcamp.a -lcuda_runtime /share/apps/cuda/11.4/lib64/libcudart_static.a /usr/lib64/librt.so

Which generates an ld error:

/usr/bin/ld: cannot find -lcuda_runtime

Simply commenting out the line INTERFACE_LINK_LIBRARIES "cuda_runtime" in campTargets.cmake temporarily resolves the issue, but this should probably be updated for forward compatibility.

@davidbeckingsale @pelesh

@trws
Copy link
Member

trws commented Jul 1, 2022

Do you not see this issue with RAJA or Umpire otherwise? That dependency comes through BLT, so I'm trying to track down how best to solve this.

Also, where in that documentation does it mention forward compatibility or this problem? Mislink?

@cameronrutherford
Copy link
Author

https://cmake.org/cmake/help/latest/module/FindCUDA.html - this is the link to the old way of finding cuda that is deprecated in favor of the link that I sent through. The old targets here are called CUDA_cudart_static_LIBRARY, while the newer targets configured through find_package(CUDAToolkit) are instead CUDA::cudart and CUDA::cudart_static. I still am not sure why/when linking against cuda_runtime worked, but I vaguely remember having that in HiOp initially.

I didn't see this issue with RAJA 0.14.0 and Umpire 6.0.0, and I suspect that it is related to some of the C++ 14 changes that were made. That is largely a hunch though. Changing back to those versions with C++11 lets everything build just fine.

In terms of where this dependency comes from, I narrowed it down to this section of camp CMake https://github.com/LLNL/camp/blob/main/CMakeLists.txt#L69:

set (camp_runtime_backends cuda hip)

foreach (backend ${camp_backends})
  string(TOUPPER "${backend}" suffix)
  if ("${ENABLE_${suffix}}")
    set ("CAMP_ENABLE_${suffix}" On)
  endif()
  if (${CAMP_ENABLE_${suffix}})
    if (backend IN_LIST camp_runtime_backends)
      set (backend ${backend}_runtime)  
    endif()
    if (TARGET blt::${backend})
      set (backend blt::${backend})
    endif()
    list (APPEND camp_depends ${backend})
  endif()
endforeach()
# ...
blt_add_library (
  NAME camp
  HEADERS ${camp_headers}
  SOURCES ./src/errors.cpp
  DEPENDS_ON ${camp_depends}
  )

Parsing this manually, it seems like the string literal cuda_runtime is appended to the list passed to DEPENDS_ON in blt_add_library, and so I assume that this is where the dependency is being introduced. Perhaps the target blt::cuda_runtime should exist, but isn't being found for some reason?

I was tempted to make this sort of change myself, but I am not as familiar with camp as I would like, but I would imagine something like the following would acheive the same thing? It is a bit difficult (as we have seen in HiOp) to pick the correct static/shared library target to use:

set (camp_runtime_backends cuda hip)

foreach (backend ${camp_backends})
  string(TOUPPER "${backend}" suffix)
  if ("${ENABLE_${suffix}}")
    set ("CAMP_ENABLE_${suffix}" On)
  endif()
  if (${CAMP_ENABLE_${suffix}})
    if (backend IN_LIST camp_runtime_backends)
      if(backend STREQUAL cuda)
        find_package(CUDAToolkit)
        # Linking only static could cause issues?
        set(backend CUDA::cudart_static)
      else()
        set (backend ${backend}_runtime)  
      endif()
    endif()
    if (TARGET blt::${backend})
      set (backend blt::${backend})
    endif()
    list (APPEND camp_depends ${backend})
  endif()
endforeach()
# ...
blt_add_library (
  NAME camp
  HEADERS ${camp_headers}
  SOURCES ./src/errors.cpp
  DEPENDS_ON ${camp_depends}
  )

Hopefully that clarifies.

@trws
Copy link
Member

trws commented Jul 1, 2022 via email

@rhornung67
Copy link
Member

@trws FWIW, Chris is working on the BLT updates for CUDA support to align what is done for HIP. He's run into some issues ripping out the object library stuff, which has issues with CUDA. So it's taking longer than we expected.

@trws
Copy link
Member

trws commented Jul 1, 2022

Thanks @rhornung67, I'm glad to hear that's going forward, but thankfully I don't think we're necessarily dependent on that rework to fix this. I can put in the stopgap in camp for now at least, and we may be able to do something in BLT to either select the static runtime or allow the runtime interface deps to not propagate.

@cameronrutherford
Copy link
Author

I'm satisfied with whatever is the most practical solution. I think a CMake CAMP_NO_INTERFACE_RUNTIMES could work, but I don't fully understand a lot of the implications of these decisions.

If there is a fix coming through BLT that we are just waiting on, then I think we can wait for that. We are fine using the older RAJA and Umpire versions for the moment, but a temporary stopgap would be fine. I think this would have to be added to the camp spack package in the end, or I can use a specific camp branch for temporary development.

Thanks for the quick updates!

@rhornung67
Copy link
Member

@cameronrutherford we'll keep you posted when the BLT updates and related changes in RAJA, Umpire, Camp, etc. are available.

@trws
Copy link
Member

trws commented Jul 12, 2022

@cameronrutherford, in working on some updates to the cmake here and in RAJA (partly spurred by this but also to fix other issues) I think we may already support this by use of BLT_EXPORT_THIRDPARTY=Off in the cmake configure. I'm not 100% sure that will remove the library dependency, but it will remove the target from the export. If that doesn't do it, we'll have to add something to completely prevent camp from linking to the library at all, which is a bit more complicated.

@jaelynlitz
Copy link

I've been working with @cameronrutherford on testing out this suggested fix and am still running into some issues.

These are the changes I made to the RAJA spack package to add a toggle for the BLT_EXPORT_THIRDPARTY

--- a/var/spack/repos/builtin/packages/raja/package.py
+++ b/var/spack/repos/builtin/packages/raja/package.py
@@ -52,6 +52,7 @@ class Raja(CachedCMakePackage, CudaPackage, ROCmPackage):
     # TODO: figure out gtest dependency and then set this default True
     # and remove the +tests conflict below.
     variant("tests", default=False, description="Build tests")
+    variant('enable_blt_export', default=False, description='Turn on/off blt third party export')

     depends_on("blt")
     depends_on("[email protected]:", type="build", when="@0.14.1:")
@@ -138,6 +139,9 @@ def initconfig_package_entries(self):
         option_prefix = "RAJA_" if spec.satisfies("@0.14.0:") else ""

         entries.append(cmake_cache_path("BLT_SOURCE_DIR", spec["blt"].prefix))
+
+        entries.append(cmake_cache_option("BLT_EXPORT_THIRDPARTY", "+enable_blt_export" in spec))
+
         if "camp" in self.spec:
             entries.append(cmake_cache_path("camp_DIR", spec["camp"].prefix))
         entries.append(cmake_cache_option("BUILD_SHARED_LIBS", "+shared" in spec))

With the suggested BLT_EXPORT_THIRDPARTY=Off, we run into an OpenMP compiler compatibility error in RAJA. We ran into this error with gcc8.5.0 and gcc10.2.0. Error snippet:

>> 221    /qfs/projects/exasgd/src/jaelyn-spack/spack/opt/spack/linux-centos8-power9le/gcc-10.2.0/raja-2022.03.0-g2wnmqidgmhejbbrypmm6crxpqpwswox/include/RAJA/config.hpp:243:2: error: #error RAJA configured wit
            h RAJA_ENABLE_OPENMP, but OpenMP not supported by current compiler
     222      243 | #error RAJA configured with RAJA_ENABLE_OPENMP, but OpenMP not supported by current compiler
     223          |  ^~~~~

(full output below the cut)

[+]  g2wnmqi  ^[email protected]%[email protected]+cuda~enable_blt_export+examples+exercises~ipo+openmp~rocm+shared~tests build_type=RelWithDebInfo cuda_arch=70 arch=linux-centos8-power9le
[+]  zxsdyft          ^[email protected]%[email protected] arch=linux-centos8-power9le
[+]  kkcgbwm          ^[email protected]%[email protected]+cuda~ipo~rocm~tests build_type=RelWithDebInfo cuda_arch=70 arch=linux-centos8-power9le
[+]  ckaaip3              ^[email protected]%[email protected] arch=linux-centos8-power9le
[+]  xf4cspj      ^[email protected]%[email protected]~cuda~graphblas~openmp+pic~tbb arch=linux-centos8-power9le
[+]  oyjx6bm          ^[email protected]%[email protected] libs=shared,static arch=linux-centos8-power9le
[+]  5musg74              ^[email protected]%[email protected] patches=35c4492,7793209,a49dd5b arch=linux-centos8-power9le
[+]  ypvbhca                  ^[email protected]%[email protected]+sigsegv patches=9dc5fbd,bfdffa7 arch=linux-centos8-power9le
[+]  ndiphp5                      ^[email protected]%[email protected] arch=linux-centos8-power9le
[+]  risyxq5              ^[email protected]%[email protected] arch=linux-centos8-power9le
[+]  g3p6oh2              ^[email protected]%[email protected] arch=linux-centos8-power9le
[+]  xmffy4h          ^[email protected]%[email protected] libs=shared,static arch=linux-centos8-power9le
[+]  uztmion              ^[email protected]%[email protected] patches=139214f arch=linux-centos8-power9le
[+]  oegakup              ^[email protected]%[email protected] patches=12f6edb,1732115 arch=linux-centos8-power9le
[+]  4c6ggfn      ^[email protected]%[email protected]+c+cuda+device_alloc~deviceconst+examples~fortran~ipo~numa~openmp~rocm~shared build_type=RelWithDebInfo cuda_arch=70 tests=none arch=linux-centos8-power9le

...

13 errors found in build log:
     215    cd /tmp/litz372/spack-stage/spack-stage-hiop-develop-emjzcpme6d5u4nk2bwfrai534vvk5d5g/spack-build-emjzcpm/src/LinAlg && /share/apps/cuda/11.4/bin/nvcc -forward-unknown-to-host-compiler -ccbin=/share/a
            pps/gcc/10.2.0/bin/g++ -DCAMP_HAVE_CUDA -I/tmp/litz372/spack-stage/spack-stage-hiop-develop-emjzcpme6d5u4nk2bwfrai534vvk5d5g/spack-src/tpl/eigen -I/tmp/litz372/spack-stage/spack-stage-hiop-develop-emj
            zcpme6d5u4nk2bwfrai534vvk5d5g/spack-build-emjzcpm -I/tmp/litz372/spack-stage/spack-stage-hiop-develop-emjzcpme6d5u4nk2bwfrai534vvk5d5g/spack-src/src/Interface -I/tmp/litz372/spack-stage/spack-stage-hi
            op-develop-emjzcpme6d5u4nk2bwfrai534vvk5d5g/spack-src/src/Optimization -I/tmp/litz372/spack-stage/spack-stage-hiop-develop-emjzcpme6d5u4nk2bwfrai534vvk5d5g/spack-src/src/LinAlg -I/tmp/litz372/spack-st
            age/spack-stage-hiop-develop-emjzcpme6d5u4nk2bwfrai534vvk5d5g/spack-src/src/Utils -I/tmp/litz372/spack-stage/spack-stage-hiop-develop-emjzcpme6d5u4nk2bwfrai534vvk5d5g/spack-src/src/_Internals -I/qfs/p
            rojects/exasgd/src/jaelyn-spack/spack/opt/spack/linux-centos8-power9le/gcc-10.2.0/magma-2.6.2-r5aqzf7jljbynhqspm5sx6qdcn5pmwjk/include -I/qfs/projects/exasgd/src/jaelyn-spack/spack/opt/spack/linux-cen
            tos8-power9le/gcc-10.2.0/suite-sparse-5.10.1-xf4cspjtnyq2ggzqsxtaoszmr63guhhr/include -I/qfs/projects/exasgd/src/jaelyn-spack/spack/opt/spack/linux-centos8-power9le/gcc-10.2.0/metis-5.1.0-xwpjsqkotvvc
            brm36amq5jg3jnihwmdm/include -I/qfs/projects/exasgd/src/jaelyn-spack/spack/opt/spack/linux-centos8-power9le/gcc-10.2.0/coinhsl-2015.06.23-4g6hpo3tyx6ye247hl25hbgn4ao23zbk/include -isystem=/qfs/project
            s/ops/rh8p9/openmpi/4.1.4/gcc/10.2.0/include -isystem=/share/apps/openmpi/4.1.4/gcc/10.2.0/include -isystem=/share/apps/cuda/11.4/include -isystem=/qfs/projects/exasgd/src/jaelyn-spack/spack/opt/spack
            /linux-centos8-power9le/gcc-10.2.0/camp-2022.03.0-kkcgbwmh7iet3yis7sqipo4ueo7nthum/include -isystem=/qfs/projects/exasgd/src/jaelyn-spack/spack/opt/spack/linux-centos8-power9le/gcc-10.2.0/umpire-2022.
            03.1-4c6ggfna4htr6ix5vwhwi5yncxkurp7w/include -isystem=/qfs/projects/exasgd/src/jaelyn-spack/spack/opt/spack/linux-centos8-power9le/gcc-10.2.0/raja-2022.03.0-g2wnmqidgmhejbbrypmm6crxpqpwswox/include -
            isystem=/qfs/projects/exasgd/src/jaelyn-spack/spack/opt/spack/linux-centos8-power9le/gcc-10.2.0/cub-1.16.0-ckaaip3lazkpt3jxqyqrgeceu2xlwe42/include -isystem=/qfs/projects/exasgd/src/jaelyn-spack/spack
            /opt/spack/linux-centos8-power9le/gcc-10.2.0/ginkgo-glu_experimental-j5uhuhtwey37ash7ga2i4tt6ygsvrqbv/include --expt-extended-lambda --expt-relaxed-constexpr -O2 -g -DNDEBUG --generate-code=arch=compu
            te_70,code=[compute_70,sm_70] -Xcompiler=-fPIC -Xcompiler -pthread -std=c++14 -MD -MT src/LinAlg/CMakeFiles/hiopLinAlg.dir/hiopMatrixRajaDense.cpp.o -MF CMakeFiles/hiopLinAlg.dir/hiopMatrixRajaDense.c
            pp.o.d -x cu -rdc=true -c /tmp/litz372/spack-stage/spack-stage-hiop-develop-emjzcpme6d5u4nk2bwfrai534vvk5d5g/spack-src/src/LinAlg/hiopMatrixRajaDense.cpp -o CMakeFiles/hiopLinAlg.dir/hiopMatrixRajaDen
            se.cpp.o
     216    cd /tmp/litz372/spack-stage/spack-stage-hiop-develop-emjzcpme6d5u4nk2bwfrai534vvk5d5g/spack-build-emjzcpm/src/LinAlg && /share/apps/cuda/11.4/bin/nvcc -forward-unknown-to-host-compiler -ccbin=/share/a
            pps/gcc/10.2.0/bin/g++ -DCAMP_HAVE_CUDA -I/tmp/litz372/spack-stage/spack-stage-hiop-develop-emjzcpme6d5u4nk2bwfrai534vvk5d5g/spack-src/tpl/eigen -I/tmp/litz372/spack-stage/spack-stage-hiop-develop-emj
            zcpme6d5u4nk2bwfrai534vvk5d5g/spack-build-emjzcpm -I/tmp/litz372/spack-stage/spack-stage-hiop-develop-emjzcpme6d5u4nk2bwfrai534vvk5d5g/spack-src/src/Interface -I/tmp/litz372/spack-stage/spack-stage-hi
            op-develop-emjzcpme6d5u4nk2bwfrai534vvk5d5g/spack-src/src/Optimization -I/tmp/litz372/spack-stage/spack-stage-hiop-develop-emjzcpme6d5u4nk2bwfrai534vvk5d5g/spack-src/src/LinAlg -I/tmp/litz372/spack-st
            age/spack-stage-hiop-develop-emjzcpme6d5u4nk2bwfrai534vvk5d5g/spack-src/src/Utils -I/tmp/litz372/spack-stage/spack-stage-hiop-develop-emjzcpme6d5u4nk2bwfrai534vvk5d5g/spack-src/src/_Internals -I/qfs/p
            rojects/exasgd/src/jaelyn-spack/spack/opt/spack/linux-centos8-power9le/gcc-10.2.0/magma-2.6.2-r5aqzf7jljbynhqspm5sx6qdcn5pmwjk/include -I/qfs/projects/exasgd/src/jaelyn-spack/spack/opt/spack/linux-cen
            tos8-power9le/gcc-10.2.0/suite-sparse-5.10.1-xf4cspjtnyq2ggzqsxtaoszmr63guhhr/include -I/qfs/projects/exasgd/src/jaelyn-spack/spack/opt/spack/linux-centos8-power9le/gcc-10.2.0/metis-5.1.0-xwpjsqkotvvc
            brm36amq5jg3jnihwmdm/include -I/qfs/projects/exasgd/src/jaelyn-spack/spack/opt/spack/linux-centos8-power9le/gcc-10.2.0/coinhsl-2015.06.23-4g6hpo3tyx6ye247hl25hbgn4ao23zbk/include -isystem=/qfs/project
            s/ops/rh8p9/openmpi/4.1.4/gcc/10.2.0/include -isystem=/share/apps/openmpi/4.1.4/gcc/10.2.0/include -isystem=/share/apps/cuda/11.4/include -isystem=/qfs/projects/exasgd/src/jaelyn-spack/spack/opt/spack
            /linux-centos8-power9le/gcc-10.2.0/camp-2022.03.0-kkcgbwmh7iet3yis7sqipo4ueo7nthum/include -isystem=/qfs/projects/exasgd/src/jaelyn-spack/spack/opt/spack/linux-centos8-power9le/gcc-10.2.0/umpire-2022.
            03.1-4c6ggfna4htr6ix5vwhwi5yncxkurp7w/include -isystem=/qfs/projects/exasgd/src/jaelyn-spack/spack/opt/spack/linux-centos8-power9le/gcc-10.2.0/raja-2022.03.0-g2wnmqidgmhejbbrypmm6crxpqpwswox/include -
            isystem=/qfs/projects/exasgd/src/jaelyn-spack/spack/opt/spack/linux-centos8-power9le/gcc-10.2.0/cub-1.16.0-ckaaip3lazkpt3jxqyqrgeceu2xlwe42/include -isystem=/qfs/projects/exasgd/src/jaelyn-spack/spack
            /opt/spack/linux-centos8-power9le/gcc-10.2.0/ginkgo-glu_experimental-j5uhuhtwey37ash7ga2i4tt6ygsvrqbv/include --expt-extended-lambda --expt-relaxed-constexpr -O2 -g -DNDEBUG --generate-code=arch=compu
            te_70,code=[compute_70,sm_70] -Xcompiler=-fPIC -Xcompiler -pthread -std=c++14 -MD -MT src/LinAlg/CMakeFiles/hiopLinAlg.dir/hiopMatrixRajaSparseTriplet.cpp.o -MF CMakeFiles/hiopLinAlg.dir/hiopMatrixRaj
            aSparseTriplet.cpp.o.d -x cu -rdc=true -c /tmp/litz372/spack-stage/spack-stage-hiop-develop-emjzcpme6d5u4nk2bwfrai534vvk5d5g/spack-src/src/LinAlg/hiopMatrixRajaSparseTriplet.cpp -o CMakeFiles/hiopLinA
            lg.dir/hiopMatrixRajaSparseTriplet.cpp.o
     217    cd /tmp/litz372/spack-stage/spack-stage-hiop-develop-emjzcpme6d5u4nk2bwfrai534vvk5d5g/spack-build-emjzcpm/src/LinAlg && /qfs/projects/exasgd/src/jaelyn-spack/spack/lib/spack/env/gcc/g++ -DCAMP_HAVE_CU
            DA -I/tmp/litz372/spack-stage/spack-stage-hiop-develop-emjzcpme6d5u4nk2bwfrai534vvk5d5g/spack-src/tpl/eigen -I/tmp/litz372/spack-stage/spack-stage-hiop-develop-emjzcpme6d5u4nk2bwfrai534vvk5d5g/spack-b
            uild-emjzcpm -I/tmp/litz372/spack-stage/spack-stage-hiop-develop-emjzcpme6d5u4nk2bwfrai534vvk5d5g/spack-src/src/Interface -I/tmp/litz372/spack-stage/spack-stage-hiop-develop-emjzcpme6d5u4nk2bwfrai534v
            vk5d5g/spack-src/src/Optimization -I/tmp/litz372/spack-stage/spack-stage-hiop-develop-emjzcpme6d5u4nk2bwfrai534vvk5d5g/spack-src/src/LinAlg -I/tmp/litz372/spack-stage/spack-stage-hiop-develop-emjzcpme
            6d5u4nk2bwfrai534vvk5d5g/spack-src/src/Utils -I/tmp/litz372/spack-stage/spack-stage-hiop-develop-emjzcpme6d5u4nk2bwfrai534vvk5d5g/spack-src/src/_Internals -I/qfs/projects/exasgd/src/jaelyn-spack/spack
            /opt/spack/linux-centos8-power9le/gcc-10.2.0/magma-2.6.2-r5aqzf7jljbynhqspm5sx6qdcn5pmwjk/include -I/qfs/projects/exasgd/src/jaelyn-spack/spack/opt/spack/linux-centos8-power9le/gcc-10.2.0/suite-sparse
            -5.10.1-xf4cspjtnyq2ggzqsxtaoszmr63guhhr/include -I/qfs/projects/exasgd/src/jaelyn-spack/spack/opt/spack/linux-centos8-power9le/gcc-10.2.0/metis-5.1.0-xwpjsqkotvvcbrm36amq5jg3jnihwmdm/include -I/qfs/p
            rojects/exasgd/src/jaelyn-spack/spack/opt/spack/linux-centos8-power9le/gcc-10.2.0/coinhsl-2015.06.23-4g6hpo3tyx6ye247hl25hbgn4ao23zbk/include -isystem /qfs/projects/ops/rh8p9/openmpi/4.1.4/gcc/10.2.0/
            include -isystem /share/apps/openmpi/4.1.4/gcc/10.2.0/include -isystem /share/apps/cuda/11.4/include -isystem /qfs/projects/exasgd/src/jaelyn-spack/spack/opt/spack/linux-centos8-power9le/gcc-10.2.0/ca
            mp-2022.03.0-kkcgbwmh7iet3yis7sqipo4ueo7nthum/include -isystem /qfs/projects/exasgd/src/jaelyn-spack/spack/opt/spack/linux-centos8-power9le/gcc-10.2.0/umpire-2022.03.1-4c6ggfna4htr6ix5vwhwi5yncxkurp7w
            /include -isystem /qfs/projects/exasgd/src/jaelyn-spack/spack/opt/spack/linux-centos8-power9le/gcc-10.2.0/raja-2022.03.0-g2wnmqidgmhejbbrypmm6crxpqpwswox/include -isystem /qfs/projects/exasgd/src/jael
            yn-spack/spack/opt/spack/linux-centos8-power9le/gcc-10.2.0/cub-1.16.0-ckaaip3lazkpt3jxqyqrgeceu2xlwe42/include -isystem /qfs/projects/exasgd/src/jaelyn-spack/spack/opt/spack/linux-centos8-power9le/gcc
            -10.2.0/ginkgo-glu_experimental-j5uhuhtwey37ash7ga2i4tt6ygsvrqbv/include -O2 -g -DNDEBUG -fPIC -pthread -fopenmp -std=gnu++14 -MD -MT src/LinAlg/CMakeFiles/hiopLinAlg.dir/hiopLinSolverSymDenseMagma.cp
            p.o -MF CMakeFiles/hiopLinAlg.dir/hiopLinSolverSymDenseMagma.cpp.o.d -o CMakeFiles/hiopLinAlg.dir/hiopLinSolverSymDenseMagma.cpp.o -c /tmp/litz372/spack-stage/spack-stage-hiop-develop-emjzcpme6d5u4nk2
            bwfrai534vvk5d5g/spack-src/src/LinAlg/hiopLinSolverSymDenseMagma.cpp
     218    cd /tmp/litz372/spack-stage/spack-stage-hiop-develop-emjzcpme6d5u4nk2bwfrai534vvk5d5g/spack-build-emjzcpm/src/LinAlg && /qfs/projects/exasgd/src/jaelyn-spack/spack/lib/spack/env/gcc/g++ -DCAMP_HAVE_CU
            DA -I/tmp/litz372/spack-stage/spack-stage-hiop-develop-emjzcpme6d5u4nk2bwfrai534vvk5d5g/spack-src/tpl/eigen -I/tmp/litz372/spack-stage/spack-stage-hiop-develop-emjzcpme6d5u4nk2bwfrai534vvk5d5g/spack-b
            uild-emjzcpm -I/tmp/litz372/spack-stage/spack-stage-hiop-develop-emjzcpme6d5u4nk2bwfrai534vvk5d5g/spack-src/src/Interface -I/tmp/litz372/spack-stage/spack-stage-hiop-develop-emjzcpme6d5u4nk2bwfrai534v
            vk5d5g/spack-src/src/Optimization -I/tmp/litz372/spack-stage/spack-stage-hiop-develop-emjzcpme6d5u4nk2bwfrai534vvk5d5g/spack-src/src/LinAlg -I/tmp/litz372/spack-stage/spack-stage-hiop-develop-emjzcpme
            6d5u4nk2bwfrai534vvk5d5g/spack-src/src/Utils -I/tmp/litz372/spack-stage/spack-stage-hiop-develop-emjzcpme6d5u4nk2bwfrai534vvk5d5g/spack-src/src/_Internals -I/qfs/projects/exasgd/src/jaelyn-spack/spack
            /opt/spack/linux-centos8-power9le/gcc-10.2.0/magma-2.6.2-r5aqzf7jljbynhqspm5sx6qdcn5pmwjk/include -I/qfs/projects/exasgd/src/jaelyn-spack/spack/opt/spack/linux-centos8-power9le/gcc-10.2.0/suite-sparse
            -5.10.1-xf4cspjtnyq2ggzqsxtaoszmr63guhhr/include -I/qfs/projects/exasgd/src/jaelyn-spack/spack/opt/spack/linux-centos8-power9le/gcc-10.2.0/metis-5.1.0-xwpjsqkotvvcbrm36amq5jg3jnihwmdm/include -I/qfs/p
            rojects/exasgd/src/jaelyn-spack/spack/opt/spack/linux-centos8-power9le/gcc-10.2.0/coinhsl-2015.06.23-4g6hpo3tyx6ye247hl25hbgn4ao23zbk/include -isystem /qfs/projects/ops/rh8p9/openmpi/4.1.4/gcc/10.2.0/
            include -isystem /share/apps/openmpi/4.1.4/gcc/10.2.0/include -isystem /share/apps/cuda/11.4/include -isystem /qfs/projects/exasgd/src/jaelyn-spack/spack/opt/spack/linux-centos8-power9le/gcc-10.2.0/ca
            mp-2022.03.0-kkcgbwmh7iet3yis7sqipo4ueo7nthum/include -isystem /qfs/projects/exasgd/src/jaelyn-spack/spack/opt/spack/linux-centos8-power9le/gcc-10.2.0/umpire-2022.03.1-4c6ggfna4htr6ix5vwhwi5yncxkurp7w
            /include -isystem /qfs/projects/exasgd/src/jaelyn-spack/spack/opt/spack/linux-centos8-power9le/gcc-10.2.0/raja-2022.03.0-g2wnmqidgmhejbbrypmm6crxpqpwswox/include -isystem /qfs/projects/exasgd/src/jael
            yn-spack/spack/opt/spack/linux-centos8-power9le/gcc-10.2.0/cub-1.16.0-ckaaip3lazkpt3jxqyqrgeceu2xlwe42/include -isystem /qfs/projects/exasgd/src/jaelyn-spack/spack/opt/spack/linux-centos8-power9le/gcc
            -10.2.0/ginkgo-glu_experimental-j5uhuhtwey37ash7ga2i4tt6ygsvrqbv/include -O2 -g -DNDEBUG -fPIC -pthread -fopenmp -std=gnu++14 -MD -MT src/LinAlg/CMakeFiles/hiopLinAlg.dir/hiopLinSolverUMFPACKZ.cpp.o -
            MF CMakeFiles/hiopLinAlg.dir/hiopLinSolverUMFPACKZ.cpp.o.d -o CMakeFiles/hiopLinAlg.dir/hiopLinSolverUMFPACKZ.cpp.o -c /tmp/litz372/spack-stage/spack-stage-hiop-develop-emjzcpme6d5u4nk2bwfrai534vvk5d5
            g/spack-src/src/LinAlg/hiopLinSolverUMFPACKZ.cpp
     219    In file included from /qfs/projects/exasgd/src/jaelyn-spack/spack/opt/spack/linux-centos8-power9le/gcc-10.2.0/raja-2022.03.0-g2wnmqidgmhejbbrypmm6crxpqpwswox/include/RAJA/RAJA.hpp:29,
     220                     from /tmp/litz372/spack-stage/spack-stage-hiop-develop-emjzcpme6d5u4nk2bwfrai534vvk5d5g/spack-src/src/LinAlg/hiopMatrixRajaDense.cpp:68:
  >> 221    /qfs/projects/exasgd/src/jaelyn-spack/spack/opt/spack/linux-centos8-power9le/gcc-10.2.0/raja-2022.03.0-g2wnmqidgmhejbbrypmm6crxpqpwswox/include/RAJA/config.hpp:243:2: error: #error RAJA configured wit
            h RAJA_ENABLE_OPENMP, but OpenMP not supported by current compiler
     222      243 | #error RAJA configured with RAJA_ENABLE_OPENMP, but OpenMP not supported by current compiler
     223          |  ^~~~~
     224    In file included from /qfs/projects/exasgd/src/jaelyn-spack/spack/opt/spack/linux-centos8-power9le/gcc-10.2.0/raja-2022.03.0-g2wnmqidgmhejbbrypmm6crxpqpwswox/include/RAJA/RAJA.hpp:29,
     225                     from /tmp/litz372/spack-stage/spack-stage-hiop-develop-emjzcpme6d5u4nk2bwfrai534vvk5d5g/spack-src/src/LinAlg/hiopVectorIntRaja.cpp:60:
  >> 226    /qfs/projects/exasgd/src/jaelyn-spack/spack/opt/spack/linux-centos8-power9le/gcc-10.2.0/raja-2022.03.0-g2wnmqidgmhejbbrypmm6crxpqpwswox/include/RAJA/config.hpp:243:2: error: #error RAJA configured wit
            h RAJA_ENABLE_OPENMP, but OpenMP not supported by current compiler
     227      243 | #error RAJA configured with RAJA_ENABLE_OPENMP, but OpenMP not supported by current compiler
     228          |  ^~~~~
     229    In file included from /qfs/projects/exasgd/src/jaelyn-spack/spack/opt/spack/linux-centos8-power9le/gcc-10.2.0/raja-2022.03.0-g2wnmqidgmhejbbrypmm6crxpqpwswox/include/RAJA/RAJA.hpp:29,
     230                     from /tmp/litz372/spack-stage/spack-stage-hiop-develop-emjzcpme6d5u4nk2bwfrai534vvk5d5g/spack-src/src/Utils/RajaUmpireUtils.cpp:63:
  >> 231    /qfs/projects/exasgd/src/jaelyn-spack/spack/opt/spack/linux-centos8-power9le/gcc-10.2.0/raja-2022.03.0-g2wnmqidgmhejbbrypmm6crxpqpwswox/include/RAJA/config.hpp:243:2: error: #error RAJA configured wit
            h RAJA_ENABLE_OPENMP, but OpenMP not supported by current compiler
     232      243 | #error RAJA configured with RAJA_ENABLE_OPENMP, but OpenMP not supported by current compiler
     233          |  ^~~~~
     234    In file included from /qfs/projects/exasgd/src/jaelyn-spack/spack/opt/spack/linux-centos8-power9le/gcc-10.2.0/raja-2022.03.0-g2wnmqidgmhejbbrypmm6crxpqpwswox/include/RAJA/RAJA.hpp:29,
     235                     from /tmp/litz372/spack-stage/spack-stage-hiop-develop-emjzcpme6d5u4nk2bwfrai534vvk5d5g/spack-src/src/LinAlg/hiopVectorRajaPar.cpp:82:
  >> 236    /qfs/projects/exasgd/src/jaelyn-spack/spack/opt/spack/linux-centos8-power9le/gcc-10.2.0/raja-2022.03.0-g2wnmqidgmhejbbrypmm6crxpqpwswox/include/RAJA/config.hpp:243:2: error: #error RAJA configured wit
            h RAJA_ENABLE_OPENMP, but OpenMP not supported by current compiler
     237      243 | #error RAJA configured with RAJA_ENABLE_OPENMP, but OpenMP not supported by current compiler
     238          |  ^~~~~
     239    In file included from /qfs/projects/exasgd/src/jaelyn-spack/spack/opt/spack/linux-centos8-power9le/gcc-10.2.0/raja-2022.03.0-g2wnmqidgmhejbbrypmm6crxpqpwswox/include/RAJA/RAJA.hpp:29,
     240                     from /tmp/litz372/spack-stage/spack-stage-hiop-develop-emjzcpme6d5u4nk2bwfrai534vvk5d5g/spack-src/src/LinAlg/hiopMatrixRajaSparseTriplet.cpp:64:
  >> 241    /qfs/projects/exasgd/src/jaelyn-spack/spack/opt/spack/linux-centos8-power9le/gcc-10.2.0/raja-2022.03.0-g2wnmqidgmhejbbrypmm6crxpqpwswox/include/RAJA/config.hpp:243:2: error: #error RAJA configured wit
            h RAJA_ENABLE_OPENMP, but OpenMP not supported by current compiler
     242      243 | #error RAJA configured with RAJA_ENABLE_OPENMP, but OpenMP not supported by current compiler
     243          |  ^~~~~
     244    make[2]: Leaving directory '/tmp/litz372/spack-stage/spack-stage-hiop-develop-emjzcpme6d5u4nk2bwfrai534vvk5d5g/spack-build-emjzcpm'
     245    [ 36%] Built target hiopInterface
  >> 246    make[2]: *** [src/Utils/CMakeFiles/hiopUtils.dir/build.make:121: src/Utils/CMakeFiles/hiopUtils.dir/RajaUmpireUtils.cpp.o] Error 1
     247    make[2]: *** Waiting for unfinished jobs....
  >> 248    make[2]: *** [src/LinAlg/CMakeFiles/hiopLinAlg.dir/build.make:373: src/LinAlg/CMakeFiles/hiopLinAlg.dir/hiopVectorIntRaja.cpp.o] Error 1
     249    make[2]: *** Waiting for unfinished jobs....
  >> 250    make[2]: *** [src/LinAlg/CMakeFiles/hiopLinAlg.dir/build.make:359: src/LinAlg/CMakeFiles/hiopLinAlg.dir/hiopVectorRajaPar.cpp.o] Error 1
  >> 251    make[2]: *** [src/LinAlg/CMakeFiles/hiopLinAlg.dir/build.make:401: src/LinAlg/CMakeFiles/hiopLinAlg.dir/hiopMatrixRajaSparseTriplet.cpp.o] Error 1
  >> 252    make[2]: *** [src/LinAlg/CMakeFiles/hiopLinAlg.dir/build.make:387: src/LinAlg/CMakeFiles/hiopLinAlg.dir/hiopMatrixRajaDense.cpp.o] Error 1
     253    /tmp/litz372/spack-stage/spack-stage-hiop-develop-emjzcpme6d5u4nk2bwfrai534vvk5d5g/spack-src/src/LinAlg/hiopLinSolverSparseGinkgo.cpp: In function 'std::shared_ptr<gko::matrix::Csr<double, int> > hiop
            ::{anonymous}::transferTripletToCSR(std::shared_ptr<gko::Executor>, int, hiop::hiopMatrixSparse*, int**, int**)':
     254    /tmp/litz372/spack-stage/spack-stage-hiop-develop-emjzcpme6d5u4nk2bwfrai534vvk5d5g/spack-src/src/LinAlg/hiopLinSolverSparseGinkgo.cpp:175:42: warning: 'using Array = class gko::array<double>' is depre
            cated: please use array [-Wdeprecated-declarations]
     255      175 |     auto val_array = gko::Array<double>::view(exec, nnz_, kVal_);
     256          |                                          ^~~~
     257    In file included from /qfs/projects/exasgd/src/jaelyn-spack/spack/opt/spack/linux-centos8-power9le/gcc-10.2.0/ginkgo-glu_experimental-j5uhuhtwey37ash7ga2i4tt6ygsvrqbv/include/ginkgo/ginkgo.hpp:41,
     258                     from /tmp/litz372/spack-stage/spack-stage-hiop-develop-emjzcpme6d5u4nk2bwfrai534vvk5d5g/spack-src/src/LinAlg/hiopLinSolverSparseGinkgo.hpp:55,

     ...

     373          |                                                                          ^~
     374    /tmp/litz372/spack-stage/spack-stage-hiop-develop-emjzcpme6d5u4nk2bwfrai534vvk5d5g/spack-src/tpl/eigen/Eigen/src/Core/PlainObjectBase.h(426): warning: calling a __host__ function("Eigen::internal::con
            servative_resize_like_impl< ::Eigen::Matrix<int, (int)-1, (int)1, (int)0, (int)-1, (int)1> ,  ::Eigen::Matrix<int, (int)-1, (int)1, (int)0, (int)-1, (int)1> , (bool)1> ::run( ::Eigen::DenseBase< ::Eig
            en::Matrix<int, (int)-1, (int)1, (int)0, (int)-1, (int)1> >  &, long)") from a __host__ __device__ function("Eigen::PlainObjectBase< ::Eigen::Matrix<int, (int)-1, (int)1, (int)0, (int)-1, (int)1> > ::
            conservativeResize") is not allowed
     375
     376    /tmp/litz372/spack-stage/spack-stage-hiop-develop-emjzcpme6d5u4nk2bwfrai534vvk5d5g/spack-src/tpl/eigen/Eigen/src/Core/AssignEvaluator.h(890): warning: calling a __host__ function("void Eigen::internal
            ::Assignment< ::Eigen::SparseMatrix<double, (int)0, int> ,  ::Eigen::SparseSelfAdjointView< ::Eigen::Map< ::Eigen::SparseMatrix<double, (int)1, int> , (int)0,  ::Eigen::Stride<(int)0, (int)0> > , (uns
            igned int)2u> ,  ::Eigen::internal::assign_op<double, double> ,  ::Eigen::internal::SparseSelfAdjoint2Sparse, void> ::run<double, (int)0> ( ::Eigen::SparseMatrix<T1, T2, int>  &, const  ::Eigen::Spars
            eSelfAdjointView< ::Eigen::Map< ::Eigen::SparseMatrix<double, (int)1, int> , (int)0,  ::Eigen::Stride<(int)0, (int)0> > , (unsigned int)2u>  &, const  ::Eigen::internal::assign_op<double, double>  &)"
            ) from a __host__ __device__ function("Eigen::internal::call_assignment_no_alias< ::Eigen::SparseMatrix<double, (int)0, int> ,  ::Eigen::SparseSelfAdjointView< ::Eigen::Map< ::Eigen::SparseMatrix<doub
            le, (int)1, int> , (int)0,  ::Eigen::Stride<(int)0, (int)0> > , (unsigned int)2u> ,  ::Eigen::internal::assign_op<double, double> > ") is not allowed
     377
     378    make[2]: Leaving directory '/tmp/litz372/spack-stage/spack-stage-hiop-develop-emjzcpme6d5u4nk2bwfrai534vvk5d5g/spack-build-emjzcpm'
  >> 379    make[1]: *** [CMakeFiles/Makefile2:462: src/Utils/CMakeFiles/hiopUtils.dir/all] Error 2
     380    make[1]: *** Waiting for unfinished jobs....
     381    make[2]: Leaving directory '/tmp/litz372/spack-stage/spack-stage-hiop-develop-emjzcpme6d5u4nk2bwfrai534vvk5d5g/spack-build-emjzcpm'
     382    [ 36%] Built target hiopOptimization
     383    make[2]: Leaving directory '/tmp/litz372/spack-stage/spack-stage-hiop-develop-emjzcpme6d5u4nk2bwfrai534vvk5d5g/spack-build-emjzcpm'
  >> 384    make[1]: *** [CMakeFiles/Makefile2:436: src/LinAlg/CMakeFiles/hiopLinAlg.dir/all] Error 2
     385    make[1]: Leaving directory '/tmp/litz372/spack-stage/spack-stage-hiop-develop-emjzcpme6d5u4nk2bwfrai534vvk5d5g/spack-build-emjzcpm'
  >> 386    make: *** [Makefile:149: all] Error 2

@cameronrutherford
Copy link
Author

Thanks for debugging this @jaelynlitz. We can probably disable OpenMP to avoid this issue for the moment, but I think this is worth debugging.

We tried to debug the OpenMP compatibility with our compiler by looking at docs here, but struggled to interpret what version we should use.

It is also unclear through spack and this build configuration what version of OpenMP we are pulling in in the first place.

@rhornung67
Copy link
Member

When CMake is invoked, is ENABLE_OPENMP (no RAJA_ prefix) being set to on?

@jaelynlitz
Copy link

@rhornung67 How do I check for that? I don't see it at hiop's cmake level

@rhornung67
Copy link
Member

This may be a red herring, but I thought it may spark a thought. It looks like ENABLE_OPENMP must be on for RAJA_ENABLE_OPENMP to be on since RAJA_ENABLE_OPENMP is a CMake dependent option in RAJA. It doesn't make sense to me that gcc would not support OpenMP, or at least define the variable _OPENMP when OpenMP is enabled, which is standard. The logic here indicates that _OPENMP is not defined https://github.com/LLNL/RAJA/blob/develop/include/RAJA/config.hpp.in#L244

@trws
Copy link
Member

trws commented Sep 7, 2022

I'm not sure if it will be helpful or harmful for this issue, but the target export setup and various issues around it have been substantially reworked in the most recent releases of camp and umpire, and on develop in RAJA. It may be worth trying with those, and if you are using spack ensuring that you use the packages for those three from the most recent develop version of spack, to see if the rework helped or not.

For the OpenMP issue, what compiler and version is this with? It's extremely strange that the build would be able to get to that error, since cmake should have prevented it before that point, unless it's happening in a project including RAJA that is building without the OpenMP flags somehow.

@jaelynlitz
Copy link

I updated spack to grab raja@develop, [email protected], and [email protected] and am still running into the issue. I've tested with compilers gcc8.5.0 and gcc10.2.0 with no change - but I cannot find what version of OpenMP is being used.

Error output below the cut for reference:

==> Concretized hiop@develop%[email protected]+cuda+cusolver+deepchecking+ginkgo+kron+raja+sparse cuda_arch=70
 -   vkxoluk  hiop@develop%[email protected]+cuda+cusolver+deepchecking+ginkgo~ipo~jsrun+kron+mpi+raja~rocm~shared+sparse build_type=RelWithDebInfo cuda_arch=70 arch=linux-centos8-power9le
[+]  5uhwz7q      ^[email protected]%[email protected]~doc+ncurses+ownlibs~qt build_type=Release arch=linux-centos8-power9le
[+]  x6wslq2          ^[email protected]%[email protected]~symlinks+termlib abi=none arch=linux-centos8-power9le
[+]  pq7cbnq              ^gnuconfig@2021-08-14%[email protected] arch=linux-centos8-power9le
[+]  n2uh26l              ^[email protected]%[email protected] arch=linux-centos8-power9le
[+]  ci34ed5          ^[email protected]%[email protected]~docs~shared certs=mozilla patches=3fdcf2d arch=linux-centos8-power9le
[+]  cngx5yn              ^ca-certificates-mozilla@2022-07-19%[email protected] arch=linux-centos8-power9le
[+]  7tghirv              ^[email protected]%[email protected]+cpanm+shared+threads arch=linux-centos8-power9le
[+]  alfnqrz                  ^[email protected]%[email protected]+cxx~docs+stl patches=b231fcc arch=linux-centos8-power9le
[+]  hkubsqk                  ^[email protected]%[email protected]~debug~pic+shared arch=linux-centos8-power9le
[+]  uu2rxfr                      ^[email protected]%[email protected] arch=linux-centos8-power9le
[+]  ei5rnaf                          ^[email protected]%[email protected] libs=shared,static arch=linux-centos8-power9le
[+]  amhq5ld                  ^[email protected]%[email protected] arch=linux-centos8-power9le
[+]  tmnpoph                      ^[email protected]%[email protected] arch=linux-centos8-power9le
[+]  lairw4s                  ^[email protected]%[email protected]+optimize+pic+shared patches=0d38234 arch=linux-centos8-power9le
[+]  4g6hpo3      ^[email protected]%[email protected]+blas arch=linux-centos8-power9le
[+]  aqu2khp          ^[email protected]%[email protected]~bignuma~consistent_fpcsr~ilp64+locking+pic+shared symbol_suffix=none threads=none arch=linux-centos8-power9le
[+]  3g2l7iy      ^[email protected]%[email protected]~allow-unsupported-compilers~dev arch=linux-centos8-power9le
[+]  j5uhuht      ^ginkgo@glu_experimental%[email protected]+cuda~develtools~full_optimizations~hwloc~ipo~oneapi+openmp~rocm+shared build_type=Release cuda_arch=70 arch=linux-centos8-power9le
[+]  r5aqzf7      ^[email protected]%[email protected]+cuda+fortran~ipo~rocm+shared build_type=RelWithDebInfo cuda_arch=70 arch=linux-centos8-power9le
[+]  xwpjsqk      ^[email protected]%[email protected]~gdb~int64~real64+shared build_type=Release patches=4991da9,b1225da arch=linux-centos8-power9le
[+]  7dbrb4c      ^[email protected]%[email protected]~atomics+cuda~cxx~cxx_exceptions~gpfs~internal-hwloc~java~legacylaunchers~lustre~memchecker+romio+rsh~singularity+static+vt+wrapper-rpath cuda_arch=none fabrics=none schedulers=none arch=linux-centos8-power9le
[+]  7hit2xf      ^raja@develop%[email protected]+cuda~enable_blt_export+examples+exercises~ipo+openmp~rocm+shared~tests build_type=RelWithDebInfo cuda_arch=70 arch=linux-centos8-power9le
[+]  zxsdyft          ^[email protected]%[email protected] arch=linux-centos8-power9le
[+]  xdhlq45          ^camp@main%[email protected]+cuda~ipo~rocm~tests build_type=RelWithDebInfo cuda_arch=70 arch=linux-centos8-power9le
[+]  ckaaip3              ^[email protected]%[email protected] arch=linux-centos8-power9le
[+]  xf4cspj      ^[email protected]%[email protected]~cuda~graphblas~openmp+pic~tbb arch=linux-centos8-power9le
[+]  oyjx6bm          ^[email protected]%[email protected] libs=shared,static arch=linux-centos8-power9le
[+]  5musg74              ^[email protected]%[email protected] patches=35c4492,7793209,a49dd5b arch=linux-centos8-power9le
[+]  ypvbhca                  ^[email protected]%[email protected]+sigsegv patches=9dc5fbd,bfdffa7 arch=linux-centos8-power9le
[+]  ndiphp5                      ^[email protected]%[email protected] arch=linux-centos8-power9le
[+]  risyxq5              ^[email protected]%[email protected] arch=linux-centos8-power9le
[+]  g3p6oh2              ^[email protected]%[email protected] arch=linux-centos8-power9le
[+]  xmffy4h          ^[email protected]%[email protected] libs=shared,static arch=linux-centos8-power9le
[+]  uztmion              ^[email protected]%[email protected] patches=139214f arch=linux-centos8-power9le
[+]  oegakup              ^[email protected]%[email protected] patches=12f6edb,1732115 arch=linux-centos8-power9le
[+]  bqcwhkg      ^[email protected]%[email protected]+c+cuda+device_alloc~deviceconst+examples~fortran~ipo~numa~openmp~rocm~shared build_type=RelWithDebInfo cuda_arch=70 tests=none arch=linux-centos8-power9le
==> Concretized raja@develop%[email protected]+cuda~enable_blt_export+openmp
[+]  fthypbn  raja@develop%[email protected]+cuda~enable_blt_export+examples+exercises~ipo+openmp~rocm+shared~tests build_type=RelWithDebInfo cuda_arch=none arch=linux-centos8-power9le
[+]  zxsdyft      ^[email protected]%[email protected] arch=linux-centos8-power9le
[+]  5uhwz7q          ^[email protected]%[email protected]~doc+ncurses+ownlibs~qt build_type=Release arch=linux-centos8-power9le
[+]  x6wslq2              ^[email protected]%[email protected]~symlinks+termlib abi=none arch=linux-centos8-power9le
[+]  pq7cbnq                  ^gnuconfig@2021-08-14%[email protected] arch=linux-centos8-power9le
[+]  n2uh26l                  ^[email protected]%[email protected] arch=linux-centos8-power9le
[+]  ci34ed5              ^[email protected]%[email protected]~docs~shared certs=mozilla patches=3fdcf2d arch=linux-centos8-power9le
[+]  cngx5yn                  ^ca-certificates-mozilla@2022-07-19%[email protected] arch=linux-centos8-power9le
[+]  7tghirv                  ^[email protected]%[email protected]+cpanm+shared+threads arch=linux-centos8-power9le
[+]  alfnqrz                      ^[email protected]%[email protected]+cxx~docs+stl patches=b231fcc arch=linux-centos8-power9le
[+]  hkubsqk                      ^[email protected]%[email protected]~debug~pic+shared arch=linux-centos8-power9le
[+]  uu2rxfr                          ^[email protected]%[email protected] arch=linux-centos8-power9le
[+]  ei5rnaf                              ^[email protected]%[email protected] libs=shared,static arch=linux-centos8-power9le
[+]  amhq5ld                      ^[email protected]%[email protected] arch=linux-centos8-power9le
[+]  tmnpoph                          ^[email protected]%[email protected] arch=linux-centos8-power9le
[+]  lairw4s                      ^[email protected]%[email protected]+optimize+pic+shared patches=0d38234 arch=linux-centos8-power9le
[+]  pfwgxhl      ^camp@main%[email protected]+cuda~ipo~rocm~tests build_type=RelWithDebInfo cuda_arch=none arch=linux-centos8-power9le
[+]  ckaaip3          ^[email protected]%[email protected] arch=linux-centos8-power9le
[+]  3g2l7iy          ^[email protected]%[email protected]~allow-unsupported-compilers~dev arch=linux-centos8-power9le

...

==> Installing hiop-develop-vkxolukt2jctmhsxnusvr36as77czm6v
==> No binary for hiop-develop-vkxolukt2jctmhsxnusvr36as77czm6v found: installing from source
==> No patches needed for hiop
==> hiop: Executing phase: 'cmake'
==> hiop: Executing phase: 'build'
==> Error: ProcessError: Command exited with status 2:
    'make' '-j64'
13 errors found in build log:
     215    cd /tmp/litz372/spack-stage/spack-stage-hiop-develop-vkxolukt2jctmhsxnusvr36as77czm6v/spack-build-vkxoluk/src/LinAlg && /share/apps/cuda/11.4/bin/nvcc -forwa
            rd-unknown-to-host-compiler -ccbin=/share/apps/gcc/10.2.0/bin/g++ -DCAMP_HAVE_CUDA -I/tmp/litz372/spack-stage/spack-stage-hiop-develop-vkxolukt2jctmhsxnusvr3
            6as77czm6v/spack-src/tpl/eigen -I/tmp/litz372/spack-stage/spack-stage-hiop-develop-vkxolukt2jctmhsxnusvr36as77czm6v/spack-build-vkxoluk -I/tmp/litz372/spack-
            stage/spack-stage-hiop-develop-vkxolukt2jctmhsxnusvr36as77czm6v/spack-src/src/Interface -I/tmp/litz372/spack-stage/spack-stage-hiop-develop-vkxolukt2jctmhsxn
            usvr36as77czm6v/spack-src/src/Optimization -I/tmp/litz372/spack-stage/spack-stage-hiop-develop-vkxolukt2jctmhsxnusvr36as77czm6v/spack-src/src/LinAlg -I/tmp/l
            itz372/spack-stage/spack-stage-hiop-develop-vkxolukt2jctmhsxnusvr36as77czm6v/spack-src/src/Utils -I/tmp/litz372/spack-stage/spack-stage-hiop-develop-vkxolukt
            2jctmhsxnusvr36as77czm6v/spack-src/src/_Internals -I/qfs/projects/exasgd/src/jaelyn-spack/spack/opt/spack/linux-centos8-power9le/gcc-10.2.0/magma-2.6.2-r5aqz
            f7jljbynhqspm5sx6qdcn5pmwjk/include -I/qfs/projects/exasgd/src/jaelyn-spack/spack/opt/spack/linux-centos8-power9le/gcc-10.2.0/suite-sparse-5.10.1-xf4cspjtnyq
            2ggzqsxtaoszmr63guhhr/include -I/qfs/projects/exasgd/src/jaelyn-spack/spack/opt/spack/linux-centos8-power9le/gcc-10.2.0/metis-5.1.0-xwpjsqkotvvcbrm36amq5jg3j
            nihwmdm/include -I/qfs/projects/exasgd/src/jaelyn-spack/spack/opt/spack/linux-centos8-power9le/gcc-10.2.0/coinhsl-2015.06.23-4g6hpo3tyx6ye247hl25hbgn4ao23zbk
            /include -isystem=/qfs/projects/ops/rh8p9/openmpi/4.1.4/gcc/10.2.0/include -isystem=/share/apps/openmpi/4.1.4/gcc/10.2.0/include -isystem=/share/apps/cuda/11
            .4/include -isystem=/qfs/projects/exasgd/src/jaelyn-spack/spack/opt/spack/linux-centos8-power9le/gcc-10.2.0/camp-main-xdhlq45axij33eaos2tpuk2vwyhc3bqj/includ
            e -isystem=/qfs/projects/exasgd/src/jaelyn-spack/spack/opt/spack/linux-centos8-power9le/gcc-10.2.0/umpire-2022.03.1-bqcwhkg77y6fmd6tmuk4msyk457mx2gy/include
            -isystem=/qfs/projects/exasgd/src/jaelyn-spack/spack/opt/spack/linux-centos8-power9le/gcc-10.2.0/raja-develop-7hit2xfsyp5m2dbh3bvloocakn3z76ww/include -isyst
            em=/qfs/projects/exasgd/src/jaelyn-spack/spack/opt/spack/linux-centos8-power9le/gcc-10.2.0/cub-1.16.0-ckaaip3lazkpt3jxqyqrgeceu2xlwe42/include -isystem=/qfs/
            projects/exasgd/src/jaelyn-spack/spack/opt/spack/linux-centos8-power9le/gcc-10.2.0/ginkgo-glu_experimental-j5uhuhtwey37ash7ga2i4tt6ygsvrqbv/include --expt-ex
            tended-lambda --expt-relaxed-constexpr -O2 -g -DNDEBUG --generate-code=arch=compute_70,code=[compute_70,sm_70] -Xcompiler=-fPIC -Xcompiler -pthread -std=c++1
            4 -MD -MT src/LinAlg/CMakeFiles/hiopLinAlg.dir/hiopVectorIntRaja.cpp.o -MF CMakeFiles/hiopLinAlg.dir/hiopVectorIntRaja.cpp.o.d -x cu -rdc=true -c /tmp/litz37
            2/spack-stage/spack-stage-hiop-develop-vkxolukt2jctmhsxnusvr36as77czm6v/spack-src/src/LinAlg/hiopVectorIntRaja.cpp -o CMakeFiles/hiopLinAlg.dir/hiopVectorInt
            Raja.cpp.o
     216    cd /tmp/litz372/spack-stage/spack-stage-hiop-develop-vkxolukt2jctmhsxnusvr36as77czm6v/spack-build-vkxoluk/src/LinAlg && /share/apps/cuda/11.4/bin/nvcc -forwa
            rd-unknown-to-host-compiler -ccbin=/share/apps/gcc/10.2.0/bin/g++ -DCAMP_HAVE_CUDA -I/tmp/litz372/spack-stage/spack-stage-hiop-develop-vkxolukt2jctmhsxnusvr3
            6as77czm6v/spack-src/tpl/eigen -I/tmp/litz372/spack-stage/spack-stage-hiop-develop-vkxolukt2jctmhsxnusvr36as77czm6v/spack-build-vkxoluk -I/tmp/litz372/spack-
            stage/spack-stage-hiop-develop-vkxolukt2jctmhsxnusvr36as77czm6v/spack-src/src/Interface -I/tmp/litz372/spack-stage/spack-stage-hiop-develop-vkxolukt2jctmhsxn
            usvr36as77czm6v/spack-src/src/Optimization -I/tmp/litz372/spack-stage/spack-stage-hiop-develop-vkxolukt2jctmhsxnusvr36as77czm6v/spack-src/src/LinAlg -I/tmp/l
            itz372/spack-stage/spack-stage-hiop-develop-vkxolukt2jctmhsxnusvr36as77czm6v/spack-src/src/Utils -I/tmp/litz372/spack-stage/spack-stage-hiop-develop-vkxolukt
            2jctmhsxnusvr36as77czm6v/spack-src/src/_Internals -I/qfs/projects/exasgd/src/jaelyn-spack/spack/opt/spack/linux-centos8-power9le/gcc-10.2.0/magma-2.6.2-r5aqz
            f7jljbynhqspm5sx6qdcn5pmwjk/include -I/qfs/projects/exasgd/src/jaelyn-spack/spack/opt/spack/linux-centos8-power9le/gcc-10.2.0/suite-sparse-5.10.1-xf4cspjtnyq
            2ggzqsxtaoszmr63guhhr/include -I/qfs/projects/exasgd/src/jaelyn-spack/spack/opt/spack/linux-centos8-power9le/gcc-10.2.0/metis-5.1.0-xwpjsqkotvvcbrm36amq5jg3j
            nihwmdm/include -I/qfs/projects/exasgd/src/jaelyn-spack/spack/opt/spack/linux-centos8-power9le/gcc-10.2.0/coinhsl-2015.06.23-4g6hpo3tyx6ye247hl25hbgn4ao23zbk
            /include -isystem=/qfs/projects/ops/rh8p9/openmpi/4.1.4/gcc/10.2.0/include -isystem=/share/apps/openmpi/4.1.4/gcc/10.2.0/include -isystem=/share/apps/cuda/11
            .4/include -isystem=/qfs/projects/exasgd/src/jaelyn-spack/spack/opt/spack/linux-centos8-power9le/gcc-10.2.0/camp-main-xdhlq45axij33eaos2tpuk2vwyhc3bqj/includ
            e -isystem=/qfs/projects/exasgd/src/jaelyn-spack/spack/opt/spack/linux-centos8-power9le/gcc-10.2.0/umpire-2022.03.1-bqcwhkg77y6fmd6tmuk4msyk457mx2gy/include
            -isystem=/qfs/projects/exasgd/src/jaelyn-spack/spack/opt/spack/linux-centos8-power9le/gcc-10.2.0/raja-develop-7hit2xfsyp5m2dbh3bvloocakn3z76ww/include -isyst
            em=/qfs/projects/exasgd/src/jaelyn-spack/spack/opt/spack/linux-centos8-power9le/gcc-10.2.0/cub-1.16.0-ckaaip3lazkpt3jxqyqrgeceu2xlwe42/include -isystem=/qfs/
            projects/exasgd/src/jaelyn-spack/spack/opt/spack/linux-centos8-power9le/gcc-10.2.0/ginkgo-glu_experimental-j5uhuhtwey37ash7ga2i4tt6ygsvrqbv/include --expt-ex
            tended-lambda --expt-relaxed-constexpr -O2 -g -DNDEBUG --generate-code=arch=compute_70,code=[compute_70,sm_70] -Xcompiler=-fPIC -Xcompiler -pthread -std=c++1
            4 -MD -MT src/LinAlg/CMakeFiles/hiopLinAlg.dir/hiopMatrixRajaSparseTriplet.cpp.o -MF CMakeFiles/hiopLinAlg.dir/hiopMatrixRajaSparseTriplet.cpp.o.d -x cu -rdc
            =true -c /tmp/litz372/spack-stage/spack-stage-hiop-develop-vkxolukt2jctmhsxnusvr36as77czm6v/spack-src/src/LinAlg/hiopMatrixRajaSparseTriplet.cpp -o CMakeFile
            s/hiopLinAlg.dir/hiopMatrixRajaSparseTriplet.cpp.o
     217    cd /tmp/litz372/spack-stage/spack-stage-hiop-develop-vkxolukt2jctmhsxnusvr36as77czm6v/spack-build-vkxoluk/src/LinAlg && /qfs/projects/exasgd/src/jaelyn-spack
            /spack/lib/spack/env/gcc/g++ -DCAMP_HAVE_CUDA -I/tmp/litz372/spack-stage/spack-stage-hiop-develop-vkxolukt2jctmhsxnusvr36as77czm6v/spack-src/tpl/eigen -I/tmp
            /litz372/spack-stage/spack-stage-hiop-develop-vkxolukt2jctmhsxnusvr36as77czm6v/spack-build-vkxoluk -I/tmp/litz372/spack-stage/spack-stage-hiop-develop-vkxolu
            kt2jctmhsxnusvr36as77czm6v/spack-src/src/Interface -I/tmp/litz372/spack-stage/spack-stage-hiop-develop-vkxolukt2jctmhsxnusvr36as77czm6v/spack-src/src/Optimiz
            ation -I/tmp/litz372/spack-stage/spack-stage-hiop-develop-vkxolukt2jctmhsxnusvr36as77czm6v/spack-src/src/LinAlg -I/tmp/litz372/spack-stage/spack-stage-hiop-d
            evelop-vkxolukt2jctmhsxnusvr36as77czm6v/spack-src/src/Utils -I/tmp/litz372/spack-stage/spack-stage-hiop-develop-vkxolukt2jctmhsxnusvr36as77czm6v/spack-src/sr
            c/_Internals -I/qfs/projects/exasgd/src/jaelyn-spack/spack/opt/spack/linux-centos8-power9le/gcc-10.2.0/magma-2.6.2-r5aqzf7jljbynhqspm5sx6qdcn5pmwjk/include -
            I/qfs/projects/exasgd/src/jaelyn-spack/spack/opt/spack/linux-centos8-power9le/gcc-10.2.0/suite-sparse-5.10.1-xf4cspjtnyq2ggzqsxtaoszmr63guhhr/include -I/qfs/
            projects/exasgd/src/jaelyn-spack/spack/opt/spack/linux-centos8-power9le/gcc-10.2.0/metis-5.1.0-xwpjsqkotvvcbrm36amq5jg3jnihwmdm/include -I/qfs/projects/exasg
            d/src/jaelyn-spack/spack/opt/spack/linux-centos8-power9le/gcc-10.2.0/coinhsl-2015.06.23-4g6hpo3tyx6ye247hl25hbgn4ao23zbk/include -isystem /qfs/projects/ops/r
            h8p9/openmpi/4.1.4/gcc/10.2.0/include -isystem /share/apps/openmpi/4.1.4/gcc/10.2.0/include -isystem /share/apps/cuda/11.4/include -isystem /qfs/projects/exa
            sgd/src/jaelyn-spack/spack/opt/spack/linux-centos8-power9le/gcc-10.2.0/camp-main-xdhlq45axij33eaos2tpuk2vwyhc3bqj/include -isystem /qfs/projects/exasgd/src/j
            aelyn-spack/spack/opt/spack/linux-centos8-power9le/gcc-10.2.0/umpire-2022.03.1-bqcwhkg77y6fmd6tmuk4msyk457mx2gy/include -isystem /qfs/projects/exasgd/src/jae
            lyn-spack/spack/opt/spack/linux-centos8-power9le/gcc-10.2.0/raja-develop-7hit2xfsyp5m2dbh3bvloocakn3z76ww/include -isystem /qfs/projects/exasgd/src/jaelyn-sp
            ack/spack/opt/spack/linux-centos8-power9le/gcc-10.2.0/cub-1.16.0-ckaaip3lazkpt3jxqyqrgeceu2xlwe42/include -isystem /qfs/projects/exasgd/src/jaelyn-spack/spac
            k/opt/spack/linux-centos8-power9le/gcc-10.2.0/ginkgo-glu_experimental-j5uhuhtwey37ash7ga2i4tt6ygsvrqbv/include -O2 -g -DNDEBUG -fPIC -pthread -fopenmp -std=g
            nu++14 -MD -MT src/LinAlg/CMakeFiles/hiopLinAlg.dir/hiopLinSolverSymDenseMagma.cpp.o -MF CMakeFiles/hiopLinAlg.dir/hiopLinSolverSymDenseMagma.cpp.o.d -o CMak
            eFiles/hiopLinAlg.dir/hiopLinSolverSymDenseMagma.cpp.o -c /tmp/litz372/spack-stage/spack-stage-hiop-develop-vkxolukt2jctmhsxnusvr36as77czm6v/spack-src/src/Li
            nAlg/hiopLinSolverSymDenseMagma.cpp
     218    cd /tmp/litz372/spack-stage/spack-stage-hiop-develop-vkxolukt2jctmhsxnusvr36as77czm6v/spack-build-vkxoluk/src/LinAlg && /qfs/projects/exasgd/src/jaelyn-spack
            /spack/lib/spack/env/gcc/g++ -DCAMP_HAVE_CUDA -I/tmp/litz372/spack-stage/spack-stage-hiop-develop-vkxolukt2jctmhsxnusvr36as77czm6v/spack-src/tpl/eigen -I/tmp
            /litz372/spack-stage/spack-stage-hiop-develop-vkxolukt2jctmhsxnusvr36as77czm6v/spack-build-vkxoluk -I/tmp/litz372/spack-stage/spack-stage-hiop-develop-vkxolu
            kt2jctmhsxnusvr36as77czm6v/spack-src/src/Interface -I/tmp/litz372/spack-stage/spack-stage-hiop-develop-vkxolukt2jctmhsxnusvr36as77czm6v/spack-src/src/Optimiz
            ation -I/tmp/litz372/spack-stage/spack-stage-hiop-develop-vkxolukt2jctmhsxnusvr36as77czm6v/spack-src/src/LinAlg -I/tmp/litz372/spack-stage/spack-stage-hiop-d
            evelop-vkxolukt2jctmhsxnusvr36as77czm6v/spack-src/src/Utils -I/tmp/litz372/spack-stage/spack-stage-hiop-develop-vkxolukt2jctmhsxnusvr36as77czm6v/spack-src/sr
            c/_Internals -I/qfs/projects/exasgd/src/jaelyn-spack/spack/opt/spack/linux-centos8-power9le/gcc-10.2.0/magma-2.6.2-r5aqzf7jljbynhqspm5sx6qdcn5pmwjk/include -
            I/qfs/projects/exasgd/src/jaelyn-spack/spack/opt/spack/linux-centos8-power9le/gcc-10.2.0/suite-sparse-5.10.1-xf4cspjtnyq2ggzqsxtaoszmr63guhhr/include -I/qfs/
            projects/exasgd/src/jaelyn-spack/spack/opt/spack/linux-centos8-power9le/gcc-10.2.0/metis-5.1.0-xwpjsqkotvvcbrm36amq5jg3jnihwmdm/include -I/qfs/projects/exasg
            d/src/jaelyn-spack/spack/opt/spack/linux-centos8-power9le/gcc-10.2.0/coinhsl-2015.06.23-4g6hpo3tyx6ye247hl25hbgn4ao23zbk/include -isystem /qfs/projects/ops/r
            h8p9/openmpi/4.1.4/gcc/10.2.0/include -isystem /share/apps/openmpi/4.1.4/gcc/10.2.0/include -isystem /share/apps/cuda/11.4/include -isystem /qfs/projects/exa
            sgd/src/jaelyn-spack/spack/opt/spack/linux-centos8-power9le/gcc-10.2.0/camp-main-xdhlq45axij33eaos2tpuk2vwyhc3bqj/include -isystem /qfs/projects/exasgd/src/j
            aelyn-spack/spack/opt/spack/linux-centos8-power9le/gcc-10.2.0/umpire-2022.03.1-bqcwhkg77y6fmd6tmuk4msyk457mx2gy/include -isystem /qfs/projects/exasgd/src/jae
            lyn-spack/spack/opt/spack/linux-centos8-power9le/gcc-10.2.0/raja-develop-7hit2xfsyp5m2dbh3bvloocakn3z76ww/include -isystem /qfs/projects/exasgd/src/jaelyn-sp
            ack/spack/opt/spack/linux-centos8-power9le/gcc-10.2.0/cub-1.16.0-ckaaip3lazkpt3jxqyqrgeceu2xlwe42/include -isystem /qfs/projects/exasgd/src/jaelyn-spack/spac
            k/opt/spack/linux-centos8-power9le/gcc-10.2.0/ginkgo-glu_experimental-j5uhuhtwey37ash7ga2i4tt6ygsvrqbv/include -O2 -g -DNDEBUG -fPIC -pthread -fopenmp -std=g
            nu++14 -MD -MT src/LinAlg/CMakeFiles/hiopLinAlg.dir/hiopLinSolverUMFPACKZ.cpp.o -MF CMakeFiles/hiopLinAlg.dir/hiopLinSolverUMFPACKZ.cpp.o.d -o CMakeFiles/hio
            pLinAlg.dir/hiopLinSolverUMFPACKZ.cpp.o -c /tmp/litz372/spack-stage/spack-stage-hiop-develop-vkxolukt2jctmhsxnusvr36as77czm6v/spack-src/src/LinAlg/hiopLinSol
            verUMFPACKZ.cpp
     219    In file included from /qfs/projects/exasgd/src/jaelyn-spack/spack/opt/spack/linux-centos8-power9le/gcc-10.2.0/raja-develop-7hit2xfsyp5m2dbh3bvloocakn3z76ww/i
            nclude/RAJA/RAJA.hpp:29,
     220                     from /tmp/litz372/spack-stage/spack-stage-hiop-develop-vkxolukt2jctmhsxnusvr36as77czm6v/spack-src/src/LinAlg/hiopMatrixRajaSparseTriplet.cpp
            :64:
  >> 221    /qfs/projects/exasgd/src/jaelyn-spack/spack/opt/spack/linux-centos8-power9le/gcc-10.2.0/raja-develop-7hit2xfsyp5m2dbh3bvloocakn3z76ww/include/RAJA/config.hpp
            :249:2: error: #error RAJA configured with RAJA_ENABLE_OPENMP, but OpenMP not supported by current compiler
     222      249 | #error RAJA configured with RAJA_ENABLE_OPENMP, but OpenMP not supported by current compiler
     223          |  ^~~~~
     224    In file included from /qfs/projects/exasgd/src/jaelyn-spack/spack/opt/spack/linux-centos8-power9le/gcc-10.2.0/raja-develop-7hit2xfsyp5m2dbh3bvloocakn3z76ww/i
            nclude/RAJA/RAJA.hpp:29,
     225                     from /tmp/litz372/spack-stage/spack-stage-hiop-develop-vkxolukt2jctmhsxnusvr36as77czm6v/spack-src/src/LinAlg/hiopVectorIntRaja.cpp:60:
  >> 226    /qfs/projects/exasgd/src/jaelyn-spack/spack/opt/spack/linux-centos8-power9le/gcc-10.2.0/raja-develop-7hit2xfsyp5m2dbh3bvloocakn3z76ww/include/RAJA/config.hpp
            :249:2: error: #error RAJA configured with RAJA_ENABLE_OPENMP, but OpenMP not supported by current compiler
     227      249 | #error RAJA configured with RAJA_ENABLE_OPENMP, but OpenMP not supported by current compiler
     228          |  ^~~~~

@cameronrutherford
Copy link
Author

I'm still noticing camp@main in your build, but apart from that, it looks like the same behaviour. Thankfully this isn't really a blocker for us, but frustrating that this is persisting with the newest versions.

I realize that the original issue has been resolved, but I think continuing discussion is reasonable.

@trws
Copy link
Member

trws commented Sep 8, 2022

This error should only come up when compiling an application without OpenMP against a RAJA that was built with OpenMP. I also notice the camp in that spec does not list a +openmp variant, which tells me you aren't using the version of the camp package from spack's develop branch, so camp isn't getting the correct flags to add the OpenMP target correctly to the output.

@pelesh
Copy link

pelesh commented Sep 22, 2022

Sorry, it took me long to test this. I cloned recursively RAJA repo and checked out the latest RAJA release. These are versions I got:

  • RAJA v2022.03.0
  • Camp (HEAD detached at 156b490)
  • BLT (HEAD detached at 296bf64)

I also used

  • CMake 3.21.3
  • CUDA 11.5.2

I built RAJA as a shared library with CUDA backend enabled and with BLT_EXPORT_THIRDPARTY=Off as @trws suggested. I did not enable OpenMP backend. All RAJA tests passed.

Turning off BLT exporting third party libraries helped me pass the CMake configuration for HiOp, but the "empty" flag -lcuda_runtime remained in the linking command and caused failure:

[ 37%] Built target hiopLinAlg
[ 38%] Linking CUDA device code CMakeFiles/hiop_shared.dir/cmake_device_link.o
[ 38%] Linking CXX shared library libhiop.so
/usr/bin/ld: cannot find -lcuda_runtime
collect2: error: ld returned 1 exit status

@cameronrutherford's brute force workaround to comment out any mentioning of cuda_runtime in campTargets.cmake that gets me to build HiOp with RAJA built as a shared library.

The target RAJA::cuda_runtime is empty, i.e. it contains no CUDA or other targets.

@pelesh
Copy link

pelesh commented Sep 23, 2022

The OpenMP issue @jaelynlitz found is unrelated to the forward compatibility with CMake 3.17, so I suggest we discuss it elsewhere.

@balos1
Copy link
Member

balos1 commented Sep 28, 2022

@pelesh We do not use blt in SUNDIALS, so we run into this issue of the target cuda_runtime not being around with [email protected] and [email protected] (this was not a problem with versions before 2022.x.x). For now, I am working around it by creating a target cuda_runtime after find_package(RAJA) (if the target does not exist, see here). I would think that targets that blt produces should get defined somewhere in the exported .cmake files by libraries that use blt (so libraries that do not use blt can find them), so I am hoping once blt refactors the CUDA support we won't need to do this anymore.

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

No branches or pull requests

6 participants