Skip to content

Forward Compatibility CUDA bug with CMake 3.17+ #110

Open

Description

@cameronrutherford

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 camp@2022.03.0 with RAJA@2022.03.0 and Umpire@2022.03.1, 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

Activity

  1. trws commented on Jul 1, 2022

    @trws
    Member

    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?

  2. cameronrutherford commented on Jul 1, 2022

    @cameronrutherford
    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.

  3. trws commented on Jul 1, 2022

    @trws
    Member
  4. rhornung67 commented on Jul 1, 2022

    @rhornung67
    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.

  5. trws commented on Jul 1, 2022

    @trws
    Member

    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.

  6. cameronrutherford commented on Jul 1, 2022

    @cameronrutherford
    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!

  7. rhornung67 commented on Jul 1, 2022

    @rhornung67
    Member

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

  8. trws commented on Jul 12, 2022

    @trws
    Member

    @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.

  9. jaelynlitz commented on Sep 6, 2022

    @jaelynlitz

    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("blt@0.5.0:", 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)

    Details
    [+]  g2wnmqi  ^raja@2022.03.0%gcc@10.2.0+cuda~enable_blt_export+examples+exercises~ipo+openmp~rocm+shared~tests build_type=RelWithDebInfo cuda_arch=70 arch=linux-centos8-power9le
    [+]  zxsdyft          ^blt@0.5.1%gcc@10.2.0 arch=linux-centos8-power9le
    [+]  kkcgbwm          ^camp@2022.03.0%gcc@10.2.0+cuda~ipo~rocm~tests build_type=RelWithDebInfo cuda_arch=70 arch=linux-centos8-power9le
    [+]  ckaaip3              ^cub@1.16.0%gcc@10.2.0 arch=linux-centos8-power9le
    [+]  xf4cspj      ^suite-sparse@5.10.1%gcc@10.2.0~cuda~graphblas~openmp+pic~tbb arch=linux-centos8-power9le
    [+]  oyjx6bm          ^gmp@6.2.1%gcc@10.2.0 libs=shared,static arch=linux-centos8-power9le
    [+]  5musg74              ^autoconf@2.69%gcc@10.2.0 patches=35c4492,7793209,a49dd5b arch=linux-centos8-power9le
    [+]  ypvbhca                  ^m4@1.4.19%gcc@10.2.0+sigsegv patches=9dc5fbd,bfdffa7 arch=linux-centos8-power9le
    [+]  ndiphp5                      ^libsigsegv@2.13%gcc@10.2.0 arch=linux-centos8-power9le
    [+]  risyxq5              ^automake@1.16.5%gcc@10.2.0 arch=linux-centos8-power9le
    [+]  g3p6oh2              ^libtool@2.4.7%gcc@10.2.0 arch=linux-centos8-power9le
    [+]  xmffy4h          ^mpfr@4.1.0%gcc@10.2.0 libs=shared,static arch=linux-centos8-power9le
    [+]  uztmion              ^autoconf-archive@2022.02.11%gcc@10.2.0 patches=139214f arch=linux-centos8-power9le
    [+]  oegakup              ^texinfo@6.5%gcc@10.2.0 patches=12f6edb,1732115 arch=linux-centos8-power9le
    [+]  4c6ggfn      ^umpire@2022.03.1%gcc@10.2.0+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
    
    
  10. cameronrutherford commented on Sep 6, 2022

    @cameronrutherford
    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.

  11. rhornung67 commented on Sep 6, 2022

    @rhornung67
    Member

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

  12. jaelynlitz commented on Sep 6, 2022

    @jaelynlitz

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

  13. rhornung67 commented on Sep 6, 2022

    @rhornung67
    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

  14. trws commented on Sep 7, 2022

    @trws
    Member

    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.

  15. jaelynlitz commented on Sep 8, 2022

    @jaelynlitz

    I updated spack to grab raja@develop, camp@2022.03.2, and umpire@2022.03.1 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:

    Details
    ==> Concretized hiop@develop%gcc@10.2.0+cuda+cusolver+deepchecking+ginkgo+kron+raja+sparse cuda_arch=70
     -   vkxoluk  hiop@develop%gcc@10.2.0+cuda+cusolver+deepchecking+ginkgo~ipo~jsrun+kron+mpi+raja~rocm~shared+sparse build_type=RelWithDebInfo cuda_arch=70 arch=linux-centos8-power9le
    [+]  5uhwz7q      ^cmake@3.23.3%gcc@10.2.0~doc+ncurses+ownlibs~qt build_type=Release arch=linux-centos8-power9le
    [+]  x6wslq2          ^ncurses@6.3%gcc@10.2.0~symlinks+termlib abi=none arch=linux-centos8-power9le
    [+]  pq7cbnq              ^gnuconfig@2021-08-14%gcc@10.2.0 arch=linux-centos8-power9le
    [+]  n2uh26l              ^pkgconf@1.8.0%gcc@10.2.0 arch=linux-centos8-power9le
    [+]  ci34ed5          ^openssl@1.1.1q%gcc@10.2.0~docs~shared certs=mozilla patches=3fdcf2d arch=linux-centos8-power9le
    [+]  cngx5yn              ^ca-certificates-mozilla@2022-07-19%gcc@10.2.0 arch=linux-centos8-power9le
    [+]  7tghirv              ^perl@5.34.1%gcc@10.2.0+cpanm+shared+threads arch=linux-centos8-power9le
    [+]  alfnqrz                  ^berkeley-db@18.1.40%gcc@10.2.0+cxx~docs+stl patches=b231fcc arch=linux-centos8-power9le
    [+]  hkubsqk                  ^bzip2@1.0.8%gcc@10.2.0~debug~pic+shared arch=linux-centos8-power9le
    [+]  uu2rxfr                      ^diffutils@3.8%gcc@10.2.0 arch=linux-centos8-power9le
    [+]  ei5rnaf                          ^libiconv@1.16%gcc@10.2.0 libs=shared,static arch=linux-centos8-power9le
    [+]  amhq5ld                  ^gdbm@1.19%gcc@10.2.0 arch=linux-centos8-power9le
    [+]  tmnpoph                      ^readline@8.1.2%gcc@10.2.0 arch=linux-centos8-power9le
    [+]  lairw4s                  ^zlib@1.2.12%gcc@10.2.0+optimize+pic+shared patches=0d38234 arch=linux-centos8-power9le
    [+]  4g6hpo3      ^coinhsl@2015.06.23%gcc@10.2.0+blas arch=linux-centos8-power9le
    [+]  aqu2khp          ^openblas@0.3.20%gcc@10.2.0~bignuma~consistent_fpcsr~ilp64+locking+pic+shared symbol_suffix=none threads=none arch=linux-centos8-power9le
    [+]  3g2l7iy      ^cuda@11.4%gcc@10.2.0~allow-unsupported-compilers~dev arch=linux-centos8-power9le
    [+]  j5uhuht      ^ginkgo@glu_experimental%gcc@10.2.0+cuda~develtools~full_optimizations~hwloc~ipo~oneapi+openmp~rocm+shared build_type=Release cuda_arch=70 arch=linux-centos8-power9le
    [+]  r5aqzf7      ^magma@2.6.2%gcc@10.2.0+cuda+fortran~ipo~rocm+shared build_type=RelWithDebInfo cuda_arch=70 arch=linux-centos8-power9le
    [+]  xwpjsqk      ^metis@5.1.0%gcc@10.2.0~gdb~int64~real64+shared build_type=Release patches=4991da9,b1225da arch=linux-centos8-power9le
    [+]  7dbrb4c      ^openmpi@4.1.4%gcc@10.2.0~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%gcc@10.2.0+cuda~enable_blt_export+examples+exercises~ipo+openmp~rocm+shared~tests build_type=RelWithDebInfo cuda_arch=70 arch=linux-centos8-power9le
    [+]  zxsdyft          ^blt@0.5.1%gcc@10.2.0 arch=linux-centos8-power9le
    [+]  xdhlq45          ^camp@main%gcc@10.2.0+cuda~ipo~rocm~tests build_type=RelWithDebInfo cuda_arch=70 arch=linux-centos8-power9le
    [+]  ckaaip3              ^cub@1.16.0%gcc@10.2.0 arch=linux-centos8-power9le
    [+]  xf4cspj      ^suite-sparse@5.10.1%gcc@10.2.0~cuda~graphblas~openmp+pic~tbb arch=linux-centos8-power9le
    [+]  oyjx6bm          ^gmp@6.2.1%gcc@10.2.0 libs=shared,static arch=linux-centos8-power9le
    [+]  5musg74              ^autoconf@2.69%gcc@10.2.0 patches=35c4492,7793209,a49dd5b arch=linux-centos8-power9le
    [+]  ypvbhca                  ^m4@1.4.19%gcc@10.2.0+sigsegv patches=9dc5fbd,bfdffa7 arch=linux-centos8-power9le
    [+]  ndiphp5                      ^libsigsegv@2.13%gcc@10.2.0 arch=linux-centos8-power9le
    [+]  risyxq5              ^automake@1.16.5%gcc@10.2.0 arch=linux-centos8-power9le
    [+]  g3p6oh2              ^libtool@2.4.7%gcc@10.2.0 arch=linux-centos8-power9le
    [+]  xmffy4h          ^mpfr@4.1.0%gcc@10.2.0 libs=shared,static arch=linux-centos8-power9le
    [+]  uztmion              ^autoconf-archive@2022.02.11%gcc@10.2.0 patches=139214f arch=linux-centos8-power9le
    [+]  oegakup              ^texinfo@6.5%gcc@10.2.0 patches=12f6edb,1732115 arch=linux-centos8-power9le
    [+]  bqcwhkg      ^umpire@2022.03.1%gcc@10.2.0+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%gcc@10.2.0+cuda~enable_blt_export+openmp
    [+]  fthypbn  raja@develop%gcc@10.2.0+cuda~enable_blt_export+examples+exercises~ipo+openmp~rocm+shared~tests build_type=RelWithDebInfo cuda_arch=none arch=linux-centos8-power9le
    [+]  zxsdyft      ^blt@0.5.1%gcc@10.2.0 arch=linux-centos8-power9le
    [+]  5uhwz7q          ^cmake@3.23.3%gcc@10.2.0~doc+ncurses+ownlibs~qt build_type=Release arch=linux-centos8-power9le
    [+]  x6wslq2              ^ncurses@6.3%gcc@10.2.0~symlinks+termlib abi=none arch=linux-centos8-power9le
    [+]  pq7cbnq                  ^gnuconfig@2021-08-14%gcc@10.2.0 arch=linux-centos8-power9le
    [+]  n2uh26l                  ^pkgconf@1.8.0%gcc@10.2.0 arch=linux-centos8-power9le
    [+]  ci34ed5              ^openssl@1.1.1q%gcc@10.2.0~docs~shared certs=mozilla patches=3fdcf2d arch=linux-centos8-power9le
    [+]  cngx5yn                  ^ca-certificates-mozilla@2022-07-19%gcc@10.2.0 arch=linux-centos8-power9le
    [+]  7tghirv                  ^perl@5.34.1%gcc@10.2.0+cpanm+shared+threads arch=linux-centos8-power9le
    [+]  alfnqrz                      ^berkeley-db@18.1.40%gcc@10.2.0+cxx~docs+stl patches=b231fcc arch=linux-centos8-power9le
    [+]  hkubsqk                      ^bzip2@1.0.8%gcc@10.2.0~debug~pic+shared arch=linux-centos8-power9le
    [+]  uu2rxfr                          ^diffutils@3.8%gcc@10.2.0 arch=linux-centos8-power9le
    [+]  ei5rnaf                              ^libiconv@1.16%gcc@10.2.0 libs=shared,static arch=linux-centos8-power9le
    [+]  amhq5ld                      ^gdbm@1.19%gcc@10.2.0 arch=linux-centos8-power9le
    [+]  tmnpoph                          ^readline@8.1.2%gcc@10.2.0 arch=linux-centos8-power9le
    [+]  lairw4s                      ^zlib@1.2.12%gcc@10.2.0+optimize+pic+shared patches=0d38234 arch=linux-centos8-power9le
    [+]  pfwgxhl      ^camp@main%gcc@10.2.0+cuda~ipo~rocm~tests build_type=RelWithDebInfo cuda_arch=none arch=linux-centos8-power9le
    [+]  ckaaip3          ^cub@1.16.0%gcc@10.2.0 arch=linux-centos8-power9le
    [+]  3g2l7iy          ^cuda@11.4%gcc@10.2.0~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          |  ^~~~~
    
  16. cameronrutherford commented on Sep 8, 2022

    @cameronrutherford
    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.

  17. trws commented on Sep 8, 2022

    @trws
    Member

    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.

  18. pelesh commented on Sep 22, 2022

    @pelesh

    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.

  19. pelesh commented on Sep 23, 2022

    @pelesh

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

  20. balos1 commented on Sep 28, 2022

    @balos1
    Member

    @pelesh We do not use blt in SUNDIALS, so we run into this issue of the target cuda_runtime not being around with camp@2022.03.2 and RAJA@2022.03.1 (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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions