Page Menu
Home
c4science
Search
Configure Global Search
Log In
Files
F78585461
accelerator_kokkos.h
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Subscribers
None
File Metadata
Details
File Info
Storage
Attached
Created
Wed, Aug 21, 19:28
Size
2 KB
Mime Type
text/x-c
Expires
Fri, Aug 23, 19:28 (1 d, 23 h)
Engine
blob
Format
Raw Data
Handle
19828106
Attached To
rLAMMPS lammps
accelerator_kokkos.h
View Options
/* -*- c++ -*- ----------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
http://lammps.sandia.gov, Sandia National Laboratories
Steve Plimpton, sjplimp@sandia.gov
Copyright (2003) Sandia Corporation. Under the terms of Contract
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
certain rights in this software. This software is distributed under
the GNU General Public License.
See the README file in the top-level LAMMPS directory.
------------------------------------------------------------------------- */
#ifndef LMP_ACCELERATOR_KOKKOS_H
#define LMP_ACCELERATOR_KOKKOS_H
// true interface to KOKKOS
// used when KOKKOS is installed
#ifdef LMP_KOKKOS
#include "kokkos.h"
#include "atom_kokkos.h"
#include "comm_kokkos.h"
#include "comm_tiled_kokkos.h"
#include "domain_kokkos.h"
#include "neighbor_kokkos.h"
#include "modify_kokkos.h"
#else
// dummy interface to KOKKOS
// needed for compiling when KOKKOS is not installed
#include "atom.h"
#include "comm_brick.h"
#include "comm_tiled.h"
#include "domain.h"
#include "neighbor.h"
#include "modify.h"
namespace
LAMMPS_NS
{
class
KokkosLMP
{
public:
int
kokkos_exists
;
int
num_threads
;
int
ngpu
;
int
numa
;
KokkosLMP
(
class
LAMMPS
*
,
int
,
char
**
)
{
kokkos_exists
=
0
;}
~
KokkosLMP
()
{}
void
accelerator
(
int
,
char
**
)
{}
int
neigh_list_kokkos
(
int
)
{
return
0
;}
int
neigh_count
(
int
)
{
return
0
;}
};
class
AtomKokkos
:
public
Atom
{
public:
tagint
**
k_special
;
AtomKokkos
(
class
LAMMPS
*
lmp
)
:
Atom
(
lmp
)
{}
~
AtomKokkos
()
{}
void
sync
(
const
ExecutionSpace
space
,
unsigned
int
mask
)
{}
void
modified
(
const
ExecutionSpace
space
,
unsigned
int
mask
)
{}
};
class
CommKokkos
:
public
CommBrick
{
public:
CommKokkos
(
class
LAMMPS
*
lmp
)
:
CommBrick
(
lmp
)
{}
~
CommKokkos
()
{}
};
class
CommTiledKokkos
:
public
CommTiled
{
public:
CommTiledKokkos
(
class
LAMMPS
*
lmp
)
:
CommTiled
(
lmp
)
{}
CommTiledKokkos
(
class
LAMMPS
*
lmp
,
Comm
*
oldcomm
)
:
CommTiled
(
lmp
,
oldcomm
)
{}
~
CommTiledKokkos
()
{}
};
class
DomainKokkos
:
public
Domain
{
public:
DomainKokkos
(
class
LAMMPS
*
lmp
)
:
Domain
(
lmp
)
{}
~
DomainKokkos
()
{}
};
class
NeighborKokkos
:
public
Neighbor
{
public:
NeighborKokkos
(
class
LAMMPS
*
lmp
)
:
Neighbor
(
lmp
)
{}
~
NeighborKokkos
()
{}
};
class
ModifyKokkos
:
public
Modify
{
public:
ModifyKokkos
(
class
LAMMPS
*
lmp
)
:
Modify
(
lmp
)
{}
~
ModifyKokkos
()
{}
};
class
DAT
{
public:
typedef
double
tdual_xfloat_1d
;
typedef
double
tdual_FFT_SCALAR_1d
;
typedef
int
t_int_1d
;
typedef
int
tdual_int_2d
;
};
}
#endif
#endif
Event Timeline
Log In to Comment