Skip to content

Kokkos build and numerics support #4451

Open
rochi00 wants to merge 21 commits into
libMesh:develfrom
rochi00:kokkos-build-numerics
Open

Kokkos build and numerics support #4451
rochi00 wants to merge 21 commits into
libMesh:develfrom
rochi00:kokkos-build-numerics

Conversation

@rochi00
Copy link
Copy Markdown

@rochi00 rochi00 commented May 6, 2026

This PR adds the first upstreamable slice of libMesh Kokkos support: build-system integration for .K translation units plus
standalone Kokkos numerics oracle tests.

The scope is intentionally limited to:

  • Kokkos-aware build support for libMesh tests
  • device-safe numerics support in core vector/tensor types
  • standalone Kokkos numerics oracle coverage
  • generated autotools updates as a separate final commit

@rochi00 rochi00 marked this pull request as draft May 6, 2026 22:27
@rochi00 rochi00 force-pushed the kokkos-build-numerics branch from a5b5eda to e9a0948 Compare May 7, 2026 22:32
@rochi00 rochi00 force-pushed the kokkos-build-numerics branch from e9a0948 to 63d0098 Compare May 8, 2026 21:05
@moosebuild
Copy link
Copy Markdown

moosebuild commented May 9, 2026

Job Coverage, step Generate coverage on 3a89c4c wanted to post the following:

Coverage

eaf09b #4451 3a89c4
Total Total +/- New
Rate 65.50% 65.50% - 100.00%
Hits 78308 78308 - 6
Misses 41246 41246 - 0

Diff coverage report

Full coverage report

This comment will be updated on new commits.

Copy link
Copy Markdown
Member

@roystgnr roystgnr left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We're definitely getting there. I'd say the only thing that really ought to be fixed now is the error macro forwarding direction and (unless there's a good reason not to that I'm missing) the function redundancies.

Comment thread include/base/libmesh_common.h Outdated
Comment thread include/base/libmesh_device.h Outdated
Comment thread include/base/libmesh_exceptions.h
Comment thread m4/libmesh_optional_packages.m4
Comment thread include/numerics/type_tensor.h Outdated
Comment thread contrib/bin/test_installed_headers.sh
Comment thread tests/Makefile.am Outdated
Comment thread include/gpu/kokkos_tensor_ops.h Outdated
Comment thread include/gpu/kokkos_tensor_ops.h Outdated
@rochi00 rochi00 marked this pull request as ready for review May 12, 2026 13:38
@rochi00 rochi00 requested a review from roystgnr May 12, 2026 19:36
Copy link
Copy Markdown
Member

@roystgnr roystgnr left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Make system and error handling look good to go now!

We've still got more duplication than we want in the math operators, though; not all of the "an operator which just shims a custom-named function that doesn't need to exist separately" cases are gone, and there's some more subtle "N operators shim a custom-named function" cases than could be turned into "N-1 operators call the one of them that now has the implementation in it".

CXXFLAGS="$CXXFLAGS $KOKKOS_CXXFLAGS"
LDFLAGS="$LDFLAGS $KOKKOS_LDFLAGS"
LIBS="$LIBS $KOKKOS_LIBS"
AC_LANG_PUSH([C++])
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Split all commits like this in two in the future - the stuff we actually change in the first, and the stuff that bootstrap (or autoreconf, however you do it) changes in the second.

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

Successfully merging this pull request may close these issues.

3 participants