mirror of git://gcc.gnu.org/git/gcc.git
[OpenACC] bump version for 2.6 plus libgomp.texi update
2020-02-03 Julian Brown <julian@codesourcery.com> Tobias Burnus <tobias@codesourcery.com> gcc/c-family/ * c-cppbuiltin.c (c_cpp_builtins): Update _OPENACC define to 201711. gcc/ * doc/invoke.texi: Update mention of OpenACC version to 2.6. gcc/fortran/ * cpp.c (cpp_define_builtins): Update _OPENACC define to 201711. * intrinsic.texi: Update mentions of OpenACC version to 2.6. * gfortran.texi: Likewise. Remove experimental disclamer for OpenACC. * invoke.texi: Remove experimental disclamer for OpenACC. gcc/testsuite/ * c-c++-common/cpp/openacc-define-3.c: Update expected value for _OPENACC define. * gfortran.dg/openacc-define-3.f90: Likewise. libgomp/ * libgomp.texi (OpenACC Runtime Library Routines): Document *_async and *_finalize variants; document acc_attach and acc_detach; update references from OpenACC 2.0 to 2.6. * openacc.f90 (openacc_version): Update to 201711. * openacc_lib.h (openacc_version): Update to 201711. * testsuite/libgomp.oacc-fortran/openacc_version-1.f: Update expected openacc_version to 201711. * testsuite/libgomp.oacc-fortran/openacc_version-2.f90: Likewise.
This commit is contained in:
parent
7c8e1f920a
commit
e464fc9035
|
@ -1,3 +1,8 @@
|
||||||
|
2020-02-03 Julian Brown <julian@codesourcery.com>
|
||||||
|
Tobias Burnus <tobias@codesourcery.com>
|
||||||
|
|
||||||
|
* doc/invoke.texi: Update mention of OpenACC version to 2.6.
|
||||||
|
|
||||||
2020-02-03 Jakub Jelinek <jakub@redhat.com>
|
2020-02-03 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
PR target/93533
|
PR target/93533
|
||||||
|
|
|
@ -1,3 +1,8 @@
|
||||||
|
2020-02-03 Julian Brown <julian@codesourcery.com>
|
||||||
|
Tobias Burnus <tobias@codesourcery.com>
|
||||||
|
|
||||||
|
* c-cppbuiltin.c (c_cpp_builtins): Update _OPENACC define to 201711.
|
||||||
|
|
||||||
2020-01-29 Jason Merrill <jason@redhat.com>
|
2020-01-29 Jason Merrill <jason@redhat.com>
|
||||||
|
|
||||||
PR c++/89357
|
PR c++/89357
|
||||||
|
|
|
@ -1435,7 +1435,7 @@ c_cpp_builtins (cpp_reader *pfile)
|
||||||
cpp_define (pfile, "__SSP__=1");
|
cpp_define (pfile, "__SSP__=1");
|
||||||
|
|
||||||
if (flag_openacc)
|
if (flag_openacc)
|
||||||
cpp_define (pfile, "_OPENACC=201306");
|
cpp_define (pfile, "_OPENACC=201711");
|
||||||
|
|
||||||
if (flag_openmp)
|
if (flag_openmp)
|
||||||
cpp_define (pfile, "_OPENMP=201511");
|
cpp_define (pfile, "_OPENMP=201511");
|
||||||
|
|
|
@ -2248,7 +2248,7 @@ freestanding and hosted environments.
|
||||||
Enable handling of OpenACC directives @code{#pragma acc} in C/C++ and
|
Enable handling of OpenACC directives @code{#pragma acc} in C/C++ and
|
||||||
@code{!$acc} in Fortran. When @option{-fopenacc} is specified, the
|
@code{!$acc} in Fortran. When @option{-fopenacc} is specified, the
|
||||||
compiler generates accelerated code according to the OpenACC Application
|
compiler generates accelerated code according to the OpenACC Application
|
||||||
Programming Interface v2.0 @w{@uref{https://www.openacc.org}}. This option
|
Programming Interface v2.6 @w{@uref{https://www.openacc.org}}. This option
|
||||||
implies @option{-pthread}, and thus is only supported on targets that
|
implies @option{-pthread}, and thus is only supported on targets that
|
||||||
have support for @option{-pthread}.
|
have support for @option{-pthread}.
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,11 @@
|
||||||
|
2020-02-03 Julian Brown <julian@codesourcery.com>
|
||||||
|
Tobias Burnus <tobias@codesourcery.com>
|
||||||
|
|
||||||
|
* cpp.c (cpp_define_builtins): Update _OPENACC define to 201711.
|
||||||
|
* intrinsic.texi: Update mentions of OpenACC version to 2.6.
|
||||||
|
* gfortran.texi: Likewise. Remove experimental disclamer for OpenACC.
|
||||||
|
* invoke.texi: Remove experimental disclamer for OpenACC.
|
||||||
|
|
||||||
2020-02-03 Tobias Burnus <tobias@codesourcery.com>
|
2020-02-03 Tobias Burnus <tobias@codesourcery.com>
|
||||||
|
|
||||||
PR fortran/93541
|
PR fortran/93541
|
||||||
|
|
|
@ -166,7 +166,7 @@ cpp_define_builtins (cpp_reader *pfile)
|
||||||
cpp_define (pfile, "_LANGUAGE_FORTRAN=1");
|
cpp_define (pfile, "_LANGUAGE_FORTRAN=1");
|
||||||
|
|
||||||
if (flag_openacc)
|
if (flag_openacc)
|
||||||
cpp_define (pfile, "_OPENACC=201306");
|
cpp_define (pfile, "_OPENACC=201711");
|
||||||
|
|
||||||
if (flag_openmp)
|
if (flag_openmp)
|
||||||
cpp_define (pfile, "_OPENMP=201511");
|
cpp_define (pfile, "_OPENMP=201511");
|
||||||
|
|
|
@ -485,9 +485,6 @@ include OpenMP, Cray-style pointers, some old vendor extensions, and several
|
||||||
Fortran 2003 and Fortran 2008 features, including TR 15581. However, it is
|
Fortran 2003 and Fortran 2008 features, including TR 15581. However, it is
|
||||||
still under development and has a few remaining rough edges.
|
still under development and has a few remaining rough edges.
|
||||||
There also is initial support for OpenACC.
|
There also is initial support for OpenACC.
|
||||||
Note that this is an experimental feature, incomplete, and subject to
|
|
||||||
change in future versions of GCC. See
|
|
||||||
@uref{https://gcc.gnu.org/wiki/OpenACC} for more information.
|
|
||||||
|
|
||||||
At present, the GNU Fortran compiler passes the
|
At present, the GNU Fortran compiler passes the
|
||||||
@uref{http://www.fortran-2000.com/ArnaudRecipes/fcvs21_f95.html,
|
@uref{http://www.fortran-2000.com/ArnaudRecipes/fcvs21_f95.html,
|
||||||
|
@ -546,10 +543,8 @@ status} and @ref{Fortran 2018 status} sections of the documentation.
|
||||||
Additionally, the GNU Fortran compilers supports the OpenMP specification
|
Additionally, the GNU Fortran compilers supports the OpenMP specification
|
||||||
(version 4.0 and most of the features of the 4.5 version,
|
(version 4.0 and most of the features of the 4.5 version,
|
||||||
@url{http://openmp.org/@/wp/@/openmp-specifications/}).
|
@url{http://openmp.org/@/wp/@/openmp-specifications/}).
|
||||||
There also is initial support for the OpenACC specification (targeting
|
There also is support for the OpenACC specification (targeting
|
||||||
version 2.0, @uref{http://www.openacc.org/}).
|
version 2.6, @uref{http://www.openacc.org/}). See
|
||||||
Note that this is an experimental feature, incomplete, and subject to
|
|
||||||
change in future versions of GCC. See
|
|
||||||
@uref{https://gcc.gnu.org/wiki/OpenACC} for more information.
|
@uref{https://gcc.gnu.org/wiki/OpenACC} for more information.
|
||||||
|
|
||||||
@node Varying Length Character Strings
|
@node Varying Length Character Strings
|
||||||
|
@ -2245,7 +2240,7 @@ influence run-time behavior.
|
||||||
|
|
||||||
GNU Fortran strives to be compatible to the
|
GNU Fortran strives to be compatible to the
|
||||||
@uref{http://www.openacc.org/, OpenACC Application Programming
|
@uref{http://www.openacc.org/, OpenACC Application Programming
|
||||||
Interface v2.0}.
|
Interface v2.6}.
|
||||||
|
|
||||||
To enable the processing of the OpenACC directive @code{!$acc} in
|
To enable the processing of the OpenACC directive @code{!$acc} in
|
||||||
free-form source code; the @code{c$acc}, @code{*$acc} and @code{!$acc}
|
free-form source code; the @code{c$acc}, @code{*$acc} and @code{!$acc}
|
||||||
|
@ -2261,10 +2256,6 @@ The OpenACC Fortran runtime library routines are provided both in a
|
||||||
form of a Fortran 90 module named @code{openacc} and in a form of a
|
form of a Fortran 90 module named @code{openacc} and in a form of a
|
||||||
Fortran @code{include} file named @file{openacc_lib.h}.
|
Fortran @code{include} file named @file{openacc_lib.h}.
|
||||||
|
|
||||||
Note that this is an experimental feature, incomplete, and subject to
|
|
||||||
change in future versions of GCC. See
|
|
||||||
@uref{https://gcc.gnu.org/wiki/OpenACC} for more information.
|
|
||||||
|
|
||||||
@node Argument list functions
|
@node Argument list functions
|
||||||
@subsection Argument list functions @code{%VAL}, @code{%REF} and @code{%LOC}
|
@subsection Argument list functions @code{%VAL}, @code{%REF} and @code{%LOC}
|
||||||
@cindex argument list functions
|
@cindex argument list functions
|
||||||
|
|
|
@ -15371,7 +15371,7 @@ kind @code{omp_pause_resource_kind}:
|
||||||
@section OpenACC Module @code{OPENACC}
|
@section OpenACC Module @code{OPENACC}
|
||||||
@table @asis
|
@table @asis
|
||||||
@item @emph{Standard}:
|
@item @emph{Standard}:
|
||||||
OpenACC Application Programming Interface v2.0
|
OpenACC Application Programming Interface v2.6
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
|
|
||||||
|
@ -15385,9 +15385,9 @@ are listed below.
|
||||||
|
|
||||||
For details refer to the actual
|
For details refer to the actual
|
||||||
@uref{http://www.openacc.org/,
|
@uref{http://www.openacc.org/,
|
||||||
OpenACC Application Programming Interface v2.0}.
|
OpenACC Application Programming Interface v2.6}.
|
||||||
|
|
||||||
@code{OPENACC} provides the scalar default-integer
|
@code{OPENACC} provides the scalar default-integer
|
||||||
named constant @code{openacc_version} with a value of the form
|
named constant @code{openacc_version} with a value of the form
|
||||||
@var{yyyymm}, where @code{yyyy} is the year and @var{mm} the month
|
@var{yyyymm}, where @code{yyyy} is the year and @var{mm} the month
|
||||||
of the OpenACC version; for OpenACC v2.0 the value is @code{201306}.
|
of the OpenACC version; for OpenACC v2.6 the value is @code{201711}.
|
||||||
|
|
|
@ -420,10 +420,6 @@ compilation sentinels in free form and @code{c$}, @code{*$} and
|
||||||
@code{!$} sentinels in fixed form, and when linking arranges for the
|
@code{!$} sentinels in fixed form, and when linking arranges for the
|
||||||
OpenACC runtime library to be linked in.
|
OpenACC runtime library to be linked in.
|
||||||
|
|
||||||
Note that this is an experimental feature, incomplete, and subject to
|
|
||||||
change in future versions of GCC. See
|
|
||||||
@w{@uref{https://gcc.gnu.org/wiki/OpenACC}} for more information.
|
|
||||||
|
|
||||||
@item -fopenmp
|
@item -fopenmp
|
||||||
@opindex @code{fopenmp}
|
@opindex @code{fopenmp}
|
||||||
@cindex OpenMP
|
@cindex OpenMP
|
||||||
|
|
|
@ -1,3 +1,10 @@
|
||||||
|
2020-02-03 Julian Brown <julian@codesourcery.com>
|
||||||
|
Tobias Burnus <tobias@codesourcery.com>
|
||||||
|
|
||||||
|
* c-c++-common/cpp/openacc-define-3.c: Update expected value for
|
||||||
|
_OPENACC define.
|
||||||
|
* gfortran.dg/openacc-define-3.f90: Likewise.
|
||||||
|
|
||||||
2020-02-03 Tobias Burnus <tobias@codesourcery.com>
|
2020-02-03 Tobias Burnus <tobias@codesourcery.com>
|
||||||
|
|
||||||
PR fortran/93427
|
PR fortran/93427
|
||||||
|
|
|
@ -6,6 +6,6 @@
|
||||||
# error _OPENACC not defined
|
# error _OPENACC not defined
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if _OPENACC != 201306
|
#if _OPENACC != 201711
|
||||||
# error _OPENACC defined to wrong value
|
# error _OPENACC defined to wrong value
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -6,6 +6,6 @@
|
||||||
# error _OPENACC not defined
|
# error _OPENACC not defined
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if _OPENACC != 201306
|
#if _OPENACC != 201711
|
||||||
# error _OPENACC defined to wrong value
|
# error _OPENACC defined to wrong value
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -1,3 +1,15 @@
|
||||||
|
2020-02-03 Julian Brown <julian@codesourcery.com>
|
||||||
|
Tobias Burnus <tobias@codesourcery.com>
|
||||||
|
|
||||||
|
* libgomp.texi (OpenACC Runtime Library Routines): Document *_async
|
||||||
|
and *_finalize variants; document acc_attach and acc_detach; update
|
||||||
|
references from OpenACC 2.0 to 2.6.
|
||||||
|
* openacc.f90 (openacc_version): Update to 201711.
|
||||||
|
* openacc_lib.h (openacc_version): Update to 201711.
|
||||||
|
* testsuite/libgomp.oacc-fortran/openacc_version-1.f: Update expected
|
||||||
|
openacc_version to 201711.
|
||||||
|
* testsuite/libgomp.oacc-fortran/openacc_version-2.f90: Likewise.
|
||||||
|
|
||||||
2020-01-31 Kwok Cheung Yeung <kcy@codesourcery.com>
|
2020-01-31 Kwok Cheung Yeung <kcy@codesourcery.com>
|
||||||
|
|
||||||
* plugin/plugin-gcn.c (struct hsa_kernel_description): Add sgpr_count
|
* plugin/plugin-gcn.c (struct hsa_kernel_description): Add sgpr_count
|
||||||
|
|
|
@ -1820,7 +1820,7 @@ arranges for automatic linking of the OpenACC runtime library
|
||||||
|
|
||||||
A complete description of all OpenACC directives accepted may be found in
|
A complete description of all OpenACC directives accepted may be found in
|
||||||
the @uref{https://www.openacc.org, OpenACC} Application Programming
|
the @uref{https://www.openacc.org, OpenACC} Application Programming
|
||||||
Interface manual, version 2.0.
|
Interface manual, version 2.6.
|
||||||
|
|
||||||
Note that this is an experimental feature and subject to
|
Note that this is an experimental feature and subject to
|
||||||
change in future versions of GCC. See
|
change in future versions of GCC. See
|
||||||
|
@ -1836,7 +1836,7 @@ change in future versions of GCC. See
|
||||||
@chapter OpenACC Runtime Library Routines
|
@chapter OpenACC Runtime Library Routines
|
||||||
|
|
||||||
The runtime routines described here are defined by section 3 of the OpenACC
|
The runtime routines described here are defined by section 3 of the OpenACC
|
||||||
specifications in version 2.0.
|
specifications in version 2.6.
|
||||||
They have C linkage, and do not throw exceptions.
|
They have C linkage, and do not throw exceptions.
|
||||||
Generally, they are available only for the host, with the exception of
|
Generally, they are available only for the host, with the exception of
|
||||||
@code{acc_on_device}, which is available for both the host and the
|
@code{acc_on_device}, which is available for both the host and the
|
||||||
|
@ -1892,6 +1892,8 @@ acceleration device.
|
||||||
present on device.
|
present on device.
|
||||||
* acc_memcpy_to_device:: Copy host memory to device memory.
|
* acc_memcpy_to_device:: Copy host memory to device memory.
|
||||||
* acc_memcpy_from_device:: Copy device memory to host memory.
|
* acc_memcpy_from_device:: Copy device memory to host memory.
|
||||||
|
* acc_attach:: Let device pointer point to device-pointer target.
|
||||||
|
* acc_detach:: Let device pointer point to host-pointer target.
|
||||||
|
|
||||||
API routines for target platforms.
|
API routines for target platforms.
|
||||||
|
|
||||||
|
@ -1929,7 +1931,7 @@ for the device type specified in @var{devicetype}.
|
||||||
@end multitable
|
@end multitable
|
||||||
|
|
||||||
@item @emph{Reference}:
|
@item @emph{Reference}:
|
||||||
@uref{https://www.openacc.org, OpenACC specification v2.0}, section
|
@uref{https://www.openacc.org, OpenACC specification v2.6}, section
|
||||||
3.2.1.
|
3.2.1.
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
|
@ -1954,7 +1956,7 @@ in @var{devicetype}, to use when executing a parallel or kernels region.
|
||||||
@end multitable
|
@end multitable
|
||||||
|
|
||||||
@item @emph{Reference}:
|
@item @emph{Reference}:
|
||||||
@uref{https://www.openacc.org, OpenACC specification v2.0}, section
|
@uref{https://www.openacc.org, OpenACC specification v2.6}, section
|
||||||
3.2.2.
|
3.2.2.
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
|
@ -1979,7 +1981,7 @@ parallel or kernels region.
|
||||||
@end multitable
|
@end multitable
|
||||||
|
|
||||||
@item @emph{Reference}:
|
@item @emph{Reference}:
|
||||||
@uref{https://www.openacc.org, OpenACC specification v2.0}, section
|
@uref{https://www.openacc.org, OpenACC specification v2.6}, section
|
||||||
3.2.3.
|
3.2.3.
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
|
@ -2006,7 +2008,7 @@ type @var{devicetype}.
|
||||||
@end multitable
|
@end multitable
|
||||||
|
|
||||||
@item @emph{Reference}:
|
@item @emph{Reference}:
|
||||||
@uref{https://www.openacc.org, OpenACC specification v2.0}, section
|
@uref{https://www.openacc.org, OpenACC specification v2.6}, section
|
||||||
3.2.4.
|
3.2.4.
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
|
@ -2033,7 +2035,7 @@ region.
|
||||||
@end multitable
|
@end multitable
|
||||||
|
|
||||||
@item @emph{Reference}:
|
@item @emph{Reference}:
|
||||||
@uref{https://www.openacc.org, OpenACC specification v2.0}, section
|
@uref{https://www.openacc.org, OpenACC specification v2.6}, section
|
||||||
3.2.5.
|
3.2.5.
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
|
@ -2100,8 +2102,8 @@ a zero and Fortran returns a @code{false}.
|
||||||
@end multitable
|
@end multitable
|
||||||
|
|
||||||
@item @emph{Reference}:
|
@item @emph{Reference}:
|
||||||
@uref{https://www.openacc.org, OpenACC specification v2.0}, section
|
@uref{https://www.openacc.org, OpenACC specification v2.6}, section
|
||||||
3.2.6.
|
3.2.9.
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
|
|
||||||
|
@ -2128,8 +2130,8 @@ Fortran returns a @code{false}.
|
||||||
@end multitable
|
@end multitable
|
||||||
|
|
||||||
@item @emph{Reference}:
|
@item @emph{Reference}:
|
||||||
@uref{https://www.openacc.org, OpenACC specification v2.0}, section
|
@uref{https://www.openacc.org, OpenACC specification v2.6}, section
|
||||||
3.2.7.
|
3.2.10.
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
|
|
||||||
|
@ -2156,8 +2158,8 @@ specified in @var{arg}.
|
||||||
@end multitable
|
@end multitable
|
||||||
|
|
||||||
@item @emph{Reference}:
|
@item @emph{Reference}:
|
||||||
@uref{https://www.openacc.org, OpenACC specification v2.0}, section
|
@uref{https://www.openacc.org, OpenACC specification v2.6}, section
|
||||||
3.2.8.
|
3.2.11.
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
|
|
||||||
|
@ -2181,8 +2183,8 @@ This function waits for the completion of all asynchronous operations.
|
||||||
@end multitable
|
@end multitable
|
||||||
|
|
||||||
@item @emph{Reference}:
|
@item @emph{Reference}:
|
||||||
@uref{https://www.openacc.org, OpenACC specification v2.0}, section
|
@uref{https://www.openacc.org, OpenACC specification v2.6}, section
|
||||||
3.2.10.
|
3.2.13.
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
|
|
||||||
|
@ -2207,8 +2209,8 @@ any queue.
|
||||||
@end multitable
|
@end multitable
|
||||||
|
|
||||||
@item @emph{Reference}:
|
@item @emph{Reference}:
|
||||||
@uref{https://www.openacc.org, OpenACC specification v2.0}, section
|
@uref{https://www.openacc.org, OpenACC specification v2.6}, section
|
||||||
3.2.11.
|
3.2.14.
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
|
|
||||||
|
@ -2232,8 +2234,8 @@ asynchronous operations enqueued on queue @var{arg}.
|
||||||
@end multitable
|
@end multitable
|
||||||
|
|
||||||
@item @emph{Reference}:
|
@item @emph{Reference}:
|
||||||
@uref{https://www.openacc.org, OpenACC specification v2.0}, section
|
@uref{https://www.openacc.org, OpenACC specification v2.6}, section
|
||||||
3.2.9.
|
3.2.12.
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
|
|
||||||
|
@ -2257,8 +2259,8 @@ This function initializes the runtime for the device type specified in
|
||||||
@end multitable
|
@end multitable
|
||||||
|
|
||||||
@item @emph{Reference}:
|
@item @emph{Reference}:
|
||||||
@uref{https://www.openacc.org, OpenACC specification v2.0}, section
|
@uref{https://www.openacc.org, OpenACC specification v2.6}, section
|
||||||
3.2.12.
|
3.2.7.
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
|
|
||||||
|
@ -2282,8 +2284,8 @@ This function shuts down the runtime for the device type specified in
|
||||||
@end multitable
|
@end multitable
|
||||||
|
|
||||||
@item @emph{Reference}:
|
@item @emph{Reference}:
|
||||||
@uref{https://www.openacc.org, OpenACC specification v2.0}, section
|
@uref{https://www.openacc.org, OpenACC specification v2.6}, section
|
||||||
3.2.13.
|
3.2.8.
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
|
|
||||||
|
@ -2313,8 +2315,8 @@ return @code{false}.
|
||||||
|
|
||||||
|
|
||||||
@item @emph{Reference}:
|
@item @emph{Reference}:
|
||||||
@uref{https://www.openacc.org, OpenACC specification v2.0}, section
|
@uref{https://www.openacc.org, OpenACC specification v2.6}, section
|
||||||
3.2.14.
|
3.2.17.
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
|
|
||||||
|
@ -2332,8 +2334,8 @@ the device address of the allocated memory.
|
||||||
@end multitable
|
@end multitable
|
||||||
|
|
||||||
@item @emph{Reference}:
|
@item @emph{Reference}:
|
||||||
@uref{https://www.openacc.org, OpenACC specification v2.0}, section
|
@uref{https://www.openacc.org, OpenACC specification v2.6}, section
|
||||||
3.2.15.
|
3.2.18.
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
|
|
||||||
|
@ -2350,8 +2352,8 @@ Free previously allocated device memory at the device address @code{a}.
|
||||||
@end multitable
|
@end multitable
|
||||||
|
|
||||||
@item @emph{Reference}:
|
@item @emph{Reference}:
|
||||||
@uref{https://www.openacc.org, OpenACC specification v2.0}, section
|
@uref{https://www.openacc.org, OpenACC specification v2.6}, section
|
||||||
3.2.16.
|
3.2.19.
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
|
|
||||||
|
@ -2371,6 +2373,7 @@ variable or array element and @var{len} specifies the length in bytes.
|
||||||
@item @emph{C/C++}:
|
@item @emph{C/C++}:
|
||||||
@multitable @columnfractions .20 .80
|
@multitable @columnfractions .20 .80
|
||||||
@item @emph{Prototype}: @tab @code{void *acc_copyin(h_void *a, size_t len);}
|
@item @emph{Prototype}: @tab @code{void *acc_copyin(h_void *a, size_t len);}
|
||||||
|
@item @emph{Prototype}: @tab @code{void *acc_copyin_async(h_void *a, size_t len, int async);}
|
||||||
@end multitable
|
@end multitable
|
||||||
|
|
||||||
@item @emph{Fortran}:
|
@item @emph{Fortran}:
|
||||||
|
@ -2380,11 +2383,18 @@ variable or array element and @var{len} specifies the length in bytes.
|
||||||
@item @emph{Interface}: @tab @code{subroutine acc_copyin(a, len)}
|
@item @emph{Interface}: @tab @code{subroutine acc_copyin(a, len)}
|
||||||
@item @tab @code{type, dimension(:[,:]...) :: a}
|
@item @tab @code{type, dimension(:[,:]...) :: a}
|
||||||
@item @tab @code{integer len}
|
@item @tab @code{integer len}
|
||||||
|
@item @emph{Interface}: @tab @code{subroutine acc_copyin_async(a, async)}
|
||||||
|
@item @tab @code{type, dimension(:[,:]...) :: a}
|
||||||
|
@item @tab @code{integer(acc_handle_kind) :: async}
|
||||||
|
@item @emph{Interface}: @tab @code{subroutine acc_copyin_async(a, len, async)}
|
||||||
|
@item @tab @code{type, dimension(:[,:]...) :: a}
|
||||||
|
@item @tab @code{integer len}
|
||||||
|
@item @tab @code{integer(acc_handle_kind) :: async}
|
||||||
@end multitable
|
@end multitable
|
||||||
|
|
||||||
@item @emph{Reference}:
|
@item @emph{Reference}:
|
||||||
@uref{https://www.openacc.org, OpenACC specification v2.0}, section
|
@uref{https://www.openacc.org, OpenACC specification v2.6}, section
|
||||||
3.2.17.
|
3.2.20.
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
|
|
||||||
|
@ -2402,6 +2412,9 @@ In Fortran, two (2) forms are supported. In the first form, @var{a} specifies
|
||||||
a contiguous array section. The second form @var{a} specifies a variable or
|
a contiguous array section. The second form @var{a} specifies a variable or
|
||||||
array element and @var{len} specifies the length in bytes.
|
array element and @var{len} specifies the length in bytes.
|
||||||
|
|
||||||
|
Note that @code{acc_present_or_copyin} and @code{acc_pcopyin} exist for
|
||||||
|
backward compatibility with OpenACC 2.0; use @ref{acc_copyin} instead.
|
||||||
|
|
||||||
@item @emph{C/C++}:
|
@item @emph{C/C++}:
|
||||||
@multitable @columnfractions .20 .80
|
@multitable @columnfractions .20 .80
|
||||||
@item @emph{Prototype}: @tab @code{void *acc_present_or_copyin(h_void *a, size_t len);}
|
@item @emph{Prototype}: @tab @code{void *acc_present_or_copyin(h_void *a, size_t len);}
|
||||||
|
@ -2423,8 +2436,8 @@ array element and @var{len} specifies the length in bytes.
|
||||||
@end multitable
|
@end multitable
|
||||||
|
|
||||||
@item @emph{Reference}:
|
@item @emph{Reference}:
|
||||||
@uref{https://www.openacc.org, OpenACC specification v2.0}, section
|
@uref{https://www.openacc.org, OpenACC specification v2.6}, section
|
||||||
3.2.18.
|
3.2.20.
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
|
|
||||||
|
@ -2444,6 +2457,7 @@ array element and @var{len} specifies the length in bytes.
|
||||||
@item @emph{C/C++}:
|
@item @emph{C/C++}:
|
||||||
@multitable @columnfractions .20 .80
|
@multitable @columnfractions .20 .80
|
||||||
@item @emph{Prototype}: @tab @code{void *acc_create(h_void *a, size_t len);}
|
@item @emph{Prototype}: @tab @code{void *acc_create(h_void *a, size_t len);}
|
||||||
|
@item @emph{Prototype}: @tab @code{void *acc_create_async(h_void *a, size_t len, int async);}
|
||||||
@end multitable
|
@end multitable
|
||||||
|
|
||||||
@item @emph{Fortran}:
|
@item @emph{Fortran}:
|
||||||
|
@ -2453,11 +2467,18 @@ array element and @var{len} specifies the length in bytes.
|
||||||
@item @emph{Interface}: @tab @code{subroutine acc_create(a, len)}
|
@item @emph{Interface}: @tab @code{subroutine acc_create(a, len)}
|
||||||
@item @tab @code{type, dimension(:[,:]...) :: a}
|
@item @tab @code{type, dimension(:[,:]...) :: a}
|
||||||
@item @tab @code{integer len}
|
@item @tab @code{integer len}
|
||||||
|
@item @emph{Interface}: @tab @code{subroutine acc_create_async(a, async)}
|
||||||
|
@item @tab @code{type, dimension(:[,:]...) :: a}
|
||||||
|
@item @tab @code{integer(acc_handle_kind) :: async}
|
||||||
|
@item @emph{Interface}: @tab @code{subroutine acc_create_async(a, len, async)}
|
||||||
|
@item @tab @code{type, dimension(:[,:]...) :: a}
|
||||||
|
@item @tab @code{integer len}
|
||||||
|
@item @tab @code{integer(acc_handle_kind) :: async}
|
||||||
@end multitable
|
@end multitable
|
||||||
|
|
||||||
@item @emph{Reference}:
|
@item @emph{Reference}:
|
||||||
@uref{https://www.openacc.org, OpenACC specification v2.0}, section
|
@uref{https://www.openacc.org, OpenACC specification v2.6}, section
|
||||||
3.2.19.
|
3.2.21.
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
|
|
||||||
|
@ -2475,6 +2496,8 @@ In Fortran, two (2) forms are supported. In the first form, @var{a} specifies
|
||||||
a contiguous array section. The second form @var{a} specifies a variable or
|
a contiguous array section. The second form @var{a} specifies a variable or
|
||||||
array element and @var{len} specifies the length in bytes.
|
array element and @var{len} specifies the length in bytes.
|
||||||
|
|
||||||
|
Note that @code{acc_present_or_create} and @code{acc_pcreate} exist for
|
||||||
|
backward compatibility with OpenACC 2.0; use @ref{acc_create} instead.
|
||||||
|
|
||||||
@item @emph{C/C++}:
|
@item @emph{C/C++}:
|
||||||
@multitable @columnfractions .20 .80
|
@multitable @columnfractions .20 .80
|
||||||
|
@ -2497,8 +2520,8 @@ array element and @var{len} specifies the length in bytes.
|
||||||
@end multitable
|
@end multitable
|
||||||
|
|
||||||
@item @emph{Reference}:
|
@item @emph{Reference}:
|
||||||
@uref{https://www.openacc.org, OpenACC specification v2.0}, section
|
@uref{https://www.openacc.org, OpenACC specification v2.6}, section
|
||||||
3.2.20.
|
3.2.21.
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
|
|
||||||
|
@ -2517,6 +2540,9 @@ array element and @var{len} specifies the length in bytes.
|
||||||
@item @emph{C/C++}:
|
@item @emph{C/C++}:
|
||||||
@multitable @columnfractions .20 .80
|
@multitable @columnfractions .20 .80
|
||||||
@item @emph{Prototype}: @tab @code{acc_copyout(h_void *a, size_t len);}
|
@item @emph{Prototype}: @tab @code{acc_copyout(h_void *a, size_t len);}
|
||||||
|
@item @emph{Prototype}: @tab @code{acc_copyout_async(h_void *a, size_t len, int async);}
|
||||||
|
@item @emph{Prototype}: @tab @code{acc_copyout_finalize(h_void *a, size_t len);}
|
||||||
|
@item @emph{Prototype}: @tab @code{acc_copyout_finalize_async(h_void *a, size_t len, int async);}
|
||||||
@end multitable
|
@end multitable
|
||||||
|
|
||||||
@item @emph{Fortran}:
|
@item @emph{Fortran}:
|
||||||
|
@ -2526,11 +2552,30 @@ array element and @var{len} specifies the length in bytes.
|
||||||
@item @emph{Interface}: @tab @code{subroutine acc_copyout(a, len)}
|
@item @emph{Interface}: @tab @code{subroutine acc_copyout(a, len)}
|
||||||
@item @tab @code{type, dimension(:[,:]...) :: a}
|
@item @tab @code{type, dimension(:[,:]...) :: a}
|
||||||
@item @tab @code{integer len}
|
@item @tab @code{integer len}
|
||||||
|
@item @emph{Interface}: @tab @code{subroutine acc_copyout_async(a, async)}
|
||||||
|
@item @tab @code{type, dimension(:[,:]...) :: a}
|
||||||
|
@item @tab @code{integer(acc_handle_kind) :: async}
|
||||||
|
@item @emph{Interface}: @tab @code{subroutine acc_copyout_async(a, len, async)}
|
||||||
|
@item @tab @code{type, dimension(:[,:]...) :: a}
|
||||||
|
@item @tab @code{integer len}
|
||||||
|
@item @tab @code{integer(acc_handle_kind) :: async}
|
||||||
|
@item @emph{Interface}: @tab @code{subroutine acc_copyout_finalize(a)}
|
||||||
|
@item @tab @code{type, dimension(:[,:]...) :: a}
|
||||||
|
@item @emph{Interface}: @tab @code{subroutine acc_copyout_finalize(a, len)}
|
||||||
|
@item @tab @code{type, dimension(:[,:]...) :: a}
|
||||||
|
@item @tab @code{integer len}
|
||||||
|
@item @emph{Interface}: @tab @code{subroutine acc_copyout_finalize_async(a, async)}
|
||||||
|
@item @tab @code{type, dimension(:[,:]...) :: a}
|
||||||
|
@item @tab @code{integer(acc_handle_kind) :: async}
|
||||||
|
@item @emph{Interface}: @tab @code{subroutine acc_copyout_finalize_async(a, len, async)}
|
||||||
|
@item @tab @code{type, dimension(:[,:]...) :: a}
|
||||||
|
@item @tab @code{integer len}
|
||||||
|
@item @tab @code{integer(acc_handle_kind) :: async}
|
||||||
@end multitable
|
@end multitable
|
||||||
|
|
||||||
@item @emph{Reference}:
|
@item @emph{Reference}:
|
||||||
@uref{https://www.openacc.org, OpenACC specification v2.0}, section
|
@uref{https://www.openacc.org, OpenACC specification v2.6}, section
|
||||||
3.2.21.
|
3.2.22.
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
|
|
||||||
|
@ -2549,6 +2594,9 @@ array element and @var{len} specifies the length in bytes.
|
||||||
@item @emph{C/C++}:
|
@item @emph{C/C++}:
|
||||||
@multitable @columnfractions .20 .80
|
@multitable @columnfractions .20 .80
|
||||||
@item @emph{Prototype}: @tab @code{acc_delete(h_void *a, size_t len);}
|
@item @emph{Prototype}: @tab @code{acc_delete(h_void *a, size_t len);}
|
||||||
|
@item @emph{Prototype}: @tab @code{acc_delete_async(h_void *a, size_t len, int async);}
|
||||||
|
@item @emph{Prototype}: @tab @code{acc_delete_finalize(h_void *a, size_t len);}
|
||||||
|
@item @emph{Prototype}: @tab @code{acc_delete_finalize_async(h_void *a, size_t len, int async);}
|
||||||
@end multitable
|
@end multitable
|
||||||
|
|
||||||
@item @emph{Fortran}:
|
@item @emph{Fortran}:
|
||||||
|
@ -2558,11 +2606,30 @@ array element and @var{len} specifies the length in bytes.
|
||||||
@item @emph{Interface}: @tab @code{subroutine acc_delete(a, len)}
|
@item @emph{Interface}: @tab @code{subroutine acc_delete(a, len)}
|
||||||
@item @tab @code{type, dimension(:[,:]...) :: a}
|
@item @tab @code{type, dimension(:[,:]...) :: a}
|
||||||
@item @tab @code{integer len}
|
@item @tab @code{integer len}
|
||||||
|
@item @emph{Interface}: @tab @code{subroutine acc_delete_async(a, async)}
|
||||||
|
@item @tab @code{type, dimension(:[,:]...) :: a}
|
||||||
|
@item @tab @code{integer(acc_handle_kind) :: async}
|
||||||
|
@item @emph{Interface}: @tab @code{subroutine acc_delete_async(a, len, async)}
|
||||||
|
@item @tab @code{type, dimension(:[,:]...) :: a}
|
||||||
|
@item @tab @code{integer len}
|
||||||
|
@item @tab @code{integer(acc_handle_kind) :: async}
|
||||||
|
@item @emph{Interface}: @tab @code{subroutine acc_delete_finalize(a)}
|
||||||
|
@item @tab @code{type, dimension(:[,:]...) :: a}
|
||||||
|
@item @emph{Interface}: @tab @code{subroutine acc_delete_finalize(a, len)}
|
||||||
|
@item @tab @code{type, dimension(:[,:]...) :: a}
|
||||||
|
@item @tab @code{integer len}
|
||||||
|
@item @emph{Interface}: @tab @code{subroutine acc_delete_async_finalize(a, async)}
|
||||||
|
@item @tab @code{type, dimension(:[,:]...) :: a}
|
||||||
|
@item @tab @code{integer(acc_handle_kind) :: async}
|
||||||
|
@item @emph{Interface}: @tab @code{subroutine acc_delete_async_finalize(a, len, async)}
|
||||||
|
@item @tab @code{type, dimension(:[,:]...) :: a}
|
||||||
|
@item @tab @code{integer len}
|
||||||
|
@item @tab @code{integer(acc_handle_kind) :: async}
|
||||||
@end multitable
|
@end multitable
|
||||||
|
|
||||||
@item @emph{Reference}:
|
@item @emph{Reference}:
|
||||||
@uref{https://www.openacc.org, OpenACC specification v2.0}, section
|
@uref{https://www.openacc.org, OpenACC specification v2.6}, section
|
||||||
3.2.22.
|
3.2.23.
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
|
|
||||||
|
@ -2582,6 +2649,7 @@ array element and @var{len} specifies the length in bytes.
|
||||||
@item @emph{C/C++}:
|
@item @emph{C/C++}:
|
||||||
@multitable @columnfractions .20 .80
|
@multitable @columnfractions .20 .80
|
||||||
@item @emph{Prototype}: @tab @code{acc_update_device(h_void *a, size_t len);}
|
@item @emph{Prototype}: @tab @code{acc_update_device(h_void *a, size_t len);}
|
||||||
|
@item @emph{Prototype}: @tab @code{acc_update_device(h_void *a, size_t len, async);}
|
||||||
@end multitable
|
@end multitable
|
||||||
|
|
||||||
@item @emph{Fortran}:
|
@item @emph{Fortran}:
|
||||||
|
@ -2591,11 +2659,18 @@ array element and @var{len} specifies the length in bytes.
|
||||||
@item @emph{Interface}: @tab @code{subroutine acc_update_device(a, len)}
|
@item @emph{Interface}: @tab @code{subroutine acc_update_device(a, len)}
|
||||||
@item @tab @code{type, dimension(:[,:]...) :: a}
|
@item @tab @code{type, dimension(:[,:]...) :: a}
|
||||||
@item @tab @code{integer len}
|
@item @tab @code{integer len}
|
||||||
|
@item @emph{Interface}: @tab @code{subroutine acc_update_device_async(a, async)}
|
||||||
|
@item @tab @code{type, dimension(:[,:]...) :: a}
|
||||||
|
@item @tab @code{integer(acc_handle_kind) :: async}
|
||||||
|
@item @emph{Interface}: @tab @code{subroutine acc_update_device_async(a, len, async)}
|
||||||
|
@item @tab @code{type, dimension(:[,:]...) :: a}
|
||||||
|
@item @tab @code{integer len}
|
||||||
|
@item @tab @code{integer(acc_handle_kind) :: async}
|
||||||
@end multitable
|
@end multitable
|
||||||
|
|
||||||
@item @emph{Reference}:
|
@item @emph{Reference}:
|
||||||
@uref{https://www.openacc.org, OpenACC specification v2.0}, section
|
@uref{https://www.openacc.org, OpenACC specification v2.6}, section
|
||||||
3.2.23.
|
3.2.24.
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
|
|
||||||
|
@ -2615,6 +2690,7 @@ array element and @var{len} specifies the length in bytes.
|
||||||
@item @emph{C/C++}:
|
@item @emph{C/C++}:
|
||||||
@multitable @columnfractions .20 .80
|
@multitable @columnfractions .20 .80
|
||||||
@item @emph{Prototype}: @tab @code{acc_update_self(h_void *a, size_t len);}
|
@item @emph{Prototype}: @tab @code{acc_update_self(h_void *a, size_t len);}
|
||||||
|
@item @emph{Prototype}: @tab @code{acc_update_self_async(h_void *a, size_t len, int async);}
|
||||||
@end multitable
|
@end multitable
|
||||||
|
|
||||||
@item @emph{Fortran}:
|
@item @emph{Fortran}:
|
||||||
|
@ -2624,11 +2700,18 @@ array element and @var{len} specifies the length in bytes.
|
||||||
@item @emph{Interface}: @tab @code{subroutine acc_update_self(a, len)}
|
@item @emph{Interface}: @tab @code{subroutine acc_update_self(a, len)}
|
||||||
@item @tab @code{type, dimension(:[,:]...) :: a}
|
@item @tab @code{type, dimension(:[,:]...) :: a}
|
||||||
@item @tab @code{integer len}
|
@item @tab @code{integer len}
|
||||||
|
@item @emph{Interface}: @tab @code{subroutine acc_update_self_async(a, async)}
|
||||||
|
@item @tab @code{type, dimension(:[,:]...) :: a}
|
||||||
|
@item @tab @code{integer(acc_handle_kind) :: async}
|
||||||
|
@item @emph{Interface}: @tab @code{subroutine acc_update_self_async(a, len, async)}
|
||||||
|
@item @tab @code{type, dimension(:[,:]...) :: a}
|
||||||
|
@item @tab @code{integer len}
|
||||||
|
@item @tab @code{integer(acc_handle_kind) :: async}
|
||||||
@end multitable
|
@end multitable
|
||||||
|
|
||||||
@item @emph{Reference}:
|
@item @emph{Reference}:
|
||||||
@uref{https://www.openacc.org, OpenACC specification v2.0}, section
|
@uref{https://www.openacc.org, OpenACC specification v2.6}, section
|
||||||
3.2.24.
|
3.2.25.
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
|
|
||||||
|
@ -2647,8 +2730,8 @@ specified with the host address @var{h} and a length of @var{len}.
|
||||||
@end multitable
|
@end multitable
|
||||||
|
|
||||||
@item @emph{Reference}:
|
@item @emph{Reference}:
|
||||||
@uref{https://www.openacc.org, OpenACC specification v2.0}, section
|
@uref{https://www.openacc.org, OpenACC specification v2.6}, section
|
||||||
3.2.25.
|
3.2.26.
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
|
|
||||||
|
@ -2666,8 +2749,8 @@ specified by @var{h}.
|
||||||
@end multitable
|
@end multitable
|
||||||
|
|
||||||
@item @emph{Reference}:
|
@item @emph{Reference}:
|
||||||
@uref{https://www.openacc.org, OpenACC specification v2.0}, section
|
@uref{https://www.openacc.org, OpenACC specification v2.6}, section
|
||||||
3.2.26.
|
3.2.27.
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
|
|
||||||
|
@ -2685,8 +2768,8 @@ host address specified by @var{h}.
|
||||||
@end multitable
|
@end multitable
|
||||||
|
|
||||||
@item @emph{Reference}:
|
@item @emph{Reference}:
|
||||||
@uref{https://www.openacc.org, OpenACC specification v2.0}, section
|
@uref{https://www.openacc.org, OpenACC specification v2.6}, section
|
||||||
3.2.27.
|
3.2.28.
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
|
|
||||||
|
@ -2704,8 +2787,8 @@ device address specified by @var{d}.
|
||||||
@end multitable
|
@end multitable
|
||||||
|
|
||||||
@item @emph{Reference}:
|
@item @emph{Reference}:
|
||||||
@uref{https://www.openacc.org, OpenACC specification v2.0}, section
|
@uref{https://www.openacc.org, OpenACC specification v2.6}, section
|
||||||
3.2.28.
|
3.2.29.
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
|
|
||||||
|
@ -2743,8 +2826,8 @@ a @code{false} is return to indicate the mapped memory is not present.
|
||||||
@end multitable
|
@end multitable
|
||||||
|
|
||||||
@item @emph{Reference}:
|
@item @emph{Reference}:
|
||||||
@uref{https://www.openacc.org, OpenACC specification v2.0}, section
|
@uref{https://www.openacc.org, OpenACC specification v2.6}, section
|
||||||
3.2.29.
|
3.2.30.
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
|
|
||||||
|
@ -2763,8 +2846,8 @@ device memory specified by the device address @var{dest} for a length of
|
||||||
@end multitable
|
@end multitable
|
||||||
|
|
||||||
@item @emph{Reference}:
|
@item @emph{Reference}:
|
||||||
@uref{https://www.openacc.org, OpenACC specification v2.0}, section
|
@uref{https://www.openacc.org, OpenACC specification v2.6}, section
|
||||||
3.2.30.
|
3.2.31.
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
|
|
||||||
|
@ -2783,8 +2866,50 @@ device memory specified by the device address @var{dest} for a length of
|
||||||
@end multitable
|
@end multitable
|
||||||
|
|
||||||
@item @emph{Reference}:
|
@item @emph{Reference}:
|
||||||
@uref{https://www.openacc.org, OpenACC specification v2.0}, section
|
@uref{https://www.openacc.org, OpenACC specification v2.6}, section
|
||||||
3.2.31.
|
3.2.32.
|
||||||
|
@end table
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@node acc_attach
|
||||||
|
@section @code{acc_attach} -- Let device pointer point to device-pointer target.
|
||||||
|
@table @asis
|
||||||
|
@item @emph{Description}
|
||||||
|
This function updates a pointer on the device from pointing to a host-pointer
|
||||||
|
address to pointing to the corresponding device data.
|
||||||
|
|
||||||
|
@item @emph{C/C++}:
|
||||||
|
@multitable @columnfractions .20 .80
|
||||||
|
@item @emph{Prototype}: @tab @code{acc_attach(h_void **ptr);}
|
||||||
|
@item @emph{Prototype}: @tab @code{acc_attach_async(h_void **ptr, int async);}
|
||||||
|
@end multitable
|
||||||
|
|
||||||
|
@item @emph{Reference}:
|
||||||
|
@uref{https://www.openacc.org, OpenACC specification v2.6}, section
|
||||||
|
3.2.34.
|
||||||
|
@end table
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@node acc_detach
|
||||||
|
@section @code{acc_detach} -- Let device pointer point to host-pointer target.
|
||||||
|
@table @asis
|
||||||
|
@item @emph{Description}
|
||||||
|
This function updates a pointer on the device from pointing to a device-pointer
|
||||||
|
address to pointing to the corresponding host data.
|
||||||
|
|
||||||
|
@item @emph{C/C++}:
|
||||||
|
@multitable @columnfractions .20 .80
|
||||||
|
@item @emph{Prototype}: @tab @code{acc_detach(h_void **ptr);}
|
||||||
|
@item @emph{Prototype}: @tab @code{acc_detach_async(h_void **ptr, int async);}
|
||||||
|
@item @emph{Prototype}: @tab @code{acc_detach_finalize(h_void **ptr);}
|
||||||
|
@item @emph{Prototype}: @tab @code{acc_detach_finalize_async(h_void **ptr, int async);}
|
||||||
|
@end multitable
|
||||||
|
|
||||||
|
@item @emph{Reference}:
|
||||||
|
@uref{https://www.openacc.org, OpenACC specification v2.6}, section
|
||||||
|
3.2.35.
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
|
|
||||||
|
@ -2802,7 +2927,7 @@ as used by the CUDA Runtime or Driver API's.
|
||||||
@end multitable
|
@end multitable
|
||||||
|
|
||||||
@item @emph{Reference}:
|
@item @emph{Reference}:
|
||||||
@uref{https://www.openacc.org, OpenACC specification v2.0}, section
|
@uref{https://www.openacc.org, OpenACC specification v2.6}, section
|
||||||
A.2.1.1.
|
A.2.1.1.
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
|
@ -2821,7 +2946,7 @@ as used by the CUDA Runtime or Driver API's.
|
||||||
@end multitable
|
@end multitable
|
||||||
|
|
||||||
@item @emph{Reference}:
|
@item @emph{Reference}:
|
||||||
@uref{https://www.openacc.org, OpenACC specification v2.0}, section
|
@uref{https://www.openacc.org, OpenACC specification v2.6}, section
|
||||||
A.2.1.2.
|
A.2.1.2.
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
|
@ -2840,7 +2965,7 @@ This handle is the same as used by the CUDA Runtime or Driver API's.
|
||||||
@end multitable
|
@end multitable
|
||||||
|
|
||||||
@item @emph{Reference}:
|
@item @emph{Reference}:
|
||||||
@uref{https://www.openacc.org, OpenACC specification v2.0}, section
|
@uref{https://www.openacc.org, OpenACC specification v2.6}, section
|
||||||
A.2.1.3.
|
A.2.1.3.
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
|
@ -2864,7 +2989,7 @@ The return value is not specified.
|
||||||
@end multitable
|
@end multitable
|
||||||
|
|
||||||
@item @emph{Reference}:
|
@item @emph{Reference}:
|
||||||
@uref{https://www.openacc.org, OpenACC specification v2.0}, section
|
@uref{https://www.openacc.org, OpenACC specification v2.6}, section
|
||||||
A.2.1.4.
|
A.2.1.4.
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
|
@ -2980,7 +3105,7 @@ The variable @env{GCC_ACC_NOTIFY} is used for diagnostic purposes.
|
||||||
@section @code{ACC_DEVICE_TYPE}
|
@section @code{ACC_DEVICE_TYPE}
|
||||||
@table @asis
|
@table @asis
|
||||||
@item @emph{Reference}:
|
@item @emph{Reference}:
|
||||||
@uref{https://www.openacc.org, OpenACC specification v2.0}, section
|
@uref{https://www.openacc.org, OpenACC specification v2.6}, section
|
||||||
4.1.
|
4.1.
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
|
@ -2990,7 +3115,7 @@ The variable @env{GCC_ACC_NOTIFY} is used for diagnostic purposes.
|
||||||
@section @code{ACC_DEVICE_NUM}
|
@section @code{ACC_DEVICE_NUM}
|
||||||
@table @asis
|
@table @asis
|
||||||
@item @emph{Reference}:
|
@item @emph{Reference}:
|
||||||
@uref{https://www.openacc.org, OpenACC specification v2.0}, section
|
@uref{https://www.openacc.org, OpenACC specification v2.6}, section
|
||||||
4.2.
|
4.2.
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
|
@ -3220,7 +3345,7 @@ is called prior to a call to an OpenACC function, then you must call
|
||||||
@code{acc_set_device_num()}@footnote{More complete information
|
@code{acc_set_device_num()}@footnote{More complete information
|
||||||
about @env{ACC_DEVICE_TYPE} and @env{ACC_DEVICE_NUM} can be found in
|
about @env{ACC_DEVICE_TYPE} and @env{ACC_DEVICE_NUM} can be found in
|
||||||
sections 4.1 and 4.2 of the @uref{https://www.openacc.org, OpenACC}
|
sections 4.1 and 4.2 of the @uref{https://www.openacc.org, OpenACC}
|
||||||
Application Programming Interface”, Version 2.0.}
|
Application Programming Interface”, Version 2.6.}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -792,7 +792,7 @@ module openacc
|
||||||
public :: acc_delete_async, acc_update_device_async, acc_update_self_async
|
public :: acc_delete_async, acc_update_device_async, acc_update_self_async
|
||||||
public :: acc_copyout_finalize, acc_delete_finalize
|
public :: acc_copyout_finalize, acc_delete_finalize
|
||||||
|
|
||||||
integer, parameter :: openacc_version = 201306
|
integer, parameter :: openacc_version = 201711
|
||||||
|
|
||||||
interface acc_get_num_devices
|
interface acc_get_num_devices
|
||||||
procedure :: acc_get_num_devices_h
|
procedure :: acc_get_num_devices_h
|
||||||
|
|
|
@ -52,7 +52,7 @@
|
||||||
integer (acc_handle_kind), parameter :: acc_async_noval = -1
|
integer (acc_handle_kind), parameter :: acc_async_noval = -1
|
||||||
integer (acc_handle_kind), parameter :: acc_async_sync = -2
|
integer (acc_handle_kind), parameter :: acc_async_sync = -2
|
||||||
|
|
||||||
integer, parameter :: openacc_version = 201306
|
integer, parameter :: openacc_version = 201711
|
||||||
|
|
||||||
interface acc_get_num_devices
|
interface acc_get_num_devices
|
||||||
function acc_get_num_devices_h (d)
|
function acc_get_num_devices_h (d)
|
||||||
|
|
|
@ -4,6 +4,6 @@
|
||||||
implicit none
|
implicit none
|
||||||
include "openacc_lib.h"
|
include "openacc_lib.h"
|
||||||
|
|
||||||
if (openacc_version .ne. 201306) STOP 1
|
if (openacc_version .ne. 201711) STOP 1
|
||||||
|
|
||||||
end program main
|
end program main
|
||||||
|
|
|
@ -4,6 +4,6 @@ program main
|
||||||
use openacc
|
use openacc
|
||||||
implicit none
|
implicit none
|
||||||
|
|
||||||
if (openacc_version .ne. 201306) STOP 1
|
if (openacc_version .ne. 201711) STOP 1
|
||||||
|
|
||||||
end program main
|
end program main
|
||||||
|
|
Loading…
Reference in New Issue