#include "gmxpre.h"
#include "decidegpuusage.h"
#include "config.h"
#include <stdlib.h>
#include <string.h>
#include <algorithm>
#include <string>
#include "gromacs/hardware/cpuinfo.h"
#include "gromacs/hardware/detecthardware.h"
#include "gromacs/hardware/hardwaretopology.h"
#include "gromacs/hardware/hw_info.h"
#include "gromacs/mdlib/gmx_omp_nthreads.h"
#include "gromacs/mdlib/nb_verlet.h"
#include "gromacs/mdtypes/commrec.h"
#include "gromacs/mdtypes/inputrec.h"
#include "gromacs/mdtypes/md_enums.h"
#include "gromacs/taskassignment/taskassignment.h"
#include "gromacs/topology/topology.h"
#include "gromacs/utility/baseversion.h"
#include "gromacs/utility/exceptions.h"
#include "gromacs/utility/fatalerror.h"
#include "gromacs/utility/gmxassert.h"
#include "gromacs/utility/logger.h"
#include "gromacs/utility/stringutil.h"
Defines functionality for deciding whether tasks will run on GPUs.
- Author
- Mark Abraham mark..nosp@m.j.ab.nosp@m.raham.nosp@m.@gma.nosp@m.il.co.nosp@m.m
|
bool | gmx::decideWhetherToUseGpusForNonbondedWithThreadMpi (const TaskTarget nonbondedTarget, const std::vector< int > &gpuIdsToUse, const std::vector< int > &userGpuTaskAssignment, const EmulateGpuNonbonded emulateGpuNonbonded, const bool usingVerletScheme, const bool nonbondedOnGpuIsUseful, const int numRanksPerSimulation) |
| Decide whether this thread-MPI simulation will run nonbonded tasks on GPUs. More...
|
|
bool | gmx::decideWhetherToUseGpusForPmeWithThreadMpi (const bool useGpuForNonbonded, const TaskTarget pmeTarget, const std::vector< int > &gpuIdsToUse, const std::vector< int > &userGpuTaskAssignment, const bool canUseGpuForPme, const int numRanksPerSimulation, const int numPmeRanksPerSimulation) |
| Decide whether this thread-MPI simulation will run PME tasks on GPUs. More...
|
|
bool | gmx::decideWhetherToUseGpusForNonbonded (const TaskTarget nonbondedTarget, const std::vector< int > &userGpuTaskAssignment, const EmulateGpuNonbonded emulateGpuNonbonded, const bool usingVerletScheme, const bool nonbondedOnGpuIsUseful, const bool gpusWereDetected) |
| Decide whether the simulation will try to run nonbonded tasks on GPUs. More...
|
|
bool | gmx::decideWhetherToUseGpusForPme (const bool useGpuForNonbonded, const TaskTarget pmeTarget, const std::vector< int > &userGpuTaskAssignment, const bool canUseGpuForPme, const int numRanksPerSimulation, const int numPmeRanksPerSimulation, const bool gpusWereDetected) |
| Decide whether the simulation will try to run tasks of different types on GPUs. More...
|
|