From f85e3666fc2418c3c0e17a15a608295932455560 Mon Sep 17 00:00:00 2001 From: eschnett Date: Wed, 9 May 2012 17:15:30 +0000 Subject: Point to Accelerator and OpenCLRunTime git-svn-id: http://svn.cactuscode.org/projects/ExternalLibraries/OpenCL/trunk@11 4054007a-4839-4648-a056-eb81e030d849 --- doc/documentation.tex | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/doc/documentation.tex b/doc/documentation.tex index 660cbc7..8496773 100644 --- a/doc/documentation.tex +++ b/doc/documentation.tex @@ -156,6 +156,29 @@ and can be accessed at run time under a (globally visible) name \texttt{FILE} and are the thorn name and file name, respectively. (This is also explained in the users' guide.) +\section{High-Level OpenCL Programming in Cactus} + +Cactus also offers a higher-level way of OpenCL programming, +implemented in the thorns \texttt{OpenCLRunTime} and +\texttt{Accelerator}. + +Thorn \texttt{OpenCLRunTime} provides a convenient function for +executing OpenCL code. This function expects, as input, a string +containing the OpenCL kernel code, and then calls this code. +Lower-level tasks such as identifying available compute devices, +initialising them, compiling the kernel (once, and then remembering +it), and handling arguments and parameters are taken care of +automatically. Details are described in this thorn's documentation. + +Thorn \texttt{Accelerator} simplifies memory management for GPUs and +other types of devices. One declares in the thorn's schedule which +routines read and write what variables, and \texttt{Accelerator} then +keeps track which variables need to be copied at what time. It keeps +track where (host and/or device) a variable has valid values, and +copies data only when necessary, taking time level cycling, +synchronisation, and I/O into account. Details are described in that +thorn's documentation. + \begin{thebibliography}{9} -- cgit v1.2.3