Provided by: libfabric-dev_1.17.0-3ubuntu1_amd64 bug

NAME

       fi_efa - The Amazon Elastic Fabric Adapter (EFA) Provider

OVERVIEW

       The  EFA  provider supports the Elastic Fabric Adapter (EFA) device on Amazon EC2.  EFA provides reliable
       and unreliable datagram send/receive with direct hardware access from userspace (OS bypass).

SUPPORTED FEATURES

       The following features are supported:

       Endpoint types
              The provider supports endpoint type FI_EP_DGRAM, and  FI_EP_RDM  on  a  new  Scalable  (unordered)
              Reliable  Datagram  protocol (SRD).  SRD provides support for reliable datagrams and more complete
              error handling than typically seen with other Reliable Datagram  (RD)  implementations.   The  EFA
              provider  provides  segmentation,  reassembly  of  out-of-order packets to provide send-after-send
              ordering guarantees to applications via its FI_EP_RDM endpoint.

       RDM Endpoint capabilities
              The following  data  transfer  interfaces  are  supported  via  the  FI_EP_RDM  endpoint:  FI_MSG,
              FI_TAGGED,   and   FI_RMA.   FI_SEND,  FI_RECV,  FI_DIRECTED_RECV,  FI_MULTI_RECV,  and  FI_SOURCE
              capabilities are supported.  The endpoint provides send-after-send guarantees for data operations.
              The FI_EP_RDM endpoint does not have a maximum message size.

       DGRAM Endpoint capabilities
              The  DGRAM  endpoint only supports FI_MSG capability with a maximum message size of the MTU of the
              underlying hardware (approximately 8 KiB).

       Address vectors
              The provider supports FI_AV_TABLE and FI_AV_MAP address vector types.  FI_EVENT is unsupported.

       Completion events
              The   provider   supports   FI_CQ_FORMAT_CONTEXT,   FI_CQ_FORMAT_MSG,    and    FI_CQ_FORMAT_DATA.
              FI_CQ_FORMAT_TAGGED is supported on the RDM endpoint.  Wait objects are not currently supported.

       Modes  The  provider requires the use of FI_MSG_PREFIX when running over the DGRAM endpoint, and requires
              FI_MR_LOCAL for all memory registrations on the DGRAM endpoint.

       Memory registration modes
              The RDM endpoint does not require memory registration for send  and  receive  operations,  i.e. it
              does  not require FI_MR_LOCAL.  Applications may specify FI_MR_LOCAL in the MR mode flags in order
              to  use  descriptors  provided  by  the  application.   The  FI_EP_DGRAM  endpoint  only  supports
              FI_MR_LOCAL.

       Progress
              RDM  and  DGRAM  endpoints  support  FI_PROGRESS_MANUAL.   EFA  erroneously claims the support for
              FI_PROGRESS_AUTO,  despite  not  properly  supporting  automatic  progress.   Unfortunately,  some
              Libfabric  consumers  also ask for FI_PROGRESS_AUTO when they only require FI_PROGRESS_MANUAL, and
              fixing this bug would break those applications.  This will be fixed in a future version of the EFA
              provider by adding proper support for FI_PROGRESS_AUTO.

       Threading
              The  RDM  endpoint supports FI_THREAD_SAFE, the DGRAM endpoint supports FI_THREAD_DOMAIN, i.e. the
              provider is not thread safe when using the DGRAM endpoint.

LIMITATIONS

       The DGRAM endpoint does not support FI_ATOMIC interfaces.  For RMA operations, completion events for  RMA
       targets  (FI_RMA_EVENT)  is  not  supported.   The DGRAM endpoint does not fully protect against resource
       overruns, so resource management is disabled for this endpoint (FI_RM_DISABLED).

       No support for selective completions.

       No support for counters for the DGRAM endpoint.

       No support for inject.

       When using FI_HMEM for either CUDA and Neuron buffers, the provider requires  peer  to  peer  transaction
       support  between  the  EFA  and  the  FI_HMEM  device.  Therefore, the FI_HMEM_P2P_DISABLED option is not
       supported by the EFA provider.

PROVIDER SPECIFIC ENDPOINT LEVEL OPTION

       FI_OPT_EFA_RNR_RETRY
              Defines the number of RNR retry.  The application can use it to reset RNR retry  counter  via  the
              call  to fi_setopt.  Note that this option must be set before the endpoint is enabled.  Otherwise,
              the call will fail.  Also note that this option only applies to RDM endpoint.

RUNTIME PARAMETERS

       FI_EFA_TX_SIZE
              Maximum number of transmit operations before the provider returns -FI_EAGAIN.  For  only  the  RDM
              endpoint, this parameter will cause transmit operations to be queued when this value is set higher
              than the default and the transmit queue is full.

       FI_EFA_RX_SIZE
              Maximum number of receive operations before the provider returns -FI_EAGAIN.

       FI_EFA_TX_IOV_LIMIT
              Maximum number of IOVs for a transmit operation.

       FI_EFA_RX_IOV_LIMIT
              Maximum number of IOVs for a receive operation.

RUNTIME PARAMETERS SPECIFIC TO RDM ENDPOINT

       These OFI runtime parameters apply only to the RDM endpoint.

       FI_EFA_RX_WINDOW_SIZE
              Maximum number of MTU-sized messages that can be in flight from any single  endpoint  as  part  of
              long message data transfer.

       FI_EFA_TX_QUEUE_SIZE
              Depth of transmit queue opened with the NIC.  This may not be set to a value greater than what the
              NIC supports.

       FI_EFA_RECVWIN_SIZE
              Size of out of order reorder buffer (in messages).  Messages received  out  of  this  window  will
              result in an error.

       FI_EFA_CQ_SIZE
              Size of any cq created, in number of entries.

       FI_EFA_MR_CACHE_ENABLE
              Enables  using  the  mr cache and in-line registration instead of a bounce buffer for iov’s larger
              than max_memcpy_size.  Defaults to true.  When disabled, only uses a bounce buffer

       FI_EFA_MR_MAX_CACHED_COUNT
              Sets the maximum number of memory registrations that can be cached at any time.

       FI_EFA_MR_MAX_CACHED_SIZE
              Sets the maximum amount of memory that cached memory registrations can hold onto at any time.

       FI_EFA_MAX_MEMCPY_SIZE
              Threshold size switch between using memory copy into a pre-registered  bounce  buffer  and  memory
              registration on the user buffer.

       FI_EFA_MTU_SIZE
              Overrides the default MTU size of the device.

       FI_EFA_RX_COPY_UNEXP
              Enables  the  use of a separate pool of bounce-buffers to copy unexpected messages out of the pre-
              posted receive buffers.

       FI_EFA_RX_COPY_OOO
              Enables the use of a separate pool of bounce-buffers to copy out-of-order RTS packets out  of  the
              pre-posted receive buffers.

       FI_EFA_MAX_TIMEOUT
              Maximum timeout (us) for backoff to a peer after a receiver not ready error.

       FI_EFA_TIMEOUT_INTERVAL
              Time  interval (us) for the base timeout to use for exponential backoff to a peer after a receiver
              not ready error.

       FI_EFA_ENABLE_SHM_TRANSFER
              Enable SHM provider to provide the communication across all intra-node  processes.   SHM  transfer
              will  be disabled in the case where ptrace protection is turned on.  You can turn it off to enable
              shm transfer.

       FI_EFA_SHM_AV_SIZE
              Defines the maximum number of entries in SHM provider’s address vector.

       FI_EFA_SHM_MAX_MEDIUM_SIZE
              Defines the switch point between small/medium message and large message.  The message larger  than
              this  switch  point  will be transferred with large message protocol.  NOTE: This parameter is now
              deprecated.

       FI_EFA_INTER_MAX_MEDIUM_MESSAGE_SIZE
              The maximum size for inter EFA messages to be sent by using  medium  message  protocol.   Messages
              which  can fit in one packet will be sent as eager message.  Messages whose sizes are smaller than
              this value will be sent using medium message protocol.  Other messages  will  be  sent  using  CTS
              based long message protocol.

       FI_EFA_FORK_SAFE
              Enable  fork()  support.   This  may  have  a small performance impact and should only be set when
              required.  Applications that require to register regions backed by huge  pages  and  also  require
              fork support are not supported.

       FI_EFA_RUNT_SIZE
              The  maximum  number  of  bytes  that  will be eagerly sent by inflight messages uses runting read
              message protocol (Default 307200).

       FI_EFA_SET_CUDA_SYNC_MEMOPS
              Set CU_POINTER_ATTRIBUTE_SYNC_MEMOPS for cuda ptr.  (Default: 1)

       FI_EFA_INTER_MIN_READ_MESSAGE_SIZE
              The minimum message size in bytes for inter EFA read message protocol.  If instance  support  RDMA
              read,  messages  whose  size  is  larger  than  this  value will be sent by read message protocol.
              (Default 1048576).

       FI_EFA_INTER_MIN_READ_WRITE_SIZE
              The mimimum message size for inter EFA write to use read write protocol.  If firmware support RDMA
              read,  and  FI_EFA_USE_DEVICE_RDMA  is 1, write requests whose size is larger than this value will
              use the read write protocol (Default 65536).

SEE ALSO

       fabric(7), fi_provider(7), fi_getinfo(3)

AUTHORS

       OpenFabrics.