Closed joaander closed 2 weeks ago
@joaander I saw this PR open up (great!) and had a quick question: what does removing this code path mean for GlobalArray
vs. GPUArray
for developers in current & future code? I remember the GlobalArray
pattern being rather complicated (CRTP) but in the end, I think degrading to essentially just a GPUArray
if there is only 1 GPU per process?
I am planning to leave GlobalArray
in place for now. A future PR might remove it (and GlobalVector
). Care must be taken in cases where force_managed
is set to true
:
https://github.com/glotzerlab/hoomd-blue/blob/ec0b84cdf49987f9d6fdd5d1f6d4bfa216edbfc7/hoomd/GlobalArray.h#L224-L236
These cases will need to maintain the use of managed memory.
In all cases where force_managed = false
(the default), GlobalArray
is GPUArray
now. Future code should continue to use GPUArray
in all cases that managed memory is not necessary.
It would appear that force_managed
is never set true. In that case, maybe the GlobalArray
/ GlobalVector
removal is coming soon as it is primarily a global search and replace operation.
Description
Remove the single process, multi-gpu feature.
Using Multiple GPUs via MPI domain decomposition is still supported.
Motivation and context
Resolves #1664
How has this been tested?
CI checks.
Checklist:
sphinx-doc/credits.rst
) in the pull request source branch.CHANGELOG.rst
following the established format.