}
/* DtoH f */
- ocl_copy_D2H_async(nbatom->out[0].f.data() + adat_begin * 3, adat->f,
- adat_begin * 3 * sizeof(float), (adat_len)*adat->f_elem_size, stream,
+ ocl_copy_D2H_async(nbatom->out[0].f.data() + adat_begin * DIM, adat->f,
+ adat_begin * DIM * sizeof(nbatom->out[0].f[0]),
+ adat_len * DIM * sizeof(nbatom->out[0].f[0]), stream,
bDoTime ? t->xf[aloc].nb_d2h.fetchNextEvent() : nullptr);
/* kick off work */
/* DtoH fshift when virial is needed */
if (stepWork.computeVirial)
{
- ocl_copy_D2H_async(nb->nbst.fshift, adat->fshift, 0, SHIFTS * adat->fshift_elem_size,
+ ocl_copy_D2H_async(nb->nbst.fshift, adat->fshift, 0, SHIFTS * sizeof(nb->nbst.fshift[0]),
stream, bDoTime ? t->xf[aloc].nb_d2h.fetchNextEvent() : nullptr);
}
ad->ntypes = ntypes;
- /* An element of the shift_vec device buffer has the same size as one element
- of the host side shift_vec buffer. */
- ad->shift_vec_elem_size = sizeof(*nbnxn_atomdata_t::shift_vec.data());
-
ad->shift_vec = clCreateBuffer(runData->context, CL_MEM_READ_ONLY | CL_MEM_HOST_WRITE_ONLY,
- SHIFTS * ad->shift_vec_elem_size, nullptr, &cl_error);
+ SHIFTS * sizeof(nbnxn_atomdata_t::shift_vec[0]), nullptr, &cl_error);
GMX_RELEASE_ASSERT(cl_error == CL_SUCCESS,
("clCreateBuffer failed: " + ocl_get_error_string(cl_error)).c_str());
ad->bShiftVecUploaded = CL_FALSE;
- /* An element of the fshift device buffer has the same size as one element
- of the host side fshift buffer. */
- ad->fshift_elem_size = sizeof(*nb_staging_t::fshift);
-
ad->fshift = clCreateBuffer(runData->context, CL_MEM_READ_WRITE | CL_MEM_HOST_READ_ONLY,
- SHIFTS * ad->fshift_elem_size, nullptr, &cl_error);
+ SHIFTS * sizeof(nb_staging_t::fshift[0]), nullptr, &cl_error);
GMX_RELEASE_ASSERT(cl_error == CL_SUCCESS,
("clCreateBuffer failed: " + ocl_get_error_string(cl_error)).c_str());
if (nbatom->bDynamicBox || !adat->bShiftVecUploaded)
{
ocl_copy_H2D_async(adat->shift_vec, nbatom->shift_vec.data(), 0,
- SHIFTS * adat->shift_vec_elem_size, ls, nullptr);
+ SHIFTS * sizeof(nbatom->shift_vec[0]), ls, nullptr);
adat->bShiftVecUploaded = CL_TRUE;
}
}
freeDeviceBuffer(&d_atdat->atom_types);
}
- d_atdat->f_elem_size = sizeof(rvec);
-
d_atdat->f = clCreateBuffer(nb->dev_rundata->context, CL_MEM_READ_WRITE | CL_MEM_HOST_READ_ONLY,
- nalloc * d_atdat->f_elem_size, nullptr, &cl_error);
+ nalloc * DIM * sizeof(nbat->out[0].f[0]), nullptr, &cl_error);
GMX_RELEASE_ASSERT(cl_error == CL_SUCCESS,
("clCreateBuffer failed: " + ocl_get_error_string(cl_error)).c_str());
//! float3 buffer with force output array, size natoms
cl_mem f;
- //! Size in bytes for one element of f buffer
- size_t f_elem_size;
//! LJ energy output, size 1
cl_mem e_lj;
//! float3 buffer with shift forces
cl_mem fshift;
- //! Size in bytes for one element of fshift buffer
- size_t fshift_elem_size;
//! number of atom types
int ntypes;
//! float3 buffer with shifts values
cl_mem shift_vec;
- //! Size in bytes for one element of shift_vec buffer
- size_t shift_vec_elem_size;
//! true if the shift vector has been uploaded
bool bShiftVecUploaded;