Skip to content

feat: Add AMD accelerator detection and tracking in libfabric topology#22

Merged
mpashkovskii merged 12 commits into
ROCm:developfrom
mpashkovskii:feat/amd-accel-detection
Jun 10, 2026
Merged

feat: Add AMD accelerator detection and tracking in libfabric topology#22
mpashkovskii merged 12 commits into
ROCm:developfrom
mpashkovskii:feat/amd-accel-detection

Conversation

@mpashkovskii

@mpashkovskii mpashkovskii commented Feb 27, 2026

Copy link
Copy Markdown
Contributor

What?

  1. AMD GPU vendor ID detection (0x1002)
  2. MI300X device ID range support (0x74a0-0x74af)
  3. PCI class fallback detection for unknown AMD GPU models
  4. num_amd_accel counter variable
  5. isAmdAccel() helper function
  6. getNumAmdAccel() public accessor
  7. HMEM interface mapping returns FI_HMEM_ROCR for AMD GPUs
  8. Topology-aware grouping includes AMD accelerators
  9. Logging updated to report AMD GPUs separately

Jira:
AIRIXL-2
AIRIXL-10

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds AMD GPU (ROCm) awareness to the libfabric topology discovery layer so AMD accelerators can be detected, counted, included in topology grouping, and mapped to an HMEM interface.

Changes:

  • Introduces AMD accelerator detection (isAmdAccel) and tracking (num_amd_accel, getNumAmdAccel).
  • Updates topology discovery/grouping to include AMD accelerators and updates logging to report NVIDIA/AMD/Neuron counts separately.
  • Extends HMEM iface selection to return FI_HMEM_ROCR for AMD accelerators.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 3 comments.

File Description
src/utils/libfabric/libfabric_topology.h Adds AMD accelerator counter/accessor; updates getMrAttrIface() to return FI_HMEM_ROCR for AMD.
src/utils/libfabric/libfabric_topology.cpp Implements isAmdAccel(), updates accelerator discovery counts/logging, and includes AMD in topology-aware grouping.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

if (device_id < num_nvidia_accel) {
return FI_HMEM_CUDA;
} else if (device_id < num_nvidia_accel + num_amd_accel) {
return FI_HMEM_ROCR;

Copilot AI Feb 27, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

getMrAttrIface() can now return FI_HMEM_ROCR, but nixlLibfabricRail::registerMemory() currently only initializes mr_attr.device.* for FI_HMEM_CUDA and FI_HMEM_NEURON. With FI_HMEM_ROCR the device union will remain at its default value, which may violate libfabric’s expectations for ROCR registrations. Please add explicit handling for FI_HMEM_ROCR (including initializing the appropriate mr_attr.device.rocr field) where memory registration attributes are built.

Suggested change
return FI_HMEM_ROCR;
// NOTE: FI_HMEM_ROCR is not yet fully supported in the memory
// registration path (mr_attr.device.rocr initialization). Until
// that wiring is complete, fall back to system memory.
return FI_HMEM_SYSTEM;

Copilot uses AI. Check for mistakes.
Comment on lines +175 to +181
if (device_id < num_nvidia_accel) {
return FI_HMEM_CUDA;
} else if (device_id < num_nvidia_accel + num_amd_accel) {
return FI_HMEM_ROCR;
} else {
return FI_HMEM_NEURON;
}

Copilot AI Feb 27, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

getMrAttrIface() selects the HMEM interface by comparing the provided device_id against (num_nvidia_accel, num_amd_accel). In the current call chain, device_id is passed through from the backend as the runtime’s device ordinal (e.g., CUDA device index), not a global index across vendors; on systems with mixed accelerator vendors this can misclassify an AMD/Neuron device_id=0 as CUDA and register memory with the wrong iface. Consider deriving the iface from the device’s PCI vendor (e.g., via device_pci_bus_id + hwloc lookup) or from a single selected runtime, rather than from device_id ranges.

Suggested change
if (device_id < num_nvidia_accel) {
return FI_HMEM_CUDA;
} else if (device_id < num_nvidia_accel + num_amd_accel) {
return FI_HMEM_ROCR;
} else {
return FI_HMEM_NEURON;
}
// The device_id passed here is a runtime-specific ordinal (e.g., CUDA
// device index) and is not guaranteed to be a global cross-vendor index.
// To avoid misclassifying devices on mixed-vendor systems, only infer
// the iface from vendor counts when exactly one accelerator vendor is
// present. Otherwise, fall back to a generic system HMEM iface.
(void)device_id; // currently unused; kept for API compatibility
int vendor_count = 0;
if (num_nvidia_accel > 0) {
vendor_count++;
}
if (num_amd_accel > 0) {
vendor_count++;
}
if (num_aws_accel > 0) {
vendor_count++;
}
// Single-vendor configurations: preserve legacy behavior by selecting
// the corresponding HMEM iface for all device_ids.
if (vendor_count == 1) {
if (num_nvidia_accel > 0) {
return FI_HMEM_CUDA;
}
if (num_amd_accel > 0) {
return FI_HMEM_ROCR;
}
// num_aws_accel > 0 and no other vendors
return FI_HMEM_NEURON;
}
// Mixed-vendor or no-accelerator configuration: we cannot safely infer
// a vendor-specific iface from device_id. Use a generic system iface
// to avoid registering memory with the wrong accelerator runtime.
return FI_HMEM_SYSTEM;

Copilot uses AI. Check for mistakes.
Comment on lines +672 to +687
// AMD Instinct MI300/MI355 series device IDs
// Sources:
// - https://github.com/GPUOpen-Tools/device_info/blob/master/DeviceInfo.cpp
// - https://github.com/openbsd/src/blob/master/sys/dev/pci/drm/amd/amdgpu/amdgpu_devlist.h
// - https://github.com/ROCm/k8s-device-plugin/issues/112
// - https://github.com/ROCm/ROCm/issues/5891
// Architecture: CDNA3 (gfx942) and CDNA4 (gfx950)
static const uint16_t AMD_GPU_DEVICE_IDS[] = {
// MI300 Series (CDNA3 - gfx942)
0x74a0, // MI300A APU
0x74a1, // MI300X dGPU (most common)
0x74a2, // MI308X
0x74a5, // MI325X
0x74a9, // MI300XHF
0x74b5, // MI300X VF (Virtual Function)

Copilot AI Feb 27, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The PR description calls out MI300X device ID range support (0x74a0–0x74af), but isAmdAccel() currently uses a small whitelist and otherwise relies on the PCI class fallback. To align behavior with the stated range support (and avoid depending on class_id), consider adding an explicit device_id range check for 0x74a0–0x74af (and any other intended ranges) before the class fallback.

Copilot uses AI. Check for mistakes.

@gaoikawa gaoikawa left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@mpashkovskii - Were you able to validate / test these changes? Thanks.

Comment on lines 104 to 105
num_aws_accel = 0; // TCP doesn't need accelerator topology
num_numa_nodes = 1; // Simple fallback

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@gaoikawa

@mpashkovskii - Were you able to validate / test these changes? Thanks.

I'm waiting access to EFA machine but I replaced those lines with:

        (void)discoverAccelWithHwloc();
        num_numa_nodes = hwloc_get_nbobjs_by_type(hwloc_topology, HWLOC_OBJ_NUMANODE);
        if (num_numa_nodes == 0) {
            num_numa_nodes = 1;
        }

And got from libfabric_topology_test following:

root@z:/app/repos/RIXL# ./build/test/unit/utils/libfabric/libfabric_topology_test
WARNING: All log messages before absl::InitializeLog() is called are written to STDERR
I0000 00:00:1772458212.825362  103897 libfabric_topology_test_hip.cpp:34] === Testing Libfabric Topology Implementation ===
I0000 00:00:1772458212.826088  103897 libfabric_topology_test_hip.cpp:37] 1. Testing topology discovery...
I0000 00:00:1772458218.125358  103897 libfabric_topology_hip.cpp:137] Discovered 1 socket devices (TCP fallback)
I0000 00:00:1772458218.125429  103897 libfabric_topology_hip.cpp:105] Using simplified topology for sockets devices (no topology mapping needed)
I0000 00:00:1772458218.125449  103897 libfabric_topology_hip.cpp:376] Discovered 0 NVIDIA, 8 AMD, and 0 Neuron accelerators via hwloc
I0000 00:00:1772458218.125460  103897 libfabric_topology_hip.cpp:117] TCP devices available globally - no accelerator-specific mapping required
I0000 00:00:1772458218.125474  103897 libfabric_topology_test_hip.cpp:40]    SUCCESS: Topology discovery completed successfully
I0000 00:00:1772458218.125489  103897 libfabric_topology_test_hip.cpp:43] 2. Topology Information:
I0000 00:00:1772458218.125498  103897 libfabric_topology_test_hip.cpp:79] 3. Skipping GPU-specific tests (no GPUs detected)
I0000 00:00:1772458218.126210  103897 libfabric_topology_test_hip.cpp:86] === Test completed successfully! ===

Once I get EFA machine, i'll rerun the test.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My recommendation is to start validation with OFI providers and configurations you have access to

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Will start

Comment thread src/utils/libfabric/libfabric_topology.cpp Outdated
Comment thread src/utils/libfabric/libfabric_topology.h Outdated
@mpashkovskii
mpashkovskii force-pushed the feat/amd-accel-detection branch from 18ed664 to 1937abd Compare March 6, 2026 14:55
@edgargabriel

Copy link
Copy Markdown
Collaborator

@mpashkovskii could you have a look a the clang-format failure? Otherwise I would say the PR is good to merge (and it looks like its a simple fix)

@mpashkovskii

Copy link
Copy Markdown
Contributor Author

@edgargabriel

@mpashkovskii could you have a look a the clang-format failure? Otherwise I would say the PR is good to merge (and it looks like its a simple fix)

I'll do, however the PR is not fully ready. I'm now fixing it with verbs but proper testing with EFA is needed. I suggest to merge only after the EFA testing is over.

@edgargabriel

Copy link
Copy Markdown
Collaborator

@edgargabriel

@mpashkovskii could you have a look a the clang-format failure? Otherwise I would say the PR is good to merge (and it looks like its a simple fix)

I'll do, however the PR is not fully ready. I'm now fixing it with verbs but proper testing with EFA is needed. I suggest to merge only after the EFA testing is over.

I disagree. We can not wait for the efa before we have the first version of the code up and running. If you look at the plan that I uploaded to JIRA, we expect most of the work to be done on libfabric with the verbs provider, enabling efa is one of the last steps.

In addition, for such a relatively complex topic, I would prefer to have things done step by step, not just one gigantic PR where everything is expected to work.

@mpashkovskii

Copy link
Copy Markdown
Contributor Author

@edgargabriel

I disagree. We can not wait for the efa before we have the first version of the code up and running. If you look at the plan that I uploaded to JIRA, we expect most of the work to be done on libfabric with the verbs provider, enabling efa is one of the last steps.

In addition, for such a relatively complex topic, I would prefer to have things done step by step, not just one gigantic PR where everything is expected to work.

We initially discussed that plan with @ddurnov but I'm OK to adjust it. I can finish testing with verbs and we can merge the PR.

@ddurnov thoughts?

@mpashkovskii
mpashkovskii force-pushed the feat/amd-accel-detection branch from 8d1b707 to 631bc3b Compare March 12, 2026 13:43
@mpashkovskii
mpashkovskii force-pushed the feat/amd-accel-detection branch from 631bc3b to fb4af61 Compare March 12, 2026 13:49
@edgargabriel

edgargabriel commented Mar 13, 2026

Copy link
Copy Markdown
Collaborator

@mpashkovskii I resynced the RIXL repository with the upstream NIXL repo. Can you check whether you need to rebase your current PR?

@mpashkovskii

Copy link
Copy Markdown
Contributor Author

@edgargabriel merged develop branch and resolved the conflict. Will double-check if there are any issues on Monday

@edgargabriel edgargabriel left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Otherwise looks good to me.

// AMD ROCr memory registration
// ROCr uses HSA agent handles for device identification
// The device_id corresponds to the GPU index (0-based)
mr_attr.device.rocr = device_id;

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am ok with this here, but its probably something that we will have to address at one point. The order in which devices are presented on the HIP layer and on the HSA layer doesn't necessarily have to match. So the clean solution is to have somewhere some code that performs the matching using the BDF retrieved for a hip device, and identifying the HSA agent with the same BDF

@mpashkovskii
mpashkovskii merged commit ec5b4d0 into ROCm:develop Jun 10, 2026
6 checks passed
aviallon pushed a commit to aviallon/RIXL that referenced this pull request Jun 16, 2026
* DDN Infinia NIXL plugin

commit 849540b737a961217c5a6d43582ed440a3729885
Merge: 59147d8f 187e0514
Author: Keyur Desai <kdesai@ddn.com>
Date:   Mon Apr 20 12:17:57 2026 -0400

    Merge pull request ROCm#23 from 3rdParty/upstream_merge

    Upstream merge

commit 187e05148fdc616e2b20a13bb8969f7a088c2554
Merge: 59147d8f 4d80978
Author: Keyur Desai <kdesai@ddn.com>
Date:   Mon Apr 20 16:13:05 2026 +0000

    Merge remote-tracking branch 'upstream/main' into upstream_merge

commit 59147d8f05a2fcdf1afb5b010d2065ef1a8ed8b5
Merge: d263402c 14baff3b
Author: Keyur Desai <kdesai@ddn.com>
Date:   Mon Apr 20 10:31:22 2026 -0400

    Merge pull request ROCm#22 from 3rdParty/RED-39451-1

    Cleaned up documentation and trimmed README

commit 14baff3b61977e3649d62fc0114e00199c22a211
Author: Keyur Desai <kdesai@ddn.com>
Date:   Mon Apr 20 13:55:58 2026 +0000

    Cleaned up documentation and trimmed README

commit d263402c1a2dea1fbf467555c9e5d3be28ee470c
Merge: f755d40e 152d6d50
Author: Keyur Desai <kdesai@ddn.com>
Date:   Fri Apr 17 16:59:17 2026 -0400

    Merge pull request ROCm#21 from 3rdParty/RED-39451

    Convert DDN license to Apache 2 license

commit 152d6d50ce21ea53284ab35b54ba5ba4e4bd7380
Merge: d2c8e1c5 f755d40e
Author: Keyur Desai <kdesai@ddn.com>
Date:   Fri Apr 17 16:32:17 2026 -0400

    Merge branch 'main' into RED-39451

commit f755d40e8a8ea8113ded75303df0de40f1ae750b
Author: Joseph Skazinski <jskazinski@ddn.com>
Date:   Fri Apr 17 12:57:21 2026 -0700

    Simplify registerMem and use BatchTask<> (ROCm#20)

    * Simplify registerMem and use BatchTask<>

    - Refactored registerMem to eliminate duplication and clarify logic
    - Switched xfer requests to use new BatchTask<> and removed old vector of BatchRequest
    - Added reserveOperations() to prevent vector reallocation issues
    - Validated with up to 10K operations per batch

    * fix(infinia): remove deprecated red_async_executor_t usage

    Update plugin for red_async.hpp API changes:
    - Remove red_async_executor_t (no longer exists in new API)
    - Fix RED_ASYNC_DEFAULT_MAX_RETRIES constant name
    - Correct memory type check in deregisterMem (VRAM_SEG/DRAM_SEG only)

    * infinia: Implement queryMem with RED async API and enhance test output

    - Implement queryMem() using red_async::BatchTask with HEAD operations
    - Add timing instrumentation for all test phases
    - Standardize data/throughput display to MiB/MiB/s
    - Add test summary with keys, object size, and phase breakdown
    - Update plugin documentation with async API patterns

    * Add RED async config parameters to INFINIA backend

    Support sthreads, num_buffers, num_ring_entries, and coremask
    configuration from infinia.conf. Update backend, client, tests,
    and documentation with new defaults and parsing logic.

    * enhance INFINIA init message

    * allow an empty string for coremask

commit d2c8e1c513ad3a9a84ebb88e7ba4bc48bedba40b
Author: Keyur Desai <kdesai@ddn.com>
Date:   Wed Apr 15 20:05:14 2026 +0000

    Convert DDN license to Apache 2 license

commit 0cdb085a1cc9f7c552eca862ca2ac6002a08de42
Author: Joseph Skazinski <jskazinski@ddn.com>
Date:   Mon Apr 13 10:42:08 2026 -0700

    RED-40574: Infinia plugin - remove mutex, enhance tracing, optimize (ROCm#19)

commit b6025814c063e99143d7b0fc6eeb2336e26be29d
Author: Joseph Skazinski <jskazinski@ddn.com>
Date:   Fri Apr 10 07:24:31 2026 -0700

    remove chunking from infinia backend to storage (ROCm#18)

    * remove chunking from infinia backend to storage

    * revert changes to nixl worker

    * revert changes to nixl worker

    * incorporate hpeng changes and additional cleanup

commit 9f288d5dc7ba6c6d7eef1e8047171b44c7fc02b5
Merge: 7b55446c 13da437d
Author: Hongbo Peng <hpeng@ddn.com>
Date:   Wed Apr 8 09:58:01 2026 +0800

    Merge pull request ROCm#17 from hpeng/RED-39914

    move memory registration/deregistration to registerMem/deregisterMem

commit 13da437d6f89009691727c6ee4fa7e4b3215375b
Author: Hongbo PENG <hpeng@ddn.com>
Date:   Tue Apr 7 04:52:02 2026 +0000

    move memory registration/deregistration to registerMem/deregisterMem instead of prepXfer

commit 7b55446cfbd723e4a2b212daf85b96d3d764fbe8
Author: Joseph Skazinski <jskazinski@ddn.com>
Date:   Mon Apr 6 10:45:55 2026 -0700

    fix(infinia): thread-safe devId map, OBJ_SEG-only storage, remove uns… (ROCm#16)

    * fix(infinia): thread-safe devId map, OBJ_SEG-only storage, remove unsafe cast

    * Use NIXL_DEBUG level based on review comments

commit 9e3d4d7cd0ae1d022daaf3e966b5e211c24e9607
Merge: 7254c9c8 ea4d0e70
Author: Keyur Desai <kdesai@ddn.com>
Date:   Mon Mar 23 22:49:30 2026 -0400

    Merge pull request ROCm#15 from skocol/sean/performance-optimizations

    nixlInfiniaBackendReqH::postTransfer: avoid large copy when crossing a thread boundary

commit ea4d0e70613d777fb04180f8283bc47a019393f5
Author: Sean Kocol <skocol@ddn.com>
Date:   Tue Mar 24 00:48:51 2026 +0000

    Avoid spawning a thread for each xfer request

commit 7254c9c81491d5d3c2c5edb3fd0126a830d40c53
Merge: edd3ca6e 201ff61a
Author: Keyur Desai <kdesai@ddn.com>
Date:   Mon Mar 23 15:17:52 2026 -0400

    Merge pull request ROCm#14 from 3rdParty/RED-39416

    Add config-file parse support to infinia NIXL plugin

commit 201ff61a0ddf176c476c161f6288411d310cba50
Author: Keyur Desai <kdesai@ddn.com>
Date:   Sun Mar 22 03:54:51 2026 +0000

    Add --config-file parse support to infinia NIXL plugin

commit edd3ca6e4f04e76a27cb6ab4d1db27b4fb61f376
Merge: dd555160 859b059e
Author: Keyur Desai <kdesai@ddn.com>
Date:   Fri Mar 20 20:03:03 2026 -0400

    Merge pull request ROCm#12 from 3rdParty/RED-39416

    RED-39416: Fix broken nixlbench after async lib integration

commit 859b059e6576b04a47abaee0d0d142e6b23719ad
Author: Keyur Desai <kdesai@ddn.com>
Date:   Fri Mar 20 13:48:21 2026 +0000

    RED-39416: Fix broken nixlbench after async lib integration

commit dd555160a78f4812aeeef1ff64c2f4d03e46c7bf
Author: Joseph Skazinski <jskazinski@ddn.com>
Date:   Thu Mar 19 21:09:27 2026 -0700

    RED-38463: async lib improvements (ROCm#11)

    * RED-38463: {async_lib} library performance improvements

    * RED-38463: {async_lib} readme doc updates

    * RED-38463: {async_lib} update nixl plugin hpeng with sugegsted changes

    * refactor(infinia): use red_async_executor_t for batching

    Replace manual batching with library's batch executor API.
    Adds auto-tuning, progress callbacks, and 6 tuning parameters.
    Fixes queue exhaustion errors, 6x performance improvement.

    * feat(infinia): add GPU Direct Storage for RDMA GPU-to-storage transfers

    Auto-detect VRAM, register with register_gpu_memory(), fallback to CPU staging if unavailable

    * RED-38463: fix(infinia): add executor null checks for GPU memory cleanup

    * RED-38463: fix(infinia): add red_async:: namespace qualifiers

    * RED-38463: {async_lib} renamed red_async.hpp

    * RED-38463: correct argument parsing for INFINA plugin

commit 80ab90136b8502999f9a9ff987fbb3e6e468935f
Merge: d94e662d a795db55
Author: Keyur Desai <kdesai@ddn.com>
Date:   Thu Mar 5 18:06:07 2026 -0500

    Merge pull request ROCm#9 from 3rdParty/RED-26691

    Initial commit of NIXL plugin with async kv interface

commit a795db553f55852f0416b9afc7313605b176d424
Author: Keyur Desai <kdesai@ddn.com>
Date:   Tue Feb 24 18:25:40 2026 +0000

    Initial commit of NIXL plugin with async kv interface

commit d94e662d38c7dd1fd79f52129bc3af2042a1ffeb
Author: Hongbo PENG <hpeng@ddn.com>
Date:   Tue Feb 24 03:55:06 2026 +0000

    disable infinia backend as no red_aisdk lib at now

commit b05ef984fb51feaba3cca27e4e587be7ff54a508
Author: Hongbo PENG <hpeng@ddn.com>
Date:   Tue Feb 24 03:54:20 2026 +0000

    add dependency for nixl common to support abseil path

commit 4391f688e4e7a417a0aeb9d4d898749c4f6e3b1d
Merge: 3edd527a 77b9ab7
Author: Hongbo PENG <hpeng@ddn.com>
Date:   Tue Feb 24 03:13:58 2026 +0000

    Merge remote-tracking branch 'upstream/main'

commit 3edd527a32557c8b312c6b780eed8c3666aa69fa
Author: Hongbo PENG <hpeng@ddn.com>
Date:   Tue Feb 24 03:05:51 2026 +0000

    Revert "Merge pull request ROCm#6 from ziliu/feat/nixlbench-support-infinia-plugin"

    This reverts commit b1c788c76aa44c25517d0074e6aa1c5888ee15f6, reversing
    changes made to 53d00bc661e030c27bac84420276d71f10470108.

commit b1c788c76aa44c25517d0074e6aa1c5888ee15f6
Merge: 53d00bc6 62e9c3cd
Author: Keyur Desai <kdesai@ddn.com>
Date:   Thu Jul 10 22:20:54 2025 -0400

    Merge pull request ROCm#6 from ziliu/feat/nixlbench-support-infinia-plugin

    nixlbench support infinia plugin

commit 62e9c3cd919e5882bb0b5bcf751c1b59054a8c41
Author: Zirui Liu <ziliu@ddn.com>
Date:   Fri Jul 11 02:11:03 2025 +0000

    add explaination to populate()

commit 4eeaef84231e4db5f0426764d95a2ccf875dc28f
Author: Zirui Liu <ziliu@ddn.com>
Date:   Thu Jul 3 10:56:43 2025 +0000

    fix populate() to avoid unnecesary offset check

commit f0b8e625d68cf59c7cc2bba73bf64746ef69218d
Author: Zirui Liu <ziliu@ddn.com>
Date:   Tue Jul 1 14:29:35 2025 +0000

    generate the same series of random keys

commit 22bb0e67803d2805732b52bf24712171118217b4
Author: Zirui Liu <ziliu@ddn.com>
Date:   Tue Jul 1 04:07:21 2025 +0000

    clean up comments

commit 66aa8d89d6762c72951d3c1a3d92acdd180ae135
Author: Zirui Liu <ziliu@ddn.com>
Date:   Tue Jul 1 01:52:34 2025 +0000

    additional changes to exchangeMetadata and exchangeIOV

commit 2559a2b784ea154d095ca9d91097c82a6375813e
Author: Zirui Liu <ziliu@ddn.com>
Date:   Fri Jun 27 09:10:03 2025 +0000

    initialize keys to support infinia plugin

commit 5b231682072a7e4e780056684f16b4b9248d9a8b
Author: Zirui Liu <ziliu@ddn.com>
Date:   Thu Jun 26 17:15:47 2025 +0000

    add micros for infinia

commit 8c9fae653738704e5155a3ccd1812f99cc20185f
Author: Zirui Liu <ziliu@ddn.com>
Date:   Thu Jun 26 17:14:56 2025 +0000

    add empty functions to include infinia backend. todo: initialize keys and values

commit 53d00bc661e030c27bac84420276d71f10470108
Merge: 22b88867 e704cf35
Author: Hongbo Peng <hpeng@ddn.com>
Date:   Wed Jun 25 09:57:12 2025 +0800

    Merge pull request ROCm#5 from hpeng/RED-27683

    eliminate memcpy in the infinia Nixl plugin and aisdk code path

commit e704cf350c410a4f599a3f232d9ff64e9ab48b81
Author: Hongbo PENG <hpeng@ddn.com>
Date:   Tue Jun 24 16:00:32 2025 +0000

    rename red_aisdk_client_get/put for iomem

commit ffdb0decc06ea633a725d49e5b5440ed8a5cb56e
Author: Hongbo PENG <hpeng@ddn.com>
Date:   Tue Jun 24 15:04:03 2025 +0000

    fix typo for GET

commit f9ad22f966fd9fb1a374b9b3a418ad8a8b498bc4
Author: Hongbo PENG <hpeng@ddn.com>
Date:   Tue Jun 24 07:25:15 2025 +0000

    eliminate memcpy in the infinia Nixl plugin and aisdk code path
    free allocated mem in error case

commit 22b8886757d6bdf6580a9a434d06537b926e0786
Merge: ce7ff3a4 d3dc1953
Author: Hongbo Peng <hpeng@ddn.com>
Date:   Fri Jun 20 08:52:32 2025 +0800

    Merge pull request ROCm#4 from hpeng/RED-27294-2

    remove unsupported opts and replace GDS with Infinia

commit d3dc19536d8039d3a177c9ac30076366669e4fe6
Author: Hongbo PENG <hpeng@ddn.com>
Date:   Thu Jun 19 04:33:33 2025 +0000

    remove unsupported opts and replace GDS with Infinia

commit ce7ff3a40c3a9efde3b24cedd39291cd870003b4
Merge: 3d41192a ab048cd8
Author: Hongbo Peng <hpeng@ddn.com>
Date:   Wed Jun 18 16:22:00 2025 +0800

    Merge pull request ROCm#3 from hpeng/RED-27294

    RED-27294 Infinia support in nixl plugin with enhanced unit test

commit ab048cd8abdc4d14c4aaf43641be91871cf36f44
Merge: 0114d347 249833d2
Author: Hongbo PENG <hpeng@ddn.com>
Date:   Wed Jun 18 16:18:15 2025 +0800

    Merge branch 'main' into RED-27294 to resolve conflicts

commit 249833d20a1b6a7ce65fe63d3847be638da082b3
Merge: 3d41192a 0a60245a
Author: Hongbo PENG <hpeng@ddn.com>
Date:   Wed Jun 18 15:29:13 2025 +0800

    Merge branch 'hpeng-RED-27294'

commit 0a60245a2d8176912108c7e06de1d9fc3e575447
Merge: 3d41192a 0114d347
Author: Hongbo PENG <hpeng@ddn.com>
Date:   Wed Jun 18 15:25:57 2025 +0800

    Merge branch 'RED-27294' of github.red.datadirectnet.com:hpeng/nixl into hpeng-RED-27294

commit 0114d347ab6f1ba029235c74a2e6d1fa846a2325
Author: Hongbo PENG <hpeng@ddn.com>
Date:   Wed Jun 18 06:01:50 2025 +0000

    replace printf with std::cerr

commit 7fa6691a9f8b4201825eaa7e4e9f41df6657d5ad
Author: Hongbo PENG <hpeng@ddn.com>
Date:   Wed Jun 18 05:57:50 2025 +0000

    remove tail whitespace and TAB

commit 7c9185ca1b174f09f30ece8b6ca8db3f531ada4b
Author: Hongbo PENG <hpeng@ddn.com>
Date:   Wed Jun 18 05:46:41 2025 +0000

    red_kv_put does NOT support append. Set maximum transfer size to 10M.

commit 59bab12284d3fd353cb59247a4824c1cd1da7ee9
Author: Hongbo PENG <hpeng@ddn.com>
Date:   Wed Jun 18 05:12:05 2025 +0000

    set cpp_args correctly

commit 358663db870b07bf1e5cad1f54d717f23dd7f39d
Author: Hongbo PENG <hpeng@ddn.com>
Date:   Wed Jun 18 04:52:46 2025 +0000

    replace TAB with whitespace
    set separate seed for key generator

commit bdd7e29610404e77f8fff956619ec1d49833a1aa
Author: Hongbo PENG <hpeng@ddn.com>
Date:   Wed Jun 18 04:18:42 2025 +0000

    fix typo

commit 884c929bbedc232463aa7e74907df413d44657e2
Author: Hongbo PENG <hpeng@ddn.com>
Date:   Wed Jun 18 04:10:25 2025 +0000

    Update return code from red_aisdk
    remove Async code branch

commit 01f76922034aafdf4121903eee353b90a0c1120c
Author: Hongbo PENG <hpeng@ddn.com>
Date:   Wed Jun 18 02:48:05 2025 +0000

    remove unsupported options

commit 61782a9352cbb541b32d49780dfd59bef25a63dc
Author: Hongbo PENG <hpeng@ddn.com>
Date:   Tue Jun 17 05:41:29 2025 +0000

    generate reproducible uuid for test and remove uuid dep

commit 9007afeb68cb9182f012d40ee1fe3a0c3db5ae90
Author: Hongbo PENG <hpeng@ddn.com>
Date:   Tue Jun 17 05:05:51 2025 +0000

    no support to skip read/write

commit 5cb8bed42841fee64c1459cf23c726c8cc6d8975
Author: Hongbo PENG <hpeng@ddn.com>
Date:   Tue Jun 17 03:11:50 2025 +0000

    rename macro USE_VRAM as HAVE_CUDA

commit 6c928dde7951189989d7ba96a9a49d06e17fe328
Author: Hongbo PENG <hpeng@ddn.com>
Date:   Tue Jun 17 02:33:28 2025 +0000

    add macro USE_VRAM to run on DRAM only

commit 32c8798de6c0588e6b78ddebd7598eae401f8614
Author: Hongbo PENG <hpeng@ddn.com>
Date:   Tue Jun 17 02:21:37 2025 +0000

    Code cleanup for commit

commit 8714093925b7dcab39d159d9883b73b0ab387e4a
Author: Hongbo PENG <hpeng@ddn.com>
Date:   Tue Jun 17 02:20:26 2025 +0000

    Move check from postXfer to preXfer
    Code cleanup for commit

commit 747b552688afdbfd40a78f80546378f96f149bc4
Author: Hongbo PENG <hpeng@ddn.com>
Date:   Fri Jun 13 02:06:44 2025 +0000

    Add more args for the Infinia backend unit test to support
        different size of keys
        different numbers of reqs
        multiple iters

commit be8778de311bed41d9a0039393d65e2026a119fd
Author: Hongbo PENG <hpeng@ddn.com>
Date:   Fri Jun 13 02:05:50 2025 +0000

    Remove the memcpy for DRAM.
    Replace gds with infinia

commit 3d41192a7b5bc6d63f977f521d1222ea8c1e6aa9
Merge: a5206749 dbc32b75
Author: Keyur Desai <kdesai@ddn.com>
Date:   Mon Jun 9 22:42:41 2025 -0400

    Merge pull request ROCm#2 from hpeng/RED-25299-2

    code update to sync with upstream

commit dbc32b75572a556e1247d12c5a2728b680bda006
Author: Hongbo PENG <hpeng@ddn.com>
Date:   Mon Jun 9 07:38:32 2025 +0000

    1. code update for upstream changes: ai-dynamo/nixl#295
    2. fix typos

commit a520674908464ce3235bb03da90de9c470c631bf
Merge: e0b34a3 a3dcf962
Author: Keyur Desai <kdesai@ddn.com>
Date:   Tue May 27 22:00:17 2025 -0400

    Merge pull request ROCm#1 from kdesai/RED-25299

    Initial commit of NIXL Infinia backend plugin

commit a3dcf9624bcaa876adec21408c4827aa45a3fcca
Author: Keyur Desai <kdesai@bb-4.vms.virts.svc.devintel2.local>
Date:   Fri May 23 02:36:55 2025 +0000

    Initial commit of NIXL Infinia backend plugin

* SQUASHME: Addressed code review comments 1.

* SQUASHME: clang and precommit hook fix

* SQUASHME: GPU direct fix

* SQUASHME: Addressed 2nd round of coderabbit comments

* QUASHME: Addressed comments from Adit

* SQUASHME: clang fix

* SQUASHME: Addressed Adit's comment on remote support

* SQUASHME: Addressed comments from Colin - part 2

* SQUASHME: clang fixees

* SQUASHME: Removed unnecessary StrFormat

* SQUASHME: Removed C++ 20 override from Infinia meson.build

* SQUASHME: rem oved format, as reuested by Adit

---------

Co-authored-by: Adit Ranadive <aranadive@nvidia.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants