Skip to content

Conversation

@rbberger
Copy link
Member

@rbberger rbberger commented Jan 5, 2026

Extracted from #1231 without explicit changes to the GASNet Spack package. We can get this one merged without waiting on GASNet changes. This one also defaults to using NVCC as cuda compiler. Not adding any released version, since there is only a RC tag at the moment.

@muraj @elliottslaughter

@rbberger rbberger force-pushed the new-package/realm-only branch from 2d02c3e to a0674ec Compare January 5, 2026 23:17
@elliottslaughter
Copy link
Contributor

Let us know when you want a deep review. In principle this should be fine, but I haven't spent any substantial time looking at the code yet.

@rbberger
Copy link
Member Author

rbberger commented Jan 7, 2026

@muraj @elliottslaughter I'm currently building about 56 different combinations of Realm to test out this branch, only 19 of which are currently passing with this branch: https://github.com/rbberger/realm/tree/kokkos_cmake_refactor.

Basically my branch puts the kokkos parts into their own subdirectory, creates a realm_kokkos.a and only uses the Kokkos compilation logic for that one. I have even less success with just main, which is why I'm exploring that option to make it independent of whether Kokkos was built with CMake language support or not. It's also a prerequisite for testing out kokkos/kokkos#8698.

I hope we can make some progress on this in the coming days/weeks. Part of the combinations might have to be excluded, protected against. Others are exposing various bugs or CMake problems. E.g., asserts are still broken with HIP.

It would be great if some part of this testing could become part of Realm/Legion regular testing, here is my current Spack environment file:

spack:
  specs:
  - matrix:
    - [realm]
    - [~openmp, +openmp]
    - [+cuda cuda_arch=86 +cuda_unsupported_compiler]
    - [+shared, ~shared]
    - ['%cxx=gcc', '%cxx=clang']
    - [~kokkos, +kokkos ^kokkos+wrapper~cmake_lang, +kokkos ^kokkos~wrapper~cmake_lang %cxx=clang, +kokkos ^kokkos+cmake_lang~wrapper %gcc, +kokkos ^kokkos+cmake_lang~wrapper %cxx=clang]
  - matrix:
    - [realm]
    - [~openmp, +openmp]
    - [+rocm amdgpu_target=gfx942]
    - [+shared, ~shared]
    - [~kokkos, +kokkos]
    - ['%cxx=gcc', '%cxx=clang']
  view: false
  concretizer:
    unify: false
  packages:
    realm:
      require:
        - "@git.kokkos_cmake_refactor=main"
      package_attributes:
        git: https://github.com/rbberger/realm.git
    llvm:
      require:
        - "@20"
      externals:
      - spec: [email protected]+clang+flang~lld~lldb
        prefix: /usr
        extra_attributes:
          compilers:
            c: /usr/bin/clang-20
            cxx: /usr/bin/clang++-20
            fortran: /usr/bin/flang-20
    llvm-amdgpu:
      externals:
      - spec: [email protected]
        prefix: /opt/rocm-6.4.3/lib/llvm
      buildable: false
  gcc:
    require:
      - "@13"
    externals:
    - spec: [email protected] languages:='c,c++,fortran'
      prefix: /usr
      extra_attributes:
        compilers:
          c: /usr/bin/gcc
          cxx: /usr/bin/g++
          fortran: /usr/bin/gfortran
    kokkos:
      require: '@4.7.02'
    kokkos-nvcc-wrapper:
      require: '@4.7.02'
    cmake:
      externals:
      - spec: [email protected]
        prefix: /usr
      buildable: false
    cuda:
      require:
      - '@12.8 +allow-unsupported-compilers'
      externals:
      - spec: [email protected] +allow-unsupported-compilers
        prefix: /usr/local/cuda-12.8
      buildable: false
    hip:
      version: [6.4.3]
      externals:
      - spec: [email protected]
        prefix: /opt/rocm-6.4.3
      buildable: false
    hsa-rocr-dev:
      externals:
      - spec: [email protected]
        prefix: /opt/rocm-6.4.3
      buildable: false
    rocsolver:
      externals:
      - spec: [email protected]
        prefix: /opt/rocm-6.4.3
      buildable: false
    rocblas:
      externals:
      - spec: [email protected]
        prefix: /opt/rocm-6.4.3
      buildable: false
    rocthrust:
      externals:
      - spec: [email protected]
        prefix: /opt/rocm-6.4.3
      buildable: false
    rocprim:
      externals:
      - spec: [email protected]
        prefix: /opt/rocm-6.4.3
      buildable: false
    rocsparse:
      externals:
      - spec: [email protected]
        prefix: /opt/rocm-6.4.3
      buildable: false
    rocrand:
      externals:
      - spec: [email protected]
        prefix: /opt/rocm-6.4.3
      buildable: false
    rocm-smi-lib:
      externals:
      - spec: [email protected]
        prefix: /opt/rocm-6.4.3
      buildable: false
    rocprofiler-dev:
      externals:
      - spec: [email protected]
        prefix: /opt/rocm-6.4.3
      buildable: false
    roctracer-dev:
      externals:
      - spec: [email protected]
        prefix: /opt/rocm-6.4.3
      buildable: false

@elliottslaughter
Copy link
Contributor

I just merged StanfordLegion/realm#384 which is working for me on Frontier and I believe should fix the HIP asserts.

Otherwise if there are code coverage changes we can apply directly in Realm CI, that would be welcome so that we can catch more of this upstream. Right now I'm running through a similar process with Legion to catch issues not captured in Realm's CI.

@rbberger
Copy link
Member Author

rbberger commented Jan 7, 2026

31/56
31/52 (removed non-functional ^kokkos +cmake_lang+openmp+cuda %cxx=clang cases)
36/42 (after removing bad compiler combos, and fixing hipcc issue)
40/44

@rbberger
Copy link
Member Author

rbberger commented Jan 9, 2026

@spackbot fix style

@spackbot-app
Copy link

spackbot-app bot commented Jan 9, 2026

Let me see if I can fix that for you!

@spackbot-app
Copy link

spackbot-app bot commented Jan 9, 2026

I was able to run spack style --fix for you!

spack style --fix
repos/spack_repo/builtin/packages/amdsmi/package.py
repos/spack_repo/builtin/packages/amrex/package.py
repos/spack_repo/builtin/packages/arkouda/package.py
repos/spack_repo/builtin/packages/asio/package.py
repos/spack_repo/builtin/packages/aws_ofi_nccl/package.py
repos/spack_repo/builtin/packages/bbmap/package.py
repos/spack_repo/builtin/packages/blast_plus/package.py
repos/spack_repo/builtin/packages/blt/package.py
repos/spack_repo/builtin/packages/boost/package.py
repos/spack_repo/builtin/packages/capstone/package.py
repos/spack_repo/builtin/packages/care/package.py
repos/spack_repo/builtin/packages/chai/package.py
repos/spack_repo/builtin/packages/cmake/package.py
repos/spack_repo/builtin/packages/comgr/package.py
repos/spack_repo/builtin/packages/composable_kernel/package.py
repos/spack_repo/builtin/packages/cp2k/package.py
repos/spack_repo/builtin/packages/curl/package.py
repos/spack_repo/builtin/packages/dd4hep/package.py
repos/spack_repo/builtin/packages/diffutils/package.py
repos/spack_repo/builtin/packages/edm4hep/package.py
repos/spack_repo/builtin/packages/esmf/package.py
repos/spack_repo/builtin/packages/fairmq/package.py
repos/spack_repo/builtin/packages/fenics_ufcx/package.py
repos/spack_repo/builtin/packages/fzf/package.py
repos/spack_repo/builtin/packages/glow/package.py
repos/spack_repo/builtin/packages/greenx/package.py
repos/spack_repo/builtin/packages/hdf_eos2/package.py
repos/spack_repo/builtin/packages/highfive/package.py
repos/spack_repo/builtin/packages/hip/package.py
repos/spack_repo/builtin/packages/hip_tensor/package.py
repos/spack_repo/builtin/packages/hip_tests/package.py
repos/spack_repo/builtin/packages/hipblas/package.py
repos/spack_repo/builtin/packages/hipblas_common/package.py
repos/spack_repo/builtin/packages/hipblaslt/package.py
repos/spack_repo/builtin/packages/hipcc/package.py
repos/spack_repo/builtin/packages/hipcub/package.py
repos/spack_repo/builtin/packages/hipfft/package.py
repos/spack_repo/builtin/packages/hipfort/package.py
repos/spack_repo/builtin/packages/hipify_clang/package.py
repos/spack_repo/builtin/packages/hiprand/package.py
repos/spack_repo/builtin/packages/hipsolver/package.py
repos/spack_repo/builtin/packages/hipsparse/package.py
repos/spack_repo/builtin/packages/hipsparselt/package.py
repos/spack_repo/builtin/packages/hpcx_mpi/package.py
repos/spack_repo/builtin/packages/hpx/package.py
repos/spack_repo/builtin/packages/hsa_amd_aqlprofile/package.py
repos/spack_repo/builtin/packages/hsa_rocr_dev/package.py
repos/spack_repo/builtin/packages/hugo/package.py
repos/spack_repo/builtin/packages/hypre/package.py
repos/spack_repo/builtin/packages/libcatalyst/package.py
repos/spack_repo/builtin/packages/libceed/package.py
repos/spack_repo/builtin/packages/libgeopm/package.py
repos/spack_repo/builtin/packages/libgeopmd/package.py
repos/spack_repo/builtin/packages/libvdwxc/package.py
repos/spack_repo/builtin/packages/libvips/package.py
repos/spack_repo/builtin/packages/llvm_amdgpu/package.py
repos/spack_repo/builtin/packages/m4/package.py
repos/spack_repo/builtin/packages/mapl/package.py
repos/spack_repo/builtin/packages/mercurial/package.py
repos/spack_repo/builtin/packages/mfem/package.py
repos/spack_repo/builtin/packages/mgard/package.py
repos/spack_repo/builtin/packages/migraphx/package.py
repos/spack_repo/builtin/packages/miopen_hip/package.py
repos/spack_repo/builtin/packages/mivisionx/package.py
repos/spack_repo/builtin/packages/nccl/package.py
repos/spack_repo/builtin/packages/neko/package.py
repos/spack_repo/builtin/packages/node_js/package.py
repos/spack_repo/builtin/packages/numactl/package.py
repos/spack_repo/builtin/packages/osu_micro_benchmarks/package.py
repos/spack_repo/builtin/packages/paraview/package.py
repos/spack_repo/builtin/packages/petsc/package.py
repos/spack_repo/builtin/packages/podio/package.py
repos/spack_repo/builtin/packages/py_amrex/package.py
repos/spack_repo/builtin/packages/py_arkouda/package.py
repos/spack_repo/builtin/packages/py_ase/package.py
repos/spack_repo/builtin/packages/py_dask/package.py
repos/spack_repo/builtin/packages/py_distributed/package.py
repos/spack_repo/builtin/packages/py_geopmdpy/package.py
repos/spack_repo/builtin/packages/py_geopmpy/package.py
repos/spack_repo/builtin/packages/py_mdanalysis/package.py
repos/spack_repo/builtin/packages/py_mdanalysistests/package.py
repos/spack_repo/builtin/packages/py_onnxruntime/package.py
repos/spack_repo/builtin/packages/py_pandas_stubs/package.py
repos/spack_repo/builtin/packages/py_petsc4py/package.py
repos/spack_repo/builtin/packages/py_rasterio/package.py
repos/spack_repo/builtin/packages/py_repligit/package.py
repos/spack_repo/builtin/packages/py_z3_solver/package.py
repos/spack_repo/builtin/packages/raja/package.py
repos/spack_repo/builtin/packages/rccl/package.py
repos/spack_repo/builtin/packages/rdc/package.py
repos/spack_repo/builtin/packages/realm/package.py
repos/spack_repo/builtin/packages/rocal/package.py
repos/spack_repo/builtin/packages/rocalution/package.py
repos/spack_repo/builtin/packages/rocblas/package.py
repos/spack_repo/builtin/packages/rocdecode/package.py
repos/spack_repo/builtin/packages/rocfft/package.py
repos/spack_repo/builtin/packages/rocjpeg/package.py
repos/spack_repo/builtin/packages/rocm_bandwidth_test/package.py
repos/spack_repo/builtin/packages/rocm_cmake/package.py
repos/spack_repo/builtin/packages/rocm_core/package.py
repos/spack_repo/builtin/packages/rocm_dbgapi/package.py
repos/spack_repo/builtin/packages/rocm_debug_agent/package.py
repos/spack_repo/builtin/packages/rocm_device_libs/package.py
repos/spack_repo/builtin/packages/rocm_examples/package.py
repos/spack_repo/builtin/packages/rocm_gdb/package.py
repos/spack_repo/builtin/packages/rocm_opencl/package.py
repos/spack_repo/builtin/packages/rocm_openmp_extras/package.py
repos/spack_repo/builtin/packages/rocm_smi_lib/package.py
repos/spack_repo/builtin/packages/rocm_tensile/package.py
repos/spack_repo/builtin/packages/rocm_validation_suite/package.py
repos/spack_repo/builtin/packages/rocminfo/package.py
repos/spack_repo/builtin/packages/rocmlir/package.py
repos/spack_repo/builtin/packages/rocprim/package.py
repos/spack_repo/builtin/packages/rocprofiler_compute/package.py
repos/spack_repo/builtin/packages/rocprofiler_dev/package.py
repos/spack_repo/builtin/packages/rocprofiler_register/package.py
repos/spack_repo/builtin/packages/rocprofiler_sdk/package.py
repos/spack_repo/builtin/packages/rocprofiler_systems/package.py
repos/spack_repo/builtin/packages/rocpydecode/package.py
repos/spack_repo/builtin/packages/rocrand/package.py
repos/spack_repo/builtin/packages/rocshmem/package.py
repos/spack_repo/builtin/packages/rocsolver/package.py
repos/spack_repo/builtin/packages/rocsparse/package.py
repos/spack_repo/builtin/packages/rocthrust/package.py
repos/spack_repo/builtin/packages/roctracer_dev/package.py
repos/spack_repo/builtin/packages/roctracer_dev_api/package.py
repos/spack_repo/builtin/packages/rocwmma/package.py
repos/spack_repo/builtin/packages/rpp/package.py
repos/spack_repo/builtin/packages/scorep/package.py
repos/spack_repo/builtin/packages/sentieon_genomics/package.py
repos/spack_repo/builtin/packages/strumpack/package.py
repos/spack_repo/builtin/packages/surfer/package.py
repos/spack_repo/builtin/packages/tau/package.py
repos/spack_repo/builtin/packages/texlive/package.py
repos/spack_repo/builtin/packages/thrift/package.py
repos/spack_repo/builtin/packages/transferbench/package.py
repos/spack_repo/builtin/packages/ufs_weather_model/package.py
repos/spack_repo/builtin/packages/umpire/package.py
repos/spack_repo/builtin/packages/vasp/package.py
repos/spack_repo/builtin/packages/verible/package.py
repos/spack_repo/builtin/packages/verilator/package.py
repos/spack_repo/builtin/packages/warpx/package.py
repos/spack_repo/builtin/packages/whip/package.py
�[1;34m==> �[0mrunning flake8
repos/spack_repo/builtin/packages/realm/package.py:208: [E501] line too long (106 > 99 characters)
�[1;34m==> �[0mrunning isort
�[1;34m==> �[0mrunning black
Keep in mind that I cannot fix your flake8 or mypy errors, so if you have any you'll need to fix them and update the pull request. If I was able to push to your branch, if you make further changes you will need to pull from your updated branch before pushing again.

I've updated the branch with style fixes.

@rbberger
Copy link
Member Author

rbberger commented Jan 9, 2026

@elliottslaughter as mentioned in the Realm PR, this is ready for review. This PR now requires that change proposed to Realm.

@elliottslaughter
Copy link
Contributor

The Realm PR has been merged.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants