loki.transformations.field_api

A set of utility classes for dealing with FIELD API boilerplate in parallel kernels and offload regions.

Functions

field_get_device_data(field_ptr, dev_ptr, ...)

Utility function to generate a CallStatement corresponding to a Field API GET_DEVICE_DATA call.

field_sync_host(field_ptr, scope)

Utility function to generate a CallStatement corresponding to a Field API SYNC_HOST call.

get_field_type(a)

Returns the corresponding FIELD API type for an array.

Classes

FieldAPITransferType(value)

An enumeration.

FieldPointerMap(inargs, inoutargs, outargs, ...)

Helper class to map FIELD API pointers to intents and access descriptors.

class FieldAPITransferType(value)

Bases: Enum

An enumeration.

READ_ONLY = 1
READ_WRITE = 2
WRITE_ONLY = 3
class FieldPointerMap(inargs, inoutargs, outargs, scope, ptr_prefix='loki_ptr_')

Bases: object

Helper class to map FIELD API pointers to intents and access descriptors.

This utility is used to store arrays passed to target kernel calls and easily access corresponding device pointers added by the transformation.

dataptr_from_array(a: Array)

Returns a contiguous pointer Variable with types matching the array a.

static field_ptr_from_view(field_view)

Returns a symbol for the pointer to the corresponding Field object.

property args

A tuple of all argument symbols, concatanating in/inout/out arguments

property dataptrs

Create a list of contiguous data pointer symbols

property host_to_device_calls

Returns a tuple of CallStatement for host-to-device transfers on fields.

property sync_host_calls

Returns a tuple of CallStatement for host-synchronization transfers on fields.

get_field_type(a: Array) DerivedType

Returns the corresponding FIELD API type for an array.

This function is IFS specific and assumes that the type is an array declared with one of the IFS type specifiers, e.g. KIND=JPRB

field_get_device_data(field_ptr, dev_ptr, transfer_type: FieldAPITransferType, scope: Scope)

Utility function to generate a CallStatement corresponding to a Field API GET_DEVICE_DATA call.

Parameters:
  • field_ptr (pointer to field object) – Pointer to the field to call GET_DEVICE_DATA from.

  • dev_ptr (Array) – Device pointer array

  • transfer_type (FieldAPITransferType) – Field API transfer type to determine which GET_DEVICE_DATA method to call.

  • scope (Scope) – Scope of the created CallStatement

field_sync_host(field_ptr, scope)

Utility function to generate a CallStatement corresponding to a Field API SYNC_HOST call.

Parameters:
  • field_ptr (pointer to field object) – Pointer to the field to call SYNC_HOST from.

  • scope (Scope) – Scope of the created CallStatement