Skip to content

Releases: crazyguitar/Libefaxx

v0.3.1

Choose a tag to compare

@crazyguitar crazyguitar released this 14 Jan 17:52

v0.3.1 - RDMA Refactor and IBVerbs Support

  • Add ibverbs RDMA implementation (#11)
  • Refactor rdma memory, channel, and buffer abstractions
  • Fix fi::Buffer incorrect channels data structure

v0.3.0

Choose a tag to compare

@crazyguitar crazyguitar released this 02 Jan 16:50

v0.3.0 - CMake Refactor and Test Improvements

  • Consolidate all CMake find_* calls into cmake/packages.cmake
  • Add CPU affinity setup to io_test and queue_test (matching Peer class pattern)
  • Update benchmark results section in README

v0.2.10

Choose a tag to compare

@crazyguitar crazyguitar released this 02 Jan 02:31

v0.2.10 - Queue Implementation Benchmarks

  • Add GdrQueue and PinnedQueue implementations for GPU-CPU communication
  • Add queue type comparison benchmark (cudaMallocManaged, pinned host, GDRCopy)
  • Bump EFA installer, NCCL, and NCCL tests versions
  • Fix incorrect unit and round-robin benchmark results

v0.2.9

Choose a tag to compare

@crazyguitar crazyguitar released this 30 Dec 02:27

v0.2.9 - IPC Benchmark Improvements

  • Add GPU-side verification for IPC data transfers (faster than host-side)
  • Refactor IPC functors with configurable grid/block dimensions

v0.2.8

Choose a tag to compare

@crazyguitar crazyguitar released this 29 Dec 19:15

v0.2.8 - CUDA IPC for Intra-node Communication

  • Add IPC experiment demonstrating GPU-to-GPU communication via CUDA IPC
  • Benchmark NVLink bandwidth scaling with different thread parallelism configurations

v0.2.7

Choose a tag to compare

@crazyguitar crazyguitar released this 29 Dec 03:59

v0.2.7 - CUDA IPC for Intra-node Communication

  • Add CUDA IPC support for intra-node GPU-to-GPU communication
  • Automatic transport selection: IPC for local ranks, RDMA for remote ranks
  • Add OpenIPCHandles() API in SymmetricMemory for IPC handle management
  • Extend DeviceContext with ipc_ptrs array for GPU kernel access
  • Add GetLocalComm() accessor in MPI wrapper for local node operations

v0.2.6

Choose a tag to compare

@crazyguitar crazyguitar released this 27 Dec 20:20

v0.2.6 - NVSHMEM-like shmem_* API

  • Add template shmem_p<T>() / shmem_p_nbi<T>() device put operations
  • Add type-specific wrappers: shmem_int_p, shmem_float_p, shmem_double_p, etc.

v0.2.5

Choose a tag to compare

@crazyguitar crazyguitar released this 27 Dec 19:51

v0.2.5 - NVSHMEM-like shmem_* API

  • Add NVSHMEM-compatible shmem_* API over EFA/libfabric
  • Add shmem_init() / shmem_finalize() for MPI-based bootstrap
  • Add shmem_malloc() / shmem_free() for symmetric memory allocation
  • Add shmem_int_p() / shmem_int_p_nbi() device put operations
  • Add shmem_fence() / shmem_quiet() memory ordering primitives
  • Add SHMEM experiment mirroring NVSHMEM docs example
  • Note: Current implementation supports inter-node only (1 process per node)

v0.2.4

Choose a tag to compare

@crazyguitar crazyguitar released this 26 Dec 23:11

v0.2.4 - Round-robin channel selection for parallel writes

  • Add round-robin write algorithm using per-channel distribution
  • Add RoundRobinDMA test to write and all2all experiments
  • Add test name display to progress bar (e.g., [RoundRobinDMA] [10.6s] ops=...)
  • Add configurable progress bytes/bandwidth parameters to Bench()
  • Fix progress bar bandwidth percentage calculation
  • Rename gin.cuh to proxy.cuh

v0.2.3

Choose a tag to compare

@crazyguitar crazyguitar released this 23 Dec 18:04

v0.2.3 - GPU-initiated non-blocking interface support

  • Add MPSC queue benchmark
  • Add non-blocking interface (nbi) for GPU-initiated RDMA via proxy