Skip to content

Commit

Permalink
v1.17.0
Browse files Browse the repository at this point in the history
Signed-off-by: Sean Hefty <sean.hefty@intel.com>
  • Loading branch information
shefty committed Dec 16, 2022
1 parent d2676e7 commit 4a7d3ad
Show file tree
Hide file tree
Showing 6 changed files with 130 additions and 74 deletions.
127 changes: 114 additions & 13 deletions NEWS.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,52 +6,153 @@ bug fixes (and other actions) for each version of Libfabric since
version 1.0. New major releases include all fixes from minor
releases with earlier release dates.

v1.17.0, Fri Dec 9, 2022
========================
v1.17.0, Fri Dec 16, 2022
=========================

## Core

- TODO
- Add IFF_RUNNING check to indicate iface is up and running
- General code cleanups
- Add abstraction for common io_uring operations
- Support ROCR get_base_addr
- Add a 'flags' parameter to fi_barrier()
- Introduce new calls for opening domain and endpoint with flags
- Add ability to re-sort the fi_info list
- Allowing layering of rxm over net provider
- General cleanup of provider filtering functions
- Add io_uring operations to be used by sockapi
- Modify internal handling of async socket operations
- Sockets operations are moved to a common sockapi abstraction
- Add support for Ze host register/unregister
- Add new offload provider type
- Rename fi_prov_context and simplify its use
- Convert interface prefix string checks to exact checks

## EFA

- TODO
- Code cleanups and various bug fixes
- Improved debug logging and warnings and assertions
- Do not ignore hints->domain_attr->name
- Fix the calculation of REQ header size for a packet entry
- Fix default value for host memory's max_medium_msg_size
- Add tracepoints to send/recv/read ops
- Simplified emulated read protocol
- Set use_device_rdma according to efa device id
- Fix shm initialization path on error
- Fix Implementation of FI_EFA_INTER_MIN_READ_MESSAGE_SIZE
- Do not enable rdma_read if rxr_env.use_device_rdma is false
- Remove de-allocated CUDA memory region during registration
- Fix the error handling path of efa_mr_reg_impl()
- Fix rxr_ep unit tests involving ibv_cq_ex
- Add check of rdma-read capability for synapseai
- Report correct default for runt_size parameter
- Toggle cuda sync memops via environment variable.

## Net

- TODO
- Continued fork of tcp provider, will eventually merge changes back
- Fix inject support
- Fix memory leak in peek/claim path
- General code cleanups and bug fixes from initial fork
- Allow looking ahead in tcp stream to handle out-of-order messages
- Add message tracing ability
- Fetch correct ep when posting to a loopback connection
- Release lock in case of error in rdm_close
- Fix error path in xnet_enable_rdm
- Add missing progress lock in srx cleanup
- Code restructuring and enhancements with longer term goal of supporting io_uring
- Disable the progress thread in most situations
- Rename DL from libxnet-fi to libnet-fi
- Add missing initialization calls for DL provider
- Add support for FI_PEEK, FI_CLAIM, and FI_DISCARD
- Include source address with CQ entry
- Fix support for FI_MULTI_RECV

## OPX

- TODO
- Bug fixes and general code cleanup
- Fix progress checks and default domain
- Allow atomic fetch ops to use SDMA for sufficiently large counts
- Cleaned up FI_LOG_LEVEL=warn output
- Reset default progress to FI_PROGRESS_MANUAL
- Fixed GCC 10 build error with Auto Progress
- Add support for FI_PROGRESS_AUTO
- Use max allowed packet size in SDMA path when expected TID is turned off
- Expected receive (TID) rendezvous
- RMA Read/Write operations over SDMA
- Remove origin_rs from cts and dput packet header.
- Fix for hang - unable to match inbound packets with receive
context->src_addr (DAOS CART tests)
- Use single IOV for bounce buffer in SDMA requests.
- Check for FI_MULTI_RECV with bitwise OR instead of AND
- Fix for intermittent intra-node deadlock hang (DAOS CART tests)
- Fix to RPC transport error failure (DAOS CART tests)
- Fix for context->buf set to NULL
- Fix bad asserts
- Ensure atomicity of atomic ops
- fi_opx_cq_poll_inline count and head check fix
- Fix intermittent intra-node hang causing RPC timeouts (DAOS CART tests)
- Temporarily reduce SDMA queue ring size for possible driver bug workaround
- Fix alignment issue and asserts
- Enable more parallel SDMA operations

## PSM3

- TODO
- Synced to IEFS 11.4.0.0.198
- Tech Preview Ubuntu 22.04 Support
- Tech Preview Intel DSA Support
- Improved Intel GPU Support
- Various performance improvements
- Various bug fixes

## RxM

- TODO
- Always use rendezvous protocol for ZE device memory send
- Code cleanup
- Add option to free resources on AV removal

## SHM

- TODO
- Fix user_id support
- Write tx err comp to correct cq
- Fix index when setting FI_ADDR_USER_ID
- Remove extraneous ofi_cirque_next() call
- Add support for FI_AV_USER_ID
- Fix multi_recv messaging
- General code restructuring for maintainability
- Implement shared completion queues
- Decouple error processing from cq completion path to avoid switch
- Fix incorrect op passed into recv cancel operation
- Enhanced SHM implementation with DSA offload
- Use multiple SAR buffers per copy operation
- Fix ZE IPC race condition on startup

## TCP

- TODO
- Minor updates in preparation for io_uring support (via net provider)

## Util

- TODO
- Add option to free resources on AV removal
- Add 'flags' parameter to new fi_barrier2() call
- Add debugging in ofi_mr_map_verify
- Rename internal bitmask struct to include ofi prefix

## Verbs

- TODO
- Add option to disable dmabuf support
- FI_SOCKADDR includes support of FI_SOCKADDR_IB

## Fabtests

- TODO
- shared: Expand hmem support
- fi_loopback: Add support for tagged messages
- fi_mr_test: add support of hmem
- fi_rdm_atomic: Fix hmem support
- fi_rdm_tagged_peek: Read messages in order, code cleanup and fixes
- fi_multinode: Add performance and runtime control options, cleanups
- benchmarks: Add data verification to some bw tests
- fi_multi_recv: Fix possible crash in cleanup

v1.16.1, Fri Oct 7, 2022
========================
Expand Down
58 changes: 5 additions & 53 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -158,25 +158,6 @@ PSM2 on the host software stack, leading to better overall performance.
See the `fi_opx(7)` man page for more details. See [Cornelis Customer
Center](https://customercenter.cornelisnetworks.com/) for support information.

### psm

***

The `psm` provider runs over the PSM 1.x interface that is currently supported
by the Intel TrueScale Fabric. PSM provides tag-matching message queue
functions that are optimized for MPI implementations. PSM also has limited
Active Message support, which is not officially published but is quite stable
and well documented in the source code (part of the OFED release). The `psm`
provider makes use of both the tag-matching message queue functions and the
Active Message functions to support various libfabric data transfer APIs,
including tagged message queue, message queue, RMA, and atomic
operations.

The `psm` provider can work with the `psm2-compat` library, which exposes
a PSM 1.x interface over the Intel Omni-Path Fabric.

See the `fi_psm(7)` man page for more details.

### psm2

***
Expand Down Expand Up @@ -290,50 +271,21 @@ option is redundant with `--with-usnic`.
***

The verbs provider enables applications using OFI to be run over any verbs
hardware (Infiniband, iWarp, and RoCE). It uses the Linux Verbs API for network
transport and translates OFI calls to appropriate verbs API calls.
It uses librdmacm for communication management and libibverbs for other control
and data transfer operations.
hardware (Infiniband, iWarp, and RoCE). It uses either the Linux Verbs API or
Windows Network Direct API for network transport and translates OFI calls
to appropriate lower-level API calls.

See the `fi_verbs(7)` man page for more details.

#### Dependencies

- The verbs provider requires libibverbs (v1.1.8 or newer) and librdmacm (v1.0.16
- The linux verbs provider requires libibverbs (v1.1.8 or newer) and librdmacm (v1.0.16
or newer). If you are compiling libfabric from source and want to enable verbs
support, you will also need the matching header files for the above two libraries.
If the libraries and header files are not in default paths, specify them in CFLAGS,
LDFLAGS and LD_LIBRARY_PATH environment variables.

### bgq

***

The `bgq` provider is a native provider that directly utilizes the hardware
interfaces of the Blue Gene/Q system to implement aspects of the libfabric
interface to fully support MPICH3 CH4.

See the `fi_bgq(7)` man page for more details.

#### Dependencies

- The `bgq` provider depends on the system programming interfaces (SPI) and
the hardware interfaces (HWI) located in the Blue Gene/Q driver installation.
Additionally, the open source Blue Gene/Q system files are required.

#### Configure options

```
--with-bgq-progress=(auto|manual)
```

If specified, set the progress mode enabled in FABRIC_DIRECT (default is FI_PROGRESS_MANUAL).

```
--with-bgq-mr=(basic|scalable)
```

If specified, set the memory registration mode (default is FI_MR_BASIC).
- For Windows, see the Network Direct section for dependencies, which are the same.

### Network Direct

Expand Down
2 changes: 1 addition & 1 deletion configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ dnl
dnl Process this file with autoconf to produce a configure script.

AC_PREREQ([2.60])
AC_INIT([libfabric], [1.17.0rc2], [ofiwg@lists.openfabrics.org])
AC_INIT([libfabric], [1.17.0], [ofiwg@lists.openfabrics.org])
AC_CONFIG_SRCDIR([src/fabric.c])
AC_CONFIG_AUX_DIR(config)
AC_CONFIG_MACRO_DIR(config)
Expand Down
13 changes: 8 additions & 5 deletions fabtests/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,17 +7,20 @@ software library.
## Notes

Note that the fabtests suite is released paired with a specific
version of libfabric. For example, libfabric v1.4 and fabtests v1.4
version of libfabric. For example, libfabric v1.14 and fabtests v1.14
were released together.

Using these paired versions is the best way to test a given version of
libfabric. Using version-mismatched libfabric/fabtests pairs may
produce unexpected results.
produce unexpected results. A newer version of fabtests is not
guaranteed to work with an older version of libfabric. However, an
older version of fabtests is expected to work with a newer version
of libfabric, in order to validate libfabric backwards compatibility.

## Building fabtests

Distribution tarballs are available from the Github
[releases](https://github.com/ofiwg/fabtests/releases) tab.
[releases](https://github.com/ofiwg/libfabric/releases) tab.

If you are building Fabtests from a developer Git clone, you must
first run the `autogen.sh` script. This will invoke the GNU Autotools
Expand Down Expand Up @@ -70,7 +73,7 @@ penalty.
Consider the following example:

```
$ ./configure --with-libfabric=/opt/libfabric --prefix=/opt/fabtests && make -j 32 && sudo make install
$ ./configure --with-libfabric=/opt/libfabric --prefix=/opt/fabtests && make -j && sudo make install
```

This will tell the Fabtests to look for Libfabric libraries in the
Expand All @@ -80,7 +83,7 @@ This will tell the Fabtests to look for Libfabric libraries in the
Alternatively:

```
$ ./configure --prefix=/opt/fabtests && make -j 32 && sudo make install
$ ./configure --prefix=/opt/fabtests && make -j 32 sudo make install
```

Tells the Fabtests that it should be able to find the Libfabric header
Expand Down
2 changes: 1 addition & 1 deletion fabtests/configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ dnl
dnl Process this file with autoconf to produce a configure script.

AC_PREREQ(2.57)
AC_INIT([fabtests], [1.17.0rc2], [ofiwg@lists.openfabrics.org])
AC_INIT([fabtests], [1.17.0], [ofiwg@lists.openfabrics.org])
AC_CONFIG_AUX_DIR(config)
AC_CONFIG_MACRO_DIR(config)
AC_CONFIG_HEADERS(config.h)
Expand Down
2 changes: 1 addition & 1 deletion include/windows/config.h
Original file line number Diff line number Diff line change
Expand Up @@ -174,7 +174,7 @@
#define PACKAGE_TARNAME PACKAGE

/* Define to the version of this package. */
#define PACKAGE_VERSION "1.17.0rc2"
#define PACKAGE_VERSION "1.17.0"

/* Define to the full name and version of this package. */
#define PACKAGE_STRING PACKAGE_NAME " " PACKAGE_VERSION
Expand Down

0 comments on commit 4a7d3ad

Please sign in to comment.