NCCL
2.25
  • NCCL 概述
  • 设置
  • 使用 NCCL
    • 创建通信器
      • 使用选项创建通信器
      • 使用多个 ncclUniqueIds 创建通信器
      • 创建更多通信器
      • 并发使用多个 NCCL 通信器
      • 完成通信器
      • 销毁通信器
    • 错误处理和通信器中止
      • 异步错误和错误处理
    • 容错
    • 集体操作
      • AllReduce(规约求和)
      • Broadcast(广播)
      • Reduce(规约)
      • AllGather(全收集)
      • ReduceScatter(规约分散)
    • 数据指针
    • CUDA 流语义
      • 在同一 ncclGroupStart/End() 组内混合多个流
    • 组调用
      • 从一个线程管理多个 GPU
      • 聚合操作 (2.2 及更高版本)
      • 非阻塞组操作
    • 点对点通信
      • Sendrecv(发送接收)
      • 一对多 (scatter/分散)
      • 多对一 (gather/收集)
      • 全对全 (All-to-all)
      • 邻居交换
    • 线程安全
    • 原地操作
    • 将 NCCL 与 CUDA Graphs 结合使用
    • 用户缓冲区注册
      • NVLink Sharp 缓冲区注册
      • IB Sharp 缓冲区注册
      • 通用缓冲区注册
      • 内存分配器
  • NCCL API
    • 通信器创建和管理函数
      • ncclGetLastError
      • ncclGetErrorString
      • ncclGetVersion
      • ncclGetUniqueId
      • ncclCommInitRank
      • ncclCommInitAll
      • ncclCommInitRankConfig
      • ncclCommInitRankScalable
      • ncclCommSplit
      • ncclCommFinalize
      • ncclCommDestroy
      • ncclCommAbort
      • ncclCommGetAsyncError
      • ncclCommCount
      • ncclCommCuDevice
      • ncclCommUserRank
      • ncclCommRegister
      • ncclCommDeregister
      • ncclMemAlloc
      • ncclMemFree
    • 集体通信函数
      • ncclAllReduce
      • ncclBroadcast
      • ncclReduce
      • ncclAllGather
      • ncclReduceScatter
    • 组调用
      • ncclGroupStart
      • ncclGroupEnd
      • ncclGroupSimulateEnd
    • 点对点通信函数
      • ncclSend
      • ncclRecv
    • 类型
      • ncclComm_t
      • ncclResult_t
      • ncclDataType_t
      • ncclRedOp_t
      • ncclScalarResidence_t
      • ncclConfig_t
      • ncclSimInfo_t
    • 用户定义的规约运算符
      • ncclRedOpCreatePreMulSum
      • ncclRedOpDestroy
  • 从 NCCL 1 迁移到 NCCL 2
    • 初始化
    • 通信
    • 计数
    • AllGather 和 ReduceScatter 的原地使用
    • AllGather 参数顺序
    • 数据类型
    • 错误代码
  • 示例
    • 通信器创建和销毁示例
      • 示例 1:单进程、单线程、多设备
      • 示例 2:每个进程或线程一个设备
      • 示例 3:每个线程多个设备
      • 示例 4:每个设备的多个通信器
    • 通信示例
      • 示例 1:每个进程或线程一个设备
      • 示例 2:每个线程多个设备
  • NCCL 和 MPI
    • API
      • 每个进程使用多个设备
      • ReduceScatter 操作
      • 发送和接收计数
      • 其他集体和点对点操作
      • 原地操作
    • 在 MPI 程序中使用 NCCL
      • MPI 进度
      • 使用 CUDA 感知 MPI 的 GPU 间通信
  • 环境变量
    • 系统配置
      • NCCL_SOCKET_IFNAME
        • 接受的值
      • NCCL_SOCKET_FAMILY
        • 接受的值
      • NCCL_SOCKET_RETRY_CNT
        • 接受的值
      • NCCL_SOCKET_RETRY_SLEEP_MSEC
        • 接受的值
      • NCCL_SOCKET_NTHREADS
        • 接受的值
      • NCCL_NSOCKS_PERTHREAD
        • 接受的值
      • NCCL_CROSS_NIC
        • 接受的值
      • NCCL_IB_HCA
        • 接受的值
      • NCCL_IB_TIMEOUT
        • 接受的值
      • NCCL_IB_RETRY_CNT
        • 接受的值
      • NCCL_IB_GID_INDEX
        • 接受的值
      • NCCL_IB_ADDR_FAMILY
        • 接受的值
      • NCCL_IB_ADDR_RANGE
        • 接受的值
      • NCCL_IB_ROCE_VERSION_NUM
        • 接受的值
      • NCCL_IB_SL
        • 接受的值
      • NCCL_IB_TC
        • 接受的值
      • NCCL_IB_FIFO_TC
        • 接受的值
      • NCCL_IB_RETURN_ASYNC_EVENTS
        • 接受的值
      • NCCL_OOB_NET_ENABLE
        • 接受的值
      • NCCL_OOB_NET_IFNAME
        • 接受的值
      • NCCL_UID_STAGGER_THRESHOLD
        • 接受的值
      • NCCL_UID_STAGGER_RATE
        • 接受的值
      • NCCL_NET
        • 接受的值
      • NCCL_NET_PLUGIN
        • 接受的值
      • NCCL_TUNER_PLUGIN
        • 接受的值
      • NCCL_PROFILER_PLUGIN
        • 接受的值
      • NCCL_IGNORE_CPU_AFFINITY
        • 接受的值
      • NCCL_CONF_FILE
        • 接受的值
      • NCCL_DEBUG
        • 接受的值
      • NCCL_DEBUG_FILE
        • 接受的值
      • NCCL_DEBUG_SUBSYS
        • 接受的值
      • NCCL_COLLNET_ENABLE
        • 接受的值
      • NCCL_COLLNET_NODE_THRESHOLD
        • 接受的值
      • NCCL_TOPO_FILE
        • 接受的值
      • NCCL_TOPO_DUMP_FILE
        • 接受的值
      • NCCL_SET_THREAD_NAME
        • 接受的值
    • 调试
      • NCCL_P2P_DISABLE
        • 接受的值
      • NCCL_P2P_LEVEL
        • 接受的值
        • 整数值 (旧版)
      • NCCL_P2P_DIRECT_DISABLE
        • 接受的值
      • NCCL_SHM_DISABLE
        • 接受的值
      • NCCL_BUFFSIZE
        • 接受的值
      • NCCL_NTHREADS
        • 接受的值
      • NCCL_MAX_NCHANNELS
        • 接受的值
      • NCCL_MIN_NCHANNELS
        • 接受的值
      • NCCL_CHECKS_DISABLE
        • 接受的值
      • NCCL_CHECK_POINTERS
        • 接受的值
      • NCCL_LAUNCH_MODE
        • 接受的值
      • NCCL_IB_DISABLE
        • 接受的值
      • NCCL_IB_AR_THRESHOLD
        • 接受的值
      • NCCL_IB_QPS_PER_CONNECTION
        • 接受的值
      • NCCL_IB_SPLIT_DATA_ON_QPS
        • 接受的值
      • NCCL_IB_CUDA_SUPPORT
        • 接受的值
      • NCCL_IB_PCI_RELAXED_ORDERING
        • 接受的值
      • NCCL_IB_ADAPTIVE_ROUTING
        • 接受的值
      • NCCL_IB_ECE_ENABLE
        • 接受的值
      • NCCL_MEM_SYNC_DOMAIN
        • 接受的值
      • NCCL_CUMEM_ENABLE
        • 接受的值
      • NCCL_CUMEM_HOST_ENABLE
        • 接受的值
      • NCCL_NET_GDR_LEVEL (以前的 NCCL_IB_GDR_LEVEL)
        • 接受的值
        • 整数值 (旧版)
      • NCCL_NET_GDR_READ
        • 接受的值
      • NCCL_NET_SHARED_BUFFERS
        • 接受的值
      • NCCL_NET_SHARED_COMMS
        • 接受的值
      • NCCL_SINGLE_RING_THRESHOLD
        • 接受的值
      • NCCL_LL_THRESHOLD
        • 接受的值
      • NCCL_TREE_THRESHOLD
        • 接受的值
      • NCCL_ALGO
        • 接受的值
      • NCCL_PROTO
        • 接受的值
      • NCCL_NVB_DISABLE
        • 接受的值
      • NCCL_PXN_DISABLE
        • 接受的值
      • NCCL_P2P_PXN_LEVEL
        • 接受的值
      • NCCL_RUNTIME_CONNECT
        • 接受的值
      • NCCL_GRAPH_REGISTER
        • 接受的值
      • NCCL_LOCAL_REGISTER
        • 接受的值
      • NCCL_LEGACY_CUDA_REGISTER
        • 接受的值
      • NCCL_SET_STACK_SIZE
        • 接受的值
      • NCCL_GRAPH_MIXING_SUPPORT
        • 接受的值
      • NCCL_DMABUF_ENABLE
        • 接受的值
      • NCCL_P2P_NET_CHUNKSIZE
        • 接受的值
      • NCCL_P2P_LL_THRESHOLD
        • 接受的值
      • NCCL_ALLOC_P2P_NET_LL_BUFFERS
        • 接受的值
      • NCCL_COMM_BLOCKING
        • 接受的值
      • NCCL_CGA_CLUSTER_SIZE
        • 接受的值
      • NCCL_MAX_CTAS
        • 接受的值
      • NCCL_MIN_CTAS
        • 接受的值
      • NCCL_NVLS_ENABLE
        • 接受的值
      • NCCL_IB_MERGE_NICS
        • 接受的值
      • NCCL_MNNVL_ENABLE
        • 接受的值
      • NCCL_RAS_ENABLE
        • 接受的值
      • NCCL_RAS_ADDR
        • 接受的值
      • NCCL_RAS_TIMEOUT_FACTOR
        • 接受的值
  • 故障排除
    • 错误
    • RAS
      • RAS
        • 操作原理
        • RAS 查询
        • 示例输出
    • GPU Direct
      • GPU 到 GPU 通信
      • GPU 到 NIC 通信
      • PCI 访问控制服务 (ACS)
    • 拓扑检测
    • 共享内存
      • Docker
      • Systemd
    • 网络问题
      • IP 网络接口
      • IP 端口
      • InfiniBand
      • 基于融合以太网的 RDMA (RoCE)
NCCL
  • 文档 »
  • NCCL API
  • 查看页面源代码

NCCL API¶

以下部分描述了 NCCL 方法和操作。

  • 通信器创建和管理函数
    • ncclGetLastError
    • ncclGetErrorString
    • ncclGetVersion
    • ncclGetUniqueId
    • ncclCommInitRank
    • ncclCommInitAll
    • ncclCommInitRankConfig
    • ncclCommInitRankScalable
    • ncclCommSplit
    • ncclCommFinalize
    • ncclCommDestroy
    • ncclCommAbort
    • ncclCommGetAsyncError
    • ncclCommCount
    • ncclCommCuDevice
    • ncclCommUserRank
    • ncclCommRegister
    • ncclCommDeregister
    • ncclMemAlloc
    • ncclMemFree
  • 集体通信函数
    • ncclAllReduce
    • ncclBroadcast
    • ncclReduce
    • ncclAllGather
    • ncclReduceScatter
  • 组调用
    • ncclGroupStart
    • ncclGroupEnd
    • ncclGroupSimulateEnd
  • 点对点通信函数
    • ncclSend
    • ncclRecv
  • 类型
    • ncclComm_t
    • ncclResult_t
    • ncclDataType_t
    • ncclRedOp_t
    • ncclScalarResidence_t
    • ncclConfig_t
    • ncclSimInfo_t
  • 用户定义的规约运算符
    • ncclRedOpCreatePreMulSum
    • ncclRedOpDestroy
下一步 上一步

© Copyright 2020, NVIDIA Corporation

使用 Sphinx 构建,主题由 theme 提供,托管于 Read the Docs。
© . All rights reserved.