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.