/gpu-particle-interaction

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.

Primary LanguageC++

Overview

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).

Compilation

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).

Citing the work

Please cite the paper if you use this code, update it, or benchmark it.

Relation to the paper

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)