Updating Kokkos lib
git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@15556 f3b2605a-c512-4ea7-a41b-209d697bcdaa
This commit is contained in:
127
lib/kokkos/doc/Doxyfile
Normal file
127
lib/kokkos/doc/Doxyfile
Normal file
@ -0,0 +1,127 @@
|
||||
#
|
||||
# Include the global look and feel options
|
||||
#
|
||||
@INCLUDE = ../../common/Doxyfile
|
||||
#
|
||||
# Package options
|
||||
#
|
||||
PROJECT_NAME = "Kokkos Core Kernels Package"
|
||||
PROJECT_NUMBER = "Version of the Day"
|
||||
OUTPUT_DIRECTORY = .
|
||||
OUTPUT_LANGUAGE = English
|
||||
|
||||
EXTRACT_ALL = NO
|
||||
EXTRACT_PRIVATE = NO
|
||||
EXTRACT_STATIC = YES
|
||||
HIDE_UNDOC_MEMBERS = YES
|
||||
HIDE_UNDOC_CLASSES = YES
|
||||
BRIEF_MEMBER_DESC = YES
|
||||
REPEAT_BRIEF = YES
|
||||
ALWAYS_DETAILED_SEC = YES
|
||||
FULL_PATH_NAMES = NO
|
||||
STRIP_FROM_PATH =
|
||||
INTERNAL_DOCS = NO
|
||||
CLASS_DIAGRAMS = YES
|
||||
SOURCE_BROWSER = YES
|
||||
INLINE_SOURCES = NO
|
||||
STRIP_CODE_COMMENTS = YES
|
||||
REFERENCED_BY_RELATION = NO
|
||||
REFERENCES_RELATION = NO
|
||||
CASE_SENSE_NAMES = YES
|
||||
HIDE_SCOPE_NAMES = NO
|
||||
VERBATIM_HEADERS = YES
|
||||
SHOW_INCLUDE_FILES = YES
|
||||
#JAVADOC_AUTOBRIEF = YES
|
||||
INHERIT_DOCS = YES
|
||||
INLINE_INHERITED_MEMB = YES
|
||||
INLINE_INFO = YES
|
||||
SORT_MEMBER_DOCS = NO
|
||||
TAB_SIZE = 2
|
||||
ENABLED_SECTIONS =
|
||||
SORT_BRIEF_DOCS = NO
|
||||
GENERATE_TODOLIST = YES
|
||||
GENERATE_TESTLIST = YES
|
||||
QUIET = NO
|
||||
WARNINGS = YES
|
||||
WARN_IF_UNDOCUMENTED = YES
|
||||
WARN_FORMAT = "$file:$line: $text"
|
||||
|
||||
#
|
||||
# INPUT: Where to find files that Doxygen should process. ../classic
|
||||
# has a doc/ subdirectory with its own Doxyfile that points to its own
|
||||
# files. The other Kokkos subpackages don't currently have their own
|
||||
# Doxyfile files, so we have to do it manually here.
|
||||
#
|
||||
# mfh 26 Sep 2013: I've only added those directories in the Core
|
||||
# subpackage that constitute the "public interface" of that
|
||||
# subpackage. Please feel free to include additional subdirectories
|
||||
# of ../core if you want to generate their documentation as well.
|
||||
#
|
||||
# mfh 26 Sep 2013: I've only added the Kokkos subpackages here that I
|
||||
# think are ready for Doxygen documentation generation. Please feel
|
||||
# free to amend this list as you see fit.
|
||||
#
|
||||
|
||||
INPUT = index.doc ../classic ../core/src ../containers/src ../linalg/src
|
||||
FILE_PATTERNS = *.hpp *.cpp *.cuh *.cu
|
||||
RECURSIVE = NO
|
||||
EXCLUDE_PATTERNS = *.x *.o *.out
|
||||
EXAMPLE_PATH =
|
||||
EXAMPLE_RECURSIVE = YES
|
||||
EXAMPLE_PATTERNS = *.cpp *.hpp
|
||||
IMAGE_PATH =
|
||||
INPUT_FILTER =
|
||||
ALPHABETICAL_INDEX = YES
|
||||
COLS_IN_ALPHA_INDEX = 4
|
||||
IGNORE_PREFIX =
|
||||
#
|
||||
# What diagrams are created
|
||||
#
|
||||
CLASS_GRAPH = YES
|
||||
COLLABORATION_GRAPH = NO
|
||||
INCLUDE_GRAPH = NO
|
||||
INCLUDED_BY_GRAPH = NO
|
||||
GRAPHICAL_HIERARCHY = YES
|
||||
#
|
||||
# Preprocessing
|
||||
#
|
||||
ENABLE_PREPROCESSING = YES
|
||||
MACRO_EXPANSION = YES
|
||||
EXPAND_ONLY_PREDEF = YES
|
||||
SEARCH_INCLUDES = YES
|
||||
INCLUDE_FILE_PATTERNS =
|
||||
PREDEFINED = DOXYGEN_SHOULD_SKIP_THIS DOXYGEN_USE_ONLY
|
||||
INCLUDE_PATH = ../src
|
||||
EXPAND_AS_DEFINED =
|
||||
#
|
||||
# Links to other packages
|
||||
#
|
||||
TAGFILES = ../../common/tag_files/teuchos.tag=../../../teuchos/doc/html ../../common/tag_files/epetra.tag=../../../epetra/doc/html \
|
||||
../../common/tag_files/belos.tag=../../../belos/doc/html ../../common/tag_files/anasazi.tag=../../../anasazi/doc/html \
|
||||
../../common/tag_files/kokkos.tag=../../../kokkos/doc/html
|
||||
GENERATE_TAGFILE = ../../common/tag_files/tpetra.tag
|
||||
ALLEXTERNALS = NO
|
||||
EXTERNAL_GROUPS = NO
|
||||
#
|
||||
# Environment
|
||||
#
|
||||
PERL_PATH = /usr/bin/perl
|
||||
HAVE_DOT = YES
|
||||
DOT_PATH =
|
||||
MAX_DOT_GRAPH_WIDTH = 1024
|
||||
MAX_DOT_GRAPH_HEIGHT = 1024
|
||||
#
|
||||
# What kind of documentation is generated
|
||||
#
|
||||
#GENERATE_HTML = YES
|
||||
#HTML_OUTPUT = html
|
||||
#HTML_HEADER = includes/header.html
|
||||
#HTML_FOOTER = includes/footer.html
|
||||
#HTML_STYLESHEET = includes/stylesheet.css
|
||||
#HTML_ALIGN_MEMBERS = YES
|
||||
GENERATE_HTMLHELP = NO
|
||||
DISABLE_INDEX = NO
|
||||
GENERATE_LATEX = NO
|
||||
GENERATE_RTF = NO
|
||||
GENERATE_MAN = NO
|
||||
GENERATE_XML = NO
|
||||
BIN
lib/kokkos/doc/Kokkos_PG.pdf
Normal file
BIN
lib/kokkos/doc/Kokkos_PG.pdf
Normal file
Binary file not shown.
32
lib/kokkos/doc/README
Normal file
32
lib/kokkos/doc/README
Normal file
@ -0,0 +1,32 @@
|
||||
Kokkos uses the Doxygen tool for providing three documentation
|
||||
sources:
|
||||
- man pages
|
||||
- Latex User Guide
|
||||
- HTML Online User Guide.
|
||||
|
||||
Man Pages
|
||||
|
||||
Man pages are available for all files and functions in the directory
|
||||
TRILINOS_HOME/doc/kokkos/man, where TRILINOS_HOME is the location of your
|
||||
copy of Trilinos. To use these pages with the Unix man utility, add
|
||||
the directory to your man path as follows:
|
||||
|
||||
setenv MANPATH `echo $MANPATH`:TRILINOS_HOME/doc/kokkos/man
|
||||
|
||||
|
||||
LaTeX User Guide
|
||||
|
||||
A postscript version of this guide is in
|
||||
TRILINOS_HOME/doc/kokkos/latex/user_guide.ps. The LaTeX source is in the
|
||||
directory TRILINOS_HOME/doc/kokkos/latex.
|
||||
|
||||
HTML Online User Guide
|
||||
|
||||
The online guide is initiated by pointing your browser to
|
||||
TRILINOS_HOME/doc/kokkos/html/index.html
|
||||
|
||||
Any question, comments or suggestions are welcome. Please send to
|
||||
Mike Heroux at
|
||||
|
||||
320-845-7695
|
||||
maherou@sandia.gov
|
||||
15
lib/kokkos/doc/build_docs
Executable file
15
lib/kokkos/doc/build_docs
Executable file
@ -0,0 +1,15 @@
|
||||
#!/bin/sh
|
||||
|
||||
if [ $TRILINOS_HOME ]; then
|
||||
echo "TRILINOS_HOME has already been set!"
|
||||
else
|
||||
echo "TRILINOS_HOME has not been set. Setting it!"
|
||||
export TRILINOS_HOME=`pwd`/../../..
|
||||
fi
|
||||
|
||||
echo
|
||||
echo "Generating main Kokkos doxygen documentation ..."
|
||||
echo
|
||||
|
||||
doxygen Doxyfile
|
||||
|
||||
72
lib/kokkos/doc/index.doc
Normal file
72
lib/kokkos/doc/index.doc
Normal file
@ -0,0 +1,72 @@
|
||||
/*!
|
||||
\mainpage Trilinos/Kokkos: Shared-memory programming interface and computational kernels
|
||||
|
||||
\section Kokkos_Intro Introduction
|
||||
|
||||
The %Kokkos package has two main components. The first, sometimes
|
||||
called "%Kokkos Array" or just "%Kokkos," implements a
|
||||
performance-portable shared-memory parallel programming model and data
|
||||
containers. The second, called "%Kokkos Classic," consists of
|
||||
computational kernels that support the %Tpetra package.
|
||||
|
||||
\section Kokkos_Kokkos The %Kokkos programming model
|
||||
|
||||
%Kokkos implements a performance-portable shared-memory parallel
|
||||
programming model and data containers. It lets you write an algorithm
|
||||
once, and just change a template parameter to get the optimal data
|
||||
layout for your hardware. %Kokkos has back-ends for the following
|
||||
parallel programming models:
|
||||
|
||||
- Kokkos::Threads: POSIX Threads (Pthreads)
|
||||
- Kokkos::OpenMP: OpenMP
|
||||
- Kokkos::Cuda: NVIDIA's CUDA programming model for graphics
|
||||
processing units (GPUs)
|
||||
- Kokkos::Serial: No thread parallelism
|
||||
|
||||
%Kokkos also has optimizations for shared-memory parallel systems with
|
||||
nonuniform memory access (NUMA). Its containers can hold data of any
|
||||
primitive ("plain old") data type (and some aggregate types). %Kokkos
|
||||
Array may be used as a stand-alone programming model.
|
||||
|
||||
%Kokkos' parallel operations include the following:
|
||||
|
||||
- parallel_for: a thread-parallel "for loop"
|
||||
- parallel_reduce: a thread-parallel reduction
|
||||
- parallel_scan: a thread-parallel prefix scan operation
|
||||
|
||||
as well as expert-level platform-independent interfaces to thread
|
||||
"teams," per-team "shared memory," synchronization, and atomic update
|
||||
operations.
|
||||
|
||||
%Kokkos' data containers include the following:
|
||||
|
||||
- Kokkos::View: A multidimensional array suitable for thread-parallel
|
||||
operations. Its layout (e.g., row-major or column-major) is
|
||||
optimized by default for the particular thread-parallel device.
|
||||
- Kokkos::Vector: A drop-in replacement for std::vector that eases
|
||||
porting from standard sequential C++ data structures to %Kokkos'
|
||||
parallel data structures.
|
||||
- Kokkos::UnorderedMap: A parallel lookup table comparable in
|
||||
functionality to std::unordered_map.
|
||||
|
||||
%Kokkos also uses the above basic containers to implement higher-level
|
||||
data structures, like sparse graphs and matrices.
|
||||
|
||||
A good place to start learning about %Kokkos would be <a href="http://trilinos.sandia.gov/events/trilinos_user_group_2013/presentations/2013-11-TUG-Kokkos-Tutorial.pdf">these tutorial slides</a> from the 2013 Trilinos Users' Group meeting.
|
||||
|
||||
\section Kokkos_Classic %Kokkos Classic
|
||||
|
||||
"%Kokkos Classic" consists of computational kernels that support the
|
||||
%Tpetra package. These kernels include sparse matrix-vector multiply,
|
||||
sparse triangular solve, Gauss-Seidel, and dense vector operations.
|
||||
They are templated on the type of objects (\c Scalar) on which they
|
||||
operate. This component was not meant to be visible to users; it is
|
||||
an implementation detail of the %Tpetra distributed linear algebra
|
||||
package.
|
||||
|
||||
%Kokkos Classic also implements a shared-memory parallel programming
|
||||
model. This inspired and preceded the %Kokkos programming model
|
||||
described in the previous section. Users should consider the %Kokkos
|
||||
Classic programming model deprecated, and prefer the new %Kokkos
|
||||
programming model.
|
||||
*/
|
||||
Reference in New Issue
Block a user