Mercurial > hg > CbC > CbC_gcc
diff libgomp/openacc_lib.h @ 145:1830386684a0
gcc-9.2.0
author | anatofuz |
---|---|
date | Thu, 13 Feb 2020 11:34:05 +0900 |
parents | 84e7813d76e9 |
children |
line wrap: on
line diff
--- a/libgomp/openacc_lib.h Thu Oct 25 07:37:49 2018 +0900 +++ b/libgomp/openacc_lib.h Thu Feb 13 11:34:05 2020 +0900 @@ -1,6 +1,6 @@ ! OpenACC Runtime Library Definitions. -*- mode: fortran -*- -! Copyright (C) 2014-2018 Free Software Foundation, Inc. +! Copyright (C) 2014-2020 Free Software Foundation, Inc. ! Contributed by Tobias Burnus <burnus@net-b.de> ! and Mentor Embedded. @@ -32,6 +32,8 @@ ! Alternatively, the user can use the module version, which permits ! compilation with -std=f95. +! Keep in sync with openacc.f90 and config/accel/openacc.f90. + integer, parameter :: acc_device_kind = 4 ! Keep in sync with include/gomp-constants.h. @@ -42,6 +44,7 @@ ! removed. integer (acc_device_kind), parameter :: acc_device_not_host = 4 integer (acc_device_kind), parameter :: acc_device_nvidia = 5 + integer (acc_device_kind), parameter :: acc_device_radeon = 8 integer, parameter :: acc_handle_kind = 4 @@ -49,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) @@ -403,3 +406,159 @@ ! acc_memcpy_to_device: Only available in C/C++ ! acc_memcpy_from_device: Only available in C/C++ + + interface acc_copyin_async + subroutine acc_copyin_async_32_h (a, len, async) + use iso_c_binding, only: c_int32_t + import acc_handle_kind + !GCC$ ATTRIBUTES NO_ARG_CHECK :: a + type (*), dimension (*) :: a + integer (c_int32_t) len + integer (acc_handle_kind) async + end subroutine + + subroutine acc_copyin_async_64_h (a, len, async) + use iso_c_binding, only: c_int64_t + import acc_handle_kind + !GCC$ ATTRIBUTES NO_ARG_CHECK :: a + type (*), dimension (*) :: a + integer (c_int64_t) len + integer (acc_handle_kind) async + end subroutine + + subroutine acc_copyin_async_array_h (a, async_) + import acc_handle_kind + type (*), dimension (..), contiguous :: a + integer (acc_handle_kind) async_ + end subroutine + end interface + + interface acc_create_async + subroutine acc_create_async_32_h (a, len, async) + use iso_c_binding, only: c_int32_t + import acc_handle_kind + !GCC$ ATTRIBUTES NO_ARG_CHECK :: a + type (*), dimension (*) :: a + integer (c_int32_t) len + integer (acc_handle_kind) async + end subroutine + + subroutine acc_create_async_64_h (a, len, async) + use iso_c_binding, only: c_int64_t + import acc_handle_kind + !GCC$ ATTRIBUTES NO_ARG_CHECK :: a + type (*), dimension (*) :: a + integer (c_int64_t) len + integer (acc_handle_kind) async + end subroutine + + subroutine acc_create_async_array_h (a, async_) + import acc_handle_kind + type (*), dimension (..), contiguous :: a + integer (acc_handle_kind) async_ + end subroutine + end interface + + interface acc_copyout_async + subroutine acc_copyout_async_32_h (a, len, async) + use iso_c_binding, only: c_int32_t + import acc_handle_kind + !GCC$ ATTRIBUTES NO_ARG_CHECK :: a + type (*), dimension (*) :: a + integer (c_int32_t) len + integer (acc_handle_kind) async + end subroutine + + subroutine acc_copyout_async_64_h (a, len, async) + use iso_c_binding, only: c_int64_t + import acc_handle_kind + !GCC$ ATTRIBUTES NO_ARG_CHECK :: a + type (*), dimension (*) :: a + integer (c_int64_t) len + integer (acc_handle_kind) async + end subroutine + + subroutine acc_copyout_async_array_h (a, async_) + import acc_handle_kind + type (*), dimension (..), contiguous :: a + integer (acc_handle_kind) async_ + end subroutine + end interface + + interface acc_delete_async + subroutine acc_delete_async_32_h (a, len, async) + use iso_c_binding, only: c_int32_t + import acc_handle_kind + !GCC$ ATTRIBUTES NO_ARG_CHECK :: a + type (*), dimension (*) :: a + integer (c_int32_t) len + integer (acc_handle_kind) async + end subroutine + + subroutine acc_delete_async_64_h (a, len, async) + use iso_c_binding, only: c_int64_t + import acc_handle_kind + !GCC$ ATTRIBUTES NO_ARG_CHECK :: a + type (*), dimension (*) :: a + integer (c_int64_t) len + integer (acc_handle_kind) async + end subroutine + + subroutine acc_delete_async_array_h (a, async_) + import acc_handle_kind + type (*), dimension (..), contiguous :: a + integer (acc_handle_kind) async_ + end subroutine + end interface + + interface acc_update_device_async + subroutine acc_update_device_async_32_h (a, len, async) + use iso_c_binding, only: c_int32_t + import acc_handle_kind + !GCC$ ATTRIBUTES NO_ARG_CHECK :: a + type (*), dimension (*) :: a + integer (c_int32_t) len + integer (acc_handle_kind) async + end subroutine + + subroutine acc_update_device_async_64_h (a, len, async) + use iso_c_binding, only: c_int64_t + import acc_handle_kind + !GCC$ ATTRIBUTES NO_ARG_CHECK :: a + type (*), dimension (*) :: a + integer (c_int64_t) len + integer (acc_handle_kind) async + end subroutine + + subroutine acc_update_device_async_array_h (a, async_) + import acc_handle_kind + type (*), dimension (..), contiguous :: a + integer (acc_handle_kind) async_ + end subroutine + end interface + + interface acc_update_self_async + subroutine acc_update_self_async_32_h (a, len, async) + use iso_c_binding, only: c_int32_t + import acc_handle_kind + !GCC$ ATTRIBUTES NO_ARG_CHECK :: a + type (*), dimension (*) :: a + integer (c_int32_t) len + integer (acc_handle_kind) async + end subroutine + + subroutine acc_update_self_async_64_h (a, len, async) + use iso_c_binding, only: c_int64_t + import acc_handle_kind + !GCC$ ATTRIBUTES NO_ARG_CHECK :: a + type (*), dimension (*) :: a + integer (c_int64_t) len + integer (acc_handle_kind) async + end subroutine + + subroutine acc_update_self_async_array_h (a, async_) + import acc_handle_kind + type (*), dimension (..), contiguous :: a + integer (acc_handle_kind) async_ + end subroutine + end interface