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>
|
||||
|
||||
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>
|
||||
|
||||
PR c++/89357
|
||||
|
|
|
@ -1435,7 +1435,7 @@ c_cpp_builtins (cpp_reader *pfile)
|
|||
cpp_define (pfile, "__SSP__=1");
|
||||
|
||||
if (flag_openacc)
|
||||
cpp_define (pfile, "_OPENACC=201306");
|
||||
cpp_define (pfile, "_OPENACC=201711");
|
||||
|
||||
if (flag_openmp)
|
||||
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
|
||||
@code{!$acc} in Fortran. When @option{-fopenacc} is specified, the
|
||||
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
|
||||
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>
|
||||
|
||||
PR fortran/93541
|
||||
|
@ -109,7 +117,7 @@
|
|||
* interface.c (gfc_procedure_use): Also check parent namespace for
|
||||
'implict none (external)'.
|
||||
* symbol.c (gfc_get_namespace): Don't set has_implicit_none_export
|
||||
to parent namespace's setting.
|
||||
to parent namespace's setting.
|
||||
|
||||
2020-01-19 Thomas König <tkoenig@gcc.gnu.org>
|
||||
|
||||
|
|
|
@ -166,7 +166,7 @@ cpp_define_builtins (cpp_reader *pfile)
|
|||
cpp_define (pfile, "_LANGUAGE_FORTRAN=1");
|
||||
|
||||
if (flag_openacc)
|
||||
cpp_define (pfile, "_OPENACC=201306");
|
||||
cpp_define (pfile, "_OPENACC=201711");
|
||||
|
||||
if (flag_openmp)
|
||||
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
|
||||
still under development and has a few remaining rough edges.
|
||||
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
|
||||
@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
|
||||
(version 4.0 and most of the features of the 4.5 version,
|
||||
@url{http://openmp.org/@/wp/@/openmp-specifications/}).
|
||||
There also is initial support for the OpenACC specification (targeting
|
||||
version 2.0, @uref{http://www.openacc.org/}).
|
||||
Note that this is an experimental feature, incomplete, and subject to
|
||||
change in future versions of GCC. See
|
||||
There also is support for the OpenACC specification (targeting
|
||||
version 2.6, @uref{http://www.openacc.org/}). See
|
||||
@uref{https://gcc.gnu.org/wiki/OpenACC} for more information.
|
||||
|
||||
@node Varying Length Character Strings
|
||||
|
@ -2245,7 +2240,7 @@ influence run-time behavior.
|
|||
|
||||
GNU Fortran strives to be compatible to the
|
||||
@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
|
||||
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
|
||||
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
|
||||
@subsection Argument list functions @code{%VAL}, @code{%REF} and @code{%LOC}
|
||||
@cindex argument list functions
|
||||
|
|
|
@ -15371,7 +15371,7 @@ kind @code{omp_pause_resource_kind}:
|
|||
@section OpenACC Module @code{OPENACC}
|
||||
@table @asis
|
||||
@item @emph{Standard}:
|
||||
OpenACC Application Programming Interface v2.0
|
||||
OpenACC Application Programming Interface v2.6
|
||||
@end table
|
||||
|
||||
|
||||
|
@ -15385,9 +15385,9 @@ are listed below.
|
|||
|
||||
For details refer to the actual
|
||||
@uref{http://www.openacc.org/,
|
||||
OpenACC Application Programming Interface v2.0}.
|
||||
OpenACC Application Programming Interface v2.6}.
|
||||
|
||||
@code{OPENACC} provides the scalar default-integer
|
||||
named constant @code{openacc_version} with a value of the form
|
||||
@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
|
||||
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
|
||||
@opindex @code{fopenmp}
|
||||
@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>
|
||||
|
||||
PR fortran/93427
|
||||
|
|
|
@ -6,6 +6,6 @@
|
|||
# error _OPENACC not defined
|
||||
#endif
|
||||
|
||||
#if _OPENACC != 201306
|
||||
#if _OPENACC != 201711
|
||||
# error _OPENACC defined to wrong value
|
||||
#endif
|
||||
|
|
|
@ -6,6 +6,6 @@
|
|||
# error _OPENACC not defined
|
||||
#endif
|
||||
|
||||
#if _OPENACC != 201306
|
||||
#if _OPENACC != 201711
|
||||
# error _OPENACC defined to wrong value
|
||||
#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>
|
||||
|
||||
* 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
|
||||
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
|
||||
change in future versions of GCC. See
|
||||
|
@ -1836,7 +1836,7 @@ change in future versions of GCC. See
|
|||
@chapter OpenACC Runtime Library Routines
|
||||
|
||||
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.
|
||||
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
|
||||
|
@ -1892,6 +1892,8 @@ acceleration device.
|
|||
present on device.
|
||||
* acc_memcpy_to_device:: Copy host memory to device 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.
|
||||
|
||||
|
@ -1929,7 +1931,7 @@ for the device type specified in @var{devicetype}.
|
|||
@end multitable
|
||||
|
||||
@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.
|
||||
@end table
|
||||
|
||||
|
@ -1954,7 +1956,7 @@ in @var{devicetype}, to use when executing a parallel or kernels region.
|
|||
@end multitable
|
||||
|
||||
@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.
|
||||
@end table
|
||||
|
||||
|
@ -1979,7 +1981,7 @@ parallel or kernels region.
|
|||
@end multitable
|
||||
|
||||
@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.
|
||||
@end table
|
||||
|
||||
|
@ -2006,7 +2008,7 @@ type @var{devicetype}.
|
|||
@end multitable
|
||||
|
||||
@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.
|
||||
@end table
|
||||
|
||||
|
@ -2033,7 +2035,7 @@ region.
|
|||
@end multitable
|
||||
|
||||
@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.
|
||||
@end table
|
||||
|
||||
|
@ -2100,8 +2102,8 @@ a zero and Fortran returns a @code{false}.
|
|||
@end multitable
|
||||
|
||||
@item @emph{Reference}:
|
||||
@uref{https://www.openacc.org, OpenACC specification v2.0}, section
|
||||
3.2.6.
|
||||
@uref{https://www.openacc.org, OpenACC specification v2.6}, section
|
||||
3.2.9.
|
||||
@end table
|
||||
|
||||
|
||||
|
@ -2128,8 +2130,8 @@ Fortran returns a @code{false}.
|
|||
@end multitable
|
||||
|
||||
@item @emph{Reference}:
|
||||
@uref{https://www.openacc.org, OpenACC specification v2.0}, section
|
||||
3.2.7.
|
||||
@uref{https://www.openacc.org, OpenACC specification v2.6}, section
|
||||
3.2.10.
|
||||
@end table
|
||||
|
||||
|
||||
|
@ -2156,8 +2158,8 @@ specified in @var{arg}.
|
|||
@end multitable
|
||||
|
||||
@item @emph{Reference}:
|
||||
@uref{https://www.openacc.org, OpenACC specification v2.0}, section
|
||||
3.2.8.
|
||||
@uref{https://www.openacc.org, OpenACC specification v2.6}, section
|
||||
3.2.11.
|
||||
@end table
|
||||
|
||||
|
||||
|
@ -2181,8 +2183,8 @@ This function waits for the completion of all asynchronous operations.
|
|||
@end multitable
|
||||
|
||||
@item @emph{Reference}:
|
||||
@uref{https://www.openacc.org, OpenACC specification v2.0}, section
|
||||
3.2.10.
|
||||
@uref{https://www.openacc.org, OpenACC specification v2.6}, section
|
||||
3.2.13.
|
||||
@end table
|
||||
|
||||
|
||||
|
@ -2207,8 +2209,8 @@ any queue.
|
|||
@end multitable
|
||||
|
||||
@item @emph{Reference}:
|
||||
@uref{https://www.openacc.org, OpenACC specification v2.0}, section
|
||||
3.2.11.
|
||||
@uref{https://www.openacc.org, OpenACC specification v2.6}, section
|
||||
3.2.14.
|
||||
@end table
|
||||
|
||||
|
||||
|
@ -2232,8 +2234,8 @@ asynchronous operations enqueued on queue @var{arg}.
|
|||
@end multitable
|
||||
|
||||
@item @emph{Reference}:
|
||||
@uref{https://www.openacc.org, OpenACC specification v2.0}, section
|
||||
3.2.9.
|
||||
@uref{https://www.openacc.org, OpenACC specification v2.6}, section
|
||||
3.2.12.
|
||||
@end table
|
||||
|
||||
|
||||
|
@ -2257,8 +2259,8 @@ This function initializes the runtime for the device type specified in
|
|||
@end multitable
|
||||
|
||||
@item @emph{Reference}:
|
||||
@uref{https://www.openacc.org, OpenACC specification v2.0}, section
|
||||
3.2.12.
|
||||
@uref{https://www.openacc.org, OpenACC specification v2.6}, section
|
||||
3.2.7.
|
||||
@end table
|
||||
|
||||
|
||||
|
@ -2282,8 +2284,8 @@ This function shuts down the runtime for the device type specified in
|
|||
@end multitable
|
||||
|
||||
@item @emph{Reference}:
|
||||
@uref{https://www.openacc.org, OpenACC specification v2.0}, section
|
||||
3.2.13.
|
||||
@uref{https://www.openacc.org, OpenACC specification v2.6}, section
|
||||
3.2.8.
|
||||
@end table
|
||||
|
||||
|
||||
|
@ -2313,8 +2315,8 @@ return @code{false}.
|
|||
|
||||
|
||||
@item @emph{Reference}:
|
||||
@uref{https://www.openacc.org, OpenACC specification v2.0}, section
|
||||
3.2.14.
|
||||
@uref{https://www.openacc.org, OpenACC specification v2.6}, section
|
||||
3.2.17.
|
||||
@end table
|
||||
|
||||
|
||||
|
@ -2332,8 +2334,8 @@ the device address of the allocated memory.
|
|||
@end multitable
|
||||
|
||||
@item @emph{Reference}:
|
||||
@uref{https://www.openacc.org, OpenACC specification v2.0}, section
|
||||
3.2.15.
|
||||
@uref{https://www.openacc.org, OpenACC specification v2.6}, section
|
||||
3.2.18.
|
||||
@end table
|
||||
|
||||
|
||||
|
@ -2350,8 +2352,8 @@ Free previously allocated device memory at the device address @code{a}.
|
|||
@end multitable
|
||||
|
||||
@item @emph{Reference}:
|
||||
@uref{https://www.openacc.org, OpenACC specification v2.0}, section
|
||||
3.2.16.
|
||||
@uref{https://www.openacc.org, OpenACC specification v2.6}, section
|
||||
3.2.19.
|
||||
@end table
|
||||
|
||||
|
||||
|
@ -2371,6 +2373,7 @@ variable or array element and @var{len} specifies the length in bytes.
|
|||
@item @emph{C/C++}:
|
||||
@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_async(h_void *a, size_t len, int async);}
|
||||
@end multitable
|
||||
|
||||
@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 @tab @code{type, dimension(:[,:]...) :: a}
|
||||
@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
|
||||
|
||||
@item @emph{Reference}:
|
||||
@uref{https://www.openacc.org, OpenACC specification v2.0}, section
|
||||
3.2.17.
|
||||
@uref{https://www.openacc.org, OpenACC specification v2.6}, section
|
||||
3.2.20.
|
||||
@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
|
||||
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++}:
|
||||
@multitable @columnfractions .20 .80
|
||||
@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
|
||||
|
||||
@item @emph{Reference}:
|
||||
@uref{https://www.openacc.org, OpenACC specification v2.0}, section
|
||||
3.2.18.
|
||||
@uref{https://www.openacc.org, OpenACC specification v2.6}, section
|
||||
3.2.20.
|
||||
@end table
|
||||
|
||||
|
||||
|
@ -2444,6 +2457,7 @@ array element and @var{len} specifies the length in bytes.
|
|||
@item @emph{C/C++}:
|
||||
@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_async(h_void *a, size_t len, int async);}
|
||||
@end multitable
|
||||
|
||||
@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 @tab @code{type, dimension(:[,:]...) :: a}
|
||||
@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
|
||||
|
||||
@item @emph{Reference}:
|
||||
@uref{https://www.openacc.org, OpenACC specification v2.0}, section
|
||||
3.2.19.
|
||||
@uref{https://www.openacc.org, OpenACC specification v2.6}, section
|
||||
3.2.21.
|
||||
@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
|
||||
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++}:
|
||||
@multitable @columnfractions .20 .80
|
||||
|
@ -2497,8 +2520,8 @@ array element and @var{len} specifies the length in bytes.
|
|||
@end multitable
|
||||
|
||||
@item @emph{Reference}:
|
||||
@uref{https://www.openacc.org, OpenACC specification v2.0}, section
|
||||
3.2.20.
|
||||
@uref{https://www.openacc.org, OpenACC specification v2.6}, section
|
||||
3.2.21.
|
||||
@end table
|
||||
|
||||
|
||||
|
@ -2517,6 +2540,9 @@ array element and @var{len} specifies the length in bytes.
|
|||
@item @emph{C/C++}:
|
||||
@multitable @columnfractions .20 .80
|
||||
@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
|
||||
|
||||
@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 @tab @code{type, dimension(:[,:]...) :: a}
|
||||
@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
|
||||
|
||||
@item @emph{Reference}:
|
||||
@uref{https://www.openacc.org, OpenACC specification v2.0}, section
|
||||
3.2.21.
|
||||
@uref{https://www.openacc.org, OpenACC specification v2.6}, section
|
||||
3.2.22.
|
||||
@end table
|
||||
|
||||
|
||||
|
@ -2549,6 +2594,9 @@ array element and @var{len} specifies the length in bytes.
|
|||
@item @emph{C/C++}:
|
||||
@multitable @columnfractions .20 .80
|
||||
@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
|
||||
|
||||
@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 @tab @code{type, dimension(:[,:]...) :: a}
|
||||
@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
|
||||
|
||||
@item @emph{Reference}:
|
||||
@uref{https://www.openacc.org, OpenACC specification v2.0}, section
|
||||
3.2.22.
|
||||
@uref{https://www.openacc.org, OpenACC specification v2.6}, section
|
||||
3.2.23.
|
||||
@end table
|
||||
|
||||
|
||||
|
@ -2582,6 +2649,7 @@ array element and @var{len} specifies the length in bytes.
|
|||
@item @emph{C/C++}:
|
||||
@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, async);}
|
||||
@end multitable
|
||||
|
||||
@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 @tab @code{type, dimension(:[,:]...) :: a}
|
||||
@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
|
||||
|
||||
@item @emph{Reference}:
|
||||
@uref{https://www.openacc.org, OpenACC specification v2.0}, section
|
||||
3.2.23.
|
||||
@uref{https://www.openacc.org, OpenACC specification v2.6}, section
|
||||
3.2.24.
|
||||
@end table
|
||||
|
||||
|
||||
|
@ -2615,6 +2690,7 @@ array element and @var{len} specifies the length in bytes.
|
|||
@item @emph{C/C++}:
|
||||
@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_async(h_void *a, size_t len, int async);}
|
||||
@end multitable
|
||||
|
||||
@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 @tab @code{type, dimension(:[,:]...) :: a}
|
||||
@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
|
||||
|
||||
@item @emph{Reference}:
|
||||
@uref{https://www.openacc.org, OpenACC specification v2.0}, section
|
||||
3.2.24.
|
||||
@uref{https://www.openacc.org, OpenACC specification v2.6}, section
|
||||
3.2.25.
|
||||
@end table
|
||||
|
||||
|
||||
|
@ -2647,8 +2730,8 @@ specified with the host address @var{h} and a length of @var{len}.
|
|||
@end multitable
|
||||
|
||||
@item @emph{Reference}:
|
||||
@uref{https://www.openacc.org, OpenACC specification v2.0}, section
|
||||
3.2.25.
|
||||
@uref{https://www.openacc.org, OpenACC specification v2.6}, section
|
||||
3.2.26.
|
||||
@end table
|
||||
|
||||
|
||||
|
@ -2666,8 +2749,8 @@ specified by @var{h}.
|
|||
@end multitable
|
||||
|
||||
@item @emph{Reference}:
|
||||
@uref{https://www.openacc.org, OpenACC specification v2.0}, section
|
||||
3.2.26.
|
||||
@uref{https://www.openacc.org, OpenACC specification v2.6}, section
|
||||
3.2.27.
|
||||
@end table
|
||||
|
||||
|
||||
|
@ -2685,8 +2768,8 @@ host address specified by @var{h}.
|
|||
@end multitable
|
||||
|
||||
@item @emph{Reference}:
|
||||
@uref{https://www.openacc.org, OpenACC specification v2.0}, section
|
||||
3.2.27.
|
||||
@uref{https://www.openacc.org, OpenACC specification v2.6}, section
|
||||
3.2.28.
|
||||
@end table
|
||||
|
||||
|
||||
|
@ -2704,8 +2787,8 @@ device address specified by @var{d}.
|
|||
@end multitable
|
||||
|
||||
@item @emph{Reference}:
|
||||
@uref{https://www.openacc.org, OpenACC specification v2.0}, section
|
||||
3.2.28.
|
||||
@uref{https://www.openacc.org, OpenACC specification v2.6}, section
|
||||
3.2.29.
|
||||
@end table
|
||||
|
||||
|
||||
|
@ -2743,8 +2826,8 @@ a @code{false} is return to indicate the mapped memory is not present.
|
|||
@end multitable
|
||||
|
||||
@item @emph{Reference}:
|
||||
@uref{https://www.openacc.org, OpenACC specification v2.0}, section
|
||||
3.2.29.
|
||||
@uref{https://www.openacc.org, OpenACC specification v2.6}, section
|
||||
3.2.30.
|
||||
@end table
|
||||
|
||||
|
||||
|
@ -2763,8 +2846,8 @@ device memory specified by the device address @var{dest} for a length of
|
|||
@end multitable
|
||||
|
||||
@item @emph{Reference}:
|
||||
@uref{https://www.openacc.org, OpenACC specification v2.0}, section
|
||||
3.2.30.
|
||||
@uref{https://www.openacc.org, OpenACC specification v2.6}, section
|
||||
3.2.31.
|
||||
@end table
|
||||
|
||||
|
||||
|
@ -2783,8 +2866,50 @@ device memory specified by the device address @var{dest} for a length of
|
|||
@end multitable
|
||||
|
||||
@item @emph{Reference}:
|
||||
@uref{https://www.openacc.org, OpenACC specification v2.0}, section
|
||||
3.2.31.
|
||||
@uref{https://www.openacc.org, OpenACC specification v2.6}, section
|
||||
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
|
||||
|
||||
|
||||
|
@ -2802,7 +2927,7 @@ as used by the CUDA Runtime or Driver API's.
|
|||
@end multitable
|
||||
|
||||
@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.
|
||||
@end table
|
||||
|
||||
|
@ -2821,7 +2946,7 @@ as used by the CUDA Runtime or Driver API's.
|
|||
@end multitable
|
||||
|
||||
@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.
|
||||
@end table
|
||||
|
||||
|
@ -2840,7 +2965,7 @@ This handle is the same as used by the CUDA Runtime or Driver API's.
|
|||
@end multitable
|
||||
|
||||
@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.
|
||||
@end table
|
||||
|
||||
|
@ -2864,7 +2989,7 @@ The return value is not specified.
|
|||
@end multitable
|
||||
|
||||
@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.
|
||||
@end table
|
||||
|
||||
|
@ -2980,7 +3105,7 @@ The variable @env{GCC_ACC_NOTIFY} is used for diagnostic purposes.
|
|||
@section @code{ACC_DEVICE_TYPE}
|
||||
@table @asis
|
||||
@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.
|
||||
@end table
|
||||
|
||||
|
@ -2990,7 +3115,7 @@ The variable @env{GCC_ACC_NOTIFY} is used for diagnostic purposes.
|
|||
@section @code{ACC_DEVICE_NUM}
|
||||
@table @asis
|
||||
@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.
|
||||
@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
|
||||
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}
|
||||
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_copyout_finalize, acc_delete_finalize
|
||||
|
||||
integer, parameter :: openacc_version = 201306
|
||||
integer, parameter :: openacc_version = 201711
|
||||
|
||||
interface acc_get_num_devices
|
||||
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_sync = -2
|
||||
|
||||
integer, parameter :: openacc_version = 201306
|
||||
integer, parameter :: openacc_version = 201711
|
||||
|
||||
interface acc_get_num_devices
|
||||
function acc_get_num_devices_h (d)
|
||||
|
|
|
@ -4,6 +4,6 @@
|
|||
implicit none
|
||||
include "openacc_lib.h"
|
||||
|
||||
if (openacc_version .ne. 201306) STOP 1
|
||||
if (openacc_version .ne. 201711) STOP 1
|
||||
|
||||
end program main
|
||||
|
|
|
@ -4,6 +4,6 @@ program main
|
|||
use openacc
|
||||
implicit none
|
||||
|
||||
if (openacc_version .ne. 201306) STOP 1
|
||||
if (openacc_version .ne. 201711) STOP 1
|
||||
|
||||
end program main
|
||||
|
|
Loading…
Reference in New Issue