namespace gpu

Overview

namespace gpu {
 
// structs
 
struct BatchResult;
struct DeviceInfo;
struct Footprint;
struct Plan;
 
// global functions
 
BatchResult analyzeResident(const double* xyz, const double* box, int nAtoms, int nFrames, double rc = 5.5, const double* boxLow = nullptr, int nBox = 3);
DeviceInfo probeDevice();
Footprint estimateFootprint(int nAtoms, int nFrames, int kMax = 16, int maxSixRingsPerAtom = 16);
int maxResidentFrames(const DeviceInfo& dev, int nAtoms, int kMax = 16, int maxSixRingsPerAtom = 16, double safety = 0.80);
Plan planBatch(int nAtoms, int requestedFrames, int kMax = 16, int maxSixRingsPerAtom = 16, double safety = 0.80);
 
} // namespace gpu

Detailed Documentation

Global Functions

BatchResult analyzeResident(const double* xyz, const double* box, int nAtoms, int nFrames, double rc = 5.5, const double* boxLow = nullptr, int nBox = 3)

xyz is frame-major, atom, xyz.

box is frame-major three lengths when boxLow is null and nBox is 3. When boxLow is set or nBox is at least 6, box is one dump box (3 spans or 6 span+tilt) shared by every frame and the device walk uses lammpsBoxToLinkcell. rc is the cell-list cutoff; 5.5 matches the host k-NN candidate shell.