auto pme_pp = gmx_pme_pp_init(cr);
//TODO the variable below should be queried from the task assignment info
- const bool useGpuForPme = (runMode == PmeRunMode::GPU) || (runMode == PmeRunMode::Hybrid);
+ const bool useGpuForPme = (runMode == PmeRunMode::GPU) || (runMode == PmeRunMode::Mixed);
if (useGpuForPme)
{
changePinningPolicy(&pme_pp->chargeA, gmx::PinningPolicy::CanBePinned);
pme->overlap[0].s2g1[pme->nodeid_major]-pme->overlap[0].s2g0[pme->nodeid_major+1],
pme->overlap[1].s2g1[pme->nodeid_minor]-pme->overlap[1].s2g0[pme->nodeid_minor+1]);
/* This routine will allocate the grid data to fit the FFTs */
- const auto allocateRealGridForGpu = (pme->runMode == PmeRunMode::Hybrid) ? gmx::PinningPolicy::CanBePinned : gmx::PinningPolicy::CannotBePinned;
+ const auto allocateRealGridForGpu = (pme->runMode == PmeRunMode::Mixed) ? gmx::PinningPolicy::CanBePinned : gmx::PinningPolicy::CannotBePinned;
gmx_parallel_3dfft_init(&pme->pfft_setup[i], ndata,
&pme->fftgrid[i], &pme->cfftgrid[i],
pme->mpi_comm_d,
None, //!< No PME task is done
CPU, //!< Whole PME computation is done on CPU
GPU, //!< Whole PME computation is done on GPU
- Hybrid, //!< Mixed mode: only spread and gather run on GPU; FFT and solving are done on CPU.
+ Mixed, //!< Mixed mode: only spread and gather run on GPU; FFT and solving are done on CPU.
};
//! PME gathering output forces treatment
const auto pmeRunMode = fr->pmedata ? pme_run_mode(fr->pmedata) : PmeRunMode::CPU;
// TODO slim this conditional down - inputrec and duty checks should mean the same in proper code!
const bool useGpuPme = EEL_PME(fr->ic->eeltype) && thisRankHasDuty(cr, DUTY_PME) &&
- ((pmeRunMode == PmeRunMode::GPU) || (pmeRunMode == PmeRunMode::Hybrid));
+ ((pmeRunMode == PmeRunMode::GPU) || (pmeRunMode == PmeRunMode::Mixed));
/* At a search step we need to start the first balancing region
* somewhere early inside the step after communication during domain
pmeRunMode = (useGpuForPme ? PmeRunMode::GPU : PmeRunMode::CPU);
if ((pmeRunMode == PmeRunMode::GPU) && (pmeFftTarget == TaskTarget::Cpu))
{
- pmeRunMode = PmeRunMode::Hybrid;
+ pmeRunMode = PmeRunMode::Mixed;
}
}
GMX_CATCH_ALL_AND_EXIT_WITH_FATAL_ERROR;
* mdAtoms is not filled with atom data,
* as this can not be done now with domain decomposition.
*/
- const bool useGpuForPme = (pmeRunMode == PmeRunMode::GPU) || (pmeRunMode == PmeRunMode::Hybrid);
+ const bool useGpuForPme = (pmeRunMode == PmeRunMode::GPU) || (pmeRunMode == PmeRunMode::Mixed);
mdAtoms = makeMDAtoms(fplog, *mtop, *inputrec, useGpuForPme && thisRankHasDuty(cr, DUTY_PME));
if (globalState)
{