2 * This file is part of the GROMACS molecular simulation package.
4 * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
5 * Copyright (c) 2001-2012, The GROMACS development team,
6 * check out http://www.gromacs.org for more information.
7 * Copyright (c) 2012, by the GROMACS development team, led by
8 * David van der Spoel, Berk Hess, Erik Lindahl, and including many
9 * others, as listed in the AUTHORS file in the top-level source
10 * directory and at http://www.gromacs.org.
12 * GROMACS is free software; you can redistribute it and/or
13 * modify it under the terms of the GNU Lesser General Public License
14 * as published by the Free Software Foundation; either version 2.1
15 * of the License, or (at your option) any later version.
17 * GROMACS is distributed in the hope that it will be useful,
18 * but WITHOUT ANY WARRANTY; without even the implied warranty of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
20 * Lesser General Public License for more details.
22 * You should have received a copy of the GNU Lesser General Public
23 * License along with GROMACS; if not, see
24 * http://www.gnu.org/licenses, or write to the Free Software Foundation,
25 * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
27 * If you want to redistribute modifications to GROMACS, please
28 * consider that scientific software is very special. Version
29 * control is crucial - bugs must be traceable. We will be happy to
30 * consider code for inclusion in the official distribution, but
31 * derived work must not be called official GROMACS. Details are found
32 * in the README & COPYING files - if they are missing, get the
33 * official version at http://www.gromacs.org.
35 * To help us fund GROMACS development, we humbly ask that you cite
36 * the research papers on the package. Check out http://www.gromacs.org.
39 #ifndef NBNXN_CUDA_TYPES_EXT_H
40 #define NBNXN_CUDA_TYPES_EXT_H
47 /* CUDA nonbonded structure */
48 typedef struct nbnxn_cuda *nbnxn_cuda_ptr_t;
49 /* CUDA GPU device info */
50 typedef struct cuda_dev_info *cuda_dev_info_ptr_t;
52 /* Types defined for the structs below. */
53 typedef struct wallclock_gpu wallclock_gpu_t;
54 typedef struct nbnxn_cuda_ktime nbnxn_cuda_ktime_t;
56 /* Nonbonded kernel time and call count. */
57 struct nbnxn_cuda_ktime
63 /* GPU timings for kernels and H2d/D2H transfers. */
66 nbnxn_cuda_ktime_t ktime[2][2]; /* table containing the timings of the four
67 version of the nonbonded kernels: force-only,
68 force+energy, force+pruning, and force+energy+pruning */
69 double nb_h2d_t; /* host to device transfer time in nb calculation */
70 double nb_d2h_t; /* device to host transfer time in nb calculation */
71 int nb_c; /* total call count of the nonbonded gpu operations */
72 double pl_h2d_t; /* pair search step host to device transfer time */
73 int pl_h2d_c; /* pair search step host to device transfer call count */
80 #endif /* NBNXN_CUDA_TYPES_EXT_H */