Skip to content

Add Portable MatrixFree initialization for GPU builds - #1378

Open
kobayashi1109 wants to merge 2 commits into
prisms-center:gpu-devfrom
kobayashi1109:portable-matrixfree-manager
Open

kobayashi1109 wants to merge 2 commits into
prisms-center:gpu-devfrom
kobayashi1109:portable-matrixfree-manager

Conversation

@kobayashi1109

Copy link
Copy Markdown

Summary

This PR adds the initial dealii::Portable::MatrixFree data structures
required for the GPU implementation of PRISMS-PF.

For GPU builds, Portable MatrixFree objects are created for each field
and each mesh level and initialized using the existing mapping,
DoFHandler, constraints, quadrature, and update flags.

This work corresponds to the "Define a Portable::MatrixFree object for
GPU data" step and is part of #517.

Validation

The changes were tested on a Tesla V100 with CUDA 12.0 and deal.II 9.6.

  • PRISMS-PF builds successfully with PRISMS_PF_GPU=ON.
  • The Laplace example links and runs to completion.
  • Temporary runtime assertions verified that the Portable MatrixFree
    objects have the expected DoF counts and valid partitioner sizes.

The temporary assertions were removed after validation.

Current limitation

This PR only prepares and initializes the Portable MatrixFree data
structures.

The actual matrix-free operator still uses the existing regular
dealii::MatrixFree path. Therefore, the successful Laplace run does
not yet mean that the Laplace operator itself is executed on the GPU.

Connecting the Portable MatrixFree objects to the operator and using
dealii::Portable::FEEvaluation will be handled in a subsequent change.

@fractalsbyx
fractalsbyx force-pushed the portable-matrixfree-manager branch from d0b85a7 to 2c0bbfe Compare October 1, 2026 22:18
@fractalsbyx

Copy link
Copy Markdown
Contributor

The branch you worked on was 5 months old, so I had to rebase.

@kobayashi1109

kobayashi1109 commented Oct 1, 2026 via email

Copy link
Copy Markdown
Author

This branch has not been deployed

No deployments
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.

2 participants