Skip site navigation (1)Skip section navigation (2)

  
 
  

home | help
fi_direct(7)			Libfabric v1.15.1		    fi_direct(7)

NAME
     fi_direct - Direct fabric provider access

SYNOPSIS
	    -DFABRIC_DIRECT

	    #define FABRIC_DIRECT

     Fabric  direct  provides  a mechanism for applications to compile against a
     specific fabric providers without going through the libfabric framework  or
     function  vector tables.  This allows for extreme optimization via function
     inlining at the cost of supporting multiple providers or different versions
     of the same provider.

DESCRIPTION
     The use of fabric direct is intended only for applications that require the
     absolute minimum software latency, and are willing to re-compile  for  spe-
     cific  fabric  hardware.	Providers  that  support fabric direct implement
     their own versions of the static inline calls which are define in the  lib-
     fabric  header  files, define selected enum values, and provide defines for
     compile-time optimizations.  Applications can then code against  the  stan-
     dard  libfabric  calls,  but  link  directly  against the provider calls by
     defining FABRIC_DIRECT as part of their build.

     In general, the use of fabric direct does not  require  application  source
     code changes, and, instead, is limited to the build process.

     Providers	supporting  fabric  direct must install `direct' versions of all
     libfabric header files.  For convenience,	the  libfabric	sources  contain
     sample  header  files  that  may  be  modified by a provider.  The `direct'
     header file names have `fi_direct' as  their  prefix:  fi_direct.h,  fi_di-
     rect_endpoint.h, etc.

     Direct  providers are prohibited from overriding or modifying existing data
     structures.  However, provider specific extensions are still available.  In
     addition to provider direct function calls to provider code, a  fabric  di-
     rect  provider  may define zero of more of the following capability defini-
     tions.  Applications can check for these capabilities in order to	optimize
     code paths at compile time, versus relying on run-time checks.

CAPABILITY DEFINITIONS
     In order that application code may be optimized during compile time, direct
     providers	must  provide definitions for various capabilities and modes, if
     those capabilities are supported.	The following #define values may be used
     by an application to test for provider support of supported features.

     FI_DIRECT_CONTEXT
	    The provider sets FI_CONTEXT or FI_CONTEXT2 for  fi_info:mode.   See
	    fi_getinfo	for  additional  details.  When FI_DIRECT_CONTEXT is de-
	    fined, applications should use struct fi_context  in  their  defini-
	    tions, even if FI_CONTEXT2 is set.

     FI_DIRECT_LOCAL_MR
	    The  provider sets FI_LOCAL_MR for fi_info:mode.  See fi_getinfo for
	    additional details.

SEE ALSO
     fi_getinfo(3), fi_endpoint(3), fi_domain(3)

AUTHORS
     OpenFabrics.

Libfabric Programmer's Manual	   2021-03-22			    fi_direct(7)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=fi_direct&sektion=7&manpath=FreeBSD+Ports+15.1.quarterly>

home | help