This repository contains the source code of particle interactions on GPU, when a cutoff method is used, and when there are few particles per cell. It contains a CUDA and a HIP implementations (which are really the same). All the implementations are discussed in a paper (TODO ref).
Both implementations have a CMake. For the CUDA implementation,
NVCC should be available. For the HIP implementation,
we currently used to set the compiler by hand to make it works
CXX=hipcc cmake .. (in the build dir).
Please cite the paper if you use this code, update it, or benchmark it.
Here is the matching between the names in the code and the ones in the paper:
- ComputeParticleInterationsParPartLoop: Par-Part-Loop
- ComputeParticleInterationsParPartNoLoop: Par-Part-NoLoop
- ComputeParticleInterationsParCell: Par-Cell
- ComputeParticleInterationsParCellSm: Par-Cell-SM
- ComputeParticleInterationsV1: All-in-SM (Full load)
- ComputeParticleInterationsV2: X-pencil (Pencil load)
- ComputeParticleInterationsV3: X-pencil-reg (Pencil/register load)