Question
Question
I'm trying to understand the requirements for enabling GIN (GPU-Initiated Networking) support in NCCL and found the following conditions in init.cc:
comm->ginSupport = comm->sharedRes->ginState.ncclGin != nullptr
&& crossNicSupported
&& !globalNicFused;
Background
From the code analysis:
crossNicSupported checks if NCCL_CROSS_NIC != 0 (multi-NIC topology)
globalNicFused is set to true when any NIC has vProps.ndevs > 1 (fused/merged NICs)
Questions
- Why is crossNicSupported required for GIN?
- Does GIN not provide benefits in single-NIC scenarios?
- s the overhead of GIN not worthwhile without multi-rail networks?
- Why does !globalNicFused disable GIN?
- What technical limitations prevent GIN from working with fused NICs?
- Is this related to direct GPU-to-physical-NIC mapping requirements?
- Are there plans to support GIN with fused NICs in the future?
- if use two-port, and it is not bonded, it will be considered as fused Nics, so gin cannot be used.