gpufort icon indicating copy to clipboard operation
gpufort copied to clipboard

WiP: New OpenACC features for GPUFORT runtime

Open domcharrier opened this issue 4 years ago • 0 comments

FEATURES:

  • Initial support for acc declare

  • OpenACC (gpufort runtime)

    • offloaded loops:
      • add default clause handling
      • default strategy is present_or_copy if neither default(none) nor default(present) s specified.
    • Initial support for acc declare (module/subroutine/function/program variables, fixed-size, allocatable, pointer)
  • Add interoperable GPUFORT array datatype (up to 7 dimensions; autogenerated):

    • Manage host and device pointer pair (can be null)
      • Either wrap exisiting pointers or
      • Allocate (pinned) host memory requested
      • Allocate device memory if requested
    • Provide H2D, D2H copy operations
    • Encode bounds and sizes of an Fortran array
    • Can be configured to perform H2D, D2H copy operations at init/destruction
    • In C++, equipped with operator()(int i1, int i2, ...) to support Fortran style array indexing in C++ code. No index macros.
  • Will be used by GPUFORT to construct interoperable derived types from non-interoperable device types. This will allow AoS syntax such as: domains(5).cells(i).coord_x in GPUFORT C++ code, which is analogous to the Fortran equivalent: domain(5)%cells(i)%coord_x.

BUGFIXES:

  • Fix crash when encountering top-level subroutines/functions.

domcharrier avatar Oct 28 '21 13:10 domcharrier