Skip to content

Enable DiracDeterminantBatched<PlatformKind::SYCL>#5043

Merged
prckent merged 6 commits into
QMCPACK:developfrom
ye-luo:add-AccelMatrixUpdateSYCL
Jun 14, 2024
Merged

Enable DiracDeterminantBatched<PlatformKind::SYCL>#5043
prckent merged 6 commits into
QMCPACK:developfrom
ye-luo:add-AccelMatrixUpdateSYCL

Conversation

@ye-luo
Copy link
Copy Markdown
Contributor

@ye-luo ye-luo commented Jun 14, 2024

Review after #5042 being merged.

Proposed changes

@jngkim contributed QMCWaveFunctions/detail/SYCL/matrix_update_helper.cpp
Currently there is no batched code path for the matrix inversion and I just connect the OMPTarget based class which runs inversion on host.

What type(s) of changes does this code introduce?

  • New feature

Does this introduce a breaking change?

  • No

What systems has this change been tested on?

epyc-server

Checklist

  • Yes. This PR is up to date with current the current state of 'develop'

@ye-luo
Copy link
Copy Markdown
Contributor Author

ye-luo commented Jun 14, 2024

Test this please

@prckent
Copy link
Copy Markdown
Contributor

prckent commented Jun 14, 2024

Test this please

Copy link
Copy Markdown
Contributor

@prckent prckent left a comment

Choose a reason for hiding this comment

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

Many thanks Ye and @jngkim

Any issues found with GPU inversion or is that the next step?

@prckent prckent enabled auto-merge June 14, 2024 13:03
@prckent prckent merged commit ae448b3 into QMCPACK:develop Jun 14, 2024
@ye-luo
Copy link
Copy Markdown
Contributor Author

ye-luo commented Jun 14, 2024

Many thanks Ye and @jngkim

Any issues found with GPU inversion or is that the next step?

I would like to refactor all the GPU inversion classes before adding one for MKL. We currently choose either one-by-one or all batched based on the delayed update class choice. Two issues

  1. all batched routine may need a lot of scratch space. We can probably subdivide a batch to blocks and do one block at a time. So enable certain degree of flexibility.
  2. The host inverter and gpu inverter classes are integrated in to the DDB separately but we only choose one. I would like to do better C++ and hide the detail of inverters at the DDB level and also improve the APIs.

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