All functions:
  Elements:
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sprintf
      Src: /src/fuzz_xml.cpp:27,1
    - Dst: getpid
      Src: /src/fuzz_xml.cpp:27,1
    - Dst: fopen
      Src: /src/fuzz_xml.cpp:29,1
    - Dst: fwrite
      Src: /src/fuzz_xml.cpp:33,1
    - Dst: fclose
      Src: /src/fuzz_xml.cpp:34,1
    - Dst: ncclCalloc
      Src: /src/fuzz_xml.cpp:37,1
    - Dst: ncclTopoGetXmlFromFile
      Src: /src/fuzz_xml.cpp:38,1
    - Dst: free
      Src: /src/fuzz_xml.cpp:39,1
    - Dst: unlink
      Src: /src/fuzz_xml.cpp:41,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 44
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/fuzz_xml.cpp
    functionUses: 0
    functionsReached:
    - free
    - fclose
    - fopen
    - getpid
    - fwrite
    - ncclCalloc
    - unlink
    - sprintf
    - ncclTopoGetXmlFromFile
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: STR2
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STR2(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: STR
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STR(v)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncclParamGdrCopyEnable
      Src: /src/nccl/src/init.cc:67,1
    - Dst: ncclGdrInit
      Src: /src/nccl/src/init.cc:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 71
    functionName: initGdrCopy
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached:
    - ncclGdrInit
    - ncclParamGdrCopyEnable
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t initGdrCopy()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: initEnv
      Src: /src/nccl/src/init.cc:77,1
    - Dst: initGdrCopy
      Src: /src/nccl/src/init.cc:78,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:80,1
    - Dst: bootstrapNetInit
      Src: /src/nccl/src/init.cc:80,1
    - Dst: initNvtxRegisteredEnums
      Src: /src/nccl/src/init.cc:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 76
    functionDepth: 2
    functionLinenumber: 76
    functionLinenumberEnd: 84
    functionName: initOnceFunc
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached:
    - NCCLCHECKGOTO
    - bootstrapNetInit
    - initGdrCopy
    - initNvtxRegisteredEnums
    - initEnv
    linkageType: ''
    returnType: void
    signature: void initOnceFunc()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_once
      Src: /src/nccl/src/init.cc:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 89
    functionName: ncclInit
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached:
    - pthread_once
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclInit()
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - version
    argTypes:
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 96
    functionName: ncclGetVersion
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGetVersion(int* version)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:100,1
    - Dst: ncclInit
      Src: /src/nccl/src/init.cc:100,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:101,1
    - Dst: PtrCheck
      Src: /src/nccl/src/init.cc:101,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:103,1
    - Dst: bootstrapGetUniqueId
      Src: /src/nccl/src/init.cc:103,1
    - Dst: memset
      Src: /src/nccl/src/init.cc:106,1
    - Dst: memcpy
      Src: /src/nccl/src/init.cc:108,1
    - Dst: TRACE_CALL
      Src: /src/nccl/src/init.cc:109,1
    - Dst: getHash
      Src: /src/nccl/src/init.cc:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - out
    argTypes:
    - ncclUniqueId*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 111
    functionName: ncclGetUniqueId
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached:
    - bootstrapGetUniqueId
    - memcpy
    - getHash
    - ncclInit
    - PtrCheck
    - TRACE_CALL
    - NCCLCHECK
    - memset
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGetUniqueId(ncclUniqueId* out)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - comm
    argTypes:
    - ncclComm_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 124
    functionName: NCCL_NO_OPTIMIZE::commPoison
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NCCL_NO_OPTIMIZE commPoison(ncclComm_t comm)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/nccl/src/init.cc:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dtor
    argTypes:
    - struct ncclDestructor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 132
    functionName: ncclDestructorFnFree
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclDestructorFnFree(struct ncclDestructor* dtor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclMemoryStackAlloc
      Src: /src/nccl/src/init.cc:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - comm
    - obj
    argTypes:
    - struct ncclComm*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 139
    functionName: ncclCommPushFree
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached:
    - ncclMemoryStackAlloc
    linkageType: ''
    returnType: void
    signature: void ncclCommPushFree(struct ncclComm* comm, void* obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:142,1
    - Dst: ncclCudaFree
      Src: /src/nccl/src/init.cc:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dtor
    argTypes:
    - struct ncclDestructor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 144
    functionName: ncclDestructorFnCudaFree
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached:
    - NCCLCHECK
    - ncclCudaFree
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclDestructorFnCudaFree(struct ncclDestructor* dtor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclMemoryStackAlloc
      Src: /src/nccl/src/init.cc:146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - comm
    - obj
    argTypes:
    - struct ncclComm*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 151
    functionName: ncclCommPushCudaFree
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached:
    - ncclMemoryStackAlloc
    linkageType: ''
    returnType: void
    signature: void ncclCommPushCudaFree(struct ncclComm* comm, void* obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:154,1
    - Dst: ncclCudaHostFree
      Src: /src/nccl/src/init.cc:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dtor
    argTypes:
    - struct ncclDestructor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 156
    functionName: ncclDestructorFnCudaHostFree
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached:
    - ncclCudaHostFree
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclDestructorFnCudaHostFree(struct ncclDestructor* dtor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclMemoryStackAlloc
      Src: /src/nccl/src/init.cc:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - comm
    - obj
    argTypes:
    - struct ncclComm*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 163
    functionName: ncclCommPushCudaHostFree
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached:
    - ncclMemoryStackAlloc
    linkageType: ''
    returnType: void
    signature: void ncclCommPushCudaHostFree(struct ncclComm* comm, void* obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:166,1
    - Dst: ncclGdrCudaFree
      Src: /src/nccl/src/init.cc:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - dtor
    argTypes:
    - struct ncclDestructor*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 168
    functionName: ncclDestructorFnCudaGdrFree
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached:
    - ncclGdrCudaFree
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclDestructorFnCudaGdrFree(struct ncclDestructor* dtor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclMemoryStackAlloc
      Src: /src/nccl/src/init.cc:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - comm
    - handle
    argTypes:
    - struct ncclComm*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 175
    functionName: ncclCommPushCudaGdrFree
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached:
    - ncclMemoryStackAlloc
    linkageType: ''
    returnType: void
    signature: void ncclCommPushCudaGdrFree(struct ncclComm* comm, void* handle)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:184,1
    - Dst: ncclCommSymmetricFreeInternal
      Src: /src/nccl/src/init.cc:184,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:187,1
    - Dst: ncclRasCommFini
      Src: /src/nccl/src/init.cc:187,1
    - Dst: PTHREADCHECK
      Src: /src/nccl/src/init.cc:193,1
    - Dst: pthread_join
      Src: /src/nccl/src/init.cc:193,1
    - Dst: PTHREADCHECK
      Src: /src/nccl/src/init.cc:196,1
    - Dst: pthread_join
      Src: /src/nccl/src/init.cc:196,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/init.cc:200,1
    - Dst: cudaMemPoolDestroy
      Src: /src/nccl/src/init.cc:200,1
    - Dst: free
      Src: /src/nccl/src/init.cc:204,1
    - Dst: free
      Src: /src/nccl/src/init.cc:205,1
    - Dst: free
      Src: /src/nccl/src/init.cc:207,1
    - Dst: ncclTopoFree
      Src: /src/nccl/src/init.cc:209,1
    - Dst: free
      Src: /src/nccl/src/init.cc:211,1
    - Dst: free
      Src: /src/nccl/src/init.cc:212,1
    - Dst: free
      Src: /src/nccl/src/init.cc:214,1
    - Dst: free
      Src: /src/nccl/src/init.cc:215,1
    - Dst: free
      Src: /src/nccl/src/init.cc:216,1
    - Dst: free
      Src: /src/nccl/src/init.cc:217,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:220,1
    - Dst: bootstrapClose
      Src: /src/nccl/src/init.cc:220,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:223,1
    - Dst: freeChannel
      Src: /src/nccl/src/init.cc:223,1
    - Dst: ncclAtomicRefCountDecrement
      Src: /src/nccl/src/init.cc:226,1
    - Dst: free
      Src: /src/nccl/src/init.cc:228,1
    - Dst: ncclCudaFree
      Src: /src/nccl/src/init.cc:229,1
    - Dst: free
      Src: /src/nccl/src/init.cc:231,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:232,1
    - Dst: ncclStrongStreamDestruct
      Src: /src/nccl/src/init.cc:232,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:233,1
    - Dst: ncclStrongStreamDestruct
      Src: /src/nccl/src/init.cc:233,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/init.cc:234,1
    - Dst: cudaEventDestroy
      Src: /src/nccl/src/init.cc:234,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/init.cc:235,1
    - Dst: cudaEventDestroy
      Src: /src/nccl/src/init.cc:235,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:236,1
    - Dst: ncclProxyDestroy
      Src: /src/nccl/src/init.cc:236,1
    - Dst: free
      Src: /src/nccl/src/init.cc:237,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:241,1
    - Dst: ncclNvlsFree
      Src: /src/nccl/src/init.cc:241,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:245,1
    - Dst: struct ncclDestructor*::fn
      Src: /src/nccl/src/init.cc:245,1
    - Dst: ncclMemoryStackDestruct
      Src: /src/nccl/src/init.cc:249,1
    - Dst: ncclMemoryStackDestruct
      Src: /src/nccl/src/init.cc:250,1
    - Dst: ncclAtomicRefCountDecrement
      Src: /src/nccl/src/init.cc:253,1
    - Dst: free
      Src: /src/nccl/src/init.cc:254,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:255,1
    - Dst: ncclCudaHostFree
      Src: /src/nccl/src/init.cc:255,1
    - Dst: free
      Src: /src/nccl/src/init.cc:256,1
    - Dst: free
      Src: /src/nccl/src/init.cc:258,1
    - Dst: free
      Src: /src/nccl/src/init.cc:260,1
    - Dst: free
      Src: /src/nccl/src/init.cc:261,1
    - Dst: free
      Src: /src/nccl/src/init.cc:262,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:264,1
    - Dst: ncclRegCleanup
      Src: /src/nccl/src/init.cc:264,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:267,1
    - Dst: ncclNvlsSymmetricFinalize
      Src: /src/nccl/src/init.cc:267,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:268,1
    - Dst: ncclIpcSymmetricFinalize
      Src: /src/nccl/src/init.cc:268,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:270,1
    - Dst: commPoison
      Src: /src/nccl/src/init.cc:272,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:273,1
    - Dst: ncclProfilerPluginFinalize
      Src: /src/nccl/src/init.cc:273,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:274,1
    - Dst: ncclNetFinalize
      Src: /src/nccl/src/init.cc:274,1
    - Dst: ncclCudaContextDrop
      Src: /src/nccl/src/init.cc:275,1
    - Dst: free
      Src: /src/nccl/src/init.cc:276,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 81
    argCount: 1
    argNames:
    - comm
    argTypes:
    - ncclComm_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 279
    functionName: commFree
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached:
    - ncclCommSymmetricFreeInternal
    - pthread_join
    - cudaEventDestroy
    - freeChannel
    - ncclAtomicRefCountDecrement
    - INFO
    - ncclCudaContextDrop
    - struct ncclDestructor*::fn
    - ncclNvlsSymmetricFinalize
    - ncclTopoFree
    - ncclNetFinalize
    - ncclNvlsFree
    - ncclIpcSymmetricFinalize
    - CUDACHECK
    - bootstrapClose
    - cudaMemPoolDestroy
    - ncclCudaFree
    - ncclStrongStreamDestruct
    - ncclRasCommFini
    - commPoison
    - ncclRegCleanup
    - free
    - PTHREADCHECK
    - ncclProxyDestroy
    - ncclCudaHostFree
    - ncclMemoryStackDestruct
    - ncclProfilerPluginFinalize
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t commFree(ncclComm_t comm)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ncclParamDmaBufEnable
      Src: /src/nccl/src/init.cc:293,1
    - Dst: ncclCudaLibraryInit
      Src: /src/nccl/src/init.cc:293,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/init.cc:298,1
    - Dst: cudaDriverGetVersion
      Src: /src/nccl/src/init.cc:298,1
    - Dst: CUPFN
      Src: /src/nccl/src/init.cc:299,1
    - Dst: CUCHECK
      Src: /src/nccl/src/init.cc:300,1
    - Dst: cuDeviceGet
      Src: /src/nccl/src/init.cc:300,1
    - Dst: CUPFN
      Src: /src/nccl/src/init.cc:302,1
    - Dst: cuDeviceGetAttribute
      Src: /src/nccl/src/init.cc:302,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:304,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 308
    functionName: dmaBufSupported
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached:
    - INFO
    - ncclParamDmaBufEnable
    - cudaDriverGetVersion
    - CUDACHECK
    - cuDeviceGetAttribute
    - ncclCudaLibraryInit
    - CUPFN
    - CUCHECK
    - cuDeviceGet
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t dmaBufSupported(struct ncclComm* comm)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_load_n
      Src: /src/nccl/src/init.cc:313,1
    - Dst: ncclGroupJobAbort
      Src: /src/nccl/src/init.cc:314,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:316,1
    - Dst: ncclCommGetAsyncError
      Src: /src/nccl/src/init.cc:316,1
    - Dst: WARN
      Src: /src/nccl/src/init.cc:318,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - comm
    argTypes:
    - ncclComm_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 310
    functionDepth: 1
    functionLinenumber: 310
    functionLinenumberEnd: 327
    functionName: ncclCommEnsureReady
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached:
    - __atomic_load_n
    - WARN
    - ncclCommGetAsyncError
    - ncclGroupJobAbort
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCommEnsureReady(ncclComm_t comm)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/init.cc:331,1
    - Dst: WARN
      Src: /src/nccl/src/init.cc:335,1
    - Dst: ncclMemoryStackConstruct
      Src: /src/nccl/src/init.cc:339,1
    - Dst: ncclMemoryStackConstruct
      Src: /src/nccl/src/init.cc:340,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:345,1
    - Dst: ncclNetInit
      Src: /src/nccl/src/init.cc:345,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:346,1
    - Dst: WARN
      Src: /src/nccl/src/init.cc:350,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/init.cc:356,1
    - Dst: cudaGetDevice
      Src: /src/nccl/src/init.cc:356,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:358,1
    - Dst: ncclCudaContextTrack
      Src: /src/nccl/src/init.cc:358,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:360,1
    - Dst: getBusId
      Src: /src/nccl/src/init.cc:360,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:363,1
    - Dst: int64ToBusId
      Src: /src/nccl/src/init.cc:363,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:364,1
    - Dst: ncclNvmlDeviceGetHandleByPciBusId
      Src: /src/nccl/src/init.cc:364,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:365,1
    - Dst: ncclNvmlDeviceGetIndex
      Src: /src/nccl/src/init.cc:365,1
    - Dst: ncclCudaCompCap
      Src: /src/nccl/src/init.cc:367,1
    - Dst: TRACE
      Src: /src/nccl/src/init.cc:368,1
    - Dst: ncclParamCheckPointers
      Src: /src/nccl/src/init.cc:370,1
    - Dst: dmaBufSupported
      Src: /src/nccl/src/init.cc:371,1
    - Dst: memset
      Src: /src/nccl/src/init.cc:373,1
    - Dst: ncclMemoryPoolConstruct
      Src: /src/nccl/src/init.cc:375,1
    - Dst: ncclMemoryPoolConstruct
      Src: /src/nccl/src/init.cc:376,1
    - Dst: reinterpret_cast<struct ncclComm*>
      Src: /src/nccl/src/init.cc:379,1
    - Dst: reinterpret_cast<struct ncclComm*>
      Src: /src/nccl/src/init.cc:381,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:385,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/init.cc:385,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:386,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/init.cc:386,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:393,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/init.cc:393,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:397,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/init.cc:397,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:398,1
    - Dst: ncclStrongStreamConstruct
      Src: /src/nccl/src/init.cc:398,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:399,1
    - Dst: ncclStrongStreamConstruct
      Src: /src/nccl/src/init.cc:399,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/init.cc:400,1
    - Dst: cudaEventCreateWithFlags
      Src: /src/nccl/src/init.cc:400,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/init.cc:401,1
    - Dst: cudaEventCreateWithFlags
      Src: /src/nccl/src/init.cc:401,1
    - Dst: ncclAtomicRefCountIncrement
      Src: /src/nccl/src/init.cc:406,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:410,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/init.cc:410,1
    - Dst: ncclIntruQueueMpscConstruct
      Src: /src/nccl/src/init.cc:415,1
    - Dst: ncclIntruQueueConstruct
      Src: /src/nccl/src/init.cc:416,1
    - Dst: sysconf
      Src: /src/nccl/src/init.cc:418,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/init.cc:426,1
    - Dst: cudaMemPoolCreate
      Src: /src/nccl/src/init.cc:426,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/init.cc:428,1
    - Dst: cudaMemPoolSetAttribute
      Src: /src/nccl/src/init.cc:428,1
    - Dst: ncclIntruQueueConstruct
      Src: /src/nccl/src/init.cc:431,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 76
    argCount: 4
    argNames:
    - comm
    - parent
    - ndev
    - rank
    argTypes:
    - struct ncclComm*
    - struct ncclComm*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 329
    functionDepth: 2
    functionLinenumber: 329
    functionLinenumberEnd: 434
    functionName: commAlloc
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached:
    - WARN
    - ncclNvmlDeviceGetIndex
    - ncclMemoryPoolConstruct
    - int64ToBusId
    - ncclIntruQueueConstruct
    - ncclCudaCompCap
    - ncclIntruQueueMpscConstruct
    - ncclNvmlDeviceGetHandleByPciBusId
    - INFO
    - TRACE
    - ncclParamCheckPointers
    - sysconf
    - cudaGetDevice
    - memset
    - ncclMemoryStackConstruct
    - ncclAtomicRefCountIncrement
    - reinterpret_cast<struct ncclComm*>
    - CUDACHECK
    - ncclNetInit
    - dmaBufSupported
    - ncclCudaContextTrack
    - getBusId
    - ncclStrongStreamConstruct
    - cudaEventCreateWithFlags
    - ncclCalloc
    - cudaMemPoolCreate
    - cudaMemPoolSetAttribute
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t commAlloc(struct ncclComm* comm, struct ncclComm* parent,
      int ndev, int rank)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nccl/src/init.cc:445,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:446,1
    - Dst: ncclStrongStreamAcquire
      Src: /src/nccl/src/init.cc:446,1
    - Dst: ncclCudaGraphNone
      Src: /src/nccl/src/init.cc:446,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:447,1
    - Dst: ncclCudaCallocAsync
      Src: /src/nccl/src/init.cc:447,1
    - Dst: ncclCommPushCudaFree
      Src: /src/nccl/src/init.cc:448,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:449,1
    - Dst: ncclCudaCallocAsync
      Src: /src/nccl/src/init.cc:449,1
    - Dst: ncclCommPushCudaFree
      Src: /src/nccl/src/init.cc:450,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:451,1
    - Dst: ncclCudaMemcpyAsync
      Src: /src/nccl/src/init.cc:451,1
    - Dst: std::min<size_t>
      Src: /src/nccl/src/init.cc:465,1
    - Dst: ncclParamWorkArgsBytes
      Src: /src/nccl/src/init.cc:465,1
    - Dst: ncclMaxKernelArgsSize
      Src: /src/nccl/src/init.cc:465,1
    - Dst: memset
      Src: /src/nccl/src/init.cc:467,1
    - Dst: ncclNvmlGetCCStatus
      Src: /src/nccl/src/init.cc:468,1
    - Dst: ncclParamWorkFifoBytes
      Src: /src/nccl/src/init.cc:472,1
    - Dst: WARN
      Src: /src/nccl/src/init.cc:474,1
    - Dst: min
      Src: /src/nccl/src/init.cc:477,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:481,1
    - Dst: ncclParamGdrCopyFifoEnable
      Src: /src/nccl/src/init.cc:484,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:486,1
    - Dst: ncclGdrCudaCalloc
      Src: /src/nccl/src/init.cc:486,1
    - Dst: ncclCommPushCudaGdrFree
      Src: /src/nccl/src/init.cc:487,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:491,1
    - Dst: ncclCudaHostCalloc
      Src: /src/nccl/src/init.cc:491,1
    - Dst: ncclCommPushCudaHostFree
      Src: /src/nccl/src/init.cc:492,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:501,1
    - Dst: ncclCudaHostCalloc
      Src: /src/nccl/src/init.cc:501,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:502,1
    - Dst: ncclCudaHostCalloc
      Src: /src/nccl/src/init.cc:502,1
    - Dst: ncclCommPushCudaHostFree
      Src: /src/nccl/src/init.cc:505,1
    - Dst: ncclCommPushCudaHostFree
      Src: /src/nccl/src/init.cc:506,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:509,1
    - Dst: ncclCudaCallocAsync
      Src: /src/nccl/src/init.cc:509,1
    - Dst: ncclCommPushCudaFree
      Src: /src/nccl/src/init.cc:510,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:511,1
    - Dst: ncclCudaMemcpyAsync
      Src: /src/nccl/src/init.cc:511,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:524,1
    - Dst: ncclCudaMemcpyAsync
      Src: /src/nccl/src/init.cc:524,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:528,1
    - Dst: ncclCudaMemcpyAsync
      Src: /src/nccl/src/init.cc:528,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:530,1
    - Dst: ncclStrongStreamRelease
      Src: /src/nccl/src/init.cc:530,1
    - Dst: ncclCudaGraphNone
      Src: /src/nccl/src/init.cc:530,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:531,1
    - Dst: ncclStrongStreamSynchronize
      Src: /src/nccl/src/init.cc:531,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 81
    argCount: 1
    argNames:
    - comm
    argTypes:
    - ncclComm_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 436
    functionDepth: 2
    functionLinenumber: 436
    functionLinenumberEnd: 535
    functionName: devCommSetup
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached:
    - WARN
    - ncclParamWorkFifoBytes
    - ncclParamWorkArgsBytes
    - ncclNvmlGetCCStatus
    - ncclCommPushCudaFree
    - INFO
    - min
    - std::min<size_t>
    - ncclParamGdrCopyFifoEnable
    - ncclCudaCallocAsync
    - ncclCudaGraphNone
    - ncclCommPushCudaGdrFree
    - ncclGdrCudaCalloc
    - memset
    - ncclCudaHostCalloc
    - ncclStrongStreamRelease
    - ncclStrongStreamAcquire
    - NCCLCHECKGOTO
    - ncclMaxKernelArgsSize
    - ncclCommPushCudaHostFree
    - ncclStrongStreamSynchronize
    - ncclCudaMemcpyAsync
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t devCommSetup(ncclComm_t comm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: VERSION
      Src: /src/nccl/src/init.cc:541,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:543,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 539
    functionDepth: 1
    functionLinenumber: 539
    functionLinenumberEnd: 545
    functionName: showVersion
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached:
    - INFO
    - VERSION
    linkageType: ''
    returnType: void
    signature: void showVersion()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:555,1
    - Dst: ncclGetVersion
      Src: /src/nccl/src/init.cc:555,1
    - Dst: getHostHash
      Src: /src/nccl/src/init.cc:556,1
    - Dst: getPidHash
      Src: /src/nccl/src/init.cc:557,1
    - Dst: ncclCuMemEnable
      Src: /src/nccl/src/init.cc:558,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/init.cc:559,1
    - Dst: cudaGetDeviceProperties
      Src: /src/nccl/src/init.cc:559,1
    - Dst: ROUNDUP
      Src: /src/nccl/src/init.cc:560,1
    - Dst: SYSCHECK
      Src: /src/nccl/src/init.cc:566,1
    - Dst: stat
      Src: /src/nccl/src/init.cc:566,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:571,1
    - Dst: ncclGpuGdrSupport
      Src: /src/nccl/src/init.cc:571,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:580,1
    - Dst: int64ToBusId
      Src: /src/nccl/src/init.cc:580,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:581,1
    - Dst: ncclNvmlDeviceGetHandleByPciBusId
      Src: /src/nccl/src/init.cc:581,1
    - Dst: ncclNvmlDeviceGetGpuFabricInfoV
      Src: /src/nccl/src/init.cc:583,1
    - Dst: ncclParamMNNVLUUID
      Src: /src/nccl/src/init.cc:585,1
    - Dst: ncclParamMNNVLUUID
      Src: /src/nccl/src/init.cc:586,1
    - Dst: ncclParamMNNVLUUID
      Src: /src/nccl/src/init.cc:587,1
    - Dst: ncclParamMNNVLCliqueId
      Src: /src/nccl/src/init.cc:589,1
    - Dst: ncclParamMNNVLCliqueId
      Src: /src/nccl/src/init.cc:589,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:590,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 31
    argCount: 3
    argNames:
    - comm
    - info
    - commHash
    argTypes:
    - struct ncclComm*
    - struct ncclPeerInfo*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 550
    functionDepth: 1
    functionLinenumber: 550
    functionLinenumberEnd: 598
    functionName: fillInfo
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached:
    - INFO
    - ncclGetVersion
    - ncclGpuGdrSupport
    - ROUNDUP
    - ncclParamMNNVLCliqueId
    - ncclNvmlDeviceGetGpuFabricInfoV
    - CUDACHECK
    - int64ToBusId
    - SYSCHECK
    - getHostHash
    - cudaGetDeviceProperties
    - ncclCuMemEnable
    - stat
    - ncclParamMNNVLUUID
    - ncclNvmlDeviceGetHandleByPciBusId
    - NCCLCHECK
    - getPidHash
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t fillInfo(struct ncclComm* comm, struct ncclPeerInfo* info,
      uint64_t commHash)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TRACE
      Src: /src/nccl/src/init.cc:601,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:602,1
    - Dst: initChannel
      Src: /src/nccl/src/init.cc:602,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 5
    argNames:
    - comm
    - channelId
    - rank
    - nranks
    - ringRanks
    argTypes:
    - struct ncclComm*
    - int
    - int
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 600
    functionDepth: 1
    functionLinenumber: 600
    functionLinenumberEnd: 616
    functionName: setupChannel
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached:
    - TRACE
    - initChannel
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t setupChannel(struct ncclComm* comm, int channelId, int
      rank, int nranks, int* ringRanks)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ncclParamLlBuffSize
      Src: /src/nccl/src/init.cc:630,1
    - Dst: ncclParamLl128BuffSize
      Src: /src/nccl/src/init.cc:630,1
    - Dst: ncclParamBuffSize
      Src: /src/nccl/src/init.cc:630,1
    - Dst: ncclParamP2pNetChunkSize
      Src: /src/nccl/src/init.cc:637,1
    - Dst: ncclParamP2pNvlChunkSize
      Src: /src/nccl/src/init.cc:638,1
    - Dst: ncclParamP2pPciChunkSize
      Src: /src/nccl/src/init.cc:639,1
    - Dst: min
      Src: /src/nccl/src/init.cc:646,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:651,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 629
    functionDepth: 1
    functionLinenumber: 629
    functionLinenumberEnd: 653
    functionName: computeBuffSizes
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached:
    - INFO
    - ncclParamLlBuffSize
    - min
    - ncclParamP2pNetChunkSize
    - ncclParamBuffSize
    - ncclParamLl128BuffSize
    - ncclParamP2pNvlChunkSize
    - ncclParamP2pPciChunkSize
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t computeBuffSizes(struct ncclComm* comm)
  - BBCount: 52
    BranchProfiles: []
    Callsites:
    - Dst: clockNano
      Src: /src/nccl/src/init.cc:719,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:721,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/init.cc:721,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:722,1
    - Dst: fillInfo
      Src: /src/nccl/src/init.cc:722,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:723,1
    - Dst: bootstrapAllGather
      Src: /src/nccl/src/init.cc:723,1
    - Dst: __atomic_store_n
      Src: /src/nccl/src/init.cc:724,1
    - Dst: WARN
      Src: /src/nccl/src/init.cc:729,1
    - Dst: WARN
      Src: /src/nccl/src/init.cc:737,1
    - Dst: clockNano
      Src: /src/nccl/src/init.cc:743,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:746,1
    - Dst: ncclGetUserP2pLevel
      Src: /src/nccl/src/init.cc:746,1
    - Dst: ncclParamMNNVLEnable
      Src: /src/nccl/src/init.cc:747,1
    - Dst: ncclParamMNNVLEnable
      Src: /src/nccl/src/init.cc:747,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:748,1
    - Dst: ncclMnnvlCheck
      Src: /src/nccl/src/init.cc:748,1
    - Dst: min
      Src: /src/nccl/src/init.cc:754,1
    - Dst: std::max
      Src: /src/nccl/src/init.cc:755,1
    - Dst: TRACE
      Src: /src/nccl/src/init.cc:785,1
    - Dst: WARN
      Src: /src/nccl/src/init.cc:788,1
    - Dst: assert
      Src: /src/nccl/src/init.cc:795,1
    - Dst: clockNano
      Src: /src/nccl/src/init.cc:804,1
    - Dst: ncclGetEnv
      Src: /src/nccl/src/init.cc:808,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:810,1
    - Dst: ncclTopoGetSystem
      Src: /src/nccl/src/init.cc:810,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:814,1
    - Dst: ncclTopoGetSystem
      Src: /src/nccl/src/init.cc:814,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:816,1
    - Dst: ncclTopoComputePaths
      Src: /src/nccl/src/init.cc:816,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:818,1
    - Dst: ncclTopoTrimSystem
      Src: /src/nccl/src/init.cc:818,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:820,1
    - Dst: ncclTopoComputePaths
      Src: /src/nccl/src/init.cc:820,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:822,1
    - Dst: ncclTopoSearchInit
      Src: /src/nccl/src/init.cc:822,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:824,1
    - Dst: ncclTopoComputeCommCPU
      Src: /src/nccl/src/init.cc:824,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:826,1
    - Dst: ncclTopoPrint
      Src: /src/nccl/src/init.cc:826,1
    - Dst: clockNano
      Src: /src/nccl/src/init.cc:827,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:831,1
    - Dst: ncclTopoGetCpuAffinity
      Src: /src/nccl/src/init.cc:831,1
    - Dst: CPU_COUNT
      Src: /src/nccl/src/init.cc:832,1
    - Dst: sched_getaffinity
      Src: /src/nccl/src/init.cc:833,1
    - Dst: sched_setaffinity
      Src: /src/nccl/src/init.cc:834,1
    - Dst: collNetSupport
      Src: /src/nccl/src/init.cc:838,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:843,1
    - Dst: ncclNvlsInit
      Src: /src/nccl/src/init.cc:843,1
    - Dst: clockNano
      Src: /src/nccl/src/init.cc:845,1
    - Dst: memset
      Src: /src/nccl/src/init.cc:847,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:852,1
    - Dst: ncclTopoCompute
      Src: /src/nccl/src/init.cc:852,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:853,1
    - Dst: ncclTopoPrintGraph
      Src: /src/nccl/src/init.cc:853,1
    - Dst: memset
      Src: /src/nccl/src/init.cc:855,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:860,1
    - Dst: ncclTopoCompute
      Src: /src/nccl/src/init.cc:860,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:861,1
    - Dst: ncclTopoPrintGraph
      Src: /src/nccl/src/init.cc:861,1
    - Dst: memset
      Src: /src/nccl/src/init.cc:863,1
    - Dst: memset
      Src: /src/nccl/src/init.cc:870,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:877,1
    - Dst: ncclTopoCompute
      Src: /src/nccl/src/init.cc:877,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:878,1
    - Dst: ncclTopoPrintGraph
      Src: /src/nccl/src/init.cc:878,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:879,1
    - Dst: ncclTopoCompute
      Src: /src/nccl/src/init.cc:879,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:880,1
    - Dst: ncclTopoPrintGraph
      Src: /src/nccl/src/init.cc:880,1
    - Dst: memset
      Src: /src/nccl/src/init.cc:883,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:889,1
    - Dst: ncclTopoCompute
      Src: /src/nccl/src/init.cc:889,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:890,1
    - Dst: ncclTopoPrintGraph
      Src: /src/nccl/src/init.cc:890,1
    - Dst: clockNano
      Src: /src/nccl/src/init.cc:892,1
    - Dst: ncclParamAllocP2pNetLLBuffers
      Src: /src/nccl/src/init.cc:895,1
    - Dst: ncclParamGraphDumpFileRank
      Src: /src/nccl/src/init.cc:897,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:899,1
    - Dst: ncclTopoDumpGraphs
      Src: /src/nccl/src/init.cc:899,1
    - Dst: clockNano
      Src: /src/nccl/src/init.cc:904,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:906,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/init.cc:906,1
    - Dst: min
      Src: /src/nccl/src/init.cc:922,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:923,1
    - Dst: ncclTopoPreset
      Src: /src/nccl/src/init.cc:923,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:925,1
    - Dst: bootstrapAllGather
      Src: /src/nccl/src/init.cc:925,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:928,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/init.cc:928,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:929,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/init.cc:929,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:930,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/init.cc:930,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:957,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:960,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:965,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/init.cc:965,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:966,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/init.cc:966,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:974,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/init.cc:974,1
    - Dst: std::max
      Src: /src/nccl/src/init.cc:975,1
    - Dst: TRACE
      Src: /src/nccl/src/init.cc:988,1
    - Dst: WARN
      Src: /src/nccl/src/init.cc:991,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:998,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1002,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/init.cc:1002,1
    - Dst: min
      Src: /src/nccl/src/init.cc:1007,1
    - Dst: min
      Src: /src/nccl/src/init.cc:1008,1
    - Dst: min
      Src: /src/nccl/src/init.cc:1009,1
    - Dst: min
      Src: /src/nccl/src/init.cc:1010,1
    - Dst: std::max
      Src: /src/nccl/src/init.cc:1011,1
    - Dst: std::max
      Src: /src/nccl/src/init.cc:1012,1
    - Dst: std::max
      Src: /src/nccl/src/init.cc:1013,1
    - Dst: std::max
      Src: /src/nccl/src/init.cc:1015,1
    - Dst: min
      Src: /src/nccl/src/init.cc:1020,1
    - Dst: memcpy
      Src: /src/nccl/src/init.cc:1024,1
    - Dst: ncclParamCollNetNodeThreshold
      Src: /src/nccl/src/init.cc:1029,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:1031,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:1035,1
    - Dst: ncclTopoPathAllNVLink
      Src: /src/nccl/src/init.cc:1035,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1038,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/init.cc:1038,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1039,1
    - Dst: ncclTopoPostset
      Src: /src/nccl/src/init.cc:1039,1
    - Dst: clockNano
      Src: /src/nccl/src/init.cc:1041,1
    - Dst: TRACE
      Src: /src/nccl/src/init.cc:1043,1
    - Dst: snprintf
      Src: /src/nccl/src/init.cc:1049,1
    - Dst: strlen
      Src: /src/nccl/src/init.cc:1049,1
    - Dst: strlen
      Src: /src/nccl/src/init.cc:1049,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:1051,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:1054,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1056,1
    - Dst: computeBuffSizes
      Src: /src/nccl/src/init.cc:1056,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1059,1
    - Dst: ncclTopoComputeP2pChannels
      Src: /src/nccl/src/init.cc:1059,1
    - Dst: memcpy
      Src: /src/nccl/src/init.cc:1069,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1071,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/init.cc:1071,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:1079,1
    - Dst: ncclProfilerPluginInit
      Src: /src/nccl/src/init.cc:1079,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1081,1
    - Dst: ncclTransportCheckP2pType
      Src: /src/nccl/src/init.cc:1081,1
    - Dst: ncclAtomicRefCountIncrement
      Src: /src/nccl/src/init.cc:1085,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1087,1
    - Dst: ncclProxyCreate
      Src: /src/nccl/src/init.cc:1087,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1089,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/init.cc:1089,1
    - Dst: clockNano
      Src: /src/nccl/src/init.cc:1091,1
    - Dst: pow2Up
      Src: /src/nccl/src/init.cc:1108,1
    - Dst: pow2Up
      Src: /src/nccl/src/init.cc:1109,1
    - Dst: ncclMemoryStackAlloc
      Src: /src/nccl/src/init.cc:1110,1
    - Dst: ncclMemoryStackAlloc
      Src: /src/nccl/src/init.cc:1111,1
    - Dst: WARN
      Src: /src/nccl/src/init.cc:1142,1
    - Dst: ncclParamRuntimeConnect
      Src: /src/nccl/src/init.cc:1148,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1151,1
    - Dst: setupChannel
      Src: /src/nccl/src/init.cc:1151,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1154,1
    - Dst: ncclNvlsSetup
      Src: /src/nccl/src/init.cc:1154,1
    - Dst: ncclCollNetSetup
      Src: /src/nccl/src/init.cc:1156,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1159,1
    - Dst: setupChannel
      Src: /src/nccl/src/init.cc:1159,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1161,1
    - Dst: ncclTransportRingConnect
      Src: /src/nccl/src/init.cc:1161,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1164,1
    - Dst: ncclTransportTreeConnect
      Src: /src/nccl/src/init.cc:1164,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1167,1
    - Dst: ncclTransportPatConnect
      Src: /src/nccl/src/init.cc:1167,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1170,1
    - Dst: ncclNvlsSetup
      Src: /src/nccl/src/init.cc:1170,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1171,1
    - Dst: ncclNvlsBufferSetup
      Src: /src/nccl/src/init.cc:1171,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1174,1
    - Dst: ncclNvlsTreeConnect
      Src: /src/nccl/src/init.cc:1174,1
    - Dst: ncclCollNetSetup
      Src: /src/nccl/src/init.cc:1178,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1179,1
    - Dst: ncclCollNetChainBufferSetup
      Src: /src/nccl/src/init.cc:1179,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1181,1
    - Dst: ncclCollNetDirectBufferSetup
      Src: /src/nccl/src/init.cc:1181,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1186,1
    - Dst: ncclProxyConnect
      Src: /src/nccl/src/init.cc:1186,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1187,1
    - Dst: ncclProxyCallBlocking
      Src: /src/nccl/src/init.cc:1187,1
    - Dst: ncclPxnDisable
      Src: /src/nccl/src/init.cc:1190,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1192,1
    - Dst: ncclTopoGetPxnRanks
      Src: /src/nccl/src/init.cc:1192,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1194,1
    - Dst: ncclProxyConnect
      Src: /src/nccl/src/init.cc:1194,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1195,1
    - Dst: ncclProxyCallBlocking
      Src: /src/nccl/src/init.cc:1195,1
    - Dst: ncclParamNvbPreconnect
      Src: /src/nccl/src/init.cc:1199,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1202,1
    - Dst: ncclTopoGetNvbGpus
      Src: /src/nccl/src/init.cc:1202,1
    - Dst: ncclP2pChannelBaseForRound
      Src: /src/nccl/src/init.cc:1208,1
    - Dst: ncclP2pChannelBaseForRound
      Src: /src/nccl/src/init.cc:1209,1
    - Dst: ncclP2pChannelForPart
      Src: /src/nccl/src/init.cc:1212,1
    - Dst: ncclP2pChannelForPart
      Src: /src/nccl/src/init.cc:1216,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1223,1
    - Dst: ncclTransportP2pSetup
      Src: /src/nccl/src/init.cc:1223,1
    - Dst: TRACE
      Src: /src/nccl/src/init.cc:1227,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1230,1
    - Dst: ncclTopoTuneModel
      Src: /src/nccl/src/init.cc:1230,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:1232,1
    - Dst: ncclGetEnv
      Src: /src/nccl/src/init.cc:1235,1
    - Dst: strcasecmp
      Src: /src/nccl/src/init.cc:1237,1
    - Dst: __atomic_exchange_n
      Src: /src/nccl/src/init.cc:1244,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:1246,1
    - Dst: ncclParamWinEnable
      Src: /src/nccl/src/init.cc:1250,1
    - Dst: ncclCuMemEnable
      Src: /src/nccl/src/init.cc:1250,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1255,1
    - Dst: devCommSetup
      Src: /src/nccl/src/init.cc:1255,1
    - Dst: clockNano
      Src: /src/nccl/src/init.cc:1257,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1259,1
    - Dst: bootstrapIntraNodeBarrier
      Src: /src/nccl/src/init.cc:1259,1
    - Dst: TRACE
      Src: /src/nccl/src/init.cc:1263,1
    - Dst: CPU_COUNT
      Src: /src/nccl/src/init.cc:1266,1
    - Dst: sched_setaffinity
      Src: /src/nccl/src/init.cc:1266,1
    - Dst: ncclCuMemEnable
      Src: /src/nccl/src/init.cc:1270,1
    - Dst: ncclProxyShmUnlink
      Src: /src/nccl/src/init.cc:1270,1
    - Dst: free
      Src: /src/nccl/src/init.cc:1271,1
    - Dst: free
      Src: /src/nccl/src/init.cc:1272,1
    - Dst: free
      Src: /src/nccl/src/init.cc:1273,1
    - Dst: free
      Src: /src/nccl/src/init.cc:1274,1
    - Dst: free
      Src: /src/nccl/src/init.cc:1275,1
    - Dst: free
      Src: /src/nccl/src/init.cc:1276,1
    - Dst: free
      Src: /src/nccl/src/init.cc:1277,1
    CyclomaticComplexity: 113
    EdgeCount: 113
    ICount: 409
    argCount: 3
    argNames:
    - comm
    - parent
    - timers
    argTypes:
    - struct ncclComm*
    - struct ncclComm*
    - uint64_t[]
    assertStmts:
    - condition: '(intraProcRank==0 ? comm==comm0 : true)'
      pos:
        line_end: 794
        line_start: 794
        source_file: /src/nccl/src/init.cc
    constantsTouched: []
    func_position:
      end: 1281
      start: 673
    functionDepth: 3
    functionLinenumber: 673
    functionLinenumberEnd: 1281
    functionName: initTransportsRank
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached:
    - devCommSetup
    - ncclTransportRingConnect
    - ncclTransportTreeConnect
    - ncclTopoDumpGraphs
    - bootstrapAllGather
    - ncclTopoCompute
    - ncclParamWinEnable
    - collNetSupport
    - ncclTopoTrimSystem
    - ncclTransportP2pSetup
    - ncclParamCollNetNodeThreshold
    - ncclAtomicRefCountIncrement
    - ncclCuMemEnable
    - ncclTransportPatConnect
    - computeBuffSizes
    - ncclTopoPathAllNVLink
    - ncclCollNetChainBufferSetup
    - ncclProxyShmUnlink
    - ncclTopoPreset
    - ncclParamRuntimeConnect
    - ncclCollNetSetup
    - TRACE
    - ncclTopoSearchInit
    - CPU_COUNT
    - ncclP2pChannelForPart
    - ncclTopoTuneModel
    - assert
    - strcasecmp
    - memset
    - ncclProxyCreate
    - ncclParamMNNVLEnable
    - pow2Up
    - ncclNvlsInit
    - ncclParamAllocP2pNetLLBuffers
    - ncclParamNvbPreconnect
    - sched_setaffinity
    - bootstrapIntraNodeBarrier
    - ncclTopoGetNvbGpus
    - NCCLCHECKGOTO
    - ncclGetEnv
    - sched_getaffinity
    - ncclCalloc
    - ncclParamGraphDumpFileRank
    - ncclNvlsBufferSetup
    - ncclNvlsTreeConnect
    - __atomic_store_n
    - NCCLCHECK
    - clockNano
    - WARN
    - ncclTopoPostset
    - ncclTopoComputeP2pChannels
    - ncclTopoPrint
    - std::max
    - ncclTopoGetCpuAffinity
    - fillInfo
    - INFO
    - min
    - ncclProfilerPluginInit
    - ncclProxyConnect
    - ncclMemoryStackAlloc
    - ncclTopoComputeCommCPU
    - ncclTopoPrintGraph
    - strlen
    - setupChannel
    - free
    - ncclCollNetDirectBufferSetup
    - ncclGetUserP2pLevel
    - snprintf
    - ncclProxyCallBlocking
    - ncclTopoGetSystem
    - ncclTopoComputePaths
    - __atomic_exchange_n
    - ncclPxnDisable
    - ncclNvlsSetup
    - ncclP2pChannelBaseForRound
    - ncclMnnvlCheck
    - memcpy
    - ncclTopoGetPxnRanks
    - ncclTransportCheckP2pType
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t initTransportsRank(struct ncclComm* comm, struct ncclComm*
      parent, uint64_t timers[TIMERS_INIT_COUNT])
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1327,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/init.cc:1327,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1332,1
    - Dst: bootstrapAllGather
      Src: /src/nccl/src/init.cc:1332,1
    - Dst: memset
      Src: /src/nccl/src/init.cc:1337,1
    - Dst: free
      Src: /src/nccl/src/init.cc:1358,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 7
    argNames:
    - comm
    - parent
    - color
    - key
    - nRanksRet
    - myRankRet
    - parentRanksRet
    argTypes:
    - struct ncclComm*
    - struct ncclComm*
    - int
    - int
    - int*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1362
      start: 1322
    functionDepth: 1
    functionLinenumber: 1322
    functionLinenumberEnd: 1362
    functionName: commGetSplitInfo
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached:
    - NCCLCHECKGOTO
    - free
    - ncclCalloc
    - bootstrapAllGather
    - memset
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t commGetSplitInfo(struct ncclComm* comm, struct ncclComm*
      parent, int color, int key, int* nRanksRet, int* myRankRet, int* parentRanksRet)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 7
    argNames:
    - parentRanks
    - parentRank
    - excludeRanksList
    - excludeRanksCount
    - nRanksRet
    - myRankRet
    - parentRanksRet
    argTypes:
    - int
    - int
    - int*
    - int
    - int*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1377
      start: 1364
    functionDepth: 0
    functionLinenumber: 1364
    functionLinenumberEnd: 1377
    functionName: getParentRanks
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t getParentRanks(int parentRanks, int parentRank, int* excludeRanksList,
      int excludeRanksCount, int* nRanksRet, int* myRankRet, int* parentRanksRet)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: clockNano
      Src: /src/nccl/src/init.cc:1393,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/init.cc:1394,1
    - Dst: cudaSetDevice
      Src: /src/nccl/src/init.cc:1394,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/init.cc:1395,1
    - Dst: cudaDeviceGetAttribute
      Src: /src/nccl/src/init.cc:1395,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/init.cc:1396,1
    - Dst: cudaDeviceGetAttribute
      Src: /src/nccl/src/init.cc:1396,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/init.cc:1397,1
    - Dst: cudaDeviceGetAttribute
      Src: /src/nccl/src/init.cc:1397,1
    - Dst: clockNano
      Src: /src/nccl/src/init.cc:1400,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:1401,1
    - Dst: ncclInitKernelsForDevice
      Src: /src/nccl/src/init.cc:1401,1
    - Dst: ncclParamSetStackSize
      Src: /src/nccl/src/init.cc:1404,1
    - Dst: TRACE
      Src: /src/nccl/src/init.cc:1405,1
    - Dst: CUDACHECKIGNORE
      Src: /src/nccl/src/init.cc:1406,1
    - Dst: cudaDeviceSetLimit
      Src: /src/nccl/src/init.cc:1406,1
    - Dst: clockNano
      Src: /src/nccl/src/init.cc:1408,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1411,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/init.cc:1411,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1413,1
    - Dst: getParentRanks
      Src: /src/nccl/src/init.cc:1413,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1415,1
    - Dst: commGetSplitInfo
      Src: /src/nccl/src/init.cc:1415,1
    - Dst: clockNano
      Src: /src/nccl/src/init.cc:1419,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1420,1
    - Dst: commAlloc
      Src: /src/nccl/src/init.cc:1420,1
    - Dst: clockNano
      Src: /src/nccl/src/init.cc:1421,1
    - Dst: eatHash
      Src: /src/nccl/src/init.cc:1424,1
    - Dst: eatHash
      Src: /src/nccl/src/init.cc:1425,1
    - Dst: eatHash
      Src: /src/nccl/src/init.cc:1426,1
    - Dst: digestHash
      Src: /src/nccl/src/init.cc:1427,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:1428,1
    - Dst: clockNano
      Src: /src/nccl/src/init.cc:1430,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1431,1
    - Dst: bootstrapSplit
      Src: /src/nccl/src/init.cc:1431,1
    - Dst: clockNano
      Src: /src/nccl/src/init.cc:1432,1
    - Dst: clockNano
      Src: /src/nccl/src/init.cc:1436,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1437,1
    - Dst: commAlloc
      Src: /src/nccl/src/init.cc:1437,1
    - Dst: clockNano
      Src: /src/nccl/src/init.cc:1438,1
    - Dst: getHash
      Src: /src/nccl/src/init.cc:1440,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:1441,1
    - Dst: clockNano
      Src: /src/nccl/src/init.cc:1443,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1444,1
    - Dst: bootstrapInit
      Src: /src/nccl/src/init.cc:1444,1
    - Dst: clockNano
      Src: /src/nccl/src/init.cc:1445,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1449,1
    - Dst: initTransportsRank
      Src: /src/nccl/src/init.cc:1449,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1450,1
    - Dst: ncclTunerPluginLoad
      Src: /src/nccl/src/init.cc:1450,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:1452,1
    - Dst: ncclComm_t::tuner::init
      Src: /src/nccl/src/init.cc:1452,1
    - Dst: clockNano
      Src: /src/nccl/src/init.cc:1457,1
    - Dst: __atomic_store_n
      Src: /src/nccl/src/init.cc:1462,1
    - Dst: TRACE_CALL
      Src: /src/nccl/src/init.cc:1463,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:1464,1
    - Dst: TRACE_CALL
      Src: /src/nccl/src/init.cc:1468,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:1469,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:1475,1
    - Dst: __atomic_store_n
      Src: /src/nccl/src/init.cc:1485,1
    - Dst: free
      Src: /src/nccl/src/init.cc:1487,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 78
    argCount: 1
    argNames:
    - job_
    argTypes:
    - struct ncclAsyncJob*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1492
      start: 1379
    functionDepth: 4
    functionLinenumber: 1379
    functionLinenumberEnd: 1492
    functionName: ncclCommInitRankFunc
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached:
    - clockNano
    - initTransportsRank
    - digestHash
    - getParentRanks
    - INFO
    - TRACE
    - eatHash
    - getHash
    - ncclTunerPluginLoad
    - bootstrapInit
    - ncclComm_t::tuner::init
    - CUDACHECKGOTO
    - commGetSplitInfo
    - cudaDeviceGetAttribute
    - commAlloc
    - TRACE_CALL
    - cudaDeviceSetLimit
    - NCCLCHECKGOTO
    - ncclParamSetStackSize
    - ncclInitKernelsForDevice
    - free
    - cudaSetDevice
    - ncclCalloc
    - CUDACHECKIGNORE
    - bootstrapSplit
    - __atomic_store_n
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCommInitRankFunc(struct ncclAsyncJob* job_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - config
    - ','
    - field
    - ','
    - undef
    - ','
    - defvalue
    - ','
    - fieldStr
    - ','
    - format
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1500
      start: 1494
    functionDepth: 0
    functionLinenumber: 1494
    functionLinenumberEnd: 1500
    functionName: NCCL_CONFIG_DEFAULT
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NCCL_CONFIG_DEFAULT(config, field, undef, defvalue, fieldStr, format)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: ncclParamCommBlocking
      Src: /src/nccl/src/init.cc:1516,1
    - Dst: ncclParamCGAClusterSize
      Src: /src/nccl/src/init.cc:1520,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:1524,1
    - Dst: ncclParamMinCTAs
      Src: /src/nccl/src/init.cc:1528,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:1531,1
    - Dst: ncclParamMaxCTAs
      Src: /src/nccl/src/init.cc:1536,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:1539,1
    - Dst: ncclGetEnv
      Src: /src/nccl/src/init.cc:1544,1
    - Dst: strlen
      Src: /src/nccl/src/init.cc:1548,1
    - Dst: malloc
      Src: /src/nccl/src/init.cc:1549,1
    - Dst: memcpy
      Src: /src/nccl/src/init.cc:1550,1
    - Dst: ncclParamCommSplitShareResources
      Src: /src/nccl/src/init.cc:1555,1
    - Dst: ncclParamCommShrinkShareResources
      Src: /src/nccl/src/init.cc:1559,1
    - Dst: ncclGetEnv
      Src: /src/nccl/src/init.cc:1566,1
    - Dst: strtol
      Src: /src/nccl/src/init.cc:1568,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:1571,1
    - Dst: ncclParamCtaPolicy
      Src: /src/nccl/src/init.cc:1575,1
    - Dst: ncclParamNvlsChannels
      Src: /src/nccl/src/init.cc:1580,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:1587,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:1592,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:1597,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:1602,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:1607,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:1612,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:1617,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 85
    argCount: 1
    argNames:
    - comm
    argTypes:
    - ncclComm_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1621
      start: 1501
    functionDepth: 1
    functionLinenumber: 1501
    functionLinenumberEnd: 1621
    functionName: envConfigOverride
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached:
    - INFO
    - malloc
    - ncclParamNvlsChannels
    - strlen
    - memcpy
    - ncclGetEnv
    - strtol
    - ncclParamCGAClusterSize
    - ncclParamCtaPolicy
    - ncclParamMinCTAs
    - ncclParamCommBlocking
    - ncclParamCommShrinkShareResources
    - ncclParamMaxCTAs
    - ncclParamCommSplitShareResources
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t envConfigOverride(ncclComm_t comm)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nccl/src/init.cc:1624,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:1625,1
    - Dst: envConfigOverride
      Src: /src/nccl/src/init.cc:1625,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - childComm
    - parnet
    argTypes:
    - ncclComm_t
    - ncclComm_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1627
      start: 1623
    functionDepth: 2
    functionLinenumber: 1623
    functionLinenumberEnd: 1627
    functionName: copyCommConfig
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached:
    - envConfigOverride
    - memcpy
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t copyCommConfig(ncclComm_t childComm, ncclComm_t parnet)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nccl/src/init.cc:1640,1
    - Dst: memcpy
      Src: /src/nccl/src/init.cc:1642,1
    - Dst: WARN
      Src: /src/nccl/src/init.cc:1644,1
    - Dst: NCCL_VERSION
      Src: /src/nccl/src/init.cc:1650,1
    - Dst: NCCL_VERSION
      Src: /src/nccl/src/init.cc:1654,1
    - Dst: NCCL_VERSION
      Src: /src/nccl/src/init.cc:1661,1
    - Dst: NCCL_VERSION
      Src: /src/nccl/src/init.cc:1665,1
    - Dst: WARN
      Src: /src/nccl/src/init.cc:1675,1
    - Dst: WARN
      Src: /src/nccl/src/init.cc:1681,1
    - Dst: WARN
      Src: /src/nccl/src/init.cc:1691,1
    - Dst: WARN
      Src: /src/nccl/src/init.cc:1697,1
    - Dst: WARN
      Src: /src/nccl/src/init.cc:1703,1
    - Dst: WARN
      Src: /src/nccl/src/init.cc:1710,1
    - Dst: WARN
      Src: /src/nccl/src/init.cc:1716,1
    - Dst: WARN
      Src: /src/nccl/src/init.cc:1722,1
    - Dst: NCCL_CONFIG_DEFAULT
      Src: /src/nccl/src/init.cc:1728,1
    - Dst: NCCL_CONFIG_DEFAULT
      Src: /src/nccl/src/init.cc:1729,1
    - Dst: NCCL_CONFIG_DEFAULT
      Src: /src/nccl/src/init.cc:1730,1
    - Dst: NCCL_CONFIG_DEFAULT
      Src: /src/nccl/src/init.cc:1731,1
    - Dst: NCCL_CONFIG_DEFAULT
      Src: /src/nccl/src/init.cc:1732,1
    - Dst: NCCL_CONFIG_DEFAULT
      Src: /src/nccl/src/init.cc:1733,1
    - Dst: NCCL_CONFIG_DEFAULT
      Src: /src/nccl/src/init.cc:1734,1
    - Dst: NCCL_CONFIG_DEFAULT
      Src: /src/nccl/src/init.cc:1735,1
    - Dst: NCCL_CONFIG_DEFAULT
      Src: /src/nccl/src/init.cc:1736,1
    - Dst: NCCL_CONFIG_DEFAULT
      Src: /src/nccl/src/init.cc:1737,1
    - Dst: NCCL_CONFIG_DEFAULT
      Src: /src/nccl/src/init.cc:1738,1
    - Dst: NCCL_CONFIG_DEFAULT
      Src: /src/nccl/src/init.cc:1739,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1754,1
    - Dst: envConfigOverride
      Src: /src/nccl/src/init.cc:1754,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 112
    argCount: 2
    argNames:
    - comm
    - config
    argTypes:
    - ncclComm_t
    - ncclConfig_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1760
      start: 1629
    functionDepth: 2
    functionLinenumber: 1629
    functionLinenumberEnd: 1760
    functionName: parseCommConfig
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached:
    - WARN
    - NCCLCHECKGOTO
    - memcpy
    - envConfigOverride
    - NCCL_VERSION
    - NCCL_CONFIG_DEFAULT
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t parseCommConfig(ncclComm_t comm, ncclConfig_t *config)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/nccl/src/init.cc:1764,1
    - Dst: free
      Src: /src/nccl/src/init.cc:1765,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - _job
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1766
      start: 1762
    functionDepth: 0
    functionLinenumber: 1762
    functionLinenumberEnd: 1766
    functionName: ncclCommInitJobFree
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void ncclCommInitJobFree(void* _job)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/init.cc:1770,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1779,1
    - Dst: ncclInit
      Src: /src/nccl/src/init.cc:1779,1
    - Dst: pthread_once
      Src: /src/nccl/src/init.cc:1783,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/init.cc:1786,1
    - Dst: cudaFree
      Src: /src/nccl/src/init.cc:1786,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1788,1
    - Dst: PtrCheck
      Src: /src/nccl/src/init.cc:1788,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1789,1
    - Dst: PtrCheck
      Src: /src/nccl/src/init.cc:1789,1
    - Dst: WARN
      Src: /src/nccl/src/init.cc:1791,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1796,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/init.cc:1796,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1797,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/init.cc:1797,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1798,1
    - Dst: ncclCudaHostCalloc
      Src: /src/nccl/src/init.cc:1798,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1799,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/init.cc:1799,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1802,1
    - Dst: parseCommConfig
      Src: /src/nccl/src/init.cc:1802,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1807,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/init.cc:1807,1
    - Dst: snprintf
      Src: /src/nccl/src/init.cc:1813,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1818,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/init.cc:1818,1
    - Dst: memcpy
      Src: /src/nccl/src/init.cc:1819,1
    - Dst: ncclGetEnv
      Src: /src/nccl/src/init.cc:1821,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:1823,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:1825,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1829,1
    - Dst: bootstrapCreateRoot
      Src: /src/nccl/src/init.cc:1829,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1832,1
    - Dst: ncclAsyncLaunch
      Src: /src/nccl/src/init.cc:1832,1
    - Dst: ncclGroupErrCheck
      Src: /src/nccl/src/init.cc:1835,1
    - Dst: ncclCommInitJobFree
      Src: /src/nccl/src/init.cc:1837,1
    - Dst: free
      Src: /src/nccl/src/init.cc:1839,1
    - Dst: ncclCudaHostFree
      Src: /src/nccl/src/init.cc:1840,1
    - Dst: free
      Src: /src/nccl/src/init.cc:1841,1
    - Dst: free
      Src: /src/nccl/src/init.cc:1842,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 65
    argCount: 8
    argNames:
    - newcomm
    - nranks
    - nId
    - commId
    - myrank
    - cudaDev
    - config
    - funcName
    argTypes:
    - ncclComm_t*
    - int
    - int
    - ncclUniqueId*
    - int
    - int
    - ncclConfig_t*
    - char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1846
      start: 1768
    functionDepth: 3
    functionLinenumber: 1768
    functionLinenumberEnd: 1846
    functionName: ncclCommInitRankDev
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached:
    - WARN
    - ncclCommInitJobFree
    - INFO
    - ncclCudaHostCalloc
    - parseCommConfig
    - CUDACHECKGOTO
    - pthread_once
    - ncclInit
    - PtrCheck
    - cudaFree
    - NCCLCHECKGOTO
    - memcpy
    - free
    - ncclGetEnv
    - bootstrapCreateRoot
    - ncclAsyncLaunch
    - ncclGroupErrCheck
    - ncclCudaHostFree
    - ncclCalloc
    - snprintf
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCommInitRankDev(ncclComm_t* newcomm, int nranks, int
      nId, ncclUniqueId* commId, int myrank, int cudaDev, ncclConfig_t *config, const
      char funcName[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclCudaLibraryInit
      Src: /src/nccl/src/init.cc:1852,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/init.cc:1856,1
    - Dst: cudaGetDevice
      Src: /src/nccl/src/init.cc:1856,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:1858,1
    - Dst: ncclCommInitRankDev
      Src: /src/nccl/src/init.cc:1858,1
    - Dst: NVTX3_RANGE_ADD_PAYLOAD
      Src: /src/nccl/src/init.cc:1860,1
    - Dst: NVTX3_PAYLOAD
      Src: /src/nccl/src/init.cc:1861,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - newcomm
    - nranks
    - commId
    - myrank
    argTypes:
    - ncclComm_t*
    - int
    - ncclUniqueId
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1864
      start: 1849
    functionDepth: 4
    functionLinenumber: 1849
    functionLinenumberEnd: 1864
    functionName: ncclCommInitRank
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached:
    - CUDACHECK
    - ncclCudaLibraryInit
    - NCCLCHECK
    - cudaGetDevice
    - NVTX3_RANGE_ADD_PAYLOAD
    - ncclCommInitRankDev
    - NVTX3_PAYLOAD
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCommInitRank(ncclComm_t* newcomm, int nranks, ncclUniqueId
      commId, int myrank)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: NVTX3_RANGE
      Src: /src/nccl/src/init.cc:1874,1
    - Dst: ncclCudaLibraryInit
      Src: /src/nccl/src/init.cc:1877,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/init.cc:1879,1
    - Dst: cudaGetDevice
      Src: /src/nccl/src/init.cc:1879,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1880,1
    - Dst: PtrCheck
      Src: /src/nccl/src/init.cc:1880,1
    - Dst: WARN
      Src: /src/nccl/src/init.cc:1882,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/init.cc:1887,1
    - Dst: cudaGetDeviceCount
      Src: /src/nccl/src/init.cc:1887,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1889,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/init.cc:1889,1
    - Dst: WARN
      Src: /src/nccl/src/init.cc:1893,1
    - Dst: free
      Src: /src/nccl/src/init.cc:1906,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1911,1
    - Dst: ncclGetUniqueId
      Src: /src/nccl/src/init.cc:1911,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1912,1
    - Dst: ncclGroupStartInternal
      Src: /src/nccl/src/init.cc:1912,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/init.cc:1916,1
    - Dst: cudaSetDevice
      Src: /src/nccl/src/init.cc:1916,1
    - Dst: ncclCommInitRankDev
      Src: /src/nccl/src/init.cc:1917,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1919,1
    - Dst: ncclGroupEndInternal
      Src: /src/nccl/src/init.cc:1919,1
    - Dst: NVTX3_RANGE_ADD_PAYLOAD
      Src: /src/nccl/src/init.cc:1921,1
    - Dst: NVTX3_PAYLOAD
      Src: /src/nccl/src/init.cc:1922,1
    - Dst: cudaSetDevice
      Src: /src/nccl/src/init.cc:1925,1
    - Dst: free
      Src: /src/nccl/src/init.cc:1926,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 48
    argCount: 3
    argNames:
    - comms
    - ndev
    - devlist
    argTypes:
    - ncclComm_t*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1930
      start: 1867
    functionDepth: 4
    functionLinenumber: 1867
    functionLinenumberEnd: 1930
    functionName: ncclCommInitAll
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached:
    - WARN
    - NCCLCHECKGOTO
    - CUDACHECKGOTO
    - free
    - CUDACHECK
    - NVTX3_RANGE_ADD_PAYLOAD
    - ncclCudaLibraryInit
    - ncclGetUniqueId
    - ncclGroupEndInternal
    - cudaSetDevice
    - NVTX3_RANGE
    - PtrCheck
    - ncclCalloc
    - cudaGetDevice
    - ncclGroupStartInternal
    - cudaGetDeviceCount
    - ncclCommInitRankDev
    - NVTX3_PAYLOAD
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCommInitAll(ncclComm_t* comms, int ndev, const int*
      devlist)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/init.cc:1934,1
    - Dst: __atomic_store_n
      Src: /src/nccl/src/init.cc:1938,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - comm
    - nextState
    argTypes:
    - ncclComm_t
    - ncclResult_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1940
      start: 1932
    functionDepth: 1
    functionLinenumber: 1932
    functionLinenumberEnd: 1940
    functionName: ncclCommSetAsyncError
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached:
    - WARN
    - __atomic_store_n
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCommSetAsyncError(ncclComm_t comm, ncclResult_t nextState)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: NVTX3_RANGE
      Src: /src/nccl/src/init.cc:1949,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:1951,1
    - Dst: ncclGroupStartInternal
      Src: /src/nccl/src/init.cc:1951,1
    - Dst: ncclCudaLibraryInit
      Src: /src/nccl/src/init.cc:1953,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/init.cc:1954,1
    - Dst: cudaGetDevice
      Src: /src/nccl/src/init.cc:1954,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1960,1
    - Dst: ncclCommInitRankDev
      Src: /src/nccl/src/init.cc:1960,1
    - Dst: ncclGroupErrCheck
      Src: /src/nccl/src/init.cc:1963,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:1964,1
    - Dst: ncclGroupEndInternal
      Src: /src/nccl/src/init.cc:1964,1
    - Dst: ncclCommGetAsyncError
      Src: /src/nccl/src/init.cc:1967,1
    - Dst: NVTX3_RANGE_ADD_PAYLOAD
      Src: /src/nccl/src/init.cc:1969,1
    - Dst: NVTX3_PAYLOAD
      Src: /src/nccl/src/init.cc:1970,1
    - Dst: ncclCommSetAsyncError
      Src: /src/nccl/src/init.cc:1974,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 5
    argNames:
    - newcomm
    - nranks
    - commId
    - myrank
    - config
    argTypes:
    - ncclComm_t*
    - int
    - ncclUniqueId
    - int
    - ncclConfig_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1976
      start: 1943
    functionDepth: 4
    functionLinenumber: 1943
    functionLinenumberEnd: 1976
    functionName: ncclCommInitRankConfig
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached:
    - NCCLCHECKGOTO
    - CUDACHECK
    - ncclCudaLibraryInit
    - ncclCommInitRankDev
    - ncclGroupEndInternal
    - ncclCommGetAsyncError
    - NVTX3_RANGE
    - ncclGroupErrCheck
    - cudaGetDevice
    - ncclGroupStartInternal
    - ncclCommSetAsyncError
    - NVTX3_RANGE_ADD_PAYLOAD
    - NCCLCHECK
    - NVTX3_PAYLOAD
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCommInitRankConfig(ncclComm_t *newcomm, int nranks,
      ncclUniqueId commId, int myrank, ncclConfig_t *config)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: NVTX3_RANGE
      Src: /src/nccl/src/init.cc:1980,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:1986,1
    - Dst: ncclGroupStartInternal
      Src: /src/nccl/src/init.cc:1986,1
    - Dst: ncclCudaLibraryInit
      Src: /src/nccl/src/init.cc:1988,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/init.cc:1989,1
    - Dst: cudaGetDevice
      Src: /src/nccl/src/init.cc:1989,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:1995,1
    - Dst: ncclCommInitRankDev
      Src: /src/nccl/src/init.cc:1995,1
    - Dst: ncclGroupErrCheck
      Src: /src/nccl/src/init.cc:1998,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:1999,1
    - Dst: ncclGroupEndInternal
      Src: /src/nccl/src/init.cc:1999,1
    - Dst: ncclCommGetAsyncError
      Src: /src/nccl/src/init.cc:2002,1
    - Dst: NVTX3_RANGE_ADD_PAYLOAD
      Src: /src/nccl/src/init.cc:2004,1
    - Dst: NVTX3_PAYLOAD
      Src: /src/nccl/src/init.cc:2005,1
    - Dst: ncclCommSetAsyncError
      Src: /src/nccl/src/init.cc:2009,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 6
    argNames:
    - newcomm
    - nranks
    - myrank
    - nId
    - commId
    - config
    argTypes:
    - ncclComm_t*
    - int
    - int
    - int
    - ncclUniqueId*
    - ncclConfig_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2011
      start: 1979
    functionDepth: 4
    functionLinenumber: 1979
    functionLinenumberEnd: 2011
    functionName: ncclCommInitRankScalable
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached:
    - NCCLCHECKGOTO
    - CUDACHECK
    - ncclCudaLibraryInit
    - ncclCommInitRankDev
    - ncclGroupEndInternal
    - ncclCommGetAsyncError
    - NVTX3_RANGE
    - ncclGroupErrCheck
    - cudaGetDevice
    - ncclGroupStartInternal
    - ncclCommSetAsyncError
    - NVTX3_RANGE_ADD_PAYLOAD
    - NCCLCHECK
    - NVTX3_PAYLOAD
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCommInitRankScalable(ncclComm_t* newcomm, int nranks,
      int myrank, int nId, ncclUniqueId* commId, ncclConfig_t* config)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/init.cc:2018,1
    - Dst: cudaSetDevice
      Src: /src/nccl/src/init.cc:2018,1
    - Dst: TRACE
      Src: /src/nccl/src/init.cc:2020,1
    - Dst: ncclStrongStreamSynchronize
      Src: /src/nccl/src/init.cc:2023,1
    - Dst: WARN
      Src: /src/nccl/src/init.cc:2024,1
    - Dst: ncclStrongStreamSynchronize
      Src: /src/nccl/src/init.cc:2026,1
    - Dst: WARN
      Src: /src/nccl/src/init.cc:2027,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:2030,1
    - Dst: ncclCommPollEventCallbacks
      Src: /src/nccl/src/init.cc:2030,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:2031,1
    - Dst: ncclCommPollCallbacks
      Src: /src/nccl/src/init.cc:2031,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:2034,1
    - Dst: ncclCommPollCallbacks
      Src: /src/nccl/src/init.cc:2034,1
    - Dst: ncclIntruQueueEmpty
      Src: /src/nccl/src/init.cc:2036,1
    - Dst: ncclIntruQueueDequeue
      Src: /src/nccl/src/init.cc:2037,1
    - Dst: struct ncclCommCallback*::fn
      Src: /src/nccl/src/init.cc:2038,1
    - Dst: WARN
      Src: /src/nccl/src/init.cc:2039,1
    - Dst: ncclProxyStop
      Src: /src/nccl/src/init.cc:2044,1
    - Dst: WARN
      Src: /src/nccl/src/init.cc:2045,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 1
    argNames:
    - job_
    argTypes:
    - struct ncclAsyncJob*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2052
      start: 2013
    functionDepth: 1
    functionLinenumber: 2013
    functionLinenumberEnd: 2052
    functionName: commDestroySync
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached:
    - WARN
    - TRACE
    - NCCLCHECKGOTO
    - CUDACHECKGOTO
    - ncclProxyStop
    - ncclStrongStreamSynchronize
    - ncclCommPollEventCallbacks
    - cudaSetDevice
    - ncclIntruQueueEmpty
    - ncclIntruQueueDequeue
    - ncclCommPollCallbacks
    - struct ncclCommCallback*::fn
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t commDestroySync(struct ncclAsyncJob* job_)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CUDACHECK
      Src: /src/nccl/src/init.cc:2055,1
    - Dst: cudaSetDevice
      Src: /src/nccl/src/init.cc:2055,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:2057,1
    - Dst: ncclComm_t::tuner::destroy
      Src: /src/nccl/src/init.cc:2057,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:2058,1
    - Dst: ncclTunerPluginUnload
      Src: /src/nccl/src/init.cc:2058,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:2060,1
    - Dst: commFree
      Src: /src/nccl/src/init.cc:2060,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - comm
    argTypes:
    - ncclComm_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2062
      start: 2054
    functionDepth: 2
    functionLinenumber: 2054
    functionLinenumberEnd: 2062
    functionName: commCleanup
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached:
    - CUDACHECK
    - commFree
    - cudaSetDevice
    - ncclTunerPluginUnload
    - ncclComm_t::tuner::destroy
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t commCleanup(ncclComm_t comm)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: NVTX3_RANGE
      Src: /src/nccl/src/init.cc:2066,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:2071,1
    - Dst: ncclGroupStartInternal
      Src: /src/nccl/src/init.cc:2071,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:2075,1
    - Dst: ncclCommEnsureReady
      Src: /src/nccl/src/init.cc:2075,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:2085,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/init.cc:2085,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:2087,1
    - Dst: ncclAsyncLaunch
      Src: /src/nccl/src/init.cc:2087,1
    - Dst: ncclGroupErrCheck
      Src: /src/nccl/src/init.cc:2090,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:2091,1
    - Dst: ncclGroupEndInternal
      Src: /src/nccl/src/init.cc:2091,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:2094,1
    - Dst: ncclCommGetAsyncError
      Src: /src/nccl/src/init.cc:2094,1
    - Dst: NVTX3_RANGE_ADD_PAYLOAD
      Src: /src/nccl/src/init.cc:2096,1
    - Dst: NVTX3_PAYLOAD
      Src: /src/nccl/src/init.cc:2097,1
    - Dst: ncclCommSetAsyncError
      Src: /src/nccl/src/init.cc:2101,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 33
    argCount: 1
    argNames:
    - comm
    argTypes:
    - ncclComm_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2103
      start: 2065
    functionDepth: 2
    functionLinenumber: 2065
    functionLinenumberEnd: 2103
    functionName: ncclCommFinalize
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached:
    - NCCLCHECKGOTO
    - ncclCommEnsureReady
    - ncclGroupEndInternal
    - ncclCommGetAsyncError
    - ncclAsyncLaunch
    - NVTX3_RANGE
    - ncclGroupErrCheck
    - ncclCalloc
    - ncclGroupStartInternal
    - ncclCommSetAsyncError
    - NVTX3_RANGE_ADD_PAYLOAD
    - NCCLCHECK
    - NVTX3_PAYLOAD
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCommFinalize(ncclComm_t comm)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/src/init.cc:2117,1
    - Dst: __atomic_add_fetch
      Src: /src/nccl/src/init.cc:2118,1
    - Dst: commDestroySync
      Src: /src/nccl/src/init.cc:2134,1
    - Dst: WARN
      Src: /src/nccl/src/init.cc:2135,1
    - Dst: commCleanup
      Src: /src/nccl/src/init.cc:2146,1
    - Dst: WARN
      Src: /src/nccl/src/init.cc:2149,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 1
    argNames:
    - job_
    argTypes:
    - struct ncclAsyncJob*
    assertStmts:
    - condition: (intracomm0 != NULL && finalizeRankCnt != NULL)
      pos:
        line_end: 2116
        line_start: 2116
        source_file: /src/nccl/src/init.cc
    constantsTouched: []
    func_position:
      end: 2156
      start: 2105
    functionDepth: 3
    functionLinenumber: 2105
    functionLinenumberEnd: 2156
    functionName: commReclaim
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached:
    - WARN
    - commDestroySync
    - commCleanup
    - assert
    - __atomic_add_fetch
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t commReclaim(struct ncclAsyncJob* job_)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NVTX3_FUNC_RANGE_IN
      Src: /src/nccl/src/init.cc:2161,1
    - Dst: NVTX3_FUNC_WITH_PARAMS
      Src: /src/nccl/src/init.cc:2169,1
    - Dst: NVTX3_PAYLOAD
      Src: /src/nccl/src/init.cc:2170,1
    - Dst: TRACE
      Src: /src/nccl/src/init.cc:2172,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:2173,1
    - Dst: ncclGroupStartInternal
      Src: /src/nccl/src/init.cc:2173,1
    - Dst: WARN
      Src: /src/nccl/src/init.cc:2176,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:2182,1
    - Dst: ncclCommEnsureReady
      Src: /src/nccl/src/init.cc:2182,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:2183,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/init.cc:2183,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:2185,1
    - Dst: ncclAsyncLaunch
      Src: /src/nccl/src/init.cc:2185,1
    - Dst: ncclGroupErrCheck
      Src: /src/nccl/src/init.cc:2188,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:2189,1
    - Dst: ncclGroupEndInternal
      Src: /src/nccl/src/init.cc:2189,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 1
    argNames:
    - comm
    argTypes:
    - ncclComm_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2193
      start: 2159
    functionDepth: 2
    functionLinenumber: 2159
    functionLinenumberEnd: 2193
    functionName: ncclCommDestroy
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached:
    - WARN
    - TRACE
    - NCCLCHECKGOTO
    - NVTX3_FUNC_WITH_PARAMS
    - ncclCommEnsureReady
    - ncclGroupEndInternal
    - ncclAsyncLaunch
    - ncclGroupErrCheck
    - ncclCalloc
    - ncclGroupStartInternal
    - NVTX3_FUNC_RANGE_IN
    - NCCLCHECK
    - NVTX3_PAYLOAD
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCommDestroy(ncclComm_t comm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_store_n
      Src: /src/nccl/src/init.cc:2198,1
    - Dst: __atomic_store_n
      Src: /src/nccl/src/init.cc:2199,1
    - Dst: __atomic_store_n
      Src: /src/nccl/src/init.cc:2201,1
    - Dst: __atomic_store_n
      Src: /src/nccl/src/init.cc:2202,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - comm
    - value
    argTypes:
    - ncclComm_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2204
      start: 2195
    functionDepth: 0
    functionLinenumber: 2195
    functionLinenumberEnd: 2204
    functionName: setCommAbortFlags
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached:
    - __atomic_store_n
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t setCommAbortFlags(ncclComm_t comm, int value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NVTX3_RANGE
      Src: /src/nccl/src/init.cc:2208,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:2213,1
    - Dst: ncclGroupStartInternal
      Src: /src/nccl/src/init.cc:2213,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:2215,1
    - Dst: setCommAbortFlags
      Src: /src/nccl/src/init.cc:2215,1
    - Dst: ncclCommEnsureReady
      Src: /src/nccl/src/init.cc:2219,1
    - Dst: NVTX3_RANGE_ADD_PAYLOAD
      Src: /src/nccl/src/init.cc:2226,1
    - Dst: NVTX3_PAYLOAD
      Src: /src/nccl/src/init.cc:2227,1
    - Dst: TRACE
      Src: /src/nccl/src/init.cc:2229,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:2231,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/init.cc:2231,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:2233,1
    - Dst: ncclAsyncLaunch
      Src: /src/nccl/src/init.cc:2233,1
    - Dst: ncclGroupErrCheck
      Src: /src/nccl/src/init.cc:2236,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:2237,1
    - Dst: ncclGroupEndInternal
      Src: /src/nccl/src/init.cc:2237,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 1
    argNames:
    - comm
    argTypes:
    - ncclComm_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2241
      start: 2207
    functionDepth: 2
    functionLinenumber: 2207
    functionLinenumberEnd: 2241
    functionName: ncclCommAbort
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached:
    - TRACE
    - NCCLCHECKGOTO
    - ncclCommEnsureReady
    - NVTX3_RANGE_ADD_PAYLOAD
    - ncclGroupEndInternal
    - ncclAsyncLaunch
    - NVTX3_RANGE
    - ncclGroupErrCheck
    - ncclCalloc
    - ncclGroupStartInternal
    - setCommAbortFlags
    - NCCLCHECK
    - NVTX3_PAYLOAD
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCommAbort(ncclComm_t comm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/nccl/src/init.cc:2245,1
    - Dst: free
      Src: /src/nccl/src/init.cc:2246,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - job
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2247
      start: 2243
    functionDepth: 0
    functionLinenumber: 2243
    functionLinenumberEnd: 2247
    functionName: childCommCleanupJob
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void childCommCleanupJob(void* job)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: CUDACHECK
      Src: /src/nccl/src/init.cc:2257,1
    - Dst: cudaGetDevice
      Src: /src/nccl/src/init.cc:2257,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:2258,1
    - Dst: CommCheck
      Src: /src/nccl/src/init.cc:2258,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:2259,1
    - Dst: PtrCheck
      Src: /src/nccl/src/init.cc:2259,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:2261,1
    - Dst: PtrCheck
      Src: /src/nccl/src/init.cc:2261,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:2262,1
    - Dst: qsort
      Src: /src/nccl/src/init.cc:2264,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:2266,1
    - Dst: bsearch
      Src: /src/nccl/src/init.cc:2266,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:2268,1
    - Dst: ncclCommEnsureReady
      Src: /src/nccl/src/init.cc:2268,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/init.cc:2269,1
    - Dst: cudaSetDevice
      Src: /src/nccl/src/init.cc:2269,1
    - Dst: INFO
      Src: /src/nccl/src/init.cc:2274,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:2276,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/init.cc:2276,1
    - Dst: ncclAtomicRefCountIncrement
      Src: /src/nccl/src/init.cc:2287,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:2289,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/init.cc:2289,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:2290,1
    - Dst: ncclCudaHostCalloc
      Src: /src/nccl/src/init.cc:2290,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:2291,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/init.cc:2291,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:2298,1
    - Dst: copyCommConfig
      Src: /src/nccl/src/init.cc:2298,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:2300,1
    - Dst: parseCommConfig
      Src: /src/nccl/src/init.cc:2300,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:2307,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/init.cc:2307,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:2316,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/init.cc:2316,1
    - Dst: memcpy
      Src: /src/nccl/src/init.cc:2317,1
    - Dst: snprintf
      Src: /src/nccl/src/init.cc:2324,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:2325,1
    - Dst: ncclAsyncLaunch
      Src: /src/nccl/src/init.cc:2325,1
    - Dst: cudaSetDevice
      Src: /src/nccl/src/init.cc:2328,1
    - Dst: free
      Src: /src/nccl/src/init.cc:2333,1
    - Dst: ncclCudaHostFree
      Src: /src/nccl/src/init.cc:2334,1
    - Dst: free
      Src: /src/nccl/src/init.cc:2335,1
    - Dst: free
      Src: /src/nccl/src/init.cc:2337,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 78
    argCount: 10
    argNames:
    - comm
    - newcomm
    - isShrink
    - flags
    - color
    - key
    - excludeRanksList
    - excludeRanksCount
    - config
    - caller
    argTypes:
    - ncclComm_t
    - ncclComm_t*
    - bool
    - int
    - int
    - int
    - int*
    - int
    - ncclConfig_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2341
      start: 2250
    functionDepth: 3
    functionLinenumber: 2250
    functionLinenumberEnd: 2341
    functionName: ncclCommInitChildComm
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached:
    - copyCommConfig
    - INFO
    - cudaGetDevice
    - ncclCudaHostCalloc
    - parseCommConfig
    - ncclAtomicRefCountIncrement
    - CUDACHECKGOTO
    - CUDACHECK
    - qsort
    - CommCheck
    - PtrCheck
    - bsearch
    - NCCLCHECKGOTO
    - memcpy
    - ncclCommEnsureReady
    - free
    - ncclAsyncLaunch
    - cudaSetDevice
    - ncclCudaHostFree
    - ncclCalloc
    - snprintf
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclCommInitChildComm(ncclComm_t comm, ncclComm_t* newcomm,
      bool isShrink, int flags, int color, int key, int* excludeRanksList, int excludeRanksCount,\n
      \                                         ncclConfig_t* config, const char*
      caller)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NVTX3_RANGE
      Src: /src/nccl/src/init.cc:2345,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:2347,1
    - Dst: ncclGroupStartInternal
      Src: /src/nccl/src/init.cc:2347,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:2350,1
    - Dst: setCommAbortFlags
      Src: /src/nccl/src/init.cc:2350,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:2351,1
    - Dst: ncclStrongStreamSynchronize
      Src: /src/nccl/src/init.cc:2351,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:2352,1
    - Dst: setCommAbortFlags
      Src: /src/nccl/src/init.cc:2352,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:2354,1
    - Dst: ncclCommInitChildComm
      Src: /src/nccl/src/init.cc:2354,1
    - Dst: NVTX3_RANGE_ADD_PAYLOAD
      Src: /src/nccl/src/init.cc:2356,1
    - Dst: NVTX3_PAYLOAD
      Src: /src/nccl/src/init.cc:2356,1
    - Dst: ncclGroupErrCheck
      Src: /src/nccl/src/init.cc:2359,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:2360,1
    - Dst: ncclGroupEndInternal
      Src: /src/nccl/src/init.cc:2360,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 6
    argNames:
    - comm
    - excludeRanksList
    - excludeRanksCount
    - newcomm
    - config
    - shrinkFlags
    argTypes:
    - ncclComm_t
    - int*
    - int
    - ncclComm_t*
    - ncclConfig_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2362
      start: 2344
    functionDepth: 4
    functionLinenumber: 2344
    functionLinenumberEnd: 2362
    functionName: ncclCommShrink
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached:
    - NCCLCHECKGOTO
    - ncclCommInitChildComm
    - ncclStrongStreamSynchronize
    - NVTX3_RANGE_ADD_PAYLOAD
    - ncclGroupEndInternal
    - NVTX3_RANGE
    - ncclGroupErrCheck
    - ncclGroupStartInternal
    - setCommAbortFlags
    - NCCLCHECK
    - NVTX3_PAYLOAD
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCommShrink(ncclComm_t comm, int* excludeRanksList,
      int excludeRanksCount, ncclComm_t *newcomm, ncclConfig_t* config, int shrinkFlags)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NVTX3_RANGE
      Src: /src/nccl/src/init.cc:2366,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:2369,1
    - Dst: ncclGroupStartInternal
      Src: /src/nccl/src/init.cc:2369,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/init.cc:2370,1
    - Dst: ncclCommInitChildComm
      Src: /src/nccl/src/init.cc:2370,1
    - Dst: NVTX3_RANGE_ADD_PAYLOAD
      Src: /src/nccl/src/init.cc:2373,1
    - Dst: NVTX3_PAYLOAD
      Src: /src/nccl/src/init.cc:2373,1
    - Dst: ncclGroupErrCheck
      Src: /src/nccl/src/init.cc:2376,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:2377,1
    - Dst: ncclGroupEndInternal
      Src: /src/nccl/src/init.cc:2377,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 5
    argNames:
    - comm
    - color
    - key
    - newcomm
    - config
    argTypes:
    - ncclComm_t
    - int
    - int
    - ncclComm_t*
    - ncclConfig_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2379
      start: 2365
    functionDepth: 4
    functionLinenumber: 2365
    functionLinenumberEnd: 2379
    functionName: ncclCommSplit
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached:
    - NCCLCHECKGOTO
    - ncclCommInitChildComm
    - ncclGroupEndInternal
    - NVTX3_RANGE
    - ncclGroupErrCheck
    - ncclGroupStartInternal
    - NVTX3_RANGE_ADD_PAYLOAD
    - NCCLCHECK
    - NVTX3_PAYLOAD
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCommSplit(ncclComm_t comm, int color, int key, ncclComm_t
      *newcomm, ncclConfig_t *config)
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 1
    argNames:
    - code
    argTypes:
    - ncclResult_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2394
      start: 2382
    functionDepth: 0
    functionLinenumber: 2382
    functionLinenumberEnd: 2394
    functionName: ncclGetErrorString
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * ncclGetErrorString(ncclResult_t code)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - comm
    argTypes:
    - ncclComm_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2402
      start: 2400
    functionDepth: 0
    functionLinenumber: 2400
    functionLinenumberEnd: 2402
    functionName: ncclGetLastError
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * ncclGetLastError(ncclComm_t comm)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:2406,1
    - Dst: CommCheck
      Src: /src/nccl/src/init.cc:2406,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:2407,1
    - Dst: PtrCheck
      Src: /src/nccl/src/init.cc:2407,1
    - Dst: __atomic_load_n
      Src: /src/nccl/src/init.cc:2409,1
    - Dst: __atomic_load_n
      Src: /src/nccl/src/init.cc:2410,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:2413,1
    - Dst: ncclGroupJobComplete
      Src: /src/nccl/src/init.cc:2413,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - comm
    - asyncError
    argTypes:
    - ncclComm_t
    - ncclResult_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2417
      start: 2405
    functionDepth: 1
    functionLinenumber: 2405
    functionLinenumberEnd: 2417
    functionName: ncclCommGetAsyncError
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 4
    functionsReached:
    - __atomic_load_n
    - NCCLCHECK
    - CommCheck
    - PtrCheck
    - ncclGroupJobComplete
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCommGetAsyncError(ncclComm_t comm, ncclResult_t *asyncError)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NVTX3_FUNC_RANGE_IN
      Src: /src/nccl/src/init.cc:2421,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:2423,1
    - Dst: CommCheck
      Src: /src/nccl/src/init.cc:2423,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:2424,1
    - Dst: PtrCheck
      Src: /src/nccl/src/init.cc:2424,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:2427,1
    - Dst: ncclCommEnsureReady
      Src: /src/nccl/src/init.cc:2427,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - comm
    - count
    argTypes:
    - ncclComm_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2431
      start: 2420
    functionDepth: 2
    functionLinenumber: 2420
    functionLinenumberEnd: 2431
    functionName: ncclCommCount
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached:
    - ncclCommEnsureReady
    - CommCheck
    - PtrCheck
    - NVTX3_FUNC_RANGE_IN
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCommCount(const ncclComm_t comm, int* count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NVTX3_FUNC_RANGE_IN
      Src: /src/nccl/src/init.cc:2435,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:2437,1
    - Dst: CommCheck
      Src: /src/nccl/src/init.cc:2437,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:2438,1
    - Dst: PtrCheck
      Src: /src/nccl/src/init.cc:2438,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:2440,1
    - Dst: ncclCommEnsureReady
      Src: /src/nccl/src/init.cc:2440,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - comm
    - devid
    argTypes:
    - ncclComm_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2444
      start: 2434
    functionDepth: 2
    functionLinenumber: 2434
    functionLinenumberEnd: 2444
    functionName: ncclCommCuDevice
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached:
    - ncclCommEnsureReady
    - CommCheck
    - PtrCheck
    - NVTX3_FUNC_RANGE_IN
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCommCuDevice(const ncclComm_t comm, int* devid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NVTX3_FUNC_RANGE_IN
      Src: /src/nccl/src/init.cc:2448,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:2450,1
    - Dst: CommCheck
      Src: /src/nccl/src/init.cc:2450,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:2451,1
    - Dst: PtrCheck
      Src: /src/nccl/src/init.cc:2451,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/init.cc:2453,1
    - Dst: ncclCommEnsureReady
      Src: /src/nccl/src/init.cc:2453,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - comm
    - rank
    argTypes:
    - ncclComm_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2457
      start: 2447
    functionDepth: 2
    functionLinenumber: 2447
    functionLinenumberEnd: 2457
    functionName: ncclCommUserRank
    functionSourceFile: /src/nccl/src/init.cc
    functionUses: 0
    functionsReached:
    - ncclCommEnsureReady
    - CommCheck
    - PtrCheck
    - NVTX3_FUNC_RANGE_IN
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCommUserRank(const ncclComm_t comm, int* rank)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: func
      Src: /src/nccl/src/group.cc:35,1
    - Dst: undo
      Src: /src/nccl/src/group.cc:36,1
    - Dst: destructor
      Src: /src/nccl/src/group.cc:37,1
    - Dst: WARN
      Src: /src/nccl/src/group.cc:55,1
    - Dst: ncclIntruQueueEnqueue
      Src: /src/nccl/src/group.cc:59,1
    - Dst: destructor
      Src: /src/nccl/src/group.cc:62,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 36
    argCount: 2
    argNames:
    - job
    - comm
    argTypes:
    - struct ncclAsyncJob*
    - ncclComm_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 67
    functionName: ncclAsyncLaunch
    functionSourceFile: /src/nccl/src/group.cc
    functionUses: 5
    functionsReached:
    - WARN
    - func
    - destructor
    - ncclIntruQueueEnqueue
    - undo
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclAsyncLaunch(\n    struct ncclAsyncJob* job,\n    ncclResult_t(*func)(struct
      ncclAsyncJob*),\n    void(*undo)(struct ncclAsyncJob*),\n    void(*destructor)(void*),
      ncclComm_t comm\n  )"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct ncclAsyncJob*::func
      Src: /src/nccl/src/group.cc:71,1
    - Dst: INFO
      Src: /src/nccl/src/group.cc:73,1
    - Dst: __atomic_store_n
      Src: /src/nccl/src/group.cc:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - arg
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 77
    functionName: ncclAsyncJobMain
    functionSourceFile: /src/nccl/src/group.cc
    functionUses: 0
    functionsReached:
    - INFO
    - struct ncclAsyncJob*::func
    - __atomic_store_n
    linkageType: ''
    returnType: void
    signature: void * ncclAsyncJobMain(void* arg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: PTHREADCHECK
      Src: /src/nccl/src/group.cc:81,1
    - Dst: pthread_join
      Src: /src/nccl/src/group.cc:81,1
    - Dst: WARN
      Src: /src/nccl/src/group.cc:83,1
    - Dst: struct ncclAsyncJob*::destructor
      Src: /src/nccl/src/group.cc:86,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - job
    argTypes:
    - struct ncclAsyncJob*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 88
    functionName: ncclAsyncJobComplete
    functionSourceFile: /src/nccl/src/group.cc
    functionUses: 0
    functionsReached:
    - pthread_join
    - WARN
    - PTHREADCHECK
    - struct ncclAsyncJob*::destructor
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclAsyncJobComplete(struct ncclAsyncJob* job)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NVTX3_FUNC_RANGE_IN
      Src: /src/nccl/src/group.cc:93,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/group.cc:95,1
    - Dst: ncclGroupStartInternal
      Src: /src/nccl/src/group.cc:95,1
    - Dst: TRACE_CALL
      Src: /src/nccl/src/group.cc:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 98
    functionName: ncclGroupStart
    functionSourceFile: /src/nccl/src/group.cc
    functionUses: 0
    functionsReached:
    - ncclGroupStartInternal
    - TRACE_CALL
    - NVTX3_FUNC_RANGE_IN
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGroupStart()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NVTX3_FUNC_RANGE_IN
      Src: /src/nccl/src/group.cc:103,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/group.cc:104,1
    - Dst: ncclGroupEndInternal
      Src: /src/nccl/src/group.cc:104,1
    - Dst: TRACE_CALL
      Src: /src/nccl/src/group.cc:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 108
    functionName: ncclGroupEnd
    functionSourceFile: /src/nccl/src/group.cc
    functionUses: 0
    functionsReached:
    - TRACE_CALL
    - ncclGroupEndInternal
    - NCCLCHECKGOTO
    - NVTX3_FUNC_RANGE_IN
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGroupEnd()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NVTX3_FUNC_RANGE_IN
      Src: /src/nccl/src/group.cc:113,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/group.cc:114,1
    - Dst: ncclGroupEndInternal
      Src: /src/nccl/src/group.cc:114,1
    - Dst: TRACE_CALL
      Src: /src/nccl/src/group.cc:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - simInfo
    argTypes:
    - ncclSimInfo_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 118
    functionName: ncclGroupSimulateEnd
    functionSourceFile: /src/nccl/src/group.cc
    functionUses: 0
    functionsReached:
    - TRACE_CALL
    - ncclGroupEndInternal
    - NCCLCHECKGOTO
    - NVTX3_FUNC_RANGE_IN
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGroupSimulateEnd(ncclSimInfo_t* simInfo)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CUDACHECK
      Src: /src/nccl/src/group.cc:129,1
    - Dst: cudaSetDevice
      Src: /src/nccl/src/group.cc:129,1
    - Dst: CPU_COUNT
      Src: /src/nccl/src/group.cc:130,1
    - Dst: sched_setaffinity
      Src: /src/nccl/src/group.cc:130,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/group.cc:131,1
    - Dst: ncclTransportP2pSetup
      Src: /src/nccl/src/group.cc:131,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - job_
    argTypes:
    - struct ncclAsyncJob*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 133
    functionName: ncclP2PPreconnectFunc
    functionSourceFile: /src/nccl/src/group.cc
    functionUses: 0
    functionsReached:
    - ncclTransportP2pSetup
    - CPU_COUNT
    - CUDACHECK
    - cudaSetDevice
    - sched_setaffinity
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclP2PPreconnectFunc(struct ncclAsyncJob* job_)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: CUDACHECK
      Src: /src/nccl/src/group.cc:140,1
    - Dst: cudaSetDevice
      Src: /src/nccl/src/group.cc:140,1
    - Dst: CPU_COUNT
      Src: /src/nccl/src/group.cc:141,1
    - Dst: sched_setaffinity
      Src: /src/nccl/src/group.cc:141,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/group.cc:146,1
    - Dst: ncclTransportRingConnect
      Src: /src/nccl/src/group.cc:146,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/group.cc:150,1
    - Dst: ncclTransportTreeConnect
      Src: /src/nccl/src/group.cc:150,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/group.cc:156,1
    - Dst: ncclNvlsBufferSetup
      Src: /src/nccl/src/group.cc:156,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/group.cc:160,1
    - Dst: ncclNvlsTreeConnect
      Src: /src/nccl/src/group.cc:160,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/group.cc:164,1
    - Dst: ncclCollNetChainBufferSetup
      Src: /src/nccl/src/group.cc:164,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/group.cc:168,1
    - Dst: ncclCollNetDirectBufferSetup
      Src: /src/nccl/src/group.cc:168,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/group.cc:172,1
    - Dst: ncclTransportPatConnect
      Src: /src/nccl/src/group.cc:172,1
    - Dst: free
      Src: /src/nccl/src/group.cc:186,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 51
    argCount: 1
    argNames:
    - job_
    argTypes:
    - struct ncclAsyncJob*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 190
    functionName: ncclCollPreconnectFunc
    functionSourceFile: /src/nccl/src/group.cc
    functionUses: 0
    functionsReached:
    - ncclCollNetChainBufferSetup
    - NCCLCHECKGOTO
    - CPU_COUNT
    - free
    - CUDACHECK
    - ncclCollNetDirectBufferSetup
    - cudaSetDevice
    - ncclTransportRingConnect
    - ncclTransportTreeConnect
    - ncclNvlsBufferSetup
    - ncclTransportPatConnect
    - sched_setaffinity
    - ncclNvlsTreeConnect
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCollPreconnectFunc(struct ncclAsyncJob* job_)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/group.cc:204,1
    - Dst: cudaSetDevice
      Src: /src/nccl/src/group.cc:204,1
    - Dst: DEFINE_ld_st_gpu_relaxed__size
      Src: /src/nccl/src/group.cc:210,1
    - Dst: ncclParamWinStride
      Src: /src/nccl/src/group.cc:211,1
    - Dst: ncclParamWinStride
      Src: /src/nccl/src/group.cc:212,1
    - Dst: INFO
      Src: /src/nccl/src/group.cc:219,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/group.cc:220,1
    - Dst: ncclIpcSymmetricInit
      Src: /src/nccl/src/group.cc:220,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/group.cc:221,1
    - Dst: ncclNvlsSymmetricInit
      Src: /src/nccl/src/group.cc:221,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/group.cc:225,1
    - Dst: ncclCommSymmetricAllocInternal
      Src: /src/nccl/src/group.cc:225,1
    - Dst: assert
      Src: /src/nccl/src/group.cc:226,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/group.cc:227,1
    - Dst: ncclStrongStreamAcquire
      Src: /src/nccl/src/group.cc:227,1
    - Dst: ncclCudaGraphNone
      Src: /src/nccl/src/group.cc:227,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/group.cc:228,1
    - Dst: cudaMemsetAsync
      Src: /src/nccl/src/group.cc:228,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/group.cc:229,1
    - Dst: cudaStreamSynchronize
      Src: /src/nccl/src/group.cc:229,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/group.cc:230,1
    - Dst: ncclStrongStreamRelease
      Src: /src/nccl/src/group.cc:230,1
    - Dst: ncclCudaGraphNone
      Src: /src/nccl/src/group.cc:230,1
    - Dst: idivRcp32
      Src: /src/nccl/src/group.cc:235,1
    - Dst: ncclIntruQueueEmpty
      Src: /src/nccl/src/group.cc:240,1
    - Dst: ncclIntruQueueDequeue
      Src: /src/nccl/src/group.cc:241,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/group.cc:242,1
    - Dst: ncclCommSymmetricRegisterInternal
      Src: /src/nccl/src/group.cc:242,1
    - Dst: free
      Src: /src/nccl/src/group.cc:243,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 39
    argCount: 1
    argNames:
    - job_
    argTypes:
    - struct ncclAsyncJob*
    assertStmts:
    - condition: ((void*)symBase == (void*)(comm->baseUCSymPtr + comm->localRank *
        comm->baseStride))
      pos:
        line_end: 225
        line_start: 225
        source_file: /src/nccl/src/group.cc
    constantsTouched: []
    func_position:
      end: 250
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 250
    functionName: ncclCommGroupRegisterSymmetric
    functionSourceFile: /src/nccl/src/group.cc
    functionUses: 0
    functionsReached:
    - ncclNvlsSymmetricInit
    - INFO
    - ncclParamWinStride
    - ncclCudaGraphNone
    - assert
    - ncclCommSymmetricRegisterInternal
    - CUDACHECKGOTO
    - cudaStreamSynchronize
    - ncclIntruQueueDequeue
    - ncclStrongStreamRelease
    - DEFINE_ld_st_gpu_relaxed__size
    - cudaMemsetAsync
    - ncclCommSymmetricAllocInternal
    - ncclStrongStreamAcquire
    - NCCLCHECKGOTO
    - free
    - ncclIpcSymmetricInit
    - ncclIntruQueueEmpty
    - cudaSetDevice
    - idivRcp32
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCommGroupRegisterSymmetric(struct ncclAsyncJob* job_)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ncclCudaGraphValid
      Src: /src/nccl/src/group.cc:264,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/group.cc:265,1
    - Dst: cudaSetDevice
      Src: /src/nccl/src/group.cc:265,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/group.cc:266,1
    - Dst: ncclLaunchPrepare
      Src: /src/nccl/src/group.cc:266,1
    - Dst: ncclCommIntraBarrierIn
      Src: /src/nccl/src/group.cc:267,1
    - Dst: WARN
      Src: /src/nccl/src/group.cc:276,1
    - Dst: ncclCommIntraBarrierOut
      Src: /src/nccl/src/group.cc:288,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/group.cc:297,1
    - Dst: cudaSetDevice
      Src: /src/nccl/src/group.cc:297,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/group.cc:298,1
    - Dst: ncclLaunchKernelBefore_NoUncapturedCuda
      Src: /src/nccl/src/group.cc:298,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/group.cc:299,1
    - Dst: ncclLaunchKernel
      Src: /src/nccl/src/group.cc:299,1
    - Dst: ncclCommIntraBarrierIn
      Src: /src/nccl/src/group.cc:302,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/group.cc:304,1
    - Dst: ncclLaunchKernelAfter_NoCuda
      Src: /src/nccl/src/group.cc:304,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/group.cc:307,1
    - Dst: cudaSetDevice
      Src: /src/nccl/src/group.cc:307,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/group.cc:308,1
    - Dst: ncclLaunchFinish
      Src: /src/nccl/src/group.cc:308,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 51
    argCount: 1
    argNames:
    - head
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 318
    functionName: doLaunches
    functionSourceFile: /src/nccl/src/group.cc
    functionUses: 0
    functionsReached:
    - WARN
    - ncclLaunchKernelBefore_NoUncapturedCuda
    - NCCLCHECKGOTO
    - CUDACHECKGOTO
    - ncclCudaGraphValid
    - ncclLaunchFinish
    - ncclCommIntraBarrierOut
    - cudaSetDevice
    - ncclLaunchKernelAfter_NoCuda
    - ncclLaunchPrepare
    - ncclCommIntraBarrierIn
    - ncclLaunchKernel
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t doLaunches(struct ncclComm* head)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclIntruQueueConstruct
      Src: /src/nccl/src/group.cc:325,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 320
    functionDepth: 1
    functionLinenumber: 320
    functionLinenumberEnd: 327
    functionName: groupLocalResetJobState
    functionSourceFile: /src/nccl/src/group.cc
    functionUses: 0
    functionsReached:
    - ncclIntruQueueConstruct
    linkageType: ''
    returnType: void
    signature: void groupLocalResetJobState()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ncclGroupCommLeave
      Src: /src/nccl/src/group.cc:337,1
    - Dst: reinterpret_cast<struct ncclComm*>
      Src: /src/nccl/src/group.cc:342,1
    - Dst: ncclIntruQueueEmpty
      Src: /src/nccl/src/group.cc:349,1
    - Dst: ncclIntruQueueDequeue
      Src: /src/nccl/src/group.cc:350,1
    - Dst: ncclIntruQueueEmpty
      Src: /src/nccl/src/group.cc:354,1
    - Dst: ncclIntruQueueDequeue
      Src: /src/nccl/src/group.cc:355,1
    - Dst: ncclMemoryPoolFree
      Src: /src/nccl/src/group.cc:356,1
    - Dst: ncclMemoryPoolFree
      Src: /src/nccl/src/group.cc:358,1
    - Dst: memset
      Src: /src/nccl/src/group.cc:364,1
    - Dst: memset
      Src: /src/nccl/src/group.cc:366,1
    - Dst: ncclCommSetAsyncError
      Src: /src/nccl/src/group.cc:371,1
    - Dst: ncclIntruQueueEmpty
      Src: /src/nccl/src/group.cc:377,1
    - Dst: ncclIntruQueueDequeue
      Src: /src/nccl/src/group.cc:378,1
    - Dst: ncclCommSetAsyncError
      Src: /src/nccl/src/group.cc:380,1
    - Dst: struct ncclAsyncJob*::undo
      Src: /src/nccl/src/group.cc:381,1
    - Dst: struct ncclAsyncJob*::destructor
      Src: /src/nccl/src/group.cc:382,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 40
    argCount: 3
    argNames:
    - groupCommHeadPtr
    - asyncJobsPtr
    - error
    argTypes:
    - struct ncclComm**
    - struct ncclIntruQueue<struct ncclAsyncJob, &ncclAsyncJob::next>*
    - ncclResult_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 329
    functionDepth: 2
    functionLinenumber: 329
    functionLinenumberEnd: 386
    functionName: groupCleanup
    functionSourceFile: /src/nccl/src/group.cc
    functionUses: 0
    functionsReached:
    - reinterpret_cast<struct ncclComm*>
    - struct ncclAsyncJob*::destructor
    - ncclIntruQueueEmpty
    - struct ncclAsyncJob*::undo
    - ncclIntruQueueDequeue
    - ncclMemoryPoolFree
    - ncclGroupCommLeave
    - ncclCommSetAsyncError
    - memset
    linkageType: ''
    returnType: void
    signature: void groupCleanup(struct ncclComm** groupCommHeadPtr, struct ncclIntruQueue<struct
      ncclAsyncJob, &ncclAsyncJob::next>* asyncJobsPtr, ncclResult_t error)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ncclIntruQueueEmpty
      Src: /src/nccl/src/group.cc:393,1
    - Dst: ncclIntruQueueHead
      Src: /src/nccl/src/group.cc:394,1
    - Dst: PTHREADCHECKGOTO
      Src: /src/nccl/src/group.cc:396,1
    - Dst: pthread_create
      Src: /src/nccl/src/group.cc:396,1
    - Dst: ncclIntruQueueHead
      Src: /src/nccl/src/group.cc:402,1
    - Dst: __atomic_load_n
      Src: /src/nccl/src/group.cc:404,1
    - Dst: pthread_join
      Src: /src/nccl/src/group.cc:409,1
    - Dst: WARN
      Src: /src/nccl/src/group.cc:410,1
    - Dst: strerror
      Src: /src/nccl/src/group.cc:410,1
    - Dst: assert
      Src: /src/nccl/src/group.cc:420,1
    - Dst: __atomic_load_n
      Src: /src/nccl/src/group.cc:423,1
    - Dst: __atomic_store_n
      Src: /src/nccl/src/group.cc:424,1
    - Dst: __atomic_store_n
      Src: /src/nccl/src/group.cc:425,1
    - Dst: __atomic_store_n
      Src: /src/nccl/src/group.cc:427,1
    - Dst: __atomic_store_n
      Src: /src/nccl/src/group.cc:428,1
    - Dst: usleep
      Src: /src/nccl/src/group.cc:435,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 50
    argCount: 2
    argNames:
    - asyncJobsMain
    - groupAbortFlag
    argTypes:
    - struct ncclIntruQueue<struct ncclAsyncJob, &ncclAsyncJob::next>*
    - bool*
    assertStmts:
    - condition: (state == ncclGroupJobJoined)
      pos:
        line_end: 419
        line_start: 419
        source_file: /src/nccl/src/group.cc
    constantsTouched: []
    func_position:
      end: 445
      start: 388
    functionDepth: 1
    functionLinenumber: 388
    functionLinenumberEnd: 445
    functionName: asyncJobLaunch
    functionSourceFile: /src/nccl/src/group.cc
    functionUses: 0
    functionsReached:
    - __atomic_load_n
    - WARN
    - usleep
    - pthread_join
    - __atomic_store_n
    - PTHREADCHECKGOTO
    - ncclIntruQueueEmpty
    - assert
    - strerror
    - ncclIntruQueueHead
    - pthread_create
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t asyncJobLaunch(struct ncclIntruQueue<struct ncclAsyncJob,
      &ncclAsyncJob::next> *asyncJobsMain, volatile bool *groupAbortFlag)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/group.cc:459,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/group.cc:459,1
    - Dst: ncclIntruQueueEnqueue
      Src: /src/nccl/src/group.cc:467,1
    - Dst: reinterpret_cast<struct ncclComm*>
      Src: /src/nccl/src/group.cc:470,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/group.cc:475,1
    - Dst: asyncJobLaunch
      Src: /src/nccl/src/group.cc:475,1
    - Dst: ncclIntruQueueConstruct
      Src: /src/nccl/src/group.cc:483,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/group.cc:488,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/group.cc:488,1
    - Dst: ncclIntruQueueEnqueue
      Src: /src/nccl/src/group.cc:496,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/group.cc:499,1
    - Dst: asyncJobLaunch
      Src: /src/nccl/src/group.cc:499,1
    - Dst: ncclIntruQueueEmpty
      Src: /src/nccl/src/group.cc:500,1
    - Dst: ncclIntruQueueDequeue
      Src: /src/nccl/src/group.cc:501,1
    - Dst: struct ncclAsyncJob*::destructor
      Src: /src/nccl/src/group.cc:502,1
    - Dst: ncclIntruQueueConstruct
      Src: /src/nccl/src/group.cc:514,1
    - Dst: memset
      Src: /src/nccl/src/group.cc:523,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/group.cc:525,1
    - Dst: cudaSetDevice
      Src: /src/nccl/src/group.cc:525,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/group.cc:526,1
    - Dst: ncclPrepareTasks
      Src: /src/nccl/src/group.cc:526,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/group.cc:530,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/group.cc:530,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/group.cc:538,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/group.cc:538,1
    - Dst: memcpy
      Src: /src/nccl/src/group.cc:539,1
    - Dst: ncclIntruQueueEnqueue
      Src: /src/nccl/src/group.cc:540,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/group.cc:545,1
    - Dst: asyncJobLaunch
      Src: /src/nccl/src/group.cc:545,1
    - Dst: ncclIntruQueueEmpty
      Src: /src/nccl/src/group.cc:546,1
    - Dst: ncclIntruQueueDequeue
      Src: /src/nccl/src/group.cc:547,1
    - Dst: struct ncclAsyncJob*::destructor
      Src: /src/nccl/src/group.cc:548,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/group.cc:556,1
    - Dst: cudaSetDevice
      Src: /src/nccl/src/group.cc:556,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/group.cc:557,1
    - Dst: ncclTasksRegAndEnqueue
      Src: /src/nccl/src/group.cc:557,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/group.cc:563,1
    - Dst: doLaunches
      Src: /src/nccl/src/group.cc:563,1
    - Dst: ncclIntruQueueEmpty
      Src: /src/nccl/src/group.cc:566,1
    - Dst: ncclIntruQueueDequeue
      Src: /src/nccl/src/group.cc:567,1
    - Dst: ncclCommSetAsyncError
      Src: /src/nccl/src/group.cc:569,1
    - Dst: struct ncclAsyncJob*::destructor
      Src: /src/nccl/src/group.cc:570,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/group.cc:580,1
    - Dst: ncclCommPollCallbacks
      Src: /src/nccl/src/group.cc:580,1
    - Dst: ncclGroupCommLeave
      Src: /src/nccl/src/group.cc:585,1
    - Dst: ncclCommSetAsyncError
      Src: /src/nccl/src/group.cc:587,1
    - Dst: groupCleanup
      Src: /src/nccl/src/group.cc:596,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 112
    argCount: 1
    argNames:
    - job_
    argTypes:
    - struct ncclAsyncJob*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 447
    functionDepth: 3
    functionLinenumber: 447
    functionLinenumberEnd: 598
    functionName: groupLaunch
    functionSourceFile: /src/nccl/src/group.cc
    functionUses: 0
    functionsReached:
    - struct ncclAsyncJob*::destructor
    - ncclIntruQueueConstruct
    - asyncJobLaunch
    - ncclPrepareTasks
    - ncclIntruQueueEnqueue
    - memset
    - CUDACHECKGOTO
    - reinterpret_cast<struct ncclComm*>
    - ncclIntruQueueDequeue
    - doLaunches
    - ncclCommSetAsyncError
    - NCCLCHECKGOTO
    - memcpy
    - ncclTasksRegAndEnqueue
    - groupCleanup
    - ncclIntruQueueEmpty
    - cudaSetDevice
    - ncclCalloc
    - ncclGroupCommLeave
    - ncclCommPollCallbacks
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t groupLaunch(struct ncclAsyncJob *job_, ncclSimInfo_t*
      simInfo = NULL)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: groupLaunch
      Src: /src/nccl/src/group.cc:601,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - job_
    argTypes:
    - struct ncclAsyncJob*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 600
    functionDepth: 4
    functionLinenumber: 600
    functionLinenumberEnd: 602
    functionName: groupLaunchNonBlocking
    functionSourceFile: /src/nccl/src/group.cc
    functionUses: 0
    functionsReached:
    - groupLaunch
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t groupLaunchNonBlocking(struct ncclAsyncJob *job_)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/group.cc:615,1
    - Dst: memcpy
      Src: /src/nccl/src/group.cc:625,1
    - Dst: memcpy
      Src: /src/nccl/src/group.cc:627,1
    - Dst: WARN
      Src: /src/nccl/src/group.cc:629,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/group.cc:643,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/group.cc:643,1
    - Dst: ncclIntruQueueConstruct
      Src: /src/nccl/src/group.cc:644,1
    - Dst: memcpy
      Src: /src/nccl/src/group.cc:647,1
    - Dst: ncclIntruQueueTransfer
      Src: /src/nccl/src/group.cc:652,1
    - Dst: ncclIntruQueueEmpty
      Src: /src/nccl/src/group.cc:654,1
    - Dst: assert
      Src: /src/nccl/src/group.cc:656,1
    - Dst: ncclIntruQueueEmpty
      Src: /src/nccl/src/group.cc:659,1
    - Dst: ncclIntruQueueHead
      Src: /src/nccl/src/group.cc:660,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/group.cc:662,1
    - Dst: ncclCommSetAsyncError
      Src: /src/nccl/src/group.cc:662,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/group.cc:675,1
    - Dst: ncclCommSetAsyncError
      Src: /src/nccl/src/group.cc:675,1
    - Dst: PTHREADCHECKGOTO
      Src: /src/nccl/src/group.cc:687,1
    - Dst: pthread_create
      Src: /src/nccl/src/group.cc:687,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/group.cc:693,1
    - Dst: cudaGetDevice
      Src: /src/nccl/src/group.cc:693,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/group.cc:694,1
    - Dst: groupLaunch
      Src: /src/nccl/src/group.cc:694,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/group.cc:695,1
    - Dst: cudaSetDevice
      Src: /src/nccl/src/group.cc:695,1
    - Dst: memcpy
      Src: /src/nccl/src/group.cc:696,1
    - Dst: free
      Src: /src/nccl/src/group.cc:697,1
    - Dst: groupLocalResetJobState
      Src: /src/nccl/src/group.cc:701,1
    - Dst: groupCleanup
      Src: /src/nccl/src/group.cc:707,1
    - Dst: free
      Src: /src/nccl/src/group.cc:708,1
    - Dst: groupCleanup
      Src: /src/nccl/src/group.cc:710,1
    - Dst: groupLocalResetJobState
      Src: /src/nccl/src/group.cc:712,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 95
    argCount: 1
    argNames:
    - simInfo
    argTypes:
    - ncclSimInfo_t*
    assertStmts:
    - condition: (ncclGroupBlocking == 0 || ncclGroupBlocking == 1)
      pos:
        line_end: 655
        line_start: 655
        source_file: /src/nccl/src/group.cc
    constantsTouched: []
    func_position:
      end: 714
      start: 604
    functionDepth: 4
    functionLinenumber: 604
    functionLinenumberEnd: 714
    functionName: ncclGroupEndInternal
    functionSourceFile: /src/nccl/src/group.cc
    functionUses: 10
    functionsReached:
    - WARN
    - ncclIntruQueueConstruct
    - groupLaunch
    - assert
    - cudaGetDevice
    - ncclIntruQueueTransfer
    - CUDACHECKGOTO
    - PTHREADCHECKGOTO
    - groupLocalResetJobState
    - ncclCommSetAsyncError
    - NCCLCHECKGOTO
    - memcpy
    - free
    - groupCleanup
    - ncclIntruQueueEmpty
    - cudaSetDevice
    - ncclCalloc
    - ncclIntruQueueHead
    - pthread_create
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGroupEndInternal(ncclSimInfo_t* simInfo)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_exchange_n
      Src: /src/nccl/src/group.cc:719,1
    - Dst: ncclAsyncJobComplete
      Src: /src/nccl/src/group.cc:720,1
    - Dst: ncclAtomicRefCountDecrement
      Src: /src/nccl/src/group.cc:722,1
    - Dst: free
      Src: /src/nccl/src/group.cc:723,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - groupJob
    argTypes:
    - struct ncclGroupJob*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 727
      start: 716
    functionDepth: 2
    functionLinenumber: 716
    functionLinenumberEnd: 727
    functionName: ncclGroupJobComplete
    functionSourceFile: /src/nccl/src/group.cc
    functionUses: 1
    functionsReached:
    - __atomic_exchange_n
    - ncclAtomicRefCountDecrement
    - ncclAsyncJobComplete
    - free
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGroupJobComplete(struct ncclGroupJob* groupJob)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_exchange_n
      Src: /src/nccl/src/group.cc:731,1
    - Dst: __atomic_store_n
      Src: /src/nccl/src/group.cc:732,1
    - Dst: ncclAsyncJobComplete
      Src: /src/nccl/src/group.cc:733,1
    - Dst: ncclAtomicRefCountDecrement
      Src: /src/nccl/src/group.cc:735,1
    - Dst: free
      Src: /src/nccl/src/group.cc:736,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - groupJob
    argTypes:
    - struct ncclGroupJob*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 740
      start: 729
    functionDepth: 2
    functionLinenumber: 729
    functionLinenumberEnd: 740
    functionName: ncclGroupJobAbort
    functionSourceFile: /src/nccl/src/group.cc
    functionUses: 1
    functionsReached:
    - ncclAtomicRefCountDecrement
    - free
    - ncclAsyncJobComplete
    - __atomic_exchange_n
    - __atomic_store_n
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGroupJobAbort(struct ncclGroupJob* groupJob)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 5
    argNames:
    - type
    - pattern
    - root
    - ring
    - nranks
    argTypes:
    - int
    - int
    - int
    - struct ncclRing*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 40
    functionName: NeedProxy
    functionSourceFile: /src/nccl/src/proxy.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool NeedProxy(int type, int pattern, int root, struct ncclRing* ring,
      int nranks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/nccl/src/proxy.cc:55,1
    - Dst: free
      Src: /src/nccl/src/proxy.cc:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct ncclProxyState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 58
    functionName: expectedProxyResponseFree
    functionSourceFile: /src/nccl/src/proxy.cc
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void expectedProxyResponseFree(struct ncclProxyState* state)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/proxy.cc:65,1
    - Dst: WARN
      Src: /src/nccl/src/proxy.cc:70,1
    - Dst: memcpy
      Src: /src/nccl/src/proxy.cc:75,1
    - Dst: free
      Src: /src/nccl/src/proxy.cc:76,1
    - Dst: WARN
      Src: /src/nccl/src/proxy.cc:85,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 5
    argNames:
    - state
    - opId
    - respBuff
    - respSize
    - res
    argTypes:
    - struct ncclProxyState*
    - void*
    - void*
    - int
    - ncclResult_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 87
    functionName: expectedProxyResponseStore
    functionSourceFile: /src/nccl/src/proxy.cc
    functionUses: 0
    functionsReached:
    - WARN
    - memcpy
    - free
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t expectedProxyResponseStore(struct ncclProxyState* state,
      void* opId, void* respBuff, int respSize, ncclResult_t res)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:91,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/proxy.cc:91,1
    - Dst: malloc
      Src: /src/nccl/src/proxy.cc:95,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 3
    argNames:
    - state
    - opId
    - respSize
    argTypes:
    - struct ncclProxyState*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 109
    functionName: expectedProxyResponseEnqueue
    functionSourceFile: /src/nccl/src/proxy.cc
    functionUses: 0
    functionsReached:
    - malloc
    - ncclCalloc
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t expectedProxyResponseEnqueue(struct ncclProxyState* state,
      void* opId, int respSize)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nccl/src/proxy.cc:122,1
    - Dst: free
      Src: /src/nccl/src/proxy.cc:124,1
    - Dst: free
      Src: /src/nccl/src/proxy.cc:125,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 4
    argNames:
    - state
    - opId
    - respBuff
    - found
    argTypes:
    - struct ncclProxyState*
    - void*
    - void*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 133
    functionName: expectedProxyResponseDequeue
    functionSourceFile: /src/nccl/src/proxy.cc
    functionUses: 0
    functionsReached:
    - memcpy
    - free
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t expectedProxyResponseDequeue(struct ncclProxyState* state,
      void* opId, void* respBuff, int* found)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/nccl/src/proxy.cc:145,1
    - Dst: free
      Src: /src/nccl/src/proxy.cc:146,1
    - Dst: WARN
      Src: /src/nccl/src/proxy.cc:152,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 2
    argNames:
    - state
    - opId
    argTypes:
    - struct ncclProxyState*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 154
    functionName: expectedProxyResponseRemove
    functionSourceFile: /src/nccl/src/proxy.cc
    functionUses: 0
    functionsReached:
    - WARN
    - free
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t expectedProxyResponseRemove(struct ncclProxyState* state,
      void* opId)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - peer
    - op
    argTypes:
    - struct ncclProxyLocalPeer*
    - ncclProxyAsyncOp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 165
    functionName: asyncProxyOpEnqueue
    functionSourceFile: /src/nccl/src/proxy.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t asyncProxyOpEnqueue(struct ncclProxyLocalPeer* peer, ncclProxyAsyncOp*
      op)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/nccl/src/proxy.cc:179,1
    - Dst: free
      Src: /src/nccl/src/proxy.cc:182,1
    - Dst: free
      Src: /src/nccl/src/proxy.cc:184,1
    - Dst: WARN
      Src: /src/nccl/src/proxy.cc:192,1
    - Dst: WARN
      Src: /src/nccl/src/proxy.cc:194,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 2
    argNames:
    - peer
    - op
    argTypes:
    - struct ncclProxyLocalPeer*
    - ncclProxyAsyncOp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 197
    functionName: asyncProxyOpDequeue
    functionSourceFile: /src/nccl/src/proxy.cc
    functionUses: 0
    functionsReached:
    - WARN
    - free
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t asyncProxyOpDequeue(struct ncclProxyLocalPeer* peer, ncclProxyAsyncOp*
      op)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:205,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/proxy.cc:205,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - state
    - argsptr
    argTypes:
    - struct ncclProxyProgressState*
    - struct ncclProxyArgs**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 223
    functionName: allocateArgs
    functionSourceFile: /src/nccl/src/proxy.cc
    functionUses: 0
    functionsReached:
    - ncclCalloc
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t allocateArgs(struct ncclProxyProgressState* state, struct
      ncclProxyArgs** argsptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 233
    functionName: OP_INDEX
    functionSourceFile: /src/nccl/src/proxy.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: OP_INDEX(op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/proxy.cc:248,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - op
    - state
    - poolIndex
    - opIndex
    argTypes:
    - struct ncclProxyArgs*
    - struct ncclProxyProgressState*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 250
    functionName: getOpIndex
    functionSourceFile: /src/nccl/src/proxy.cc
    functionUses: 0
    functionsReached:
    - WARN
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t getOpIndex(struct ncclProxyArgs* op, struct ncclProxyProgressState*
      state, int* poolIndex, int* opIndex)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nccl/src/proxy.cc:253,1
    - Dst: printf
      Src: /src/nccl/src/proxy.cc:271,1
    - Dst: printf
      Src: /src/nccl/src/proxy.cc:273,1
    - Dst: printf
      Src: /src/nccl/src/proxy.cc:276,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 33
    argCount: 3
    argNames:
    - op
    - poolIndex
    - opIndex
    argTypes:
    - struct ncclProxyArgs*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 278
    functionName: printProxyOp
    functionSourceFile: /src/nccl/src/proxy.cc
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t printProxyOp(struct ncclProxyArgs* op, int poolIndex,
      int opIndex)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nccl/src/proxy.cc:282,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:284,1
    - Dst: getOpIndex
      Src: /src/nccl/src/proxy.cc:284,1
    - Dst: WARN
      Src: /src/nccl/src/proxy.cc:286,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:288,1
    - Dst: printProxyOp
      Src: /src/nccl/src/proxy.cc:288,1
    - Dst: printf
      Src: /src/nccl/src/proxy.cc:290,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:293,1
    - Dst: getOpIndex
      Src: /src/nccl/src/proxy.cc:293,1
    - Dst: WARN
      Src: /src/nccl/src/proxy.cc:295,1
    - Dst: printf
      Src: /src/nccl/src/proxy.cc:297,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:298,1
    - Dst: printProxyOp
      Src: /src/nccl/src/proxy.cc:298,1
    - Dst: printf
      Src: /src/nccl/src/proxy.cc:300,1
    - Dst: WARN
      Src: /src/nccl/src/proxy.cc:302,1
    - Dst: printf
      Src: /src/nccl/src/proxy.cc:306,1
    - Dst: printf
      Src: /src/nccl/src/proxy.cc:308,1
    - Dst: printf
      Src: /src/nccl/src/proxy.cc:310,1
    - Dst: printf
      Src: /src/nccl/src/proxy.cc:313,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:316,1
    - Dst: getOpIndex
      Src: /src/nccl/src/proxy.cc:316,1
    - Dst: WARN
      Src: /src/nccl/src/proxy.cc:318,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:320,1
    - Dst: printProxyOp
      Src: /src/nccl/src/proxy.cc:320,1
    - Dst: printf
      Src: /src/nccl/src/proxy.cc:322,1
    - Dst: printf
      Src: /src/nccl/src/proxy.cc:325,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:329,1
    - Dst: getOpIndex
      Src: /src/nccl/src/proxy.cc:329,1
    - Dst: WARN
      Src: /src/nccl/src/proxy.cc:331,1
    - Dst: printf
      Src: /src/nccl/src/proxy.cc:344,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:345,1
    - Dst: printProxyOp
      Src: /src/nccl/src/proxy.cc:345,1
    - Dst: printf
      Src: /src/nccl/src/proxy.cc:346,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 67
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct ncclProxyProgressState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 279
    functionDepth: 2
    functionLinenumber: 279
    functionLinenumberEnd: 355
    functionName: dumpProxyState
    functionSourceFile: /src/nccl/src/proxy.cc
    functionUses: 0
    functionsReached:
    - WARN
    - getOpIndex
    - printf
    - printProxyOp
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t dumpProxyState(struct ncclProxyProgressState* state)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/proxy.cc:360,1
    - Dst: WARN
      Src: /src/nccl/src/proxy.cc:394,1
    - Dst: WARN
      Src: /src/nccl/src/proxy.cc:398,1
    - Dst: ncclProfilerStartProxyOpEvent
      Src: /src/nccl/src/proxy.cc:419,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 57
    argCount: 3
    argNames:
    - op
    - args
    - subIndex
    argTypes:
    - struct ncclProxyOp*
    - struct ncclProxyArgs*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 357
    functionDepth: 1
    functionLinenumber: 357
    functionLinenumberEnd: 421
    functionName: ncclProxyOpToArgs
    functionSourceFile: /src/nccl/src/proxy.cc
    functionUses: 0
    functionsReached:
    - WARN
    - ncclProfilerStartProxyOpEvent
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProxyOpToArgs(struct ncclProxyOp* op, struct ncclProxyArgs*
      args, int subIndex)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:430,1
    - Dst: ncclProxyOpToArgs
      Src: /src/nccl/src/proxy.cc:430,1
    - Dst: DEBUG_PROXY_PRINT
      Src: /src/nccl/src/proxy.cc:431,1
    - Dst: OP_INDEX
      Src: /src/nccl/src/proxy.cc:431,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:434,1
    - Dst: allocateArgs
      Src: /src/nccl/src/proxy.cc:434,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:435,1
    - Dst: ncclProxyOpToArgs
      Src: /src/nccl/src/proxy.cc:435,1
    - Dst: DEBUG_PROXY_PRINT
      Src: /src/nccl/src/proxy.cc:437,1
    - Dst: OP_INDEX
      Src: /src/nccl/src/proxy.cc:437,1
    - Dst: OP_INDEX
      Src: /src/nccl/src/proxy.cc:437,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:442,1
    - Dst: allocateArgs
      Src: /src/nccl/src/proxy.cc:442,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:443,1
    - Dst: ncclProxyOpToArgs
      Src: /src/nccl/src/proxy.cc:443,1
    - Dst: DEBUG_PROXY_PRINT
      Src: /src/nccl/src/proxy.cc:446,1
    - Dst: OP_INDEX
      Src: /src/nccl/src/proxy.cc:446,1
    - Dst: DEBUG_PROXY_PRINT
      Src: /src/nccl/src/proxy.cc:453,1
    - Dst: OP_INDEX
      Src: /src/nccl/src/proxy.cc:453,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 2
    argNames:
    - state
    - op
    argTypes:
    - struct ncclProxyProgressState*
    - struct ncclProxyOp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 423
    functionDepth: 2
    functionLinenumber: 423
    functionLinenumberEnd: 458
    functionName: ProxyAppend
    functionSourceFile: /src/nccl/src/proxy.cc
    functionUses: 0
    functionsReached:
    - ncclProxyOpToArgs
    - allocateArgs
    - DEBUG_PROXY_PRINT
    - OP_INDEX
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ProxyAppend(struct ncclProxyProgressState* state, struct
      ncclProxyOp* op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/nccl/src/proxy.cc:461,1
    - Dst: pthread_cond_signal
      Src: /src/nccl/src/proxy.cc:464,1
    - Dst: pthread_mutex_unlock
      Src: /src/nccl/src/proxy.cc:469,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - pool
    - nextOps
    - nextOpsEnd
    argTypes:
    - struct ncclProxyOpsPool*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 460
    functionDepth: 0
    functionLinenumber: 460
    functionLinenumberEnd: 471
    functionName: ncclProxyPost
    functionSourceFile: /src/nccl/src/proxy.cc
    functionUses: 0
    functionsReached:
    - pthread_mutex_unlock
    - pthread_cond_signal
    - pthread_mutex_lock
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProxyPost(struct ncclProxyOpsPool* pool, int nextOps,
      int nextOpsEnd)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: TIME_START
      Src: /src/nccl/src/proxy.cc:480,1
    - Dst: sched_yield
      Src: /src/nccl/src/proxy.cc:488,1
    - Dst: __sync_val_compare_and_swap
      Src: /src/nccl/src/proxy.cc:490,1
    - Dst: __builtin_prefetch
      Src: /src/nccl/src/proxy.cc:495,1
    - Dst: memcpy
      Src: /src/nccl/src/proxy.cc:496,1
    - Dst: struct ncclProxyOp*::ringAlgo::incRefCount
      Src: /src/nccl/src/proxy.cc:497,1
    - Dst: WARN
      Src: /src/nccl/src/proxy.cc:522,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:529,1
    - Dst: ncclProxyPost
      Src: /src/nccl/src/proxy.cc:529,1
    - Dst: TIME_STOP
      Src: /src/nccl/src/proxy.cc:532,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 49
    argCount: 3
    argNames:
    - comm
    - proxyConn
    - proxyOp
    argTypes:
    - struct ncclComm*
    - struct ncclProxyConnector*
    - struct ncclProxyOp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 473
    functionDepth: 1
    functionLinenumber: 473
    functionLinenumberEnd: 534
    functionName: ncclLocalOpAppend
    functionSourceFile: /src/nccl/src/proxy.cc
    functionUses: 0
    functionsReached:
    - struct ncclProxyOp*::ringAlgo::incRefCount
    - WARN
    - ncclProxyPost
    - memcpy
    - TIME_STOP
    - TIME_START
    - sched_yield
    - __sync_val_compare_and_swap
    - __builtin_prefetch
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclLocalOpAppend(struct ncclComm* comm, struct ncclProxyConnector*
      proxyConn, struct ncclProxyOp* proxyOp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - comm
    - op
    argTypes:
    - struct ncclComm*
    - struct ncclProxyOp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 536
    functionDepth: 0
    functionLinenumber: 536
    functionLinenumberEnd: 538
    functionName: incWorkCounter
    functionSourceFile: /src/nccl/src/proxy.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void incWorkCounter(struct ncclComm* comm, struct ncclProxyOp* op)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: incWorkCounter
      Src: /src/nccl/src/proxy.cc:544,1
    - Dst: incWorkCounter
      Src: /src/nccl/src/proxy.cc:549,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:550,1
    - Dst: ncclLocalOpAppend
      Src: /src/nccl/src/proxy.cc:550,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - comm
    - op
    - justInquire
    argTypes:
    - struct ncclComm*
    - struct ncclProxyOp*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 540
    functionDepth: 2
    functionLinenumber: 540
    functionLinenumberEnd: 553
    functionName: SaveProxyProfiler
    functionSourceFile: /src/nccl/src/proxy.cc
    functionUses: 0
    functionsReached:
    - ncclLocalOpAppend
    - incWorkCounter
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t SaveProxyProfiler(struct ncclComm* comm, struct ncclProxyOp*
      op, bool* justInquire)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/proxy.cc:561,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:570,1
    - Dst: ncclLocalOpAppend
      Src: /src/nccl/src/proxy.cc:570,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 7
    argNames:
    - comm
    - channel
    - type
    - peer
    - op
    - connIndex
    - justInquire
    argTypes:
    - struct ncclComm*
    - struct ncclChannel*
    - int
    - int
    - struct ncclProxyOp*
    - int
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 555
    functionDepth: 2
    functionLinenumber: 555
    functionLinenumberEnd: 573
    functionName: SaveProxy
    functionSourceFile: /src/nccl/src/proxy.cc
    functionUses: 0
    functionsReached:
    - WARN
    - ncclLocalOpAppend
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t SaveProxy(struct ncclComm* comm, struct ncclChannel* channel,
      int type, int peer, struct ncclProxyOp* op, int connIndex, bool* justInquire)
  - BBCount: 34
    BranchProfiles: []
    Callsites:
    - Dst: NeedProxy
      Src: /src/nccl/src/proxy.cc:586,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:587,1
    - Dst: SaveProxy
      Src: /src/nccl/src/proxy.cc:587,1
    - Dst: NeedProxy
      Src: /src/nccl/src/proxy.cc:589,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:590,1
    - Dst: SaveProxy
      Src: /src/nccl/src/proxy.cc:590,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:599,1
    - Dst: SaveProxy
      Src: /src/nccl/src/proxy.cc:599,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:601,1
    - Dst: SaveProxy
      Src: /src/nccl/src/proxy.cc:601,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:606,1
    - Dst: SaveProxy
      Src: /src/nccl/src/proxy.cc:606,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:608,1
    - Dst: SaveProxy
      Src: /src/nccl/src/proxy.cc:608,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:612,1
    - Dst: SaveProxy
      Src: /src/nccl/src/proxy.cc:612,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:613,1
    - Dst: SaveProxy
      Src: /src/nccl/src/proxy.cc:613,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:616,1
    - Dst: SaveProxy
      Src: /src/nccl/src/proxy.cc:616,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:617,1
    - Dst: SaveProxy
      Src: /src/nccl/src/proxy.cc:617,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:620,1
    - Dst: SaveProxy
      Src: /src/nccl/src/proxy.cc:620,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:621,1
    - Dst: SaveProxy
      Src: /src/nccl/src/proxy.cc:621,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:624,1
    - Dst: SaveProxy
      Src: /src/nccl/src/proxy.cc:624,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:625,1
    - Dst: SaveProxy
      Src: /src/nccl/src/proxy.cc:625,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:626,1
    - Dst: SaveProxy
      Src: /src/nccl/src/proxy.cc:626,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:627,1
    - Dst: SaveProxy
      Src: /src/nccl/src/proxy.cc:627,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:628,1
    - Dst: SaveProxy
      Src: /src/nccl/src/proxy.cc:628,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:629,1
    - Dst: SaveProxy
      Src: /src/nccl/src/proxy.cc:629,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/proxy.cc:639,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/proxy.cc:639,1
    - Dst: log2Up
      Src: /src/nccl/src/proxy.cc:639,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/proxy.cc:640,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/proxy.cc:640,1
    - Dst: log2Up
      Src: /src/nccl/src/proxy.cc:640,1
    - Dst: PatRSAlgorithm::getNextOp
      Src: /src/nccl/src/proxy.cc:643,1
    - Dst: log2Up
      Src: /src/nccl/src/proxy.cc:648,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/proxy.cc:652,1
    - Dst: SaveProxy
      Src: /src/nccl/src/proxy.cc:652,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/proxy.cc:657,1
    - Dst: SaveProxy
      Src: /src/nccl/src/proxy.cc:657,1
    - Dst: free
      Src: /src/nccl/src/proxy.cc:661,1
    - Dst: free
      Src: /src/nccl/src/proxy.cc:662,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:663,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/proxy.cc:673,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/proxy.cc:673,1
    - Dst: log2Up
      Src: /src/nccl/src/proxy.cc:673,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/proxy.cc:674,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/proxy.cc:674,1
    - Dst: log2Up
      Src: /src/nccl/src/proxy.cc:674,1
    - Dst: PatAGAlgorithm::getNextOp
      Src: /src/nccl/src/proxy.cc:677,1
    - Dst: log2Up
      Src: /src/nccl/src/proxy.cc:682,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/proxy.cc:686,1
    - Dst: SaveProxy
      Src: /src/nccl/src/proxy.cc:686,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/proxy.cc:691,1
    - Dst: SaveProxy
      Src: /src/nccl/src/proxy.cc:691,1
    - Dst: free
      Src: /src/nccl/src/proxy.cc:695,1
    - Dst: free
      Src: /src/nccl/src/proxy.cc:696,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:697,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:702,1
    - Dst: SaveProxy
      Src: /src/nccl/src/proxy.cc:702,1
    - Dst: ncclProfilerNeedsProxy
      Src: /src/nccl/src/proxy.cc:705,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:705,1
    - Dst: SaveProxyProfiler
      Src: /src/nccl/src/proxy.cc:705,1
    - Dst: incWorkCounter
      Src: /src/nccl/src/proxy.cc:706,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 130
    argCount: 3
    argNames:
    - comm
    - op
    - justInquire
    argTypes:
    - struct ncclComm*
    - struct ncclProxyOp*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 710
      start: 577
    functionDepth: 3
    functionLinenumber: 577
    functionLinenumberEnd: 710
    functionName: ncclProxySaveOp
    functionSourceFile: /src/nccl/src/proxy.cc
    functionUses: 0
    functionsReached:
    - SaveProxy
    - NCCLCHECKGOTO
    - SaveProxyProfiler
    - free
    - PatRSAlgorithm::getNextOp
    - ncclCalloc
    - log2Up
    - incWorkCounter
    - NeedProxy
    - ncclProfilerNeedsProxy
    - NCCLCHECK
    - PatAGAlgorithm::getNextOp
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProxySaveOp(struct ncclComm* comm, struct ncclProxyOp*
      op, bool* justInquire)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: DEBUG_PROXY_PRINT
      Src: /src/nccl/src/proxy.cc:715,1
    - Dst: OP_INDEX
      Src: /src/nccl/src/proxy.cc:715,1
    - Dst: OP_INDEX
      Src: /src/nccl/src/proxy.cc:715,1
    - Dst: OP_INDEX
      Src: /src/nccl/src/proxy.cc:715,1
    - Dst: DEBUG_PROXY_PRINT
      Src: /src/nccl/src/proxy.cc:737,1
    - Dst: OP_INDEX
      Src: /src/nccl/src/proxy.cc:737,1
    - Dst: OP_INDEX
      Src: /src/nccl/src/proxy.cc:737,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:739,1
    - Dst: dumpProxyState
      Src: /src/nccl/src/proxy.cc:739,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 3
    argNames:
    - state
    - opPtr
    - prevOpPtr
    argTypes:
    - struct ncclProxyProgressState*
    - struct ncclProxyArgs**
    - struct ncclProxyArgs**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 712
    functionDepth: 3
    functionLinenumber: 712
    functionLinenumberEnd: 742
    functionName: removeOp
    functionSourceFile: /src/nccl/src/proxy.cc
    functionUses: 0
    functionsReached:
    - dumpProxyState
    - DEBUG_PROXY_PRINT
    - OP_INDEX
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t removeOp(struct ncclProxyProgressState* state, struct
      ncclProxyArgs** opPtr, struct ncclProxyArgs** prevOpPtr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: TIME_START
      Src: /src/nccl/src/proxy.cc:749,1
    - Dst: TIME_START
      Src: /src/nccl/src/proxy.cc:749,1
    - Dst: struct ncclProxyArgs*::progress
      Src: /src/nccl/src/proxy.cc:750,1
    - Dst: TIME_STOP
      Src: /src/nccl/src/proxy.cc:751,1
    - Dst: TIME_CANCEL
      Src: /src/nccl/src/proxy.cc:751,1
    - Dst: TIME_CANCEL
      Src: /src/nccl/src/proxy.cc:751,1
    - Dst: TIME_STOP
      Src: /src/nccl/src/proxy.cc:751,1
    - Dst: TIME_START
      Src: /src/nccl/src/proxy.cc:754,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:755,1
    - Dst: removeOp
      Src: /src/nccl/src/proxy.cc:755,1
    - Dst: TIME_STOP
      Src: /src/nccl/src/proxy.cc:756,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 4
    argNames:
    - proxyState
    - state
    - opStart
    - idle
    argTypes:
    - struct ncclProxyState*
    - struct ncclProxyProgressState*
    - struct ncclProxyArgs*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 763
      start: 744
    functionDepth: 4
    functionLinenumber: 744
    functionLinenumberEnd: 763
    functionName: progressOps
    functionSourceFile: /src/nccl/src/proxy.cc
    functionUses: 0
    functionsReached:
    - struct ncclProxyArgs*::progress
    - removeOp
    - TIME_CANCEL
    - TIME_STOP
    - TIME_START
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t progressOps(struct ncclProxyState* proxyState, struct
      ncclProxyProgressState* state, struct ncclProxyArgs* opStart, int* idle)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_trylock
      Src: /src/nccl/src/proxy.cc:777,1
    - Dst: pthread_mutex_lock
      Src: /src/nccl/src/proxy.cc:780,1
    - Dst: ncclProfilerStartProxyCtrlEvent
      Src: /src/nccl/src/proxy.cc:782,1
    - Dst: ncclProfilerRecordProxyCtrlEventState
      Src: /src/nccl/src/proxy.cc:783,1
    - Dst: pthread_cond_wait
      Src: /src/nccl/src/proxy.cc:784,1
    - Dst: ncclProfilerRecordProxyCtrlEventState
      Src: /src/nccl/src/proxy.cc:785,1
    - Dst: ncclProfilerStopProxyCtrlEvent
      Src: /src/nccl/src/proxy.cc:786,1
    - Dst: pthread_mutex_unlock
      Src: /src/nccl/src/proxy.cc:791,1
    - Dst: ncclProfilerStartProxyCtrlEvent
      Src: /src/nccl/src/proxy.cc:794,1
    - Dst: ncclProfilerRecordProxyCtrlEventState
      Src: /src/nccl/src/proxy.cc:795,1
    - Dst: TIME_START
      Src: /src/nccl/src/proxy.cc:796,1
    - Dst: ncclParamProxyAppendBatchSize
      Src: /src/nccl/src/proxy.cc:808,1
    - Dst: __builtin_prefetch
      Src: /src/nccl/src/proxy.cc:812,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:813,1
    - Dst: ProxyAppend
      Src: /src/nccl/src/proxy.cc:813,1
    - Dst: __sync_val_compare_and_swap
      Src: /src/nccl/src/proxy.cc:841,1
    - Dst: ncclProfilerRecordProxyCtrlEventState
      Src: /src/nccl/src/proxy.cc:850,1
    - Dst: ncclProfilerStopProxyCtrlEvent
      Src: /src/nccl/src/proxy.cc:851,1
    - Dst: TIME_STOP
      Src: /src/nccl/src/proxy.cc:852,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 69
    argCount: 2
    argNames:
    - proxyState
    - added
    argTypes:
    - struct ncclProxyState*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 854
      start: 767
    functionDepth: 3
    functionLinenumber: 767
    functionLinenumberEnd: 854
    functionName: ncclProxyGetPostedOps
    functionSourceFile: /src/nccl/src/proxy.cc
    functionUses: 0
    functionsReached:
    - pthread_mutex_trylock
    - pthread_cond_wait
    - ncclProfilerStopProxyCtrlEvent
    - pthread_mutex_unlock
    - pthread_mutex_lock
    - ncclParamProxyAppendBatchSize
    - TIME_START
    - TIME_STOP
    - ncclProfilerRecordProxyCtrlEventState
    - ncclProfilerStartProxyCtrlEvent
    - __sync_val_compare_and_swap
    - ProxyAppend
    - __builtin_prefetch
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProxyGetPostedOps(struct ncclProxyState* proxyState,
      int* added)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dumpProxyState
      Src: /src/nccl/src/proxy.cc:859,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - signal
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 860
      start: 858
    functionDepth: 3
    functionLinenumber: 858
    functionLinenumberEnd: 860
    functionName: ncclDumpProxyState
    functionSourceFile: /src/nccl/src/proxy.cc
    functionUses: 0
    functionsReached:
    - dumpProxyState
    linkageType: ''
    returnType: void
    signature: void ncclDumpProxyState(int signal)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ncclParamCreateThreadContext
      Src: /src/nccl/src/proxy.cc:868,1
    - Dst: CUPFN
      Src: /src/nccl/src/proxy.cc:870,1
    - Dst: CUPFN
      Src: /src/nccl/src/proxy.cc:870,1
    - Dst: CUPFN
      Src: /src/nccl/src/proxy.cc:870,1
    - Dst: WARN
      Src: /src/nccl/src/proxy.cc:871,1
    - Dst: CUPFN
      Src: /src/nccl/src/proxy.cc:879,1
    - Dst: cuCtxCreate
      Src: /src/nccl/src/proxy.cc:879,1
    - Dst: WARN
      Src: /src/nccl/src/proxy.cc:881,1
    - Dst: CUPFN
      Src: /src/nccl/src/proxy.cc:886,1
    - Dst: cuCtxSetCurrent
      Src: /src/nccl/src/proxy.cc:886,1
    - Dst: WARN
      Src: /src/nccl/src/proxy.cc:887,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 33
    argCount: 1
    argNames:
    - proxyState
    argTypes:
    - struct ncclProxyState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 896
      start: 863
    functionDepth: 1
    functionLinenumber: 863
    functionLinenumberEnd: 896
    functionName: setProxyThreadContext
    functionSourceFile: /src/nccl/src/proxy.cc
    functionUses: 0
    functionsReached:
    - WARN
    - CUPFN
    - cuCtxCreate
    - cuCtxSetCurrent
    - ncclParamCreateThreadContext
    linkageType: ''
    returnType: int
    signature: int setProxyThreadContext(struct ncclProxyState* proxyState)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: setProxyThreadContext
      Src: /src/nccl/src/proxy.cc:904,1
    - Dst: INFO
      Src: /src/nccl/src/proxy.cc:905,1
    - Dst: cudaSetDevice
      Src: /src/nccl/src/proxy.cc:906,1
    - Dst: WARN
      Src: /src/nccl/src/proxy.cc:907,1
    - Dst: INFO
      Src: /src/nccl/src/proxy.cc:911,1
    - Dst: sched_getcpu
      Src: /src/nccl/src/proxy.cc:911,1
    - Dst: ncclParamProxyDumpSignal
      Src: /src/nccl/src/proxy.cc:915,1
    - Dst: signal
      Src: /src/nccl/src/proxy.cc:916,1
    - Dst: snprintf
      Src: /src/nccl/src/proxy.cc:919,1
    - Dst: nvtxNameOsThreadA
      Src: /src/nccl/src/proxy.cc:920,1
    - Dst: syscall
      Src: /src/nccl/src/proxy.cc:920,1
    - Dst: progressOps
      Src: /src/nccl/src/proxy.cc:931,1
    - Dst: __atomic_store_n
      Src: /src/nccl/src/proxy.cc:933,1
    - Dst: INFO
      Src: /src/nccl/src/proxy.cc:934,1
    - Dst: ncclProfilerStartProxyCtrlEvent
      Src: /src/nccl/src/proxy.cc:939,1
    - Dst: ncclProfilerRecordProxyCtrlEventState
      Src: /src/nccl/src/proxy.cc:940,1
    - Dst: ncclProfilerRecordProxyCtrlEventState
      Src: /src/nccl/src/proxy.cc:941,1
    - Dst: ncclProfilerStopProxyCtrlEvent
      Src: /src/nccl/src/proxy.cc:942,1
    - Dst: ncclParamProgressAppendOpFreq
      Src: /src/nccl/src/proxy.cc:944,1
    - Dst: TIME_START
      Src: /src/nccl/src/proxy.cc:947,1
    - Dst: ncclProxyGetPostedOps
      Src: /src/nccl/src/proxy.cc:948,1
    - Dst: TIME_STOP
      Src: /src/nccl/src/proxy.cc:949,1
    - Dst: TIME_CANCEL
      Src: /src/nccl/src/proxy.cc:949,1
    - Dst: __atomic_store_n
      Src: /src/nccl/src/proxy.cc:951,1
    - Dst: INFO
      Src: /src/nccl/src/proxy.cc:952,1
    - Dst: sched_yield
      Src: /src/nccl/src/proxy.cc:955,1
    - Dst: __atomic_load_n
      Src: /src/nccl/src/proxy.cc:959,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 48
    argCount: 1
    argNames:
    - proxyState_
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 961
      start: 902
    functionDepth: 5
    functionLinenumber: 902
    functionLinenumberEnd: 961
    functionName: ncclProxyProgress
    functionSourceFile: /src/nccl/src/proxy.cc
    functionUses: 0
    functionsReached:
    - WARN
    - ncclProxyGetPostedOps
    - setProxyThreadContext
    - INFO
    - __atomic_load_n
    - ncclProfilerStopProxyCtrlEvent
    - progressOps
    - TIME_START
    - ncclParamProxyDumpSignal
    - signal
    - syscall
    - sched_getcpu
    - nvtxNameOsThreadA
    - ncclProfilerRecordProxyCtrlEventState
    - TIME_CANCEL
    - ncclParamProgressAppendOpFreq
    - cudaSetDevice
    - TIME_STOP
    - sched_yield
    - ncclProfilerStartProxyCtrlEvent
    - __atomic_store_n
    - snprintf
    linkageType: ''
    returnType: void
    signature: void * ncclProxyProgress(void *proxyState_)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TIME_START
      Src: /src/nccl/src/proxy.cc:966,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:970,1
    - Dst: ncclProxyPost
      Src: /src/nccl/src/proxy.cc:970,1
    - Dst: TIME_STOP
      Src: /src/nccl/src/proxy.cc:975,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 977
      start: 963
    functionDepth: 1
    functionLinenumber: 963
    functionLinenumberEnd: 977
    functionName: ncclProxyStart
    functionSourceFile: /src/nccl/src/proxy.cc
    functionUses: 0
    functionsReached:
    - ncclProxyPost
    - TIME_STOP
    - TIME_START
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProxyStart(struct ncclComm* comm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PTHREADCHECK
      Src: /src/nccl/src/proxy.cc:982,1
    - Dst: pthread_create
      Src: /src/nccl/src/proxy.cc:982,1
    - Dst: ncclSetThreadName
      Src: /src/nccl/src/proxy.cc:983,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - proxyState
    argTypes:
    - struct ncclProxyState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 986
      start: 979
    functionDepth: 1
    functionLinenumber: 979
    functionLinenumberEnd: 986
    functionName: ncclProxyProgressCreate
    functionSourceFile: /src/nccl/src/proxy.cc
    functionUses: 0
    functionsReached:
    - ncclSetThreadName
    - PTHREADCHECK
    - pthread_create
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProxyProgressCreate(struct ncclProxyState* proxyState)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/nccl/src/proxy.cc:993,1
    - Dst: pthread_cond_signal
      Src: /src/nccl/src/proxy.cc:995,1
    - Dst: pthread_mutex_unlock
      Src: /src/nccl/src/proxy.cc:996,1
    - Dst: PTHREADCHECK
      Src: /src/nccl/src/proxy.cc:997,1
    - Dst: pthread_join
      Src: /src/nccl/src/proxy.cc:997,1
    - Dst: free
      Src: /src/nccl/src/proxy.cc:1003,1
    - Dst: TIME_PRINT
      Src: /src/nccl/src/proxy.cc:1007,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - proxyState
    argTypes:
    - struct ncclProxyState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1009
      start: 988
    functionDepth: 1
    functionLinenumber: 988
    functionLinenumberEnd: 1009
    functionName: ncclProxyProgressDestroy
    functionSourceFile: /src/nccl/src/proxy.cc
    functionUses: 0
    functionsReached:
    - free
    - pthread_join
    - PTHREADCHECK
    - TIME_PRINT
    - pthread_mutex_unlock
    - pthread_mutex_lock
    - pthread_cond_signal
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProxyProgressDestroy(struct ncclProxyState* proxyState)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:1022,1
    - Dst: ncclRealloc
      Src: /src/nccl/src/proxy.cc:1022,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:1023,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/proxy.cc:1023,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - pool
    - id
    argTypes:
    - struct ncclProxyConnectionPool*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1030
      start: 1020
    functionDepth: 1
    functionLinenumber: 1020
    functionLinenumberEnd: 1030
    functionName: ncclProxyNewConnection
    functionSourceFile: /src/nccl/src/proxy.cc
    functionUses: 0
    functionsReached:
    - ncclCalloc
    - ncclRealloc
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProxyNewConnection(struct ncclProxyConnectionPool*
      pool, int* id)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 3
    argNames:
    - pool
    - id
    - conn
    argTypes:
    - struct ncclProxyConnectionPool*
    - int
    - struct ncclProxyConnection**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1038
      start: 1032
    functionDepth: 0
    functionLinenumber: 1032
    functionLinenumberEnd: 1038
    functionName: ncclProxyGetConnection
    functionSourceFile: /src/nccl/src/proxy.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProxyGetConnection(struct ncclProxyConnectionPool*
      pool, int id, struct ncclProxyConnection** conn)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:1043,1
    - Dst: send::proxyFree
      Src: /src/nccl/src/proxy.cc:1043,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:1047,1
    - Dst: recv::proxyFree
      Src: /src/nccl/src/proxy.cc:1047,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - connection
    - proxyState
    argTypes:
    - struct ncclProxyConnection*
    - struct ncclProxyState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1051
      start: 1040
    functionDepth: 1
    functionLinenumber: 1040
    functionLinenumberEnd: 1051
    functionName: proxyFree
    functionSourceFile: /src/nccl/src/proxy.cc
    functionUses: 1
    functionsReached:
    - send::proxyFree
    - NCCLCHECK
    - recv::proxyFree
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t proxyFree(struct ncclProxyConnection* connection, struct
      ncclProxyState* proxyState)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:1059,1
    - Dst: proxyFree
      Src: /src/nccl/src/proxy.cc:1059,1
    - Dst: free
      Src: /src/nccl/src/proxy.cc:1062,1
    - Dst: free
      Src: /src/nccl/src/proxy.cc:1064,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - pool
    - proxyState
    argTypes:
    - struct ncclProxyConnectionPool*
    - struct ncclProxyState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1066
      start: 1053
    functionDepth: 2
    functionLinenumber: 1053
    functionLinenumberEnd: 1066
    functionName: ncclProxyFreeConnections
    functionSourceFile: /src/nccl/src/proxy.cc
    functionUses: 0
    functionsReached:
    - proxyFree
    - NCCLCHECK
    - free
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProxyFreeConnections(struct ncclProxyConnectionPool*
      pool, struct ncclProxyState* proxyState)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:1096,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/proxy.cc:1096,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:1097,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/proxy.cc:1097,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:1098,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/proxy.cc:1098,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:1100,1
    - Dst: ncclSocketSetFd
      Src: /src/nccl/src/proxy.cc:1100,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:1106,1
    - Dst: ncclSocketReady
      Src: /src/nccl/src/proxy.cc:1106,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:1108,1
    - Dst: ncclSocketInit
      Src: /src/nccl/src/proxy.cc:1108,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:1109,1
    - Dst: ncclSocketConnect
      Src: /src/nccl/src/proxy.cc:1109,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:1122,1
    - Dst: ncclProxyCallBlocking
      Src: /src/nccl/src/proxy.cc:1122,1
    - Dst: strncpy
      Src: /src/nccl/src/proxy.cc:1129,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:1132,1
    - Dst: ncclShmOpen
      Src: /src/nccl/src/proxy.cc:1132,1
    - Dst: INFO
      Src: /src/nccl/src/proxy.cc:1137,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 37
    argCount: 5
    argNames:
    - comm
    - transport
    - send
    - proxyRank
    - proxyConn
    argTypes:
    - struct ncclComm*
    - int
    - int
    - int
    - struct ncclProxyConnector*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1139
      start: 1083
    functionDepth: 1
    functionLinenumber: 1083
    functionLinenumberEnd: 1139
    functionName: ncclProxyConnect
    functionSourceFile: /src/nccl/src/proxy.cc
    functionUses: 1
    functionsReached:
    - ncclProxyCallBlocking
    - INFO
    - ncclShmOpen
    - ncclSocketConnect
    - strncpy
    - ncclSocketReady
    - ncclCalloc
    - ncclSocketInit
    - ncclSocketSetFd
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProxyConnect(struct ncclComm* comm, int transport,
      int send, int proxyRank, struct ncclProxyConnector* proxyConn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:1146,1
    - Dst: getRandomData
      Src: /src/nccl/src/proxy.cc:1146,1
    - Dst: INFO
      Src: /src/nccl/src/proxy.cc:1153,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:1157,1
    - Dst: ncclIpcSocketInit
      Src: /src/nccl/src/proxy.cc:1157,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:1163,1
    - Dst: ncclIpcSocketGetFd
      Src: /src/nccl/src/proxy.cc:1163,1
    - Dst: memset
      Src: /src/nccl/src/proxy.cc:1167,1
    - Dst: assert
      Src: /src/nccl/src/proxy.cc:1174,1
    - Dst: memcpy
      Src: /src/nccl/src/proxy.cc:1175,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/proxy.cc:1176,1
    - Dst: ncclIpcSocketSendMsg
      Src: /src/nccl/src/proxy.cc:1176,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/proxy.cc:1177,1
    - Dst: ncclIpcSocketRecvMsg
      Src: /src/nccl/src/proxy.cc:1177,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/proxy.cc:1178,1
    - Dst: ncclIpcSocketClose
      Src: /src/nccl/src/proxy.cc:1178,1
    - Dst: INFO
      Src: /src/nccl/src/proxy.cc:1180,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:1186,1
    - Dst: ncclIpcSocketClose
      Src: /src/nccl/src/proxy.cc:1186,1
    - Dst: WARN
      Src: /src/nccl/src/proxy.cc:1187,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 9
    argNames:
    - comm
    - proxyConn
    - type
    - reqBuff
    - reqSize
    - respBuff
    - respSize
    - reqFd
    - respFd
    argTypes:
    - struct ncclComm*
    - struct ncclProxyConnector*
    - int
    - void*
    - int
    - void*
    - int
    - int*
    - int*
    assertStmts:
    - condition: (reqSize <= sizeof(hdr.data))
      pos:
        line_end: 1173
        line_start: 1173
        source_file: /src/nccl/src/proxy.cc
    constantsTouched: []
    func_position:
      end: 1189
      start: 1142
    functionDepth: 1
    functionLinenumber: 1142
    functionLinenumberEnd: 1189
    functionName: ncclProxyCallBlockingUDS
    functionSourceFile: /src/nccl/src/proxy.cc
    functionUses: 0
    functionsReached:
    - INFO
    - WARN
    - NCCLCHECKGOTO
    - memcpy
    - ncclIpcSocketRecvMsg
    - ncclIpcSocketInit
    - ncclIpcSocketSendMsg
    - ncclIpcSocketGetFd
    - ncclIpcSocketClose
    - assert
    - getRandomData
    - NCCLCHECK
    - memset
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProxyCallBlockingUDS(struct ncclComm* comm, struct
      ncclProxyConnector* proxyConn, int type, void* reqBuff, int reqSize, void* respBuff,
      int respSize, int* reqFd, int *respFd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/proxy.cc:1198,1
    - Dst: ncclProxyConnect
      Src: /src/nccl/src/proxy.cc:1198,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/proxy.cc:1200,1
    - Dst: ncclProxyCallBlockingUDS
      Src: /src/nccl/src/proxy.cc:1200,1
    - Dst: INFO
      Src: /src/nccl/src/proxy.cc:1203,1
    - Dst: WARN
      Src: /src/nccl/src/proxy.cc:1208,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - comm
    - proxyRank
    - handle
    - convertedFd
    argTypes:
    - struct ncclComm*
    - int
    - void*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1210
      start: 1193
    functionDepth: 2
    functionLinenumber: 1193
    functionLinenumberEnd: 1210
    functionName: ncclProxyClientGetFdBlocking
    functionSourceFile: /src/nccl/src/proxy.cc
    functionUses: 0
    functionsReached:
    - INFO
    - WARN
    - NCCLCHECKGOTO
    - ncclProxyConnect
    - ncclProxyCallBlockingUDS
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProxyClientGetFdBlocking(struct ncclComm* comm, int
      proxyRank, void *handle, int* convertedFd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/proxy.cc:1214,1
    - Dst: ncclProxyCallBlockingUDS
      Src: /src/nccl/src/proxy.cc:1214,1
    - Dst: INFO
      Src: /src/nccl/src/proxy.cc:1217,1
    - Dst: WARN
      Src: /src/nccl/src/proxy.cc:1220,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 4
    argNames:
    - comm
    - proxyConn
    - localFd
    - rmtFd
    argTypes:
    - struct ncclComm*
    - struct ncclProxyConnector*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1222
      start: 1212
    functionDepth: 2
    functionLinenumber: 1212
    functionLinenumberEnd: 1222
    functionName: ncclProxyClientQueryFdBlocking
    functionSourceFile: /src/nccl/src/proxy.cc
    functionUses: 0
    functionsReached:
    - INFO
    - WARN
    - ncclProxyCallBlockingUDS
    - NCCLCHECKGOTO
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProxyClientQueryFdBlocking(struct ncclComm* comm,
      struct ncclProxyConnector* proxyConn, int localFd, int* rmtFd)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/proxy.cc:1234,1
    - Dst: ncclSocketSend
      Src: /src/nccl/src/proxy.cc:1234,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/proxy.cc:1235,1
    - Dst: ncclSocketSend
      Src: /src/nccl/src/proxy.cc:1235,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/proxy.cc:1236,1
    - Dst: ncclSocketSend
      Src: /src/nccl/src/proxy.cc:1236,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/proxy.cc:1237,1
    - Dst: ncclSocketSend
      Src: /src/nccl/src/proxy.cc:1237,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/proxy.cc:1238,1
    - Dst: ncclSocketSend
      Src: /src/nccl/src/proxy.cc:1238,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/proxy.cc:1241,1
    - Dst: ncclSocketSend
      Src: /src/nccl/src/proxy.cc:1241,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:1244,1
    - Dst: expectedProxyResponseEnqueue
      Src: /src/nccl/src/proxy.cc:1244,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 7
    argNames:
    - comm
    - proxyConn
    - type
    - reqBuff
    - reqSize
    - respSize
    - opId
    argTypes:
    - struct ncclComm*
    - struct ncclProxyConnector*
    - int
    - void*
    - int
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1249
      start: 1225
    functionDepth: 2
    functionLinenumber: 1225
    functionLinenumberEnd: 1249
    functionName: ncclProxyCallAsync
    functionSourceFile: /src/nccl/src/proxy.cc
    functionUses: 0
    functionsReached:
    - expectedProxyResponseEnqueue
    - NCCLCHECKGOTO
    - ncclSocketSend
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProxyCallAsync(struct ncclComm* comm, struct ncclProxyConnector*
      proxyConn, int type, void* reqBuff, int reqSize, int respSize, void* opId)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_load_n
      Src: /src/nccl/src/proxy.cc:1254,1
    - Dst: WARN
      Src: /src/nccl/src/proxy.cc:1255,1
    - Dst: expectedProxyResponseDequeue
      Src: /src/nccl/src/proxy.cc:1262,1
    - Dst: ncclSocketProgress
      Src: /src/nccl/src/proxy.cc:1268,1
    - Dst: WARN
      Src: /src/nccl/src/proxy.cc:1269,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:1278,1
    - Dst: ncclSocketProgress
      Src: /src/nccl/src/proxy.cc:1278,1
    - Dst: INFO
      Src: /src/nccl/src/proxy.cc:1281,1
    - Dst: malloc
      Src: /src/nccl/src/proxy.cc:1287,1
    - Dst: assert
      Src: /src/nccl/src/proxy.cc:1289,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:1290,1
    - Dst: ncclSocketRecv
      Src: /src/nccl/src/proxy.cc:1290,1
    - Dst: INFO
      Src: /src/nccl/src/proxy.cc:1294,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:1295,1
    - Dst: expectedProxyResponseRemove
      Src: /src/nccl/src/proxy.cc:1295,1
    - Dst: INFO
      Src: /src/nccl/src/proxy.cc:1298,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:1300,1
    - Dst: expectedProxyResponseStore
      Src: /src/nccl/src/proxy.cc:1300,1
    - Dst: INFO
      Src: /src/nccl/src/proxy.cc:1304,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 40
    argCount: 4
    argNames:
    - comm
    - proxyConn
    - respBuff
    - opId
    argTypes:
    - struct ncclComm*
    - struct ncclProxyConnector*
    - void*
    - void*
    assertStmts:
    - condition: (respBuff != NULL)
      pos:
        line_end: 1288
        line_start: 1288
        source_file: /src/nccl/src/proxy.cc
    constantsTouched: []
    func_position:
      end: 1308
      start: 1251
    functionDepth: 2
    functionLinenumber: 1251
    functionLinenumberEnd: 1308
    functionName: ncclPollProxyResponse
    functionSourceFile: /src/nccl/src/proxy.cc
    functionUses: 0
    functionsReached:
    - __atomic_load_n
    - WARN
    - INFO
    - malloc
    - expectedProxyResponseDequeue
    - expectedProxyResponseRemove
    - ncclSocketRecv
    - assert
    - ncclSocketProgress
    - expectedProxyResponseStore
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclPollProxyResponse(struct ncclComm* comm, struct ncclProxyConnector*
      proxyConn, void* respBuff, void* opId)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/nccl/src/proxy.cc:1313,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/proxy.cc:1315,1
    - Dst: ncclProxyCallAsync
      Src: /src/nccl/src/proxy.cc:1315,1
    - Dst: ncclPollProxyResponse
      Src: /src/nccl/src/proxy.cc:1318,1
    - Dst: free
      Src: /src/nccl/src/proxy.cc:1322,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 7
    argNames:
    - comm
    - proxyConn
    - type
    - reqBuff
    - reqSize
    - respBuff
    - respSize
    argTypes:
    - struct ncclComm*
    - struct ncclProxyConnector*
    - int
    - void*
    - int
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1326
      start: 1310
    functionDepth: 3
    functionLinenumber: 1310
    functionLinenumberEnd: 1326
    functionName: ncclProxyCallBlocking
    functionSourceFile: /src/nccl/src/proxy.cc
    functionUses: 2
    functionsReached:
    - malloc
    - NCCLCHECKGOTO
    - free
    - ncclPollProxyResponse
    - ncclProxyCallAsync
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProxyCallBlocking(struct ncclComm* comm, struct ncclProxyConnector*
      proxyConn, int type, void* reqBuff, int reqSize, void* respBuff, int respSize)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:1336,1
    - Dst: ncclShmOpen
      Src: /src/nccl/src/proxy.cc:1336,1
    - Dst: pthread_mutexattr_init
      Src: /src/nccl/src/proxy.cc:1348,1
    - Dst: pthread_mutexattr_setpshared
      Src: /src/nccl/src/proxy.cc:1349,1
    - Dst: pthread_mutex_init
      Src: /src/nccl/src/proxy.cc:1350,1
    - Dst: pthread_mutexattr_destroy
      Src: /src/nccl/src/proxy.cc:1351,1
    - Dst: pthread_condattr_init
      Src: /src/nccl/src/proxy.cc:1353,1
    - Dst: pthread_condattr_setpshared
      Src: /src/nccl/src/proxy.cc:1354,1
    - Dst: pthread_cond_init
      Src: /src/nccl/src/proxy.cc:1355,1
    - Dst: pthread_condattr_destroy
      Src: /src/nccl/src/proxy.cc:1356,1
    - Dst: memcpy
      Src: /src/nccl/src/proxy.cc:1359,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:1362,1
    - Dst: ncclProxyProgressCreate
      Src: /src/nccl/src/proxy.cc:1362,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 24
    argCount: 1
    argNames:
    - proxyState
    argTypes:
    - struct ncclProxyState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1365
      start: 1328
    functionDepth: 2
    functionLinenumber: 1328
    functionLinenumberEnd: 1365
    functionName: proxyProgressInit
    functionSourceFile: /src/nccl/src/proxy.cc
    functionUses: 0
    functionsReached:
    - ncclShmOpen
    - pthread_mutexattr_setpshared
    - pthread_condattr_setpshared
    - pthread_condattr_destroy
    - memcpy
    - pthread_cond_init
    - pthread_mutex_init
    - pthread_condattr_init
    - pthread_mutexattr_destroy
    - pthread_mutexattr_init
    - NCCLCHECK
    - ncclProxyProgressCreate
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t proxyProgressInit(struct ncclProxyState* proxyState)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncclShmClose
      Src: /src/nccl/src/proxy.cc:1369,1
    - Dst: WARN
      Src: /src/nccl/src/proxy.cc:1370,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - proxyState
    argTypes:
    - struct ncclProxyState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1372
      start: 1367
    functionDepth: 1
    functionLinenumber: 1367
    functionLinenumberEnd: 1372
    functionName: proxyOpsFree
    functionSourceFile: /src/nccl/src/proxy.cc
    functionUses: 0
    functionsReached:
    - WARN
    - ncclShmClose
    linkageType: ''
    returnType: void
    signature: void proxyOpsFree(struct ncclProxyState* proxyState)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ncclShmUnlink
      Src: /src/nccl/src/proxy.cc:1378,1
    - Dst: WARN
      Src: /src/nccl/src/proxy.cc:1379,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1382
      start: 1374
    functionDepth: 1
    functionLinenumber: 1374
    functionLinenumberEnd: 1382
    functionName: ncclProxyShmUnlink
    functionSourceFile: /src/nccl/src/proxy.cc
    functionUses: 1
    functionsReached:
    - WARN
    - ncclShmUnlink
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProxyShmUnlink(struct ncclComm* comm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:1386,1
    - Dst: ncclProxyNewConnection
      Src: /src/nccl/src/proxy.cc:1386,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:1387,1
    - Dst: ncclProxyGetConnection
      Src: /src/nccl/src/proxy.cc:1387,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:1402,1
    - Dst: proxyProgressInit
      Src: /src/nccl/src/proxy.cc:1402,1
    - Dst: strncpy
      Src: /src/nccl/src/proxy.cc:1404,1
    - Dst: INFO
      Src: /src/nccl/src/proxy.cc:1406,1
    - Dst: __atomic_store_n
      Src: /src/nccl/src/proxy.cc:1407,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 6
    argNames:
    - peer
    - connectionPool
    - proxyState
    - req
    - resp
    - connection
    argTypes:
    - struct ncclProxyLocalPeer*
    - struct ncclProxyConnectionPool*
    - struct ncclProxyState*
    - ncclProxyInitReq*
    - ncclProxyInitResp*
    - struct ncclProxyConnection**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1409
      start: 1384
    functionDepth: 3
    functionLinenumber: 1384
    functionLinenumberEnd: 1409
    functionName: proxyConnInit
    functionSourceFile: /src/nccl/src/proxy.cc
    functionUses: 0
    functionsReached:
    - INFO
    - ncclProxyNewConnection
    - strncpy
    - NCCLCHECK
    - proxyProgressInit
    - __atomic_store_n
    - ncclProxyGetConnection
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t proxyConnInit(struct ncclProxyLocalPeer* peer, struct
      ncclProxyConnectionPool* connectionPool, struct ncclProxyState* proxyState,
      ncclProxyInitReq* req, ncclProxyInitResp* resp, struct ncclProxyConnection**
      connection)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/proxy.cc:1417,1
    - Dst: ncclIpcSocketInit
      Src: /src/nccl/src/proxy.cc:1417,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/proxy.cc:1418,1
    - Dst: ncclIpcSocketSendMsg
      Src: /src/nccl/src/proxy.cc:1418,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:1420,1
    - Dst: ncclIpcSocketClose
      Src: /src/nccl/src/proxy.cc:1420,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 4
    argNames:
    - proxyState
    - rank
    - opId
    - rmtFd
    argTypes:
    - struct ncclProxyState*
    - int
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1425
      start: 1411
    functionDepth: 1
    functionLinenumber: 1411
    functionLinenumberEnd: 1425
    functionName: proxyQueryFd
    functionSourceFile: /src/nccl/src/proxy.cc
    functionUses: 0
    functionsReached:
    - NCCLCHECKGOTO
    - ncclIpcSocketInit
    - ncclIpcSocketSendMsg
    - ncclIpcSocketClose
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t proxyQueryFd(struct ncclProxyState* proxyState, int rank,
      void *opId, int rmtFd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INFO
      Src: /src/nccl/src/proxy.cc:1434,1
    - Dst: CUCHECK
      Src: /src/nccl/src/proxy.cc:1439,1
    - Dst: cuMemExportToShareableHandle
      Src: /src/nccl/src/proxy.cc:1439,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/proxy.cc:1441,1
    - Dst: ncclIpcSocketInit
      Src: /src/nccl/src/proxy.cc:1441,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/proxy.cc:1442,1
    - Dst: ncclIpcSocketSendFd
      Src: /src/nccl/src/proxy.cc:1442,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:1444,1
    - Dst: ncclIpcSocketClose
      Src: /src/nccl/src/proxy.cc:1444,1
    - Dst: SYSCHECK
      Src: /src/nccl/src/proxy.cc:1446,1
    - Dst: close
      Src: /src/nccl/src/proxy.cc:1446,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 4
    argNames:
    - proxyState
    - rank
    - opId
    - handle
    argTypes:
    - struct ncclProxyState*
    - int
    - void*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1451
      start: 1428
    functionDepth: 1
    functionLinenumber: 1428
    functionLinenumberEnd: 1451
    functionName: proxyGetFd
    functionSourceFile: /src/nccl/src/proxy.cc
    functionUses: 0
    functionsReached:
    - INFO
    - NCCLCHECKGOTO
    - cuMemExportToShareableHandle
    - ncclIpcSocketInit
    - ncclIpcSocketClose
    - SYSCHECK
    - close
    - ncclIpcSocketSendFd
    - CUCHECK
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t proxyGetFd(struct ncclProxyState* proxyState, int rank,
      void *opId, uint64_t handle)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: TRACE
      Src: /src/nccl/src/proxy.cc:1457,1
    - Dst: struct ncclProxyAsyncOp*::connection::tcomm::proxySetup
      Src: /src/nccl/src/proxy.cc:1458,1
    - Dst: TRACE
      Src: /src/nccl/src/proxy.cc:1460,1
    - Dst: struct ncclProxyAsyncOp*::connection::tcomm::proxyConnect
      Src: /src/nccl/src/proxy.cc:1461,1
    - Dst: TRACE
      Src: /src/nccl/src/proxy.cc:1464,1
    - Dst: struct ncclProxyAsyncOp*::connection::tcomm::proxySharedInit
      Src: /src/nccl/src/proxy.cc:1465,1
    - Dst: __atomic_store_n
      Src: /src/nccl/src/proxy.cc:1466,1
    - Dst: TRACE
      Src: /src/nccl/src/proxy.cc:1469,1
    - Dst: proxyConnInit
      Src: /src/nccl/src/proxy.cc:1470,1
    - Dst: TRACE
      Src: /src/nccl/src/proxy.cc:1472,1
    - Dst: struct ncclProxyAsyncOp*::connection::tcomm::proxyRegister
      Src: /src/nccl/src/proxy.cc:1473,1
    - Dst: TRACE
      Src: /src/nccl/src/proxy.cc:1475,1
    - Dst: struct ncclProxyAsyncOp*::connection::tcomm::proxyDeregister
      Src: /src/nccl/src/proxy.cc:1476,1
    - Dst: INFO
      Src: /src/nccl/src/proxy.cc:1480,1
    - Dst: __atomic_store_n
      Src: /src/nccl/src/proxy.cc:1482,1
    - Dst: __atomic_store_n
      Src: /src/nccl/src/proxy.cc:1484,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:1493,1
    - Dst: ncclSocketSend
      Src: /src/nccl/src/proxy.cc:1493,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:1497,1
    - Dst: ncclSocketSend
      Src: /src/nccl/src/proxy.cc:1497,1
    - Dst: asyncProxyOpDequeue
      Src: /src/nccl/src/proxy.cc:1500,1
    - Dst: __atomic_load_n
      Src: /src/nccl/src/proxy.cc:1504,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 46
    argCount: 5
    argNames:
    - op
    - proxyState
    - asyncOpCount
    - peer
    - connectionPool
    argTypes:
    - struct ncclProxyAsyncOp*
    - struct ncclProxyState*
    - int*
    - struct ncclProxyLocalPeer*
    - struct ncclProxyConnectionPool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1509
      start: 1453
    functionDepth: 4
    functionLinenumber: 1453
    functionLinenumberEnd: 1509
    functionName: proxyProgressAsync
    functionSourceFile: /src/nccl/src/proxy.cc
    functionUses: 0
    functionsReached:
    - INFO
    - TRACE
    - __atomic_load_n
    - ncclSocketSend
    - struct ncclProxyAsyncOp*::connection::tcomm::proxySetup
    - struct ncclProxyAsyncOp*::connection::tcomm::proxyRegister
    - struct ncclProxyAsyncOp*::connection::tcomm::proxyDeregister
    - proxyConnInit
    - struct ncclProxyAsyncOp*::connection::tcomm::proxyConnect
    - struct ncclProxyAsyncOp*::connection::tcomm::proxySharedInit
    - asyncProxyOpDequeue
    - __atomic_store_n
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t proxyProgressAsync(struct ncclProxyAsyncOp* op, struct
      ncclProxyState* proxyState, int* asyncOpCount, struct ncclProxyLocalPeer* peer,
      struct ncclProxyConnectionPool* connectionPool)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:1515,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/proxy.cc:1515,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/proxy.cc:1518,1
    - Dst: ncclSocketRecv
      Src: /src/nccl/src/proxy.cc:1518,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/proxy.cc:1520,1
    - Dst: ncclSocketRecv
      Src: /src/nccl/src/proxy.cc:1520,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/proxy.cc:1521,1
    - Dst: ncclSocketRecv
      Src: /src/nccl/src/proxy.cc:1521,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/proxy.cc:1523,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/proxy.cc:1523,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/proxy.cc:1524,1
    - Dst: ncclSocketRecv
      Src: /src/nccl/src/proxy.cc:1524,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/proxy.cc:1528,1
    - Dst: ncclSocketRecv
      Src: /src/nccl/src/proxy.cc:1528,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/proxy.cc:1530,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/proxy.cc:1530,1
    - Dst: asyncProxyOpEnqueue
      Src: /src/nccl/src/proxy.cc:1532,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:1535,1
    - Dst: proxyProgressAsync
      Src: /src/nccl/src/proxy.cc:1535,1
    - Dst: free
      Src: /src/nccl/src/proxy.cc:1539,1
    - Dst: free
      Src: /src/nccl/src/proxy.cc:1540,1
    - Dst: free
      Src: /src/nccl/src/proxy.cc:1541,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 5
    argNames:
    - type
    - peer
    - connectionPool
    - proxyState
    - asyncOpCount
    argTypes:
    - int
    - struct ncclProxyLocalPeer*
    - struct ncclProxyConnectionPool*
    - struct ncclProxyState*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1543
      start: 1511
    functionDepth: 5
    functionLinenumber: 1511
    functionLinenumberEnd: 1543
    functionName: proxyServiceInitOp
    functionSourceFile: /src/nccl/src/proxy.cc
    functionUses: 0
    functionsReached:
    - asyncProxyOpEnqueue
    - proxyProgressAsync
    - NCCLCHECKGOTO
    - free
    - NCCLCHECK
    - ncclCalloc
    - ncclSocketRecv
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t proxyServiceInitOp(int type, struct ncclProxyLocalPeer*
      peer, struct ncclProxyConnectionPool* connectionPool, struct ncclProxyState*
      proxyState, int* asyncOpCount)
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - type
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1560
      start: 1547
    functionDepth: 0
    functionLinenumber: 1547
    functionLinenumberEnd: 1560
    functionName: proxyMatchOpType
    functionSourceFile: /src/nccl/src/proxy.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool proxyMatchOpType(int type)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: setProxyThreadContext
      Src: /src/nccl/src/proxy.cc:1571,1
    - Dst: INFO
      Src: /src/nccl/src/proxy.cc:1572,1
    - Dst: cudaSetDevice
      Src: /src/nccl/src/proxy.cc:1573,1
    - Dst: WARN
      Src: /src/nccl/src/proxy.cc:1574,1
    - Dst: INFO
      Src: /src/nccl/src/proxy.cc:1578,1
    - Dst: sched_getcpu
      Src: /src/nccl/src/proxy.cc:1578,1
    - Dst: memset
      Src: /src/nccl/src/proxy.cc:1588,1
    - Dst: ncclSocketGetFd
      Src: /src/nccl/src/proxy.cc:1593,1
    - Dst: WARN
      Src: /src/nccl/src/proxy.cc:1594,1
    - Dst: __atomic_load_n
      Src: /src/nccl/src/proxy.cc:1607,1
    - Dst: poll
      Src: /src/nccl/src/proxy.cc:1612,1
    - Dst: WARN
      Src: /src/nccl/src/proxy.cc:1615,1
    - Dst: strerror
      Src: /src/nccl/src/proxy.cc:1615,1
    - Dst: WARN
      Src: /src/nccl/src/proxy.cc:1623,1
    - Dst: ncclSocketInit
      Src: /src/nccl/src/proxy.cc:1627,1
    - Dst: WARN
      Src: /src/nccl/src/proxy.cc:1628,1
    - Dst: ncclSocketAccept
      Src: /src/nccl/src/proxy.cc:1631,1
    - Dst: WARN
      Src: /src/nccl/src/proxy.cc:1632,1
    - Dst: strerror
      Src: /src/nccl/src/proxy.cc:1632,1
    - Dst: ncclSocketGetFd
      Src: /src/nccl/src/proxy.cc:1634,1
    - Dst: WARN
      Src: /src/nccl/src/proxy.cc:1635,1
    - Dst: ncclCuMemEnable
      Src: /src/nccl/src/proxy.cc:1651,1
    - Dst: ncclCuMemHostEnable
      Src: /src/nccl/src/proxy.cc:1651,1
    - Dst: __atomic_load_n
      Src: /src/nccl/src/proxy.cc:1651,1
    - Dst: proxyProgressAsync
      Src: /src/nccl/src/proxy.cc:1659,1
    - Dst: WARN
      Src: /src/nccl/src/proxy.cc:1665,1
    - Dst: ncclSocketTryRecv
      Src: /src/nccl/src/proxy.cc:1673,1
    - Dst: __atomic_load_n
      Src: /src/nccl/src/proxy.cc:1675,1
    - Dst: WARN
      Src: /src/nccl/src/proxy.cc:1676,1
    - Dst: INFO
      Src: /src/nccl/src/proxy.cc:1679,1
    - Dst: proxyMatchOpType
      Src: /src/nccl/src/proxy.cc:1687,1
    - Dst: proxyServiceInitOp
      Src: /src/nccl/src/proxy.cc:1688,1
    - Dst: WARN
      Src: /src/nccl/src/proxy.cc:1690,1
    - Dst: INFO
      Src: /src/nccl/src/proxy.cc:1694,1
    - Dst: __atomic_load_n
      Src: /src/nccl/src/proxy.cc:1700,1
    - Dst: WARN
      Src: /src/nccl/src/proxy.cc:1701,1
    - Dst: ncclSocketClose
      Src: /src/nccl/src/proxy.cc:1706,1
    - Dst: asyncProxyOpDequeue
      Src: /src/nccl/src/proxy.cc:1709,1
    - Dst: ncclProxyProgressDestroy
      Src: /src/nccl/src/proxy.cc:1719,1
    - Dst: WARN
      Src: /src/nccl/src/proxy.cc:1720,1
    - Dst: ncclSocketClose
      Src: /src/nccl/src/proxy.cc:1723,1
    - Dst: ncclProxyFreeConnections
      Src: /src/nccl/src/proxy.cc:1725,1
    - Dst: ncclSocketClose
      Src: /src/nccl/src/proxy.cc:1726,1
    - Dst: free
      Src: /src/nccl/src/proxy.cc:1727,1
    - Dst: proxyOpsFree
      Src: /src/nccl/src/proxy.cc:1728,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 130
    argCount: 1
    argNames:
    - _args
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1730
      start: 1568
    functionDepth: 6
    functionLinenumber: 1568
    functionLinenumberEnd: 1730
    functionName: ncclProxyService
    functionSourceFile: /src/nccl/src/proxy.cc
    functionUses: 0
    functionsReached:
    - WARN
    - ncclProxyFreeConnections
    - ncclSocketInit
    - setProxyThreadContext
    - ncclProxyProgressDestroy
    - INFO
    - __atomic_load_n
    - proxyMatchOpType
    - ncclCuMemHostEnable
    - ncclSocketClose
    - ncclSocketTryRecv
    - memset
    - poll
    - sched_getcpu
    - ncclCuMemEnable
    - proxyServiceInitOp
    - asyncProxyOpDequeue
    - proxyProgressAsync
    - ncclSocketAccept
    - free
    - proxyOpsFree
    - cudaSetDevice
    - ncclSocketGetFd
    - strerror
    linkageType: ''
    returnType: void
    signature: void * ncclProxyService(void* _args)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:1738,1
    - Dst: ncclIpcSocketRecvMsg
      Src: /src/nccl/src/proxy.cc:1738,1
    - Dst: INFO
      Src: /src/nccl/src/proxy.cc:1744,1
    - Dst: close
      Src: /src/nccl/src/proxy.cc:1745,1
    - Dst: proxyGetFd
      Src: /src/nccl/src/proxy.cc:1746,1
    - Dst: INFO
      Src: /src/nccl/src/proxy.cc:1751,1
    - Dst: proxyQueryFd
      Src: /src/nccl/src/proxy.cc:1752,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - proxyState
    - reqFd
    argTypes:
    - struct ncclProxyState*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1756
      start: 1734
    functionDepth: 2
    functionLinenumber: 1734
    functionLinenumberEnd: 1756
    functionName: proxyUDSRecvReq
    functionSourceFile: /src/nccl/src/proxy.cc
    functionUses: 0
    functionsReached:
    - INFO
    - proxyGetFd
    - close
    - proxyQueryFd
    - ncclIpcSocketRecvMsg
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t proxyUDSRecvReq(struct ncclProxyState* proxyState, int
      reqFd)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: setProxyThreadContext
      Src: /src/nccl/src/proxy.cc:1763,1
    - Dst: INFO
      Src: /src/nccl/src/proxy.cc:1764,1
    - Dst: cudaSetDevice
      Src: /src/nccl/src/proxy.cc:1765,1
    - Dst: WARN
      Src: /src/nccl/src/proxy.cc:1766,1
    - Dst: INFO
      Src: /src/nccl/src/proxy.cc:1769,1
    - Dst: sched_getcpu
      Src: /src/nccl/src/proxy.cc:1769,1
    - Dst: ncclIpcSocketGetFd
      Src: /src/nccl/src/proxy.cc:1771,1
    - Dst: WARN
      Src: /src/nccl/src/proxy.cc:1772,1
    - Dst: poll
      Src: /src/nccl/src/proxy.cc:1781,1
    - Dst: WARN
      Src: /src/nccl/src/proxy.cc:1784,1
    - Dst: strerror
      Src: /src/nccl/src/proxy.cc:1784,1
    - Dst: __atomic_load_n
      Src: /src/nccl/src/proxy.cc:1789,1
    - Dst: __atomic_load_n
      Src: /src/nccl/src/proxy.cc:1789,1
    - Dst: proxyUDSRecvReq
      Src: /src/nccl/src/proxy.cc:1793,1
    - Dst: ncclIpcSocketClose
      Src: /src/nccl/src/proxy.cc:1797,1
    - Dst: INFO
      Src: /src/nccl/src/proxy.cc:1798,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 1
    argNames:
    - _args
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1800
      start: 1759
    functionDepth: 3
    functionLinenumber: 1759
    functionLinenumberEnd: 1800
    functionName: ncclProxyServiceUDS
    functionSourceFile: /src/nccl/src/proxy.cc
    functionUses: 0
    functionsReached:
    - INFO
    - WARN
    - __atomic_load_n
    - proxyUDSRecvReq
    - cudaSetDevice
    - ncclIpcSocketGetFd
    - sched_getcpu
    - poll
    - ncclIpcSocketClose
    - setProxyThreadContext
    - strerror
    linkageType: ''
    returnType: void
    signature: void * ncclProxyServiceUDS(void* _args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/src/proxy.cc:1803,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:1804,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/proxy.cc:1804,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:1812,1
    - Dst: ncclIpcSocketInit
      Src: /src/nccl/src/proxy.cc:1812,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 4
    argNames:
    - comm
    - sock
    - peerAddresses
    - peerAddressesUDS
    argTypes:
    - struct ncclComm*
    - struct ncclSocket*
    - union ncclSocketAddress*
    - uint64_t*
    assertStmts:
    - condition: (comm->sharedRes->proxyState == NULL)
      pos:
        line_end: 1802
        line_start: 1802
        source_file: /src/nccl/src/proxy.cc
    constantsTouched: []
    func_position:
      end: 1814
      start: 1802
    functionDepth: 1
    functionLinenumber: 1802
    functionLinenumberEnd: 1814
    functionName: ncclProxyInit
    functionSourceFile: /src/nccl/src/proxy.cc
    functionUses: 0
    functionsReached:
    - assert
    - ncclCalloc
    - ncclIpcSocketInit
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProxyInit(struct ncclComm* comm, struct ncclSocket*
      sock, union ncclSocketAddress* peerAddresses, uint64_t *peerAddressesUDS)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nccl/src/proxy.cc:1836,1
    - Dst: PTHREADCHECK
      Src: /src/nccl/src/proxy.cc:1838,1
    - Dst: pthread_create
      Src: /src/nccl/src/proxy.cc:1838,1
    - Dst: ncclSetThreadName
      Src: /src/nccl/src/proxy.cc:1839,1
    - Dst: INFO
      Src: /src/nccl/src/proxy.cc:1842,1
    - Dst: PTHREADCHECK
      Src: /src/nccl/src/proxy.cc:1843,1
    - Dst: pthread_create
      Src: /src/nccl/src/proxy.cc:1843,1
    - Dst: ncclSetThreadName
      Src: /src/nccl/src/proxy.cc:1844,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1847
      start: 1816
    functionDepth: 1
    functionLinenumber: 1816
    functionLinenumberEnd: 1847
    functionName: ncclProxyCreate
    functionSourceFile: /src/nccl/src/proxy.cc
    functionUses: 1
    functionsReached:
    - INFO
    - ncclSetThreadName
    - memcpy
    - PTHREADCHECK
    - pthread_create
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProxyCreate(struct ncclComm* comm)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ncclAtomicRefCountDecrement
      Src: /src/nccl/src/proxy.cc:1853,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:1858,1
    - Dst: ncclSocketInit
      Src: /src/nccl/src/proxy.cc:1858,1
    - Dst: ncclSocketConnect
      Src: /src/nccl/src/proxy.cc:1859,1
    - Dst: ncclSocketSend
      Src: /src/nccl/src/proxy.cc:1860,1
    - Dst: ncclSocketClose
      Src: /src/nccl/src/proxy.cc:1862,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:1869,1
    - Dst: ncclSocketGetFd
      Src: /src/nccl/src/proxy.cc:1869,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:1872,1
    - Dst: ncclShmClose
      Src: /src/nccl/src/proxy.cc:1872,1
    - Dst: ncclCuMemEnable
      Src: /src/nccl/src/proxy.cc:1875,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/proxy.cc:1876,1
    - Dst: cudaIpcCloseMemHandle
      Src: /src/nccl/src/proxy.cc:1876,1
    - Dst: ncclSocketSend
      Src: /src/nccl/src/proxy.cc:1880,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/proxy.cc:1881,1
    - Dst: ncclSocketClose
      Src: /src/nccl/src/proxy.cc:1881,1
    - Dst: __atomic_store_n
      Src: /src/nccl/src/proxy.cc:1886,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1891
      start: 1849
    functionDepth: 1
    functionLinenumber: 1849
    functionLinenumberEnd: 1891
    functionName: ncclProxyStop
    functionSourceFile: /src/nccl/src/proxy.cc
    functionUses: 1
    functionsReached:
    - ncclAtomicRefCountDecrement
    - ncclSocketSend
    - ncclSocketConnect
    - CUDACHECK
    - cudaIpcCloseMemHandle
    - ncclShmClose
    - ncclSocketClose
    - ncclSocketGetFd
    - ncclSocketInit
    - ncclCuMemEnable
    - __atomic_store_n
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProxyStop(struct ncclComm* comm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/src/proxy.cc:1897,1
    - Dst: free
      Src: /src/nccl/src/proxy.cc:1898,1
    - Dst: free
      Src: /src/nccl/src/proxy.cc:1899,1
    - Dst: free
      Src: /src/nccl/src/proxy.cc:1900,1
    - Dst: free
      Src: /src/nccl/src/proxy.cc:1901,1
    - Dst: free
      Src: /src/nccl/src/proxy.cc:1902,1
    - Dst: expectedProxyResponseFree
      Src: /src/nccl/src/proxy.cc:1903,1
    - Dst: free
      Src: /src/nccl/src/proxy.cc:1904,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts:
    - condition: (sharedProxyState->refCount == 0)
      pos:
        line_end: 1896
        line_start: 1896
        source_file: /src/nccl/src/proxy.cc
    constantsTouched: []
    func_position:
      end: 1907
      start: 1893
    functionDepth: 1
    functionLinenumber: 1893
    functionLinenumberEnd: 1907
    functionName: ncclProxyDestroy
    functionSourceFile: /src/nccl/src/proxy.cc
    functionUses: 1
    functionsReached:
    - expectedProxyResponseFree
    - assert
    - free
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProxyDestroy(struct ncclComm* comm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 14
    functionName: cudaStreamGetCaptureInfo_v2
    functionSourceFile: /src/nccl/src/enhcompat.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: cudaError_t
    signature: cudaError_t cudaStreamGetCaptureInfo_v2(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 17
    functionName: cudaUserObjectCreate
    functionSourceFile: /src/nccl/src/enhcompat.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: cudaError_t
    signature: cudaError_t cudaUserObjectCreate(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 20
    functionName: cudaGraphRetainUserObject
    functionSourceFile: /src/nccl/src/enhcompat.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: cudaError_t
    signature: cudaError_t cudaGraphRetainUserObject(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 23
    functionName: cudaStreamUpdateCaptureDependencies
    functionSourceFile: /src/nccl/src/enhcompat.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: cudaError_t
    signature: cudaError_t cudaStreamUpdateCaptureDependencies(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 26
    functionName: cudaGetDriverEntryPoint
    functionSourceFile: /src/nccl/src/enhcompat.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: cudaError_t
    signature: cudaError_t cudaGetDriverEntryPoint(...)
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 1
    argNames:
    - fn
    argTypes:
    - ncclFunc_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 25
    functionName: ncclFuncToString
    functionSourceFile: /src/nccl/src/collectives.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * ncclFuncToString(ncclFunc_t fn)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - op
    argTypes:
    - ncclDevRedOp_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 36
    functionName: ncclDevRedOpToString
    functionSourceFile: /src/nccl/src/collectives.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * ncclDevRedOpToString(ncclDevRedOp_t op)
  - BBCount: 13
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 1
    argNames:
    - type
    argTypes:
    - ncclDataType_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 53
    functionName: ncclDatatypeToString
    functionSourceFile: /src/nccl/src/collectives.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * ncclDatatypeToString(ncclDataType_t type)
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - algo
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 66
    functionName: ncclAlgoToString
    functionSourceFile: /src/nccl/src/collectives.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * ncclAlgoToString(int algo)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - proto
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 75
    functionName: ncclProtoToString
    functionSourceFile: /src/nccl/src/collectives.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * ncclProtoToString(int proto)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NVTX3_FUNC_WITH_PARAMS
      Src: /src/nccl/src/collectives.cc:82,1
    - Dst: NVTX3_PAYLOAD
      Src: /src/nccl/src/collectives.cc:83,1
    - Dst: ncclTypeSize
      Src: /src/nccl/src/collectives.cc:83,1
    - Dst: ncclEnqueueCheck
      Src: /src/nccl/src/collectives.cc:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - sendbuff
    - recvbuff
    - sendcount
    - datatype
    - comm
    - stream
    argTypes:
    - void*
    - void*
    - size_t
    - ncclDataType_t
    - ncclComm_t
    - cudaStream_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 79
    functionDepth: 1
    functionLinenumber: 79
    functionLinenumberEnd: 89
    functionName: ncclAllGather
    functionSourceFile: /src/nccl/src/collectives.cc
    functionUses: 0
    functionsReached:
    - ncclTypeSize
    - ncclEnqueueCheck
    - NVTX3_PAYLOAD
    - NVTX3_FUNC_WITH_PARAMS
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclAllGather(const void* sendbuff, void* recvbuff, size_t
      sendcount,\n    ncclDataType_t datatype, ncclComm_t comm, cudaStream_t stream)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NVTX3_FUNC_WITH_PARAMS
      Src: /src/nccl/src/collectives.cc:95,1
    - Dst: NVTX3_PAYLOAD
      Src: /src/nccl/src/collectives.cc:96,1
    - Dst: ncclTypeSize
      Src: /src/nccl/src/collectives.cc:96,1
    - Dst: ncclEnqueueCheck
      Src: /src/nccl/src/collectives.cc:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 7
    argNames:
    - sendbuff
    - recvbuff
    - count
    - datatype
    - op
    - comm
    - stream
    argTypes:
    - void*
    - void*
    - size_t
    - ncclDataType_t
    - ncclRedOp_t
    - ncclComm*
    - cudaStream_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 102
    functionName: ncclAllReduce
    functionSourceFile: /src/nccl/src/collectives.cc
    functionUses: 0
    functionsReached:
    - ncclTypeSize
    - ncclEnqueueCheck
    - NVTX3_PAYLOAD
    - NVTX3_FUNC_WITH_PARAMS
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclAllReduce(const void* sendbuff, void* recvbuff, size_t
      count,\n    ncclDataType_t datatype, ncclRedOp_t op, ncclComm* comm, cudaStream_t
      stream)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NVTX3_FUNC_WITH_PARAMS
      Src: /src/nccl/src/collectives.cc:108,1
    - Dst: NVTX3_PAYLOAD
      Src: /src/nccl/src/collectives.cc:109,1
    - Dst: ncclTypeSize
      Src: /src/nccl/src/collectives.cc:109,1
    - Dst: ncclEnqueueCheck
      Src: /src/nccl/src/collectives.cc:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 7
    argNames:
    - sendbuff
    - recvbuff
    - count
    - datatype
    - root
    - comm
    - stream
    argTypes:
    - void*
    - void*
    - size_t
    - ncclDataType_t
    - int
    - ncclComm_t
    - cudaStream_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 115
    functionName: ncclBroadcast
    functionSourceFile: /src/nccl/src/collectives.cc
    functionUses: 0
    functionsReached:
    - ncclTypeSize
    - ncclEnqueueCheck
    - NVTX3_PAYLOAD
    - NVTX3_FUNC_WITH_PARAMS
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclBroadcast(const void* sendbuff, void* recvbuff, size_t
      count, ncclDataType_t datatype, int root,\n    ncclComm_t comm, cudaStream_t
      stream)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclBroadcast
      Src: /src/nccl/src/collectives.cc:121,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - buff
    - count
    - datatype
    - root
    - comm
    - stream
    argTypes:
    - void*
    - size_t
    - ncclDataType_t
    - int
    - ncclComm_t
    - cudaStream_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 119
    functionDepth: 2
    functionLinenumber: 119
    functionLinenumberEnd: 122
    functionName: ncclBcast
    functionSourceFile: /src/nccl/src/collectives.cc
    functionUses: 0
    functionsReached:
    - ncclBroadcast
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclBcast(void* buff, size_t count, ncclDataType_t datatype,
      int root,\n    ncclComm_t comm, cudaStream_t stream)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NVTX3_FUNC_WITH_PARAMS
      Src: /src/nccl/src/collectives.cc:128,1
    - Dst: NVTX3_PAYLOAD
      Src: /src/nccl/src/collectives.cc:129,1
    - Dst: ncclTypeSize
      Src: /src/nccl/src/collectives.cc:129,1
    - Dst: ncclEnqueueCheck
      Src: /src/nccl/src/collectives.cc:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 8
    argNames:
    - sendbuff
    - recvbuff
    - count
    - datatype
    - op
    - root
    - comm
    - stream
    argTypes:
    - void*
    - void*
    - size_t
    - ncclDataType_t
    - ncclRedOp_t
    - int
    - ncclComm_t
    - cudaStream_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 135
    functionName: ncclReduce
    functionSourceFile: /src/nccl/src/collectives.cc
    functionUses: 0
    functionsReached:
    - ncclTypeSize
    - ncclEnqueueCheck
    - NVTX3_PAYLOAD
    - NVTX3_FUNC_WITH_PARAMS
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclReduce(const void* sendbuff, void* recvbuff, size_t
      count,\n    ncclDataType_t datatype, ncclRedOp_t op, int root, ncclComm_t comm,
      cudaStream_t stream)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NVTX3_FUNC_WITH_PARAMS
      Src: /src/nccl/src/collectives.cc:141,1
    - Dst: NVTX3_PAYLOAD
      Src: /src/nccl/src/collectives.cc:142,1
    - Dst: ncclTypeSize
      Src: /src/nccl/src/collectives.cc:142,1
    - Dst: ncclEnqueueCheck
      Src: /src/nccl/src/collectives.cc:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 7
    argNames:
    - sendbuff
    - recvbuff
    - recvcount
    - datatype
    - op
    - comm
    - stream
    argTypes:
    - void*
    - void*
    - size_t
    - ncclDataType_t
    - ncclRedOp_t
    - ncclComm*
    - cudaStream_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 148
    functionName: ncclReduceScatter
    functionSourceFile: /src/nccl/src/collectives.cc
    functionUses: 0
    functionsReached:
    - ncclTypeSize
    - ncclEnqueueCheck
    - NVTX3_PAYLOAD
    - NVTX3_FUNC_WITH_PARAMS
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclReduceScatter(const void* sendbuff, void* recvbuff,
      size_t recvcount,\n    ncclDataType_t datatype, ncclRedOp_t op, ncclComm* comm,
      cudaStream_t stream)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NVTX3_FUNC_WITH_PARAMS
      Src: /src/nccl/src/collectives.cc:154,1
    - Dst: NVTX3_PAYLOAD
      Src: /src/nccl/src/collectives.cc:155,1
    - Dst: ncclTypeSize
      Src: /src/nccl/src/collectives.cc:155,1
    - Dst: ncclEnqueueCheck
      Src: /src/nccl/src/collectives.cc:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - sendbuff
    - count
    - datatype
    - peer
    - comm
    - stream
    argTypes:
    - void*
    - size_t
    - ncclDataType_t
    - int
    - ncclComm_t
    - cudaStream_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 161
    functionName: ncclSend
    functionSourceFile: /src/nccl/src/collectives.cc
    functionUses: 0
    functionsReached:
    - ncclTypeSize
    - ncclEnqueueCheck
    - NVTX3_PAYLOAD
    - NVTX3_FUNC_WITH_PARAMS
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclSend(const void* sendbuff, size_t count, ncclDataType_t
      datatype, int peer,\n    ncclComm_t comm, cudaStream_t stream)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NVTX3_FUNC_WITH_PARAMS
      Src: /src/nccl/src/collectives.cc:167,1
    - Dst: NVTX3_PAYLOAD
      Src: /src/nccl/src/collectives.cc:168,1
    - Dst: ncclTypeSize
      Src: /src/nccl/src/collectives.cc:168,1
    - Dst: ncclEnqueueCheck
      Src: /src/nccl/src/collectives.cc:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - recvbuff
    - count
    - datatype
    - peer
    - comm
    - stream
    argTypes:
    - void*
    - size_t
    - ncclDataType_t
    - int
    - ncclComm_t
    - cudaStream_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 174
    functionName: ncclRecv
    functionSourceFile: /src/nccl/src/collectives.cc
    functionUses: 0
    functionsReached:
    - ncclTypeSize
    - ncclEnqueueCheck
    - NVTX3_PAYLOAD
    - NVTX3_FUNC_WITH_PARAMS
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclRecv(void* recvbuff, size_t count, ncclDataType_t
      datatype, int peer,\n    ncclComm_t comm, cudaStream_t stream)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: NVTX3_FUNC_RANGE_IN
      Src: /src/nccl/src/allocator.cc:13,1
    - Dst: ncclCudaLibraryInit
      Src: /src/nccl/src/allocator.cc:28,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/allocator.cc:30,1
    - Dst: cudaGetDevice
      Src: /src/nccl/src/allocator.cc:30,1
    - Dst: CUCHECK
      Src: /src/nccl/src/allocator.cc:31,1
    - Dst: cuDeviceGet
      Src: /src/nccl/src/allocator.cc:31,1
    - Dst: ncclCuMemEnable
      Src: /src/nccl/src/allocator.cc:33,1
    - Dst: CUPFN
      Src: /src/nccl/src/allocator.cc:38,1
    - Dst: cuDeviceGetAttribute
      Src: /src/nccl/src/allocator.cc:38,1
    - Dst: CUCHECK
      Src: /src/nccl/src/allocator.cc:46,1
    - Dst: cuDeviceGetAttribute
      Src: /src/nccl/src/allocator.cc:46,1
    - Dst: CUCHECK
      Src: /src/nccl/src/allocator.cc:48,1
    - Dst: cuMemGetAllocationGranularity
      Src: /src/nccl/src/allocator.cc:48,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/allocator.cc:49,1
    - Dst: cudaGetDeviceCount
      Src: /src/nccl/src/allocator.cc:49,1
    - Dst: ALIGN_SIZE
      Src: /src/nccl/src/allocator.cc:50,1
    - Dst: CUPFN
      Src: /src/nccl/src/allocator.cc:54,1
    - Dst: cuMemCreate
      Src: /src/nccl/src/allocator.cc:54,1
    - Dst: CUCHECK
      Src: /src/nccl/src/allocator.cc:59,1
    - Dst: cuMemCreate
      Src: /src/nccl/src/allocator.cc:59,1
    - Dst: CUCHECK
      Src: /src/nccl/src/allocator.cc:62,1
    - Dst: cuMemCreate
      Src: /src/nccl/src/allocator.cc:62,1
    - Dst: CUCHECK
      Src: /src/nccl/src/allocator.cc:66,1
    - Dst: cuMemCreate
      Src: /src/nccl/src/allocator.cc:66,1
    - Dst: CUCHECK
      Src: /src/nccl/src/allocator.cc:69,1
    - Dst: cuMemAddressReserve
      Src: /src/nccl/src/allocator.cc:69,1
    - Dst: CUCHECK
      Src: /src/nccl/src/allocator.cc:71,1
    - Dst: cuMemMap
      Src: /src/nccl/src/allocator.cc:71,1
    - Dst: cudaDeviceCanAccessPeer
      Src: /src/nccl/src/allocator.cc:75,1
    - Dst: CUCHECK
      Src: /src/nccl/src/allocator.cc:79,1
    - Dst: cuMemSetAccess
      Src: /src/nccl/src/allocator.cc:79,1
    - Dst: INFO
      Src: /src/nccl/src/allocator.cc:81,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/allocator.cc:91,1
    - Dst: cudaMalloc
      Src: /src/nccl/src/allocator.cc:91,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 64
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void**
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 12
    functionDepth: 1
    functionLinenumber: 12
    functionLinenumberEnd: 97
    functionName: ncclMemAlloc
    functionSourceFile: /src/nccl/src/allocator.cc
    functionUses: 0
    functionsReached:
    - cudaDeviceCanAccessPeer
    - CUPFN
    - cuMemSetAccess
    - cuMemAddressReserve
    - INFO
    - cuMemMap
    - cudaGetDevice
    - cuMemCreate
    - NVTX3_FUNC_RANGE_IN
    - CUDACHECKGOTO
    - CUDACHECK
    - cuDeviceGetAttribute
    - ALIGN_SIZE
    - cuMemGetAllocationGranularity
    - ncclCuMemEnable
    - cuDeviceGet
    - cudaGetDeviceCount
    - cudaMalloc
    - ncclCudaLibraryInit
    - CUCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclMemAlloc(void **ptr, size_t size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NVTX3_FUNC_RANGE_IN
      Src: /src/nccl/src/allocator.cc:101,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/allocator.cc:105,1
    - Dst: cudaGetDevice
      Src: /src/nccl/src/allocator.cc:105,1
    - Dst: ncclCudaLibraryInit
      Src: /src/nccl/src/allocator.cc:110,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/allocator.cc:112,1
    - Dst: cuPointerGetAttribute
      Src: /src/nccl/src/allocator.cc:112,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/allocator.cc:113,1
    - Dst: cudaSetDevice
      Src: /src/nccl/src/allocator.cc:113,1
    - Dst: ncclCuMemEnable
      Src: /src/nccl/src/allocator.cc:114,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/allocator.cc:115,1
    - Dst: ncclCuMemFree
      Src: /src/nccl/src/allocator.cc:115,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/allocator.cc:121,1
    - Dst: cudaFree
      Src: /src/nccl/src/allocator.cc:121,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/allocator.cc:124,1
    - Dst: cudaSetDevice
      Src: /src/nccl/src/allocator.cc:124,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 128
    functionName: ncclMemFree
    functionSourceFile: /src/nccl/src/allocator.cc
    functionUses: 0
    functionsReached:
    - ncclCuMemFree
    - NCCLCHECKGOTO
    - CUDACHECKGOTO
    - CUDACHECK
    - cuPointerGetAttribute
    - ncclCudaLibraryInit
    - cudaSetDevice
    - cudaFree
    - ncclCuMemEnable
    - cudaGetDevice
    - CUCHECKGOTO
    - NVTX3_FUNC_RANGE_IN
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclMemFree(void *ptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/allocator.cc:145,1
    - Dst: ALIGN_SIZE
      Src: /src/nccl/src/allocator.cc:151,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/allocator.cc:153,1
    - Dst: cuDeviceGet
      Src: /src/nccl/src/allocator.cc:153,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/allocator.cc:158,1
    - Dst: cuMemGetAllocationGranularity
      Src: /src/nccl/src/allocator.cc:158,1
    - Dst: ALIGN_SIZE
      Src: /src/nccl/src/allocator.cc:159,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/allocator.cc:161,1
    - Dst: cuMemCreate
      Src: /src/nccl/src/allocator.cc:161,1
    - Dst: ALIGN_SIZE
      Src: /src/nccl/src/allocator.cc:162,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/allocator.cc:163,1
    - Dst: ncclIpcSymmetricMap
      Src: /src/nccl/src/allocator.cc:163,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/allocator.cc:164,1
    - Dst: ncclNvlsSymmetricMap
      Src: /src/nccl/src/allocator.cc:164,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/allocator.cc:165,1
    - Dst: bootstrapIntraNodeBarrier
      Src: /src/nccl/src/allocator.cc:165,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 34
    argCount: 4
    argNames:
    - comm
    - size
    - alignment
    - symPtr
    argTypes:
    - struct ncclComm*
    - size_t
    - size_t
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 174
    functionName: ncclCommSymmetricAllocInternal
    functionSourceFile: /src/nccl/src/allocator.cc
    functionUses: 1
    functionsReached:
    - WARN
    - NCCLCHECKGOTO
    - ALIGN_SIZE
    - cuMemGetAllocationGranularity
    - ncclIpcSymmetricMap
    - cuMemCreate
    - ncclNvlsSymmetricMap
    - CUCHECKGOTO
    - cuDeviceGet
    - bootstrapIntraNodeBarrier
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCommSymmetricAllocInternal(struct ncclComm* comm,
      size_t size, size_t alignment, void** symPtr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/allocator.cc:181,1
    - Dst: cudaGetDevice
      Src: /src/nccl/src/allocator.cc:181,1
    - Dst: ncclCuMemEnable
      Src: /src/nccl/src/allocator.cc:182,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/allocator.cc:183,1
    - Dst: cudaSetDevice
      Src: /src/nccl/src/allocator.cc:183,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/allocator.cc:184,1
    - Dst: cuMemRetainAllocationHandle
      Src: /src/nccl/src/allocator.cc:184,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/allocator.cc:185,1
    - Dst: cuMemRelease
      Src: /src/nccl/src/allocator.cc:185,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/allocator.cc:186,1
    - Dst: cuMemGetAddressRange
      Src: /src/nccl/src/allocator.cc:186,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/allocator.cc:187,1
    - Dst: ncclNvlsSymmetricFree
      Src: /src/nccl/src/allocator.cc:187,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/allocator.cc:188,1
    - Dst: ncclIpcSymmetricFree
      Src: /src/nccl/src/allocator.cc:188,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/allocator.cc:189,1
    - Dst: cuMemRelease
      Src: /src/nccl/src/allocator.cc:189,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/allocator.cc:192,1
    - Dst: cudaSetDevice
      Src: /src/nccl/src/allocator.cc:192,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 2
    argNames:
    - comm
    - symPtr
    argTypes:
    - struct ncclComm*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 196
    functionName: ncclCommSymmetricFreeInternal
    functionSourceFile: /src/nccl/src/allocator.cc
    functionUses: 1
    functionsReached:
    - cuMemGetAddressRange
    - cuMemRetainAllocationHandle
    - NCCLCHECKGOTO
    - CUDACHECKGOTO
    - CUDACHECK
    - ncclNvlsSymmetricFree
    - cudaSetDevice
    - cuMemRelease
    - ncclIpcSymmetricFree
    - ncclCuMemEnable
    - cudaGetDevice
    - CUCHECKGOTO
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCommSymmetricFreeInternal(struct ncclComm* comm, void*
      symPtr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - time
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 39
    functionName: BOOTSTRAP_PROF_OPEN
    functionSourceFile: /src/nccl/src/bootstrap.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BOOTSTRAP_PROF_OPEN(time)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - time
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 43
    functionName: BOOTSTRAP_PROF_CLOSE
    functionSourceFile: /src/nccl/src/bootstrap.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BOOTSTRAP_PROF_CLOSE(time)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - i
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    functionName: BOOTSTRAP_PID
    functionSourceFile: /src/nccl/src/bootstrap.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BOOTSTRAP_PID(i, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/nccl/src/bootstrap.cc:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - root
    - n_ranks
    - nRoots
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 49
    functionName: firstRankFromRoot
    functionSourceFile: /src/nccl/src/bootstrap.cc
    functionUses: 0
    functionsReached:
    - min
    linkageType: ''
    returnType: int
    signature: int firstRankFromRoot(int root, int n_ranks, int nRoots)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - rank
    - nRanks
    - nRoots
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 60
    functionName: rootIdFromRank
    functionSourceFile: /src/nccl/src/bootstrap.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int rootIdFromRank(int rank, int nRanks, int nRoots)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOOTSTRAP_PID
      Src: /src/nccl/src/bootstrap.cc:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - root
    - nRanks
    - nRoots
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 67
    functionName: nRankFromRoot
    functionSourceFile: /src/nccl/src/bootstrap.cc
    functionUses: 0
    functionsReached:
    - BOOTSTRAP_PID
    linkageType: ''
    returnType: int
    signature: int nRankFromRoot(int root, int nRanks, int nRoots)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOOTSTRAP_PID
      Src: /src/nccl/src/bootstrap.cc:71,1
    - Dst: firstRankFromRoot
      Src: /src/nccl/src/bootstrap.cc:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - rank
    - root
    - nRanks
    - nRoots
    argTypes:
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 70
    functionDepth: 2
    functionLinenumber: 70
    functionLinenumberEnd: 73
    functionName: localIdFromRoot
    functionSourceFile: /src/nccl/src/bootstrap.cc
    functionUses: 0
    functionsReached:
    - BOOTSTRAP_PID
    - firstRankFromRoot
    linkageType: ''
    returnType: int
    signature: int localIdFromRoot(int rank, int root, int nRanks, int nRoots)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: firstRankFromRoot
      Src: /src/nccl/src/bootstrap.cc:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - rank
    - root
    - nRanks
    - nRoots
    argTypes:
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 75
    functionDepth: 2
    functionLinenumber: 75
    functionLinenumberEnd: 77
    functionName: isFirstFromRoot
    functionSourceFile: /src/nccl/src/bootstrap.cc
    functionUses: 0
    functionsReached:
    - firstRankFromRoot
    linkageType: ''
    returnType: int
    signature: int isFirstFromRoot(int rank, int root, int nRanks, int nRoots)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/nccl/src/bootstrap.cc:94,1
    - Dst: ncclGetEnv
      Src: /src/nccl/src/bootstrap.cc:96,1
    - Dst: ncclSocketGetAddrFromString
      Src: /src/nccl/src/bootstrap.cc:100,1
    - Dst: WARN
      Src: /src/nccl/src/bootstrap.cc:101,1
    - Dst: pthread_mutex_unlock
      Src: /src/nccl/src/bootstrap.cc:102,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:105,1
    - Dst: ncclFindInterfaceMatchSubnet
      Src: /src/nccl/src/bootstrap.cc:105,1
    - Dst: WARN
      Src: /src/nccl/src/bootstrap.cc:108,1
    - Dst: pthread_mutex_unlock
      Src: /src/nccl/src/bootstrap.cc:109,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:113,1
    - Dst: ncclFindInterfaces
      Src: /src/nccl/src/bootstrap.cc:113,1
    - Dst: WARN
      Src: /src/nccl/src/bootstrap.cc:115,1
    - Dst: pthread_mutex_unlock
      Src: /src/nccl/src/bootstrap.cc:116,1
    - Dst: snprintf
      Src: /src/nccl/src/bootstrap.cc:121,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/bootstrap.cc:122,1
    - Dst: strlen
      Src: /src/nccl/src/bootstrap.cc:122,1
    - Dst: INFO
      Src: /src/nccl/src/bootstrap.cc:123,1
    - Dst: pthread_mutex_unlock
      Src: /src/nccl/src/bootstrap.cc:126,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 129
    functionName: bootstrapNetInit
    functionSourceFile: /src/nccl/src/bootstrap.cc
    functionUses: 1
    functionsReached:
    - WARN
    - ncclSocketGetAddrFromString
    - ncclSocketToString
    - INFO
    - strlen
    - ncclGetEnv
    - ncclFindInterfaces
    - ncclFindInterfaceMatchSubnet
    - pthread_mutex_unlock
    - pthread_mutex_lock
    - NCCLCHECK
    - snprintf
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t bootstrapNetInit()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_load_n
      Src: /src/nccl/src/bootstrap.cc:137,1
    - Dst: TRACE
      Src: /src/nccl/src/bootstrap.cc:138,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - flag
    - cntr
    argTypes:
    - uint32_t*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 144
    functionName: checkAbort
    functionSourceFile: /src/nccl/src/bootstrap.cc
    functionUses: 0
    functionsReached:
    - __atomic_load_n
    - TRACE
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t checkAbort(volatile uint32_t* flag, int* cntr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:147,1
    - Dst: ncclNet_t*::regMr
      Src: /src/nccl/src/bootstrap.cc:147,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - net
    - comm
    - data
    - size
    - handle
    argTypes:
    - ncclNet_t*
    - void*
    - void*
    - int
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 149
    functionName: netReg
    functionSourceFile: /src/nccl/src/bootstrap.cc
    functionUses: 0
    functionsReached:
    - ncclNet_t*::regMr
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t netReg(ncclNet_t* net, void* comm, void* data, int size,
      void** handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:151,1
    - Dst: ncclNet_t*::deregMr
      Src: /src/nccl/src/bootstrap.cc:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - net
    - comm
    - handle
    argTypes:
    - ncclNet_t*
    - void*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 154
    functionName: netDereg
    functionSourceFile: /src/nccl/src/bootstrap.cc
    functionUses: 0
    functionsReached:
    - ncclNet_t*::deregMr
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t netDereg(ncclNet_t* net, void* comm, void** handle)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:159,1
    - Dst: ncclNet_t*::isend
      Src: /src/nccl/src/bootstrap.cc:159,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:162,1
    - Dst: ncclNet_t*::test
      Src: /src/nccl/src/bootstrap.cc:162,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 8
    argNames:
    - net
    - sendComm
    - data
    - size
    - dataHandle
    - tag
    - sendReq
    - done
    argTypes:
    - ncclNet_t*
    - void*
    - void*
    - int
    - void*
    - int
    - void**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 168
    functionName: netIsend
    functionSourceFile: /src/nccl/src/bootstrap.cc
    functionUses: 0
    functionsReached:
    - ncclNet_t*::isend
    - NCCLCHECK
    - ncclNet_t*::test
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t netIsend(ncclNet_t* net, void* sendComm, void* data,
      int size, void* dataHandle, int tag, void** sendReq,\n                             int*
      done)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:174,1
    - Dst: ncclNet_t*::irecv
      Src: /src/nccl/src/bootstrap.cc:174,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:177,1
    - Dst: ncclNet_t*::test
      Src: /src/nccl/src/bootstrap.cc:177,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 8
    argNames:
    - net
    - recvComm
    - data
    - size
    - dataHandle
    - tag
    - recvReq
    - done
    argTypes:
    - ncclNet_t*
    - void*
    - void*
    - int
    - void*
    - int
    - void**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 183
    functionName: netIrecv
    functionSourceFile: /src/nccl/src/bootstrap.cc
    functionUses: 0
    functionsReached:
    - ncclNet_t*::irecv
    - NCCLCHECK
    - ncclNet_t*::test
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t netIrecv(ncclNet_t* net, void* recvComm, void* data,
      int size, void* dataHandle, int tag, void** recvReq,\n                             int*
      done)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:190,1
    - Dst: checkAbort
      Src: /src/nccl/src/bootstrap.cc:190,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:192,1
    - Dst: netIrecv
      Src: /src/nccl/src/bootstrap.cc:192,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:195,1
    - Dst: netIsend
      Src: /src/nccl/src/bootstrap.cc:195,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 11
    argNames:
    - net
    - sendComm
    - sendData
    - sendSize
    - sendDataHandle
    - recvComm
    - recvData
    - recvSize
    - recvDataHandle
    - tag
    - abortFlag
    argTypes:
    - ncclNet_t*
    - void*
    - void*
    - int
    - void*
    - void*
    - void*
    - int
    - void*
    - int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 199
    functionName: netSendRecv
    functionSourceFile: /src/nccl/src/bootstrap.cc
    functionUses: 0
    functionsReached:
    - netIrecv
    - netIsend
    - NCCLCHECK
    - checkAbort
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t netSendRecv(ncclNet_t* net, void* sendComm, void* sendData,
      int sendSize, void* sendDataHandle, void* recvComm,\n                                void*
      recvData, int recvSize, void* recvDataHandle, int tag, volatile uint32_t* abortFlag)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:203,1
    - Dst: ncclSocketSend
      Src: /src/nccl/src/bootstrap.cc:203,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:205,1
    - Dst: ncclSocketSend
      Src: /src/nccl/src/bootstrap.cc:205,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - sock
    - data
    - size
    argTypes:
    - struct ncclSocket*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 207
    functionName: socketSend
    functionSourceFile: /src/nccl/src/bootstrap.cc
    functionUses: 0
    functionsReached:
    - NCCLCHECK
    - ncclSocketSend
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t socketSend(struct ncclSocket* sock, void* data, int size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:210,1
    - Dst: ncclSocketRecv
      Src: /src/nccl/src/bootstrap.cc:210,1
    - Dst: WARN
      Src: /src/nccl/src/bootstrap.cc:212,1
    - Dst: min
      Src: /src/nccl/src/bootstrap.cc:215,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:217,1
    - Dst: ncclSocketRecv
      Src: /src/nccl/src/bootstrap.cc:217,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - sock
    - data
    - size
    argTypes:
    - struct ncclSocket*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 219
    functionName: socketRecv
    functionSourceFile: /src/nccl/src/bootstrap.cc
    functionUses: 0
    functionsReached:
    - WARN
    - min
    - ncclSocketRecv
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t socketRecv(struct ncclSocket* sock, void* data, int size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:223,1
    - Dst: ncclSocketSendRecv
      Src: /src/nccl/src/bootstrap.cc:223,1
    - Dst: WARN
      Src: /src/nccl/src/bootstrap.cc:225,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:228,1
    - Dst: ncclSocketSendRecv
      Src: /src/nccl/src/bootstrap.cc:228,1
    - Dst: min
      Src: /src/nccl/src/bootstrap.cc:228,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 6
    argNames:
    - sendSock
    - sendData
    - sendSize
    - recvSock
    - recvData
    - recvSize
    argTypes:
    - struct ncclSocket*
    - void*
    - int
    - struct ncclSocket*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 230
    functionName: socketSendRecv
    functionSourceFile: /src/nccl/src/bootstrap.cc
    functionUses: 0
    functionsReached:
    - ncclSocketSendRecv
    - WARN
    - min
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t socketSendRecv(struct ncclSocket* sendSock, void* sendData,
      int sendSize, struct ncclSocket* recvSock,\n                                   void*
      recvData, int recvSize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - h
    - ','
    - rank
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 245
    functionDepth: 0
    functionLinenumber: 245
    functionLinenumberEnd: 246
    functionName: NET_HANDLE
    functionSourceFile: /src/nccl/src/bootstrap.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NET_HANDLE(h, rank)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - h
    - ','
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 247
    functionName: BOOTSTRAP_HANDLE
    functionSourceFile: /src/nccl/src/bootstrap.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BOOTSTRAP_HANDLE(h, i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SYSCHECK
      Src: /src/nccl/src/bootstrap.cc:252,1
    - Dst: getrlimit
      Src: /src/nccl/src/bootstrap.cc:252,1
    - Dst: SYSCHECK
      Src: /src/nccl/src/bootstrap.cc:254,1
    - Dst: setrlimit
      Src: /src/nccl/src/bootstrap.cc:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 256
    functionName: setFilesLimit
    functionSourceFile: /src/nccl/src/bootstrap.cc
    functionUses: 0
    functionsReached:
    - SYSCHECK
    - setrlimit
    - getrlimit
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t setFilesLimit()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:261,1
    - Dst: ncclSocketInit
      Src: /src/nccl/src/bootstrap.cc:261,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:262,1
    - Dst: ncclSocketConnect
      Src: /src/nccl/src/bootstrap.cc:262,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:263,1
    - Dst: socketSend
      Src: /src/nccl/src/bootstrap.cc:263,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:264,1
    - Dst: ncclSocketClose
      Src: /src/nccl/src/bootstrap.cc:264,1
    - Dst: ncclSocketClose
      Src: /src/nccl/src/bootstrap.cc:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - addr
    - magic
    - info
    argTypes:
    - union ncclSocketAddress*
    - uint64_t
    - union ringConnectInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 258
    functionDepth: 2
    functionLinenumber: 258
    functionLinenumberEnd: 269
    functionName: rootSend
    functionSourceFile: /src/nccl/src/bootstrap.cc
    functionUses: 0
    functionsReached:
    - NCCLCHECKGOTO
    - ncclSocketConnect
    - ncclSocketClose
    - ncclSocketInit
    - socketSend
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t rootSend(union ncclSocketAddress* addr, uint64_t magic,
      union ringConnectInfo* info)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nccl/src/bootstrap.cc:286,1
    - Dst: memset
      Src: /src/nccl/src/bootstrap.cc:287,1
    - Dst: memset
      Src: /src/nccl/src/bootstrap.cc:288,1
    - Dst: setFilesLimit
      Src: /src/nccl/src/bootstrap.cc:289,1
    - Dst: TRACE
      Src: /src/nccl/src/bootstrap.cc:291,1
    - Dst: BOOTSTRAP_PROF_OPEN
      Src: /src/nccl/src/bootstrap.cc:292,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:296,1
    - Dst: ncclSocketInit
      Src: /src/nccl/src/bootstrap.cc:296,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:297,1
    - Dst: ncclSocketAccept
      Src: /src/nccl/src/bootstrap.cc:297,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:298,1
    - Dst: socketRecv
      Src: /src/nccl/src/bootstrap.cc:298,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:299,1
    - Dst: ncclSocketClose
      Src: /src/nccl/src/bootstrap.cc:299,1
    - Dst: BOOTSTRAP_PROF_CLOSE
      Src: /src/nccl/src/bootstrap.cc:302,1
    - Dst: BOOTSTRAP_PROF_OPEN
      Src: /src/nccl/src/bootstrap.cc:303,1
    - Dst: nRankFromRoot
      Src: /src/nccl/src/bootstrap.cc:308,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:310,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/bootstrap.cc:310,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:311,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/bootstrap.cc:311,1
    - Dst: WARN
      Src: /src/nccl/src/bootstrap.cc:315,1
    - Dst: localIdFromRoot
      Src: /src/nccl/src/bootstrap.cc:319,1
    - Dst: memcmp
      Src: /src/nccl/src/bootstrap.cc:320,1
    - Dst: memcmp
      Src: /src/nccl/src/bootstrap.cc:321,1
    - Dst: WARN
      Src: /src/nccl/src/bootstrap.cc:322,1
    - Dst: BOOTSTRAP_PID
      Src: /src/nccl/src/bootstrap.cc:328,1
    - Dst: memcmp
      Src: /src/nccl/src/bootstrap.cc:329,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:330,1
    - Dst: rootSend
      Src: /src/nccl/src/bootstrap.cc:330,1
    - Dst: memcpy
      Src: /src/nccl/src/bootstrap.cc:332,1
    - Dst: BOOTSTRAP_PID
      Src: /src/nccl/src/bootstrap.cc:337,1
    - Dst: memcmp
      Src: /src/nccl/src/bootstrap.cc:338,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:339,1
    - Dst: rootSend
      Src: /src/nccl/src/bootstrap.cc:339,1
    - Dst: memcpy
      Src: /src/nccl/src/bootstrap.cc:341,1
    - Dst: TRACE
      Src: /src/nccl/src/bootstrap.cc:344,1
    - Dst: TRACE
      Src: /src/nccl/src/bootstrap.cc:346,1
    - Dst: BOOTSTRAP_PROF_CLOSE
      Src: /src/nccl/src/bootstrap.cc:347,1
    - Dst: BOOTSTRAP_PROF_OPEN
      Src: /src/nccl/src/bootstrap.cc:350,1
    - Dst: BOOTSTRAP_PID
      Src: /src/nccl/src/bootstrap.cc:354,1
    - Dst: memcmp
      Src: /src/nccl/src/bootstrap.cc:355,1
    - Dst: memcmp
      Src: /src/nccl/src/bootstrap.cc:356,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:357,1
    - Dst: rootSend
      Src: /src/nccl/src/bootstrap.cc:357,1
    - Dst: BOOTSTRAP_PROF_CLOSE
      Src: /src/nccl/src/bootstrap.cc:360,1
    - Dst: TRACE
      Src: /src/nccl/src/bootstrap.cc:361,1
    - Dst: ncclSocketClose
      Src: /src/nccl/src/bootstrap.cc:364,1
    - Dst: free
      Src: /src/nccl/src/bootstrap.cc:365,1
    - Dst: free
      Src: /src/nccl/src/bootstrap.cc:368,1
    - Dst: free
      Src: /src/nccl/src/bootstrap.cc:370,1
    - Dst: free
      Src: /src/nccl/src/bootstrap.cc:371,1
    - Dst: TRACE
      Src: /src/nccl/src/bootstrap.cc:373,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 70
    argCount: 1
    argNames:
    - rargs
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 270
    functionDepth: 3
    functionLinenumber: 270
    functionLinenumberEnd: 375
    functionName: bootstrapRoot
    functionSourceFile: /src/nccl/src/bootstrap.cc
    functionUses: 0
    functionsReached:
    - WARN
    - rootSend
    - memcmp
    - ncclSocketInit
    - TRACE
    - ncclSocketClose
    - setFilesLimit
    - memset
    - nRankFromRoot
    - socketRecv
    - BOOTSTRAP_PROF_CLOSE
    - BOOTSTRAP_PROF_OPEN
    - NCCLCHECKGOTO
    - ncclSocketAccept
    - memcpy
    - free
    - localIdFromRoot
    - ncclCalloc
    - BOOTSTRAP_PID
    linkageType: ''
    returnType: void
    signature: void * bootstrapRoot(void* rargs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:383,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/bootstrap.cc:383,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:384,1
    - Dst: ncclSocketInit
      Src: /src/nccl/src/bootstrap.cc:384,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:385,1
    - Dst: ncclSocketListen
      Src: /src/nccl/src/bootstrap.cc:385,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:386,1
    - Dst: ncclSocketGetAddr
      Src: /src/nccl/src/bootstrap.cc:386,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:388,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/bootstrap.cc:388,1
    - Dst: PTHREADCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:391,1
    - Dst: pthread_create
      Src: /src/nccl/src/bootstrap.cc:391,1
    - Dst: ncclSetThreadName
      Src: /src/nccl/src/bootstrap.cc:392,1
    - Dst: PTHREADCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:393,1
    - Dst: pthread_detach
      Src: /src/nccl/src/bootstrap.cc:393,1
    - Dst: free
      Src: /src/nccl/src/bootstrap.cc:397,1
    - Dst: free
      Src: /src/nccl/src/bootstrap.cc:398,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 2
    argNames:
    - handle
    - idFromEnv
    argTypes:
    - struct ncclBootstrapHandle*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 377
    functionDepth: 1
    functionLinenumber: 377
    functionLinenumberEnd: 400
    functionName: bootstrapCreateRoot
    functionSourceFile: /src/nccl/src/bootstrap.cc
    functionUses: 1
    functionsReached:
    - ncclSetThreadName
    - NCCLCHECKGOTO
    - free
    - PTHREADCHECKGOTO
    - pthread_detach
    - ncclCalloc
    - ncclSocketGetAddr
    - ncclSocketInit
    - pthread_create
    - NCCLCHECK
    - ncclSocketListen
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t bootstrapCreateRoot(struct ncclBootstrapHandle* handle,
      bool idFromEnv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nccl/src/bootstrap.cc:403,1
    - Dst: ncclGetEnv
      Src: /src/nccl/src/bootstrap.cc:405,1
    - Dst: INFO
      Src: /src/nccl/src/bootstrap.cc:407,1
    - Dst: ncclSocketGetAddrFromString
      Src: /src/nccl/src/bootstrap.cc:408,1
    - Dst: WARN
      Src: /src/nccl/src/bootstrap.cc:409,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:414,1
    - Dst: getRandomData
      Src: /src/nccl/src/bootstrap.cc:414,1
    - Dst: memcpy
      Src: /src/nccl/src/bootstrap.cc:415,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:416,1
    - Dst: bootstrapCreateRoot
      Src: /src/nccl/src/bootstrap.cc:416,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - handle
    argTypes:
    - struct ncclBootstrapHandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 402
    functionDepth: 2
    functionLinenumber: 402
    functionLinenumberEnd: 420
    functionName: bootstrapGetUniqueId
    functionSourceFile: /src/nccl/src/bootstrap.cc
    functionUses: 1
    functionsReached:
    - INFO
    - ncclSocketGetAddrFromString
    - WARN
    - memcpy
    - ncclGetEnv
    - bootstrapCreateRoot
    - getRandomData
    - NCCLCHECK
    - memset
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t bootstrapGetUniqueId(struct ncclBootstrapHandle* handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 467
    functionDepth: 0
    functionLinenumber: 467
    functionLinenumberEnd: 468
    functionName: STATE_RING
    functionSourceFile: /src/nccl/src/bootstrap.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STATE_RING(s, f)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - f
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 468
    functionDepth: 0
    functionLinenumber: 468
    functionLinenumberEnd: 469
    functionName: STATE_LISTEN
    functionSourceFile: /src/nccl/src/bootstrap.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STATE_LISTEN(s, f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:473,1
    - Dst: ncclSocketInit
      Src: /src/nccl/src/bootstrap.cc:473,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:474,1
    - Dst: ncclSocketListen
      Src: /src/nccl/src/bootstrap.cc:474,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:475,1
    - Dst: ncclSocketGetAddr
      Src: /src/nccl/src/bootstrap.cc:475,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - comm
    - magic
    - socket
    - addr
    - type
    argTypes:
    - struct ncclComm*
    - uint64_t
    - struct ncclSocket*
    - union ncclSocketAddress*
    - ncclSocketType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 471
    functionDepth: 1
    functionLinenumber: 471
    functionLinenumberEnd: 477
    functionName: createListenSocket
    functionSourceFile: /src/nccl/src/bootstrap.cc
    functionUses: 0
    functionsReached:
    - ncclSocketGetAddr
    - ncclSocketInit
    - NCCLCHECK
    - ncclSocketListen
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t createListenSocket(struct ncclComm* comm, uint64_t magic,
      struct ncclSocket* socket, union ncclSocketAddress* addr,\n                                       ncclSocketType
      type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:480,1
    - Dst: getRandomData
      Src: /src/nccl/src/bootstrap.cc:480,1
    - Dst: getPidHash
      Src: /src/nccl/src/bootstrap.cc:481,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - peerUDS
    argTypes:
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 483
      start: 478
    functionDepth: 1
    functionLinenumber: 478
    functionLinenumberEnd: 483
    functionName: getUDS
    functionSourceFile: /src/nccl/src/bootstrap.cc
    functionUses: 0
    functionsReached:
    - getRandomData
    - NCCLCHECK
    - getPidHash
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t getUDS(uint64_t* peerUDS)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/nccl/src/bootstrap.cc:488,1
    - Dst: ncclGetEnv
      Src: /src/nccl/src/bootstrap.cc:490,1
    - Dst: strlen
      Src: /src/nccl/src/bootstrap.cc:491,1
    - Dst: INFO
      Src: /src/nccl/src/bootstrap.cc:492,1
    - Dst: parseStringList
      Src: /src/nccl/src/bootstrap.cc:498,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:501,1
    - Dst: struct ncclComm*::ncclNet::devices
      Src: /src/nccl/src/bootstrap.cc:501,1
    - Dst: struct ncclComm*::ncclNet::getProperties
      Src: /src/nccl/src/bootstrap.cc:505,1
    - Dst: matchIfList
      Src: /src/nccl/src/bootstrap.cc:507,1
    - Dst: WARN
      Src: /src/nccl/src/bootstrap.cc:516,1
    - Dst: WARN
      Src: /src/nccl/src/bootstrap.cc:518,1
    - Dst: pthread_mutex_unlock
      Src: /src/nccl/src/bootstrap.cc:519,1
    - Dst: struct ncclComm*::ncclNet::getProperties
      Src: /src/nccl/src/bootstrap.cc:528,1
    - Dst: INFO
      Src: /src/nccl/src/bootstrap.cc:530,1
    - Dst: pthread_mutex_unlock
      Src: /src/nccl/src/bootstrap.cc:532,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 35
    argCount: 3
    argNames:
    - rank
    - comm
    - dev
    argTypes:
    - int
    - struct ncclComm*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 485
    functionDepth: 1
    functionLinenumber: 485
    functionLinenumberEnd: 536
    functionName: netGetDevice
    functionSourceFile: /src/nccl/src/bootstrap.cc
    functionUses: 0
    functionsReached:
    - INFO
    - WARN
    - struct ncclComm*::ncclNet::devices
    - matchIfList
    - strlen
    - ncclGetEnv
    - struct ncclComm*::ncclNet::getProperties
    - parseStringList
    - pthread_mutex_unlock
    - pthread_mutex_lock
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t netGetDevice(int rank, struct ncclComm* comm, int* dev)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:544,1
    - Dst: checkAbort
      Src: /src/nccl/src/bootstrap.cc:544,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:546,1
    - Dst: ncclNet_t*::connect
      Src: /src/nccl/src/bootstrap.cc:546,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:548,1
    - Dst: ncclNet_t*::accept
      Src: /src/nccl/src/bootstrap.cc:548,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 8
    argNames:
    - net
    - listen
    - peerHandle
    - sendComm
    - sendDevHandle
    - recvComm
    - recvDevHandle
    - abortFlag
    argTypes:
    - ncclNet_t*
    - struct bootstrapListen_t*
    - char[]
    - void**
    - ncclNetDeviceHandle_t**
    - void**
    - ncclNetDeviceHandle_t**
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 538
    functionDepth: 0
    functionLinenumber: 538
    functionLinenumberEnd: 551
    functionName: netRingConnect
    functionSourceFile: /src/nccl/src/bootstrap.cc
    functionUses: 0
    functionsReached:
    - ncclNet_t*::accept
    - ncclNet_t*::connect
    - NCCLCHECK
    - checkAbort
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t netRingConnect(ncclNet_t* net, struct bootstrapListen_t*
      listen, char peerHandle[NCCL_NET_HANDLE_MAXSIZE],\n                                   void**
      sendComm, ncclNetDeviceHandle_t** sendDevHandle,\n                                   void**
      recvComm, ncclNetDeviceHandle_t** recvDevHandle, volatile uint32_t* abortFlag)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:553,1
    - Dst: ncclSocketInit
      Src: /src/nccl/src/bootstrap.cc:553,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:554,1
    - Dst: ncclSocketConnect
      Src: /src/nccl/src/bootstrap.cc:554,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:555,1
    - Dst: ncclSocketInit
      Src: /src/nccl/src/bootstrap.cc:555,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:556,1
    - Dst: ncclSocketAccept
      Src: /src/nccl/src/bootstrap.cc:556,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 6
    argNames:
    - addr
    - sendSocket
    - listenSock
    - recvSocket
    - magic
    - abortFlag
    argTypes:
    - ncclSocketAddress*
    - struct ncclSocket*
    - struct ncclSocket*
    - struct ncclSocket*
    - uint64_t
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 552
    functionDepth: 1
    functionLinenumber: 552
    functionLinenumberEnd: 558
    functionName: socketRingConnect
    functionSourceFile: /src/nccl/src/bootstrap.cc
    functionUses: 0
    functionsReached:
    - ncclSocketAccept
    - ncclSocketInit
    - NCCLCHECK
    - ncclSocketConnect
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t socketRingConnect(ncclSocketAddress* addr, struct ncclSocket*
      sendSocket, struct ncclSocket* listenSock, struct ncclSocket* recvSocket, uint64_t
      magic, volatile uint32_t* abortFlag)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:573,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/bootstrap.cc:573,1
    - Dst: memcpy
      Src: /src/nccl/src/bootstrap.cc:576,1
    - Dst: memcpy
      Src: /src/nccl/src/bootstrap.cc:578,1
    - Dst: memcpy
      Src: /src/nccl/src/bootstrap.cc:580,1
    - Dst: memcpy
      Src: /src/nccl/src/bootstrap.cc:582,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:585,1
    - Dst: bootstrapAllGather
      Src: /src/nccl/src/bootstrap.cc:585,1
    - Dst: memcpy
      Src: /src/nccl/src/bootstrap.cc:590,1
    - Dst: memcpy
      Src: /src/nccl/src/bootstrap.cc:592,1
    - Dst: memcpy
      Src: /src/nccl/src/bootstrap.cc:594,1
    - Dst: memcpy
      Src: /src/nccl/src/bootstrap.cc:596,1
    - Dst: free
      Src: /src/nccl/src/bootstrap.cc:600,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 6
    argNames:
    - comm
    - state
    - peerAddresss
    - peerProxy
    - peerUDS
    - rasRanks
    argTypes:
    - struct ncclComm*
    - struct bootstrapState*
    - union ncclSocketAddress*
    - union ncclSocketAddress*
    - uint64_t*
    - struct rasRankInit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 559
    functionDepth: 1
    functionLinenumber: 559
    functionLinenumberEnd: 602
    functionName: ringAllInfo
    functionSourceFile: /src/nccl/src/bootstrap.cc
    functionUses: 0
    functionsReached:
    - NCCLCHECKGOTO
    - memcpy
    - free
    - ncclCalloc
    - bootstrapAllGather
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ringAllInfo(struct ncclComm* comm, struct bootstrapState*
      state,\n                                union ncclSocketAddress* peerAddresss,\n
      \                               union ncclSocketAddress* peerProxy, uint64_t*
      peerUDS,\n                                struct rasRankInit* rasRanks)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:607,1
    - Dst: ncclSocketInit
      Src: /src/nccl/src/bootstrap.cc:607,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:608,1
    - Dst: ncclSocketConnect
      Src: /src/nccl/src/bootstrap.cc:608,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:609,1
    - Dst: socketSend
      Src: /src/nccl/src/bootstrap.cc:609,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:610,1
    - Dst: ncclSocketClose
      Src: /src/nccl/src/bootstrap.cc:610,1
    - Dst: ncclSocketClose
      Src: /src/nccl/src/bootstrap.cc:613,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - handle
    - comm
    - info
    argTypes:
    - struct ncclBootstrapHandle*
    - struct ncclComm*
    - struct extInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 604
    functionDepth: 2
    functionLinenumber: 604
    functionLinenumberEnd: 615
    functionName: sendToRoot
    functionSourceFile: /src/nccl/src/bootstrap.cc
    functionUses: 0
    functionsReached:
    - NCCLCHECKGOTO
    - ncclSocketConnect
    - ncclSocketClose
    - ncclSocketInit
    - socketSend
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t sendToRoot(struct ncclBootstrapHandle* handle, struct
      ncclComm* comm, struct extInfo* info)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:637,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/bootstrap.cc:637,1
    - Dst: BOOTSTRAP_HANDLE
      Src: /src/nccl/src/bootstrap.cc:644,1
    - Dst: TRACE
      Src: /src/nccl/src/bootstrap.cc:646,1
    - Dst: BOOTSTRAP_PROF_OPEN
      Src: /src/nccl/src/bootstrap.cc:648,1
    - Dst: memset
      Src: /src/nccl/src/bootstrap.cc:653,1
    - Dst: BOOTSTRAP_PROF_OPEN
      Src: /src/nccl/src/bootstrap.cc:654,1
    - Dst: ncclParamBootstrapNetEnable
      Src: /src/nccl/src/bootstrap.cc:655,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:657,1
    - Dst: netGetDevice
      Src: /src/nccl/src/bootstrap.cc:657,1
    - Dst: STATE_LISTEN
      Src: /src/nccl/src/bootstrap.cc:657,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:658,1
    - Dst: struct bootstrapState*::net::listen
      Src: /src/nccl/src/bootstrap.cc:658,1
    - Dst: STATE_LISTEN
      Src: /src/nccl/src/bootstrap.cc:658,1
    - Dst: STATE_LISTEN
      Src: /src/nccl/src/bootstrap.cc:658,1
    - Dst: STATE_LISTEN
      Src: /src/nccl/src/bootstrap.cc:658,1
    - Dst: memcpy
      Src: /src/nccl/src/bootstrap.cc:659,1
    - Dst: STATE_LISTEN
      Src: /src/nccl/src/bootstrap.cc:659,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:662,1
    - Dst: createListenSocket
      Src: /src/nccl/src/bootstrap.cc:662,1
    - Dst: STATE_LISTEN
      Src: /src/nccl/src/bootstrap.cc:662,1
    - Dst: rootIdFromRank
      Src: /src/nccl/src/bootstrap.cc:665,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:666,1
    - Dst: createListenSocket
      Src: /src/nccl/src/bootstrap.cc:666,1
    - Dst: BOOTSTRAP_HANDLE
      Src: /src/nccl/src/bootstrap.cc:666,1
    - Dst: BOOTSTRAP_PROF_CLOSE
      Src: /src/nccl/src/bootstrap.cc:667,1
    - Dst: BOOTSTRAP_PROF_OPEN
      Src: /src/nccl/src/bootstrap.cc:670,1
    - Dst: nRankFromRoot
      Src: /src/nccl/src/bootstrap.cc:671,1
    - Dst: ncclParamStaggerThreshold
      Src: /src/nccl/src/bootstrap.cc:672,1
    - Dst: ncclParamStaggerRate
      Src: /src/nccl/src/bootstrap.cc:674,1
    - Dst: localIdFromRoot
      Src: /src/nccl/src/bootstrap.cc:675,1
    - Dst: TRACE
      Src: /src/nccl/src/bootstrap.cc:680,1
    - Dst: nanosleep
      Src: /src/nccl/src/bootstrap.cc:681,1
    - Dst: BOOTSTRAP_PROF_CLOSE
      Src: /src/nccl/src/bootstrap.cc:683,1
    - Dst: BOOTSTRAP_PROF_OPEN
      Src: /src/nccl/src/bootstrap.cc:686,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:690,1
    - Dst: sendToRoot
      Src: /src/nccl/src/bootstrap.cc:690,1
    - Dst: BOOTSTRAP_HANDLE
      Src: /src/nccl/src/bootstrap.cc:690,1
    - Dst: isFirstFromRoot
      Src: /src/nccl/src/bootstrap.cc:692,1
    - Dst: BOOTSTRAP_PID
      Src: /src/nccl/src/bootstrap.cc:693,1
    - Dst: rootIdFromRank
      Src: /src/nccl/src/bootstrap.cc:694,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:697,1
    - Dst: sendToRoot
      Src: /src/nccl/src/bootstrap.cc:697,1
    - Dst: BOOTSTRAP_HANDLE
      Src: /src/nccl/src/bootstrap.cc:697,1
    - Dst: BOOTSTRAP_PROF_CLOSE
      Src: /src/nccl/src/bootstrap.cc:699,1
    - Dst: BOOTSTRAP_PROF_OPEN
      Src: /src/nccl/src/bootstrap.cc:702,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:703,1
    - Dst: ncclSocketInit
      Src: /src/nccl/src/bootstrap.cc:703,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:704,1
    - Dst: ncclSocketAccept
      Src: /src/nccl/src/bootstrap.cc:704,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:705,1
    - Dst: socketRecv
      Src: /src/nccl/src/bootstrap.cc:705,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:706,1
    - Dst: ncclSocketClose
      Src: /src/nccl/src/bootstrap.cc:706,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:707,1
    - Dst: ncclSocketClose
      Src: /src/nccl/src/bootstrap.cc:707,1
    - Dst: BOOTSTRAP_PROF_CLOSE
      Src: /src/nccl/src/bootstrap.cc:708,1
    - Dst: ncclParamBootstrapNetEnable
      Src: /src/nccl/src/bootstrap.cc:711,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:712,1
    - Dst: netRingConnect
      Src: /src/nccl/src/bootstrap.cc:712,1
    - Dst: STATE_RING
      Src: /src/nccl/src/bootstrap.cc:713,1
    - Dst: STATE_RING
      Src: /src/nccl/src/bootstrap.cc:713,1
    - Dst: STATE_RING
      Src: /src/nccl/src/bootstrap.cc:714,1
    - Dst: STATE_RING
      Src: /src/nccl/src/bootstrap.cc:714,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:716,1
    - Dst: socketRingConnect
      Src: /src/nccl/src/bootstrap.cc:716,1
    - Dst: STATE_RING
      Src: /src/nccl/src/bootstrap.cc:716,1
    - Dst: STATE_LISTEN
      Src: /src/nccl/src/bootstrap.cc:716,1
    - Dst: STATE_RING
      Src: /src/nccl/src/bootstrap.cc:716,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:721,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/bootstrap.cc:721,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:722,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/bootstrap.cc:722,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:723,1
    - Dst: createListenSocket
      Src: /src/nccl/src/bootstrap.cc:723,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:725,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/bootstrap.cc:725,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:726,1
    - Dst: getUDS
      Src: /src/nccl/src/bootstrap.cc:726,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:730,1
    - Dst: createListenSocket
      Src: /src/nccl/src/bootstrap.cc:730,1
    - Dst: STATE_LISTEN
      Src: /src/nccl/src/bootstrap.cc:730,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:731,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/bootstrap.cc:731,1
    - Dst: memcpy
      Src: /src/nccl/src/bootstrap.cc:732,1
    - Dst: ncclParamRasEnable
      Src: /src/nccl/src/bootstrap.cc:735,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:737,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/bootstrap.cc:737,1
    - Dst: memcpy
      Src: /src/nccl/src/bootstrap.cc:738,1
    - Dst: getpid
      Src: /src/nccl/src/bootstrap.cc:739,1
    - Dst: getHostHash
      Src: /src/nccl/src/bootstrap.cc:742,1
    - Dst: getPidHash
      Src: /src/nccl/src/bootstrap.cc:743,1
    - Dst: ncclRasCommInit
      Src: /src/nccl/src/bootstrap.cc:744,1
    - Dst: INFO
      Src: /src/nccl/src/bootstrap.cc:745,1
    - Dst: memset
      Src: /src/nccl/src/bootstrap.cc:748,1
    - Dst: BOOTSTRAP_PROF_OPEN
      Src: /src/nccl/src/bootstrap.cc:753,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:754,1
    - Dst: ringAllInfo
      Src: /src/nccl/src/bootstrap.cc:754,1
    - Dst: BOOTSTRAP_PROF_CLOSE
      Src: /src/nccl/src/bootstrap.cc:755,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:758,1
    - Dst: ncclProxyInit
      Src: /src/nccl/src/bootstrap.cc:758,1
    - Dst: ncclParamRasEnable
      Src: /src/nccl/src/bootstrap.cc:760,1
    - Dst: ncclRasAddRanks
      Src: /src/nccl/src/bootstrap.cc:761,1
    - Dst: INFO
      Src: /src/nccl/src/bootstrap.cc:762,1
    - Dst: BOOTSTRAP_PROF_CLOSE
      Src: /src/nccl/src/bootstrap.cc:765,1
    - Dst: TRACE
      Src: /src/nccl/src/bootstrap.cc:766,1
    - Dst: INFO
      Src: /src/nccl/src/bootstrap.cc:767,1
    - Dst: free
      Src: /src/nccl/src/bootstrap.cc:776,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 95
    argCount: 3
    argNames:
    - nHandles
    - handles
    - comm
    argTypes:
    - int
    - void*
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 778
      start: 622
    functionDepth: 3
    functionLinenumber: 622
    functionLinenumberEnd: 778
    functionName: bootstrapInit
    functionSourceFile: /src/nccl/src/bootstrap.cc
    functionUses: 1
    functionsReached:
    - rootIdFromRank
    - sendToRoot
    - ncclRasCommInit
    - ncclParamBootstrapNetEnable
    - ncclParamStaggerThreshold
    - getUDS
    - createListenSocket
    - ncclSocketInit
    - struct bootstrapState*::net::listen
    - netGetDevice
    - ncclProxyInit
    - ncclRasAddRanks
    - INFO
    - TRACE
    - netRingConnect
    - ncclParamStaggerRate
    - getpid
    - ncclSocketClose
    - isFirstFromRoot
    - STATE_RING
    - getHostHash
    - socketRingConnect
    - memset
    - nRankFromRoot
    - ringAllInfo
    - nanosleep
    - ncclParamRasEnable
    - STATE_LISTEN
    - socketRecv
    - BOOTSTRAP_PROF_CLOSE
    - BOOTSTRAP_PROF_OPEN
    - getPidHash
    - NCCLCHECKGOTO
    - memcpy
    - ncclSocketAccept
    - free
    - localIdFromRoot
    - BOOTSTRAP_HANDLE
    - ncclCalloc
    - BOOTSTRAP_PID
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t bootstrapInit(int nHandles, void* handles, struct ncclComm*
      comm)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:790,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/bootstrap.cc:790,1
    - Dst: ncclParamBootstrapNetEnable
      Src: /src/nccl/src/bootstrap.cc:803,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:804,1
    - Dst: netGetDevice
      Src: /src/nccl/src/bootstrap.cc:804,1
    - Dst: STATE_LISTEN
      Src: /src/nccl/src/bootstrap.cc:804,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:805,1
    - Dst: struct bootstrapState*::net::listen
      Src: /src/nccl/src/bootstrap.cc:805,1
    - Dst: STATE_LISTEN
      Src: /src/nccl/src/bootstrap.cc:805,1
    - Dst: STATE_LISTEN
      Src: /src/nccl/src/bootstrap.cc:805,1
    - Dst: STATE_LISTEN
      Src: /src/nccl/src/bootstrap.cc:805,1
    - Dst: memcpy
      Src: /src/nccl/src/bootstrap.cc:806,1
    - Dst: STATE_LISTEN
      Src: /src/nccl/src/bootstrap.cc:806,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:809,1
    - Dst: createListenSocket
      Src: /src/nccl/src/bootstrap.cc:809,1
    - Dst: STATE_LISTEN
      Src: /src/nccl/src/bootstrap.cc:809,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:813,1
    - Dst: createListenSocket
      Src: /src/nccl/src/bootstrap.cc:813,1
    - Dst: STATE_LISTEN
      Src: /src/nccl/src/bootstrap.cc:813,1
    - Dst: ncclParamRasEnable
      Src: /src/nccl/src/bootstrap.cc:815,1
    - Dst: ncclRasCommInit
      Src: /src/nccl/src/bootstrap.cc:816,1
    - Dst: INFO
      Src: /src/nccl/src/bootstrap.cc:817,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:821,1
    - Dst: bootstrapSend
      Src: /src/nccl/src/bootstrap.cc:821,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:822,1
    - Dst: bootstrapRecv
      Src: /src/nccl/src/bootstrap.cc:822,1
    - Dst: ncclParamBootstrapNetEnable
      Src: /src/nccl/src/bootstrap.cc:823,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:824,1
    - Dst: netRingConnect
      Src: /src/nccl/src/bootstrap.cc:824,1
    - Dst: STATE_RING
      Src: /src/nccl/src/bootstrap.cc:825,1
    - Dst: STATE_RING
      Src: /src/nccl/src/bootstrap.cc:825,1
    - Dst: STATE_RING
      Src: /src/nccl/src/bootstrap.cc:826,1
    - Dst: STATE_RING
      Src: /src/nccl/src/bootstrap.cc:826,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:829,1
    - Dst: socketRingConnect
      Src: /src/nccl/src/bootstrap.cc:829,1
    - Dst: STATE_RING
      Src: /src/nccl/src/bootstrap.cc:829,1
    - Dst: STATE_LISTEN
      Src: /src/nccl/src/bootstrap.cc:829,1
    - Dst: STATE_RING
      Src: /src/nccl/src/bootstrap.cc:829,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:832,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/bootstrap.cc:832,1
    - Dst: memcpy
      Src: /src/nccl/src/bootstrap.cc:833,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:839,1
    - Dst: ringAllInfo
      Src: /src/nccl/src/bootstrap.cc:839,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:841,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/bootstrap.cc:841,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:842,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/bootstrap.cc:842,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:844,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/bootstrap.cc:844,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:845,1
    - Dst: getUDS
      Src: /src/nccl/src/bootstrap.cc:845,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:846,1
    - Dst: createListenSocket
      Src: /src/nccl/src/bootstrap.cc:846,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:847,1
    - Dst: ringAllInfo
      Src: /src/nccl/src/bootstrap.cc:847,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:848,1
    - Dst: ncclProxyInit
      Src: /src/nccl/src/bootstrap.cc:848,1
    - Dst: TRACE
      Src: /src/nccl/src/bootstrap.cc:851,1
    - Dst: free
      Src: /src/nccl/src/bootstrap.cc:857,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 55
    argCount: 6
    argNames:
    - magic
    - comm
    - parent
    - color
    - key
    - parentRanks
    argTypes:
    - uint64_t
    - struct ncclComm*
    - struct ncclComm*
    - int
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 859
      start: 780
    functionDepth: 2
    functionLinenumber: 780
    functionLinenumberEnd: 859
    functionName: bootstrapSplit
    functionSourceFile: /src/nccl/src/bootstrap.cc
    functionUses: 1
    functionsReached:
    - bootstrapRecv
    - ncclRasCommInit
    - ncclParamBootstrapNetEnable
    - getUDS
    - createListenSocket
    - struct bootstrapState*::net::listen
    - netGetDevice
    - ncclProxyInit
    - bootstrapSend
    - INFO
    - netRingConnect
    - TRACE
    - STATE_RING
    - socketRingConnect
    - ringAllInfo
    - ncclParamRasEnable
    - STATE_LISTEN
    - NCCLCHECKGOTO
    - memcpy
    - free
    - ncclCalloc
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t bootstrapSplit(uint64_t magic, struct ncclComm* comm,
      struct ncclComm* parent, int color, int key, int* parentRanks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:870,1
    - Dst: ncclSocketInit
      Src: /src/nccl/src/bootstrap.cc:870,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:871,1
    - Dst: ncclSocketConnect
      Src: /src/nccl/src/bootstrap.cc:871,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:872,1
    - Dst: socketSend
      Src: /src/nccl/src/bootstrap.cc:872,1
    - Dst: ncclSocketClose
      Src: /src/nccl/src/bootstrap.cc:875,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 4
    argNames:
    - commState
    - peer
    - tag
    - sock
    argTypes:
    - void*
    - int
    - int
    - struct ncclSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 877
      start: 865
    functionDepth: 2
    functionLinenumber: 865
    functionLinenumberEnd: 877
    functionName: socketConnect
    functionSourceFile: /src/nccl/src/bootstrap.cc
    functionUses: 0
    functionsReached:
    - NCCLCHECKGOTO
    - ncclSocketConnect
    - ncclSocketClose
    - ncclSocketInit
    - socketSend
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t socketConnect(void* commState, int peer, int tag, struct
      ncclSocket* sock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: TRACE
      Src: /src/nccl/src/bootstrap.cc:881,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:882,1
    - Dst: socketConnect
      Src: /src/nccl/src/bootstrap.cc:882,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:883,1
    - Dst: socketSend
      Src: /src/nccl/src/bootstrap.cc:883,1
    - Dst: TRACE
      Src: /src/nccl/src/bootstrap.cc:884,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:885,1
    - Dst: ncclSocketClose
      Src: /src/nccl/src/bootstrap.cc:885,1
    - Dst: ncclSocketClose
      Src: /src/nccl/src/bootstrap.cc:888,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 5
    argNames:
    - commState
    - peer
    - tag
    - data
    - size
    argTypes:
    - void*
    - int
    - int
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 890
      start: 878
    functionDepth: 3
    functionLinenumber: 878
    functionLinenumberEnd: 890
    functionName: bootstrapSend
    functionSourceFile: /src/nccl/src/bootstrap.cc
    functionUses: 1
    functionsReached:
    - TRACE
    - NCCLCHECKGOTO
    - ncclSocketClose
    - socketConnect
    - socketSend
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t bootstrapSend(void* commState, int peer, int tag, void*
      data, int size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:895,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/bootstrap.cc:895,1
    - Dst: memcpy
      Src: /src/nccl/src/bootstrap.cc:898,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - state
    - peer
    - tag
    - sock
    argTypes:
    - struct bootstrapState*
    - int
    - int
    - struct ncclSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 909
      start: 892
    functionDepth: 1
    functionLinenumber: 892
    functionLinenumberEnd: 909
    functionName: unexpectedEnqueue
    functionSourceFile: /src/nccl/src/bootstrap.cc
    functionUses: 0
    functionsReached:
    - ncclCalloc
    - memcpy
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t unexpectedEnqueue(struct bootstrapState* state, int peer,
      int tag, struct ncclSocket* sock)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nccl/src/bootstrap.cc:921,1
    - Dst: free
      Src: /src/nccl/src/bootstrap.cc:922,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 5
    argNames:
    - state
    - peer
    - tag
    - sock
    - found
    argTypes:
    - struct bootstrapState*
    - int
    - int
    - struct ncclSocket*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 930
      start: 910
    functionDepth: 0
    functionLinenumber: 910
    functionLinenumberEnd: 930
    functionName: unexpectedDequeue
    functionSourceFile: /src/nccl/src/bootstrap.cc
    functionUses: 0
    functionsReached:
    - memcpy
    - free
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t unexpectedDequeue(struct bootstrapState* state, int peer,
      int tag, struct ncclSocket* sock, int* found)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/nccl/src/bootstrap.cc:939,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - state
    argTypes:
    - struct bootstrapState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 942
      start: 932
    functionDepth: 0
    functionLinenumber: 932
    functionLinenumberEnd: 942
    functionName: unexpectedFree
    functionSourceFile: /src/nccl/src/bootstrap.cc
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void unexpectedFree(struct bootstrapState* state)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:951,1
    - Dst: unexpectedDequeue
      Src: /src/nccl/src/bootstrap.cc:951,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:957,1
    - Dst: ncclSocketInit
      Src: /src/nccl/src/bootstrap.cc:957,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:958,1
    - Dst: ncclSocketAccept
      Src: /src/nccl/src/bootstrap.cc:958,1
    - Dst: STATE_LISTEN
      Src: /src/nccl/src/bootstrap.cc:958,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:959,1
    - Dst: socketRecv
      Src: /src/nccl/src/bootstrap.cc:959,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:961,1
    - Dst: unexpectedEnqueue
      Src: /src/nccl/src/bootstrap.cc:961,1
    - Dst: ncclSocketClose
      Src: /src/nccl/src/bootstrap.cc:965,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - commState
    - peer
    - tag
    - sock
    argTypes:
    - void*
    - int
    - int
    - struct ncclSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 967
      start: 945
    functionDepth: 2
    functionLinenumber: 945
    functionLinenumberEnd: 967
    functionName: socketAccept
    functionSourceFile: /src/nccl/src/bootstrap.cc
    functionUses: 0
    functionsReached:
    - NCCLCHECKGOTO
    - ncclSocketAccept
    - STATE_LISTEN
    - ncclSocketClose
    - unexpectedEnqueue
    - socketRecv
    - ncclSocketInit
    - unexpectedDequeue
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t socketAccept(void* commState, int peer, int tag, struct
      ncclSocket* sock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:972,1
    - Dst: socketAccept
      Src: /src/nccl/src/bootstrap.cc:972,1
    - Dst: TRACE
      Src: /src/nccl/src/bootstrap.cc:973,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:974,1
    - Dst: socketRecv
      Src: /src/nccl/src/bootstrap.cc:974,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:975,1
    - Dst: ncclSocketClose
      Src: /src/nccl/src/bootstrap.cc:975,1
    - Dst: ncclSocketClose
      Src: /src/nccl/src/bootstrap.cc:978,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 5
    argNames:
    - commState
    - peer
    - tag
    - data
    - size
    argTypes:
    - void*
    - int
    - int
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 980
      start: 969
    functionDepth: 3
    functionLinenumber: 969
    functionLinenumberEnd: 980
    functionName: bootstrapRecv
    functionSourceFile: /src/nccl/src/bootstrap.cc
    functionUses: 1
    functionsReached:
    - TRACE
    - NCCLCHECKGOTO
    - ncclSocketClose
    - socketRecv
    - socketAccept
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t bootstrapRecv(void* commState, int peer, int tag, void*
      data, int size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:987,1
    - Dst: netReg
      Src: /src/nccl/src/bootstrap.cc:987,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:988,1
    - Dst: netReg
      Src: /src/nccl/src/bootstrap.cc:988,1
    - Dst: TRACE
      Src: /src/nccl/src/bootstrap.cc:993,1
    - Dst: BOOTSTRAP_PROF_OPEN
      Src: /src/nccl/src/bootstrap.cc:994,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:1001,1
    - Dst: netSendRecv
      Src: /src/nccl/src/bootstrap.cc:1001,1
    - Dst: BOOTSTRAP_PROF_CLOSE
      Src: /src/nccl/src/bootstrap.cc:1003,1
    - Dst: BOOTSTRAP_PROF_OPEN
      Src: /src/nccl/src/bootstrap.cc:1004,1
    - Dst: BOOTSTRAP_PROF_CLOSE
      Src: /src/nccl/src/bootstrap.cc:1007,1
    - Dst: TRACE
      Src: /src/nccl/src/bootstrap.cc:1008,1
    - Dst: netDereg
      Src: /src/nccl/src/bootstrap.cc:1011,1
    - Dst: netDereg
      Src: /src/nccl/src/bootstrap.cc:1012,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 8
    argNames:
    - net
    - sendComm
    - recvComm
    - rank
    - nranks
    - data
    - size
    - abortFlag
    argTypes:
    - ncclNet_t*
    - void*
    - void*
    - int
    - int
    - char*
    - int
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1014
      start: 982
    functionDepth: 2
    functionLinenumber: 982
    functionLinenumberEnd: 1014
    functionName: netRingAllGather
    functionSourceFile: /src/nccl/src/bootstrap.cc
    functionUses: 0
    functionsReached:
    - TRACE
    - NCCLCHECKGOTO
    - netDereg
    - netReg
    - BOOTSTRAP_PROF_CLOSE
    - netSendRecv
    - BOOTSTRAP_PROF_OPEN
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t netRingAllGather(ncclNet_t* net, void* sendComm, void*
      recvComm, int rank, int nranks, char* data, int size, volatile uint32_t* abortFlag)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TRACE
      Src: /src/nccl/src/bootstrap.cc:1022,1
    - Dst: BOOTSTRAP_PROF_OPEN
      Src: /src/nccl/src/bootstrap.cc:1023,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:1029,1
    - Dst: socketSendRecv
      Src: /src/nccl/src/bootstrap.cc:1029,1
    - Dst: BOOTSTRAP_PROF_CLOSE
      Src: /src/nccl/src/bootstrap.cc:1031,1
    - Dst: BOOTSTRAP_PROF_OPEN
      Src: /src/nccl/src/bootstrap.cc:1032,1
    - Dst: BOOTSTRAP_PROF_CLOSE
      Src: /src/nccl/src/bootstrap.cc:1035,1
    - Dst: TRACE
      Src: /src/nccl/src/bootstrap.cc:1036,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 6
    argNames:
    - sendSock
    - recvSock
    - rank
    - nranks
    - data
    - size
    argTypes:
    - struct ncclSocket*
    - struct ncclSocket*
    - int
    - int
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1039
      start: 1015
    functionDepth: 2
    functionLinenumber: 1015
    functionLinenumberEnd: 1039
    functionName: socketRingAllGather
    functionSourceFile: /src/nccl/src/bootstrap.cc
    functionUses: 0
    functionsReached:
    - TRACE
    - NCCLCHECKGOTO
    - socketSendRecv
    - BOOTSTRAP_PROF_CLOSE
    - BOOTSTRAP_PROF_OPEN
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t socketRingAllGather(struct ncclSocket* sendSock, struct
      ncclSocket* recvSock, int rank, int nranks, char* data, int size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TRACE
      Src: /src/nccl/src/bootstrap.cc:1046,1
    - Dst: BOOTSTRAP_PROF_OPEN
      Src: /src/nccl/src/bootstrap.cc:1049,1
    - Dst: ncclParamBootstrapNetEnable
      Src: /src/nccl/src/bootstrap.cc:1050,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:1051,1
    - Dst: netRingAllGather
      Src: /src/nccl/src/bootstrap.cc:1051,1
    - Dst: STATE_RING
      Src: /src/nccl/src/bootstrap.cc:1051,1
    - Dst: STATE_RING
      Src: /src/nccl/src/bootstrap.cc:1051,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/bootstrap.cc:1053,1
    - Dst: socketRingAllGather
      Src: /src/nccl/src/bootstrap.cc:1053,1
    - Dst: STATE_RING
      Src: /src/nccl/src/bootstrap.cc:1053,1
    - Dst: STATE_RING
      Src: /src/nccl/src/bootstrap.cc:1053,1
    - Dst: BOOTSTRAP_PROF_CLOSE
      Src: /src/nccl/src/bootstrap.cc:1056,1
    - Dst: TRACE
      Src: /src/nccl/src/bootstrap.cc:1057,1
    - Dst: TRACE
      Src: /src/nccl/src/bootstrap.cc:1058,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 3
    argNames:
    - commState
    - allData
    - size
    argTypes:
    - void*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1060
      start: 1040
    functionDepth: 3
    functionLinenumber: 1040
    functionLinenumberEnd: 1060
    functionName: bootstrapAllGather
    functionSourceFile: /src/nccl/src/bootstrap.cc
    functionUses: 3
    functionsReached:
    - TRACE
    - NCCLCHECKGOTO
    - ncclParamBootstrapNetEnable
    - STATE_RING
    - netRingAllGather
    - BOOTSTRAP_PROF_CLOSE
    - socketRingAllGather
    - BOOTSTRAP_PROF_OPEN
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t bootstrapAllGather(void* commState, void* allData, int
      size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:1074,1
    - Dst: bootstrapSend
      Src: /src/nccl/src/bootstrap.cc:1074,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:1075,1
    - Dst: bootstrapRecv
      Src: /src/nccl/src/bootstrap.cc:1075,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - commState
    - ranks
    - rank
    - nranks
    - tag
    argTypes:
    - void*
    - int*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1078
      start: 1062
    functionDepth: 4
    functionLinenumber: 1062
    functionLinenumberEnd: 1078
    functionName: bootstrapP2PBarrier
    functionSourceFile: /src/nccl/src/bootstrap.cc
    functionUses: 0
    functionsReached:
    - bootstrapRecv
    - NCCLCHECK
    - bootstrapSend
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t bootstrapP2PBarrier(void* commState, int* ranks, int rank,
      int nranks, int tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOOTSTRAP_PROF_OPEN
      Src: /src/nccl/src/bootstrap.cc:1082,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:1083,1
    - Dst: bootstrapP2PBarrier
      Src: /src/nccl/src/bootstrap.cc:1083,1
    - Dst: BOOTSTRAP_PROF_CLOSE
      Src: /src/nccl/src/bootstrap.cc:1084,1
    - Dst: TRACE
      Src: /src/nccl/src/bootstrap.cc:1085,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 5
    argNames:
    - commState
    - ranks
    - rank
    - nranks
    - tag
    argTypes:
    - void*
    - int*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1087
      start: 1080
    functionDepth: 5
    functionLinenumber: 1080
    functionLinenumberEnd: 1087
    functionName: bootstrapIntraNodeBarrier
    functionSourceFile: /src/nccl/src/bootstrap.cc
    functionUses: 2
    functionsReached:
    - bootstrapP2PBarrier
    - TRACE
    - BOOTSTRAP_PROF_CLOSE
    - BOOTSTRAP_PROF_OPEN
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t bootstrapIntraNodeBarrier(void* commState, int* ranks,
      int rank, int nranks, int tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOOTSTRAP_PROF_OPEN
      Src: /src/nccl/src/bootstrap.cc:1091,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:1092,1
    - Dst: bootstrapP2PBarrier
      Src: /src/nccl/src/bootstrap.cc:1092,1
    - Dst: BOOTSTRAP_PROF_CLOSE
      Src: /src/nccl/src/bootstrap.cc:1093,1
    - Dst: TRACE
      Src: /src/nccl/src/bootstrap.cc:1094,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - commState
    - rank
    - nranks
    - tag
    argTypes:
    - void*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1096
      start: 1089
    functionDepth: 5
    functionLinenumber: 1089
    functionLinenumberEnd: 1096
    functionName: bootstrapBarrier
    functionSourceFile: /src/nccl/src/bootstrap.cc
    functionUses: 0
    functionsReached:
    - bootstrapP2PBarrier
    - TRACE
    - BOOTSTRAP_PROF_CLOSE
    - BOOTSTRAP_PROF_OPEN
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t bootstrapBarrier(void* commState, int rank, int nranks,
      int tag)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TRACE
      Src: /src/nccl/src/bootstrap.cc:1100,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:1106,1
    - Dst: socketConnect
      Src: /src/nccl/src/bootstrap.cc:1106,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:1107,1
    - Dst: socketAccept
      Src: /src/nccl/src/bootstrap.cc:1107,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:1109,1
    - Dst: socketRingAllGather
      Src: /src/nccl/src/bootstrap.cc:1109,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:1111,1
    - Dst: ncclSocketClose
      Src: /src/nccl/src/bootstrap.cc:1111,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:1112,1
    - Dst: ncclSocketClose
      Src: /src/nccl/src/bootstrap.cc:1112,1
    - Dst: TRACE
      Src: /src/nccl/src/bootstrap.cc:1114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 6
    argNames:
    - commState
    - ranks
    - rank
    - nranks
    - allData
    - size
    argTypes:
    - void*
    - int*
    - int
    - int
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1116
      start: 1098
    functionDepth: 3
    functionLinenumber: 1098
    functionLinenumberEnd: 1116
    functionName: bootstrapIntraNodeAllGather
    functionSourceFile: /src/nccl/src/bootstrap.cc
    functionUses: 0
    functionsReached:
    - TRACE
    - ncclSocketClose
    - socketConnect
    - socketRingAllGather
    - socketAccept
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t bootstrapIntraNodeAllGather(void* commState, int* ranks,
      int rank, int nranks, void* allData, int size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:1123,1
    - Dst: bootstrapSend
      Src: /src/nccl/src/bootstrap.cc:1123,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:1126,1
    - Dst: bootstrapRecv
      Src: /src/nccl/src/bootstrap.cc:1126,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 7
    argNames:
    - commState
    - ranks
    - rank
    - nranks
    - root
    - bcastData
    - size
    argTypes:
    - void*
    - int*
    - int
    - int
    - int
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1129
      start: 1119
    functionDepth: 4
    functionLinenumber: 1119
    functionLinenumberEnd: 1129
    functionName: bootstrapP2PBroadcast
    functionSourceFile: /src/nccl/src/bootstrap.cc
    functionUses: 0
    functionsReached:
    - bootstrapRecv
    - NCCLCHECK
    - bootstrapSend
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t bootstrapP2PBroadcast(void* commState, int* ranks, int
      rank, int nranks, int root, void* bcastData, int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOOTSTRAP_PROF_OPEN
      Src: /src/nccl/src/bootstrap.cc:1133,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:1134,1
    - Dst: bootstrapP2PBroadcast
      Src: /src/nccl/src/bootstrap.cc:1134,1
    - Dst: BOOTSTRAP_PROF_CLOSE
      Src: /src/nccl/src/bootstrap.cc:1135,1
    - Dst: TRACE
      Src: /src/nccl/src/bootstrap.cc:1136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 7
    argNames:
    - commState
    - ranks
    - rank
    - nranks
    - root
    - bcastData
    - size
    argTypes:
    - void*
    - int*
    - int
    - int
    - int
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1138
      start: 1131
    functionDepth: 5
    functionLinenumber: 1131
    functionLinenumberEnd: 1138
    functionName: bootstrapIntraNodeBroadcast
    functionSourceFile: /src/nccl/src/bootstrap.cc
    functionUses: 0
    functionsReached:
    - TRACE
    - bootstrapP2PBroadcast
    - BOOTSTRAP_PROF_CLOSE
    - BOOTSTRAP_PROF_OPEN
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t bootstrapIntraNodeBroadcast(void* commState, int* ranks,
      int rank, int nranks, int root, void* bcastData, int size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BOOTSTRAP_PROF_OPEN
      Src: /src/nccl/src/bootstrap.cc:1141,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:1142,1
    - Dst: bootstrapP2PBroadcast
      Src: /src/nccl/src/bootstrap.cc:1142,1
    - Dst: BOOTSTRAP_PROF_CLOSE
      Src: /src/nccl/src/bootstrap.cc:1143,1
    - Dst: TRACE
      Src: /src/nccl/src/bootstrap.cc:1144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 6
    argNames:
    - commState
    - rank
    - nranks
    - root
    - bcastData
    - size
    argTypes:
    - void*
    - int
    - int
    - int
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1146
      start: 1139
    functionDepth: 5
    functionLinenumber: 1139
    functionLinenumberEnd: 1146
    functionName: bootstrapBroadcast
    functionSourceFile: /src/nccl/src/bootstrap.cc
    functionUses: 0
    functionsReached:
    - TRACE
    - bootstrapP2PBroadcast
    - BOOTSTRAP_PROF_CLOSE
    - BOOTSTRAP_PROF_OPEN
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t bootstrapBroadcast(void* commState, int rank, int nranks,
      int root, void* bcastData, int size)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: unexpectedFree
      Src: /src/nccl/src/bootstrap.cc:1154,1
    - Dst: __atomic_load_n
      Src: /src/nccl/src/bootstrap.cc:1155,1
    - Dst: WARN
      Src: /src/nccl/src/bootstrap.cc:1156,1
    - Dst: ncclParamBootstrapNetEnable
      Src: /src/nccl/src/bootstrap.cc:1160,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:1161,1
    - Dst: struct bootstrapState*::net::closeSend
      Src: /src/nccl/src/bootstrap.cc:1161,1
    - Dst: STATE_RING
      Src: /src/nccl/src/bootstrap.cc:1161,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:1162,1
    - Dst: struct bootstrapState*::net::closeRecv
      Src: /src/nccl/src/bootstrap.cc:1162,1
    - Dst: STATE_RING
      Src: /src/nccl/src/bootstrap.cc:1162,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:1163,1
    - Dst: struct bootstrapState*::net::closeListen
      Src: /src/nccl/src/bootstrap.cc:1163,1
    - Dst: STATE_LISTEN
      Src: /src/nccl/src/bootstrap.cc:1163,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:1165,1
    - Dst: ncclSocketClose
      Src: /src/nccl/src/bootstrap.cc:1165,1
    - Dst: STATE_RING
      Src: /src/nccl/src/bootstrap.cc:1165,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:1166,1
    - Dst: ncclSocketClose
      Src: /src/nccl/src/bootstrap.cc:1166,1
    - Dst: STATE_RING
      Src: /src/nccl/src/bootstrap.cc:1166,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:1167,1
    - Dst: ncclSocketClose
      Src: /src/nccl/src/bootstrap.cc:1167,1
    - Dst: STATE_LISTEN
      Src: /src/nccl/src/bootstrap.cc:1167,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:1170,1
    - Dst: ncclSocketClose
      Src: /src/nccl/src/bootstrap.cc:1170,1
    - Dst: STATE_LISTEN
      Src: /src/nccl/src/bootstrap.cc:1170,1
    - Dst: free
      Src: /src/nccl/src/bootstrap.cc:1173,1
    - Dst: free
      Src: /src/nccl/src/bootstrap.cc:1174,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 1
    argNames:
    - commState
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1176
      start: 1148
    functionDepth: 1
    functionLinenumber: 1148
    functionLinenumberEnd: 1176
    functionName: bootstrapClose
    functionSourceFile: /src/nccl/src/bootstrap.cc
    functionUses: 1
    functionsReached:
    - __atomic_load_n
    - WARN
    - unexpectedFree
    - struct bootstrapState*::net::closeRecv
    - free
    - ncclParamBootstrapNetEnable
    - STATE_LISTEN
    - STATE_RING
    - ncclSocketClose
    - struct bootstrapState*::net::closeListen
    - NCCLCHECK
    - struct bootstrapState*::net::closeSend
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t bootstrapClose(void* commState)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/nccl/src/bootstrap.cc:1183,1
    - Dst: free
      Src: /src/nccl/src/bootstrap.cc:1184,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/bootstrap.cc:1185,1
    - Dst: bootstrapClose
      Src: /src/nccl/src/bootstrap.cc:1185,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - commState
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1187
      start: 1178
    functionDepth: 2
    functionLinenumber: 1178
    functionLinenumberEnd: 1187
    functionName: bootstrapAbort
    functionSourceFile: /src/nccl/src/bootstrap.cc
    functionUses: 0
    functionsReached:
    - bootstrapClose
    - NCCLCHECK
    - free
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t bootstrapAbort(void* commState)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/channel.cc:24,1
    - Dst: ncclStrongStreamAcquire
      Src: /src/nccl/src/channel.cc:24,1
    - Dst: ncclCudaGraphNone
      Src: /src/nccl/src/channel.cc:24,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/channel.cc:31,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/channel.cc:31,1
    - Dst: ncclMemoryStackAlloc
      Src: /src/nccl/src/channel.cc:33,1
    - Dst: ncclAtomicRefCountIncrement
      Src: /src/nccl/src/channel.cc:36,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/channel.cc:42,1
    - Dst: ncclCudaCallocAsync
      Src: /src/nccl/src/channel.cc:42,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/channel.cc:45,1
    - Dst: ncclCudaCallocAsync
      Src: /src/nccl/src/channel.cc:45,1
    - Dst: ncclCommPushCudaFree
      Src: /src/nccl/src/channel.cc:46,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/channel.cc:47,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/channel.cc:47,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/channel.cc:50,1
    - Dst: ncclCudaMemcpyAsync
      Src: /src/nccl/src/channel.cc:50,1
    - Dst: ncclMemoryStackAlloc
      Src: /src/nccl/src/channel.cc:55,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/channel.cc:56,1
    - Dst: ncclCudaCallocAsync
      Src: /src/nccl/src/channel.cc:56,1
    - Dst: ncclCommPushCudaFree
      Src: /src/nccl/src/channel.cc:57,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/channel.cc:60,1
    - Dst: ncclStrongStreamRelease
      Src: /src/nccl/src/channel.cc:60,1
    - Dst: ncclCudaGraphNone
      Src: /src/nccl/src/channel.cc:60,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/channel.cc:61,1
    - Dst: ncclStrongStreamSynchronize
      Src: /src/nccl/src/channel.cc:61,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 2
    argNames:
    - comm
    - channelId
    argTypes:
    - struct ncclComm*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 12
    functionDepth: 2
    functionLinenumber: 12
    functionLinenumberEnd: 63
    functionName: initChannel
    functionSourceFile: /src/nccl/src/channel.cc
    functionUses: 1
    functionsReached:
    - ncclAtomicRefCountIncrement
    - ncclMemoryStackAlloc
    - ncclCudaCallocAsync
    - ncclStrongStreamSynchronize
    - ncclCudaGraphNone
    - ncclCudaMemcpyAsync
    - ncclCalloc
    - ncclCommPushCudaFree
    - ncclStrongStreamRelease
    - NCCLCHECK
    - ncclStrongStreamAcquire
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t initChannel(struct ncclComm* comm, int channelId)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/channel.cc:74,1
    - Dst: initChannel
      Src: /src/nccl/src/channel.cc:74,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/channel.cc:76,1
    - Dst: ncclStrongStreamAcquire
      Src: /src/nccl/src/channel.cc:76,1
    - Dst: ncclCudaGraphNone
      Src: /src/nccl/src/channel.cc:76,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/channel.cc:87,1
    - Dst: ncclCudaMemcpyAsync
      Src: /src/nccl/src/channel.cc:87,1
    - Dst: ncclAtomicRefCountIncrement
      Src: /src/nccl/src/channel.cc:89,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/channel.cc:92,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/channel.cc:92,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/channel.cc:93,1
    - Dst: ncclCudaCallocAsync
      Src: /src/nccl/src/channel.cc:93,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/channel.cc:97,1
    - Dst: ncclCudaMemcpyAsync
      Src: /src/nccl/src/channel.cc:97,1
    - Dst: ncclAtomicRefCountIncrement
      Src: /src/nccl/src/channel.cc:99,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/channel.cc:103,1
    - Dst: ncclStrongStreamRelease
      Src: /src/nccl/src/channel.cc:103,1
    - Dst: ncclCudaGraphNone
      Src: /src/nccl/src/channel.cc:103,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/channel.cc:104,1
    - Dst: ncclStrongStreamSynchronize
      Src: /src/nccl/src/channel.cc:104,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 4
    argNames:
    - comm
    - channelId
    - parent
    - share
    argTypes:
    - struct ncclComm*
    - int
    - struct ncclComm*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 65
    functionDepth: 3
    functionLinenumber: 65
    functionLinenumberEnd: 107
    functionName: initNvlsChannel
    functionSourceFile: /src/nccl/src/channel.cc
    functionUses: 0
    functionsReached:
    - ncclAtomicRefCountIncrement
    - ncclCudaCallocAsync
    - ncclStrongStreamSynchronize
    - ncclCudaGraphNone
    - ncclCudaMemcpyAsync
    - ncclCalloc
    - ncclStrongStreamRelease
    - initChannel
    - NCCLCHECK
    - ncclStrongStreamAcquire
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t initNvlsChannel(struct ncclComm* comm, int channelId,
      struct ncclComm* parent, bool share)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/channel.cc:119,1
    - Dst: initChannel
      Src: /src/nccl/src/channel.cc:119,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/channel.cc:121,1
    - Dst: ncclStrongStreamAcquire
      Src: /src/nccl/src/channel.cc:121,1
    - Dst: ncclCudaGraphNone
      Src: /src/nccl/src/channel.cc:121,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/channel.cc:128,1
    - Dst: ncclCudaMemcpyAsync
      Src: /src/nccl/src/channel.cc:128,1
    - Dst: ncclAtomicRefCountIncrement
      Src: /src/nccl/src/channel.cc:130,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/channel.cc:132,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/channel.cc:132,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/channel.cc:133,1
    - Dst: ncclCudaCallocAsync
      Src: /src/nccl/src/channel.cc:133,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/channel.cc:136,1
    - Dst: ncclCudaMemcpyAsync
      Src: /src/nccl/src/channel.cc:136,1
    - Dst: ncclAtomicRefCountIncrement
      Src: /src/nccl/src/channel.cc:138,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/channel.cc:141,1
    - Dst: ncclStrongStreamRelease
      Src: /src/nccl/src/channel.cc:141,1
    - Dst: ncclCudaGraphNone
      Src: /src/nccl/src/channel.cc:141,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/channel.cc:142,1
    - Dst: ncclStrongStreamSynchronize
      Src: /src/nccl/src/channel.cc:142,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 4
    argNames:
    - comm
    - channelId
    - parent
    - share
    argTypes:
    - struct ncclComm*
    - int
    - struct ncclComm*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 109
    functionDepth: 3
    functionLinenumber: 109
    functionLinenumberEnd: 145
    functionName: initCollnetChannel
    functionSourceFile: /src/nccl/src/channel.cc
    functionUses: 0
    functionsReached:
    - ncclAtomicRefCountIncrement
    - ncclCudaCallocAsync
    - ncclStrongStreamSynchronize
    - ncclCudaGraphNone
    - ncclCudaMemcpyAsync
    - ncclCalloc
    - ncclStrongStreamRelease
    - initChannel
    - NCCLCHECK
    - ncclStrongStreamAcquire
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t initCollnetChannel(struct ncclComm* comm, int channelId,
      struct ncclComm* parent, bool share)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ncclAtomicRefCountDecrement
      Src: /src/nccl/src/channel.cc:159,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/channel.cc:161,1
    - Dst: transportComm::free
      Src: /src/nccl/src/channel.cc:161,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/channel.cc:162,1
    - Dst: transportComm::free
      Src: /src/nccl/src/channel.cc:162,1
    - Dst: free
      Src: /src/nccl/src/channel.cc:165,1
    - Dst: ncclCudaFree
      Src: /src/nccl/src/channel.cc:166,1
    - Dst: free
      Src: /src/nccl/src/channel.cc:168,1
    - Dst: ncclCudaFree
      Src: /src/nccl/src/channel.cc:169,1
    - Dst: free
      Src: /src/nccl/src/channel.cc:175,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 4
    argNames:
    - channel
    - nRanks
    - collnetNRanks
    - nvlsNRanks
    argTypes:
    - struct ncclChannel*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 177
    functionName: freeChannel
    functionSourceFile: /src/nccl/src/channel.cc
    functionUses: 1
    functionsReached:
    - ncclAtomicRefCountDecrement
    - transportComm::free
    - free
    - ncclCudaFree
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t freeChannel(struct ncclChannel* channel, int nRanks, int
      collnetNRanks, int nvlsNRanks)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ncclCuMemEnable
      Src: /src/nccl/src/mnnvl.cc:15,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/mnnvl.cc:21,1
    - Dst: cudaGetDevice
      Src: /src/nccl/src/mnnvl.cc:21,1
    - Dst: CUCHECK
      Src: /src/nccl/src/mnnvl.cc:22,1
    - Dst: cuDeviceGet
      Src: /src/nccl/src/mnnvl.cc:22,1
    - Dst: CUPFN
      Src: /src/nccl/src/mnnvl.cc:24,1
    - Dst: cuDeviceGetAttribute
      Src: /src/nccl/src/mnnvl.cc:24,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/mnnvl.cc:32,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/mnnvl.cc:32,1
    - Dst: memcmp
      Src: /src/nccl/src/mnnvl.cc:40,1
    - Dst: ncclCuMemAlloc
      Src: /src/nccl/src/mnnvl.cc:60,1
    - Dst: WARN
      Src: /src/nccl/src/mnnvl.cc:63,1
    - Dst: CUPFN
      Src: /src/nccl/src/mnnvl.cc:67,1
    - Dst: cuMemExportToShareableHandle
      Src: /src/nccl/src/mnnvl.cc:67,1
    - Dst: CUPFN
      Src: /src/nccl/src/mnnvl.cc:69,1
    - Dst: cuMemImportFromShareableHandle
      Src: /src/nccl/src/mnnvl.cc:69,1
    - Dst: pfn_cuGetErrorString
      Src: /src/nccl/src/mnnvl.cc:71,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/mnnvl.cc:72,1
    - Dst: ncclCuMemFree
      Src: /src/nccl/src/mnnvl.cc:72,1
    - Dst: WARN
      Src: /src/nccl/src/mnnvl.cc:74,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/mnnvl.cc:78,1
    - Dst: ncclCuMemFree
      Src: /src/nccl/src/mnnvl.cc:78,1
    - Dst: INFO
      Src: /src/nccl/src/mnnvl.cc:83,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 43
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 87
    functionName: ncclMnnvlCheck
    functionSourceFile: /src/nccl/src/mnnvl.cc
    functionUses: 1
    functionsReached:
    - WARN
    - ncclCuMemAlloc
    - ncclCuMemFree
    - INFO
    - cuMemExportToShareableHandle
    - pfn_cuGetErrorString
    - memcmp
    - CUDACHECK
    - cuDeviceGetAttribute
    - CUPFN
    - ncclCalloc
    - ncclCuMemEnable
    - cudaGetDevice
    - CUCHECK
    - cuMemImportFromShareableHandle
    - cuDeviceGet
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclMnnvlCheck(struct ncclComm* comm)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ncclParamL1SharedMemoryCarveout
      Src: /src/nccl/src/enqueue.cc:29,1
    - Dst: ncclShmemDynamicSize
      Src: /src/nccl/src/enqueue.cc:30,1
    - Dst: cudaFuncGetAttributes
      Src: /src/nccl/src/enqueue.cc:40,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/enqueue.cc:42,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/enqueue.cc:49,1
    - Dst: cudaFuncSetAttribute
      Src: /src/nccl/src/enqueue.cc:49,1
    - Dst: WARN
      Src: /src/nccl/src/enqueue.cc:57,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/enqueue.cc:61,1
    - Dst: cudaFuncSetAttribute
      Src: /src/nccl/src/enqueue.cc:61,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 36
    argCount: 3
    argNames:
    - cudaArch
    - maxSharedMem
    - maxStackSize
    argTypes:
    - int
    - int
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 69
    functionName: ncclInitKernelsForDevice
    functionSourceFile: /src/nccl/src/enqueue.cc
    functionUses: 1
    functionsReached:
    - cudaFuncGetAttributes
    - WARN
    - cudaFuncSetAttribute
    - CUDACHECKGOTO
    - ncclParamL1SharedMemoryCarveout
    - ncclShmemDynamicSize
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclInitKernelsForDevice(int cudaArch, int maxSharedMem,
      size_t* maxStackSize)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - func
    - nRanks
    argTypes:
    - ncclFunc_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 81
    functionName: ncclFuncTrafficPerByte
    functionSourceFile: /src/nccl/src/enqueue.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ncclFuncTrafficPerByte(ncclFunc_t func, int nRanks)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:89,1
    - Dst: ncclProxySaveOp
      Src: /src/nccl/src/enqueue.cc:89,1
    - Dst: ncclMemoryPoolAlloc
      Src: /src/nccl/src/enqueue.cc:91,1
    - Dst: ncclIntruQueueEnqueue
      Src: /src/nccl/src/enqueue.cc:93,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - comm
    - plan
    - op
    argTypes:
    - struct ncclComm*
    - struct ncclKernelPlan*
    - struct ncclProxyOp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 87
    functionDepth: 4
    functionLinenumber: 87
    functionLinenumberEnd: 96
    functionName: addProxyOpIfNeeded
    functionSourceFile: /src/nccl/src/enqueue.cc
    functionUses: 0
    functionsReached:
    - ncclMemoryPoolAlloc
    - ncclProxySaveOp
    - ncclIntruQueueEnqueue
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t addProxyOpIfNeeded(struct ncclComm* comm, struct ncclKernelPlan*
      plan, struct ncclProxyOp* op)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ncclDevWorkSize
      Src: /src/nccl/src/enqueue.cc:104,1
    - Dst: ncclMemoryStackAlloc
      Src: /src/nccl/src/enqueue.cc:131,1
    - Dst: ncclIntruQueueEnqueue
      Src: /src/nccl/src/enqueue.cc:136,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 37
    argCount: 6
    argNames:
    - comm
    - plan
    - channelId
    - workType
    - devFuncId
    - workOffset
    argTypes:
    - struct ncclComm*
    - struct ncclKernelPlan*
    - int
    - enum ncclDevWorkType
    - int
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 163
    functionName: addWorkBatchToPlan
    functionSourceFile: /src/nccl/src/enqueue.cc
    functionUses: 0
    functionsReached:
    - ncclIntruQueueEnqueue
    - ncclDevWorkSize
    - ncclMemoryStackAlloc
    linkageType: ''
    returnType: void
    signature: "void addWorkBatchToPlan(\n    struct ncclComm* comm, struct ncclKernelPlan*
      plan, int channelId,\n    enum ncclDevWorkType workType, int devFuncId, uint32_t
      workOffset,\n    int p2pRound = -1\n  )"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: std::max
      Src: /src/nccl/src/enqueue.cc:170,1
    - Dst: alignUp
      Src: /src/nccl/src/enqueue.cc:178,1
    - Dst: ncclMemoryStackAlloc
      Src: /src/nccl/src/enqueue.cc:179,1
    - Dst: popFirstOneBit
      Src: /src/nccl/src/enqueue.cc:194,1
    - Dst: ncclIntruQueueEmpty
      Src: /src/nccl/src/enqueue.cc:195,1
    - Dst: ncclIntruQueueDequeue
      Src: /src/nccl/src/enqueue.cc:196,1
    - Dst: ncclIntruQueueEmpty
      Src: /src/nccl/src/enqueue.cc:203,1
    - Dst: ncclIntruQueueHead
      Src: /src/nccl/src/enqueue.cc:215,1
    - Dst: ncclIntruQueueDequeue
      Src: /src/nccl/src/enqueue.cc:232,1
    - Dst: ncclIntruQueueHead
      Src: /src/nccl/src/enqueue.cc:233,1
    - Dst: ncclIntruQueueEnqueue
      Src: /src/nccl/src/enqueue.cc:236,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 47
    argCount: 2
    argNames:
    - comm
    - plan
    argTypes:
    - struct ncclComm*
    - struct ncclKernelPlan*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 238
    functionName: finishPlan
    functionSourceFile: /src/nccl/src/enqueue.cc
    functionUses: 0
    functionsReached:
    - ncclIntruQueueEnqueue
    - ncclMemoryStackAlloc
    - std::max
    - ncclIntruQueueEmpty
    - ncclIntruQueueDequeue
    - ncclIntruQueueHead
    - alignUp
    - popFirstOneBit
    linkageType: ''
    returnType: void
    signature: void finishPlan(struct ncclComm* comm, struct ncclKernelPlan* plan)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - budget
    - nWorkBatches
    - workBytes
    argTypes:
    - struct ncclKernelPlanBudget*
    - int
    - ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 257
    functionDepth: 0
    functionLinenumber: 257
    functionLinenumberEnd: 265
    functionName: testBudget
    functionSourceFile: /src/nccl/src/enqueue.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool testBudget(\n    struct ncclKernelPlanBudget* budget, int nWorkBatches,
      ssize_t workBytes\n  )"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ncclIntruQueueHead
      Src: /src/nccl/src/enqueue.cc:271,1
    - Dst: ncclIntruQueueDequeue
      Src: /src/nccl/src/enqueue.cc:281,1
    - Dst: ncclRegisterCollBuffers
      Src: /src/nccl/src/enqueue.cc:284,1
    - Dst: ncclProfilerPluginLoaded
      Src: /src/nccl/src/enqueue.cc:299,1
    - Dst: ncclMemoryStackAllocInlineArray
      Src: /src/nccl/src/enqueue.cc:311,1
    - Dst: memcpy
      Src: /src/nccl/src/enqueue.cc:314,1
    - Dst: ncclMemoryStackAllocInlineArray
      Src: /src/nccl/src/enqueue.cc:316,1
    - Dst: memcpy
      Src: /src/nccl/src/enqueue.cc:319,1
    - Dst: ncclIntruQueueEnqueue
      Src: /src/nccl/src/enqueue.cc:322,1
    - Dst: assert
      Src: /src/nccl/src/enqueue.cc:325,1
    - Dst: ncclIntruQueueEmpty
      Src: /src/nccl/src/enqueue.cc:325,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 50
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts:
    - condition: (ncclIntruQueueEmpty(&planner->tmpCollWorkQueue))
      pos:
        line_end: 324
        line_start: 324
        source_file: /src/nccl/src/enqueue.cc
    constantsTouched: []
    func_position:
      end: 327
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 327
    functionName: ncclTasksRegAndEnqueue
    functionSourceFile: /src/nccl/src/enqueue.cc
    functionUses: 1
    functionsReached:
    - ncclRegisterCollBuffers
    - ncclIntruQueueEnqueue
    - memcpy
    - ncclProfilerPluginLoaded
    - ncclIntruQueueEmpty
    - assert
    - ncclIntruQueueDequeue
    - ncclIntruQueueHead
    - ncclMemoryStackAllocInlineArray
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTasksRegAndEnqueue(struct ncclComm* comm)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: ncclCudaGraphValid
      Src: /src/nccl/src/enqueue.cc:333,1
    - Dst: ncclTaskCollSorterDequeueAll
      Src: /src/nccl/src/enqueue.cc:335,1
    - Dst: memset
      Src: /src/nccl/src/enqueue.cc:338,1
    - Dst: ncclTypeSize
      Src: /src/nccl/src/enqueue.cc:347,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:348,1
    - Dst: ncclRegFindSymmetric
      Src: /src/nccl/src/enqueue.cc:348,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:349,1
    - Dst: ncclRegFindSymmetric
      Src: /src/nccl/src/enqueue.cc:349,1
    - Dst: ncclSymImplemented
      Src: /src/nccl/src/enqueue.cc:350,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:356,1
    - Dst: ncclSymPickKernel
      Src: /src/nccl/src/enqueue.cc:356,1
    - Dst: ncclIntruQueueEnqueue
      Src: /src/nccl/src/enqueue.cc:367,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:393,1
    - Dst: getCollNetSupport
      Src: /src/nccl/src/enqueue.cc:393,1
    - Dst: ncclNvlsSupported
      Src: /src/nccl/src/enqueue.cc:394,1
    - Dst: divUp
      Src: /src/nccl/src/enqueue.cc:398,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:409,1
    - Dst: getAlgoInfo
      Src: /src/nccl/src/enqueue.cc:409,1
    - Dst: ncclDevFuncId
      Src: /src/nccl/src/enqueue.cc:410,1
    - Dst: ncclIntruQueueEnqueue
      Src: /src/nccl/src/enqueue.cc:435,1
    - Dst: ncclIntruQueueTransfer
      Src: /src/nccl/src/enqueue.cc:446,1
    - Dst: ncclIntruQueueHead
      Src: /src/nccl/src/enqueue.cc:455,1
    - Dst: ncclRegisterCollNvlsBuffers
      Src: /src/nccl/src/enqueue.cc:461,1
    - Dst: ncclProfilerPluginLoaded
      Src: /src/nccl/src/enqueue.cc:489,1
    - Dst: ncclMemoryStackAllocInlineArray
      Src: /src/nccl/src/enqueue.cc:502,1
    - Dst: memcpy
      Src: /src/nccl/src/enqueue.cc:505,1
    - Dst: ncclMemoryStackAllocInlineArray
      Src: /src/nccl/src/enqueue.cc:507,1
    - Dst: memcpy
      Src: /src/nccl/src/enqueue.cc:510,1
    - Dst: ncclIntruQueueEnqueue
      Src: /src/nccl/src/enqueue.cc:513,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 119
    argCount: 4
    argNames:
    - comm
    - algoNeedConnect
    - needConnect
    - simInfo
    argTypes:
    - struct ncclComm*
    - bool*
    - bool*
    - ncclSimInfo_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 331
    functionDepth: 1
    functionLinenumber: 331
    functionLinenumberEnd: 519
    functionName: ncclPrepareTasks
    functionSourceFile: /src/nccl/src/enqueue.cc
    functionUses: 1
    functionsReached:
    - divUp
    - ncclNvlsSupported
    - NCCLCHECK
    - getAlgoInfo
    - ncclIntruQueueEnqueue
    - ncclRegFindSymmetric
    - getCollNetSupport
    - ncclProfilerPluginLoaded
    - ncclTaskCollSorterDequeueAll
    - ncclMemoryStackAllocInlineArray
    - ncclIntruQueueTransfer
    - memset
    - ncclSymImplemented
    - ncclTypeSize
    - ncclDevFuncId
    - memcpy
    - ncclCudaGraphValid
    - ncclIntruQueueHead
    - ncclRegisterCollNvlsBuffers
    - ncclSymPickKernel
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclPrepareTasks(struct ncclComm* comm, bool* algoNeedConnect,
      bool* needConnect, ncclSimInfo_t* simInfo)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: addProxyOpIfNeeded
      Src: /src/nccl/src/enqueue.cc:524,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - comm
    - plan
    - op
    argTypes:
    - struct ncclComm*
    - struct ncclKernelPlan*
    - struct ncclProxyOp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 527
      start: 521
    functionDepth: 5
    functionLinenumber: 521
    functionLinenumberEnd: 527
    functionName: addProfilerProxyOpIfNeeded
    functionSourceFile: /src/nccl/src/enqueue.cc
    functionUses: 0
    functionsReached:
    - addProxyOpIfNeeded
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t addProfilerProxyOpIfNeeded(struct ncclComm* comm, struct
      ncclKernelPlan* plan, struct ncclProxyOp* op)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: ncclIntruQueueHead
      Src: /src/nccl/src/enqueue.cc:542,1
    - Dst: ncclIntruQueueHead
      Src: /src/nccl/src/enqueue.cc:543,1
    - Dst: divUp
      Src: /src/nccl/src/enqueue.cc:545,1
    - Dst: testBudget
      Src: /src/nccl/src/enqueue.cc:546,1
    - Dst: std::max
      Src: /src/nccl/src/enqueue.cc:551,1
    - Dst: min
      Src: /src/nccl/src/enqueue.cc:553,1
    - Dst: ncclIntruQueueEmpty
      Src: /src/nccl/src/enqueue.cc:564,1
    - Dst: ncclIntruQueueHead
      Src: /src/nccl/src/enqueue.cc:565,1
    - Dst: ncclIntruQueueHead
      Src: /src/nccl/src/enqueue.cc:566,1
    - Dst: ncclTypeSize
      Src: /src/nccl/src/enqueue.cc:568,1
    - Dst: std::max<size_t>
      Src: /src/nccl/src/enqueue.cc:572,1
    - Dst: testBudget
      Src: /src/nccl/src/enqueue.cc:581,1
    - Dst: ncclFuncMaxSendRecvCount
      Src: /src/nccl/src/enqueue.cc:585,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:588,1
    - Dst: calcCollChunking
      Src: /src/nccl/src/enqueue.cc:588,1
    - Dst: ncclTypeSize
      Src: /src/nccl/src/enqueue.cc:592,1
    - Dst: addWorkBatchToPlan
      Src: /src/nccl/src/enqueue.cc:603,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:605,1
    - Dst: addProxyOpIfNeeded
      Src: /src/nccl/src/enqueue.cc:605,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:606,1
    - Dst: addProfilerProxyOpIfNeeded
      Src: /src/nccl/src/enqueue.cc:606,1
    - Dst: ncclFuncTrafficPerByte
      Src: /src/nccl/src/enqueue.cc:609,1
    - Dst: divUp
      Src: /src/nccl/src/enqueue.cc:611,1
    - Dst: divUp
      Src: /src/nccl/src/enqueue.cc:611,1
    - Dst: divUp
      Src: /src/nccl/src/enqueue.cc:613,1
    - Dst: min
      Src: /src/nccl/src/enqueue.cc:616,1
    - Dst: divUp
      Src: /src/nccl/src/enqueue.cc:616,1
    - Dst: min
      Src: /src/nccl/src/enqueue.cc:621,1
    - Dst: divUp
      Src: /src/nccl/src/enqueue.cc:621,1
    - Dst: testBudget
      Src: /src/nccl/src/enqueue.cc:651,1
    - Dst: ncclFuncMaxSendRecvCount
      Src: /src/nccl/src/enqueue.cc:663,1
    - Dst: ncclProtoGrainSize
      Src: /src/nccl/src/enqueue.cc:667,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:669,1
    - Dst: calcCollChunking
      Src: /src/nccl/src/enqueue.cc:669,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:673,1
    - Dst: calcCollChunking
      Src: /src/nccl/src/enqueue.cc:673,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:677,1
    - Dst: calcCollChunking
      Src: /src/nccl/src/enqueue.cc:677,1
    - Dst: RingAGAlgorithm::RingAGAlgorithm
      Src: /src/nccl/src/enqueue.cc:721,1
    - Dst: RingARAlgorithm::RingARAlgorithm
      Src: /src/nccl/src/enqueue.cc:723,1
    - Dst: RingBCAlgorithm::RingBCAlgorithm
      Src: /src/nccl/src/enqueue.cc:725,1
    - Dst: struct ncclProxyOp*::ringAlgo::incRefCount
      Src: /src/nccl/src/enqueue.cc:727,1
    - Dst: addWorkBatchToPlan
      Src: /src/nccl/src/enqueue.cc:731,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:735,1
    - Dst: addProxyOpIfNeeded
      Src: /src/nccl/src/enqueue.cc:735,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:736,1
    - Dst: addProfilerProxyOpIfNeeded
      Src: /src/nccl/src/enqueue.cc:736,1
    - Dst: std::max
      Src: /src/nccl/src/enqueue.cc:741,1
    - Dst: INFO
      Src: /src/nccl/src/enqueue.cc:748,1
    - Dst: ncclFuncToString
      Src: /src/nccl/src/enqueue.cc:749,1
    - Dst: ncclTypeSize
      Src: /src/nccl/src/enqueue.cc:749,1
    - Dst: ncclAlgoToString
      Src: /src/nccl/src/enqueue.cc:749,1
    - Dst: ncclProtoToString
      Src: /src/nccl/src/enqueue.cc:750,1
    - Dst: TRACE
      Src: /src/nccl/src/enqueue.cc:753,1
    - Dst: ncclFuncToString
      Src: /src/nccl/src/enqueue.cc:754,1
    - Dst: ncclDevRedOpToString
      Src: /src/nccl/src/enqueue.cc:754,1
    - Dst: ncclDatatypeToString
      Src: /src/nccl/src/enqueue.cc:755,1
    - Dst: ncclAlgoToString
      Src: /src/nccl/src/enqueue.cc:755,1
    - Dst: ncclProtoToString
      Src: /src/nccl/src/enqueue.cc:756,1
    - Dst: TRACE
      Src: /src/nccl/src/enqueue.cc:760,1
    - Dst: ncclFuncToString
      Src: /src/nccl/src/enqueue.cc:761,1
    - Dst: ncclDevRedOpToString
      Src: /src/nccl/src/enqueue.cc:761,1
    - Dst: ncclDatatypeToString
      Src: /src/nccl/src/enqueue.cc:762,1
    - Dst: ncclAlgoToString
      Src: /src/nccl/src/enqueue.cc:762,1
    - Dst: ncclProtoToString
      Src: /src/nccl/src/enqueue.cc:763,1
    - Dst: ncclProtoGrainSize
      Src: /src/nccl/src/enqueue.cc:766,1
    - Dst: ncclProtoGrainSize
      Src: /src/nccl/src/enqueue.cc:767,1
    - Dst: ncclProtoGrainSize
      Src: /src/nccl/src/enqueue.cc:768,1
    - Dst: ncclIntruQueueEnqueue
      Src: /src/nccl/src/enqueue.cc:773,1
    - Dst: ncclIntruQueueDequeue
      Src: /src/nccl/src/enqueue.cc:773,1
    - Dst: ncclIntruQueueDequeue
      Src: /src/nccl/src/enqueue.cc:775,1
    - Dst: ncclIntruQueueDequeue
      Src: /src/nccl/src/enqueue.cc:776,1
    - Dst: ncclIntruQueueEnqueue
      Src: /src/nccl/src/enqueue.cc:779,1
    - Dst: ncclIntruQueueEnqueue
      Src: /src/nccl/src/enqueue.cc:780,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 176
    argCount: 3
    argNames:
    - comm
    - plan
    - budget
    argTypes:
    - struct ncclComm*
    - struct ncclKernelPlan*
    - struct ncclKernelPlanBudget*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 784
      start: 529
    functionDepth: 6
    functionLinenumber: 529
    functionLinenumberEnd: 784
    functionName: scheduleCollTasksToPlan
    functionSourceFile: /src/nccl/src/enqueue.cc
    functionUses: 0
    functionsReached:
    - divUp
    - std::max
    - std::max<size_t>
    - ncclProtoToString
    - ncclFuncTrafficPerByte
    - RingARAlgorithm::RingARAlgorithm
    - ncclIntruQueueEnqueue
    - INFO
    - TRACE
    - min
    - ncclDatatypeToString
    - ncclDevRedOpToString
    - ncclProtoGrainSize
    - addProfilerProxyOpIfNeeded
    - struct ncclProxyOp*::ringAlgo::incRefCount
    - RingAGAlgorithm::RingAGAlgorithm
    - ncclTypeSize
    - ncclIntruQueueDequeue
    - addProxyOpIfNeeded
    - testBudget
    - ncclFuncToString
    - ncclAlgoToString
    - calcCollChunking
    - ncclFuncMaxSendRecvCount
    - addWorkBatchToPlan
    - ncclIntruQueueEmpty
    - RingBCAlgorithm::RingBCAlgorithm
    - ncclIntruQueueHead
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t scheduleCollTasksToPlan(\n    struct ncclComm* comm,
      struct ncclKernelPlan* plan, struct ncclKernelPlanBudget* budget\n  )"
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: ncclP2pChannelBaseForRound
      Src: /src/nccl/src/enqueue.cc:809,1
    - Dst: ncclP2pChannelForPart
      Src: /src/nccl/src/enqueue.cc:812,1
    - Dst: ncclParamP2pLLThreshold
      Src: /src/nccl/src/enqueue.cc:825,1
    - Dst: ncclParamChunkSize
      Src: /src/nccl/src/enqueue.cc:826,1
    - Dst: u32fp8Encode
      Src: /src/nccl/src/enqueue.cc:854,1
    - Dst: u32fp8Decode
      Src: /src/nccl/src/enqueue.cc:855,1
    - Dst: ncclPxnDisable
      Src: /src/nccl/src/enqueue.cc:860,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:863,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/enqueue.cc:863,1
    - Dst: ncclP2pChannelForPart
      Src: /src/nccl/src/enqueue.cc:865,1
    - Dst: ncclRegisterP2pNetBuffer
      Src: /src/nccl/src/enqueue.cc:871,1
    - Dst: ncclP2pChannelForPart
      Src: /src/nccl/src/enqueue.cc:879,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:886,1
    - Dst: ncclRegisterP2pIpcBuffer
      Src: /src/nccl/src/enqueue.cc:886,1
    - Dst: std::min<int>
      Src: /src/nccl/src/enqueue.cc:900,1
    - Dst: divUp
      Src: /src/nccl/src/enqueue.cc:900,1
    - Dst: std::max
      Src: /src/nccl/src/enqueue.cc:901,1
    - Dst: divUp
      Src: /src/nccl/src/enqueue.cc:901,1
    - Dst: divUp
      Src: /src/nccl/src/enqueue.cc:904,1
    - Dst: ncclMemoryStackAllocInlineArray
      Src: /src/nccl/src/enqueue.cc:911,1
    - Dst: ncclIntruQueueEnqueue
      Src: /src/nccl/src/enqueue.cc:914,1
    - Dst: ncclProfilerPluginLoaded
      Src: /src/nccl/src/enqueue.cc:937,1
    - Dst: std::max
      Src: /src/nccl/src/enqueue.cc:960,1
    - Dst: ncclP2pChannelForPart
      Src: /src/nccl/src/enqueue.cc:963,1
    - Dst: addWorkBatchToPlan
      Src: /src/nccl/src/enqueue.cc:966,1
    - Dst: ncclDevFuncId_P2p
      Src: /src/nccl/src/enqueue.cc:966,1
    - Dst: u32fp8Decode
      Src: /src/nccl/src/enqueue.cc:980,1
    - Dst: ncclP2pPartBounds
      Src: /src/nccl/src/enqueue.cc:982,1
    - Dst: DIVUP
      Src: /src/nccl/src/enqueue.cc:987,1
    - Dst: divUp
      Src: /src/nccl/src/enqueue.cc:989,1
    - Dst: min
      Src: /src/nccl/src/enqueue.cc:990,1
    - Dst: roundUp
      Src: /src/nccl/src/enqueue.cc:994,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:1009,1
    - Dst: addProxyOpIfNeeded
      Src: /src/nccl/src/enqueue.cc:1009,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:1010,1
    - Dst: addProfilerProxyOpIfNeeded
      Src: /src/nccl/src/enqueue.cc:1010,1
    CyclomaticComplexity: 50
    EdgeCount: 50
    ICount: 151
    argCount: 12
    argNames:
    - comm
    - plan
    - nChannelsMin
    - nChannelsMax
    - p2pRound
    - sendRank
    - sendAddr
    - sendBytes
    - recvRank
    - recvAddr
    - recvBytes
    - p2pTasks
    argTypes:
    - struct ncclComm*
    - struct ncclKernelPlan*
    - int
    - int
    - int
    - int
    - void*
    - ssize_t
    - int
    - void*
    - ssize_t
    - struct ncclTaskP2p**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1016
      start: 793
    functionDepth: 6
    functionLinenumber: 793
    functionLinenumberEnd: 1016
    functionName: addP2pToPlan
    functionSourceFile: /src/nccl/src/enqueue.cc
    functionUses: 0
    functionsReached:
    - ncclParamP2pLLThreshold
    - divUp
    - std::max
    - DIVUP
    - ncclIntruQueueEnqueue
    - ncclDevFuncId_P2p
    - min
    - ncclProfilerPluginLoaded
    - ncclP2pChannelForPart
    - addProfilerProxyOpIfNeeded
    - ncclMemoryStackAllocInlineArray
    - ncclPxnDisable
    - std::min<int>
    - ncclParamChunkSize
    - roundUp
    - addProxyOpIfNeeded
    - u32fp8Decode
    - ncclRegisterP2pNetBuffer
    - ncclP2pChannelBaseForRound
    - u32fp8Encode
    - addWorkBatchToPlan
    - ncclRegisterP2pIpcBuffer
    - ncclCalloc
    - ncclP2pPartBounds
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t addP2pToPlan(\n    struct ncclComm* comm, struct ncclKernelPlan*
      plan,\n    int nChannelsMin, int nChannelsMax, int p2pRound,\n    int sendRank,
      void* sendAddr, ssize_t sendBytes,\n    int recvRank, void* recvAddr, ssize_t
      recvBytes,\n    struct ncclTaskP2p** p2pTasks\n  )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::max
      Src: /src/nccl/src/enqueue.cc:1019,1
    - Dst: divUp
      Src: /src/nccl/src/enqueue.cc:1019,1
    - Dst: divUp
      Src: /src/nccl/src/enqueue.cc:1023,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 5
    argNames:
    - totalSize
    - minChannels
    - maxChannels
    - minSize
    - maxSize
    argTypes:
    - size_t
    - int
    - int
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1026
      start: 1018
    functionDepth: 1
    functionLinenumber: 1018
    functionLinenumberEnd: 1026
    functionName: calcP2pChannelCount
    functionSourceFile: /src/nccl/src/enqueue.cc
    functionUses: 0
    functionsReached:
    - std::max
    - divUp
    linkageType: ''
    returnType: int
    signature: int calcP2pChannelCount(size_t totalSize, int minChannels, int maxChannels,
      size_t minSize, size_t maxSize)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: std::max
      Src: /src/nccl/src/enqueue.cc:1034,1
    - Dst: ncclDevFuncId_P2p
      Src: /src/nccl/src/enqueue.cc:1036,1
    - Dst: ncclDevFuncId_P2p
      Src: /src/nccl/src/enqueue.cc:1037,1
    - Dst: ncclIntruQueueHead
      Src: /src/nccl/src/enqueue.cc:1051,1
    - Dst: ncclIntruQueueHead
      Src: /src/nccl/src/enqueue.cc:1052,1
    - Dst: WARN
      Src: /src/nccl/src/enqueue.cc:1057,1
    - Dst: WARN
      Src: /src/nccl/src/enqueue.cc:1061,1
    - Dst: ncclIntruQueueDequeue
      Src: /src/nccl/src/enqueue.cc:1072,1
    - Dst: ncclIntruQueueDequeue
      Src: /src/nccl/src/enqueue.cc:1073,1
    - Dst: ncclMemoryPoolFree
      Src: /src/nccl/src/enqueue.cc:1074,1
    - Dst: ncclMemoryPoolFree
      Src: /src/nccl/src/enqueue.cc:1075,1
    - Dst: testBudget
      Src: /src/nccl/src/enqueue.cc:1079,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:1083,1
    - Dst: addP2pToPlan
      Src: /src/nccl/src/enqueue.cc:1083,1
    - Dst: ncclIntruQueueDequeue
      Src: /src/nccl/src/enqueue.cc:1085,1
    - Dst: ncclIntruQueueEnqueue
      Src: /src/nccl/src/enqueue.cc:1086,1
    - Dst: ncclIntruQueueDequeue
      Src: /src/nccl/src/enqueue.cc:1090,1
    - Dst: ncclIntruQueueEnqueue
      Src: /src/nccl/src/enqueue.cc:1091,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 47
    argCount: 3
    argNames:
    - comm
    - plan
    - budget
    argTypes:
    - struct ncclComm*
    - struct ncclKernelPlan*
    - struct ncclKernelPlanBudget*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1098
      start: 1028
    functionDepth: 7
    functionLinenumber: 1028
    functionLinenumberEnd: 1098
    functionName: scheduleP2pTasksToPlan
    functionSourceFile: /src/nccl/src/enqueue.cc
    functionUses: 0
    functionsReached:
    - WARN
    - ncclIntruQueueEnqueue
    - std::max
    - ncclIntruQueueDequeue
    - ncclMemoryPoolFree
    - addP2pToPlan
    - testBudget
    - ncclIntruQueueHead
    - NCCLCHECK
    - ncclDevFuncId_P2p
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t scheduleP2pTasksToPlan(\n    struct ncclComm* comm, struct
      ncclKernelPlan* plan, struct ncclKernelPlanBudget* budget\n  )"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:1105,1
    - Dst: ncclCommPollEventCallbacks
      Src: /src/nccl/src/enqueue.cc:1105,1
    - Dst: sched_yield
      Src: /src/nccl/src/enqueue.cc:1108,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - comm
    - desiredProduced
    argTypes:
    - struct ncclComm*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1112
      start: 1101
    functionDepth: 1
    functionLinenumber: 1101
    functionLinenumberEnd: 1112
    functionName: waitWorkFifoAvailable
    functionSourceFile: /src/nccl/src/enqueue.cc
    functionUses: 0
    functionsReached:
    - ncclCommPollEventCallbacks
    - sched_yield
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t waitWorkFifoAvailable(struct ncclComm* comm, uint32_t
      desiredProduced)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/nccl/src/enqueue.cc:1123,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/enqueue.cc:1124,1
    - Dst: cudaEventDestroy
      Src: /src/nccl/src/enqueue.cc:1124,1
    - Dst: free
      Src: /src/nccl/src/enqueue.cc:1125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - comm
    - cb
    argTypes:
    - struct ncclComm*
    - struct ncclCommEventCallback*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1127
      start: 1119
    functionDepth: 1
    functionLinenumber: 1119
    functionLinenumberEnd: 1127
    functionName: uploadWork_cleanup_fn
    functionSourceFile: /src/nccl/src/enqueue.cc
    functionUses: 0
    functionsReached:
    - CUDACHECK
    - cudaEventDestroy
    - free
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t uploadWork_cleanup_fn(\n      struct ncclComm* comm,
      struct ncclCommEventCallback* cb\n    )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/nccl/src/enqueue.cc:1123,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/enqueue.cc:1124,1
    - Dst: cudaEventDestroy
      Src: /src/nccl/src/enqueue.cc:1124,1
    - Dst: free
      Src: /src/nccl/src/enqueue.cc:1125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - comm
    - cb
    argTypes:
    - struct ncclComm*
    - struct ncclCommEventCallback*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1127
      start: 1119
    functionDepth: 1
    functionLinenumber: 1119
    functionLinenumberEnd: 1127
    functionName: uploadWork_cleanup_fn
    functionSourceFile: /src/nccl/src/enqueue.cc
    functionUses: 0
    functionsReached:
    - CUDACHECK
    - cudaEventDestroy
    - free
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t uploadWork_cleanup_fn(\n      struct ncclComm* comm,
      struct ncclCommEventCallback* cb\n    )"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:1149,1
    - Dst: waitWorkFifoAvailable
      Src: /src/nccl/src/enqueue.cc:1149,1
    - Dst: aligned_alloc
      Src: /src/nccl/src/enqueue.cc:1155,1
    - Dst: ROUNDUP
      Src: /src/nccl/src/enqueue.cc:1155,1
    - Dst: malloc
      Src: /src/nccl/src/enqueue.cc:1158,1
    - Dst: ncclIntruQueueHead
      Src: /src/nccl/src/enqueue.cc:1179,1
    - Dst: memcpy
      Src: /src/nccl/src/enqueue.cc:1184,1
    - Dst: __builtin_assume_aligned
      Src: /src/nccl/src/enqueue.cc:1185,1
    - Dst: __builtin_assume_aligned
      Src: /src/nccl/src/enqueue.cc:1186,1
    - Dst: wc_store_fence
      Src: /src/nccl/src/enqueue.cc:1198,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/enqueue.cc:1207,1
    - Dst: cudaThreadExchangeStreamCaptureMode
      Src: /src/nccl/src/enqueue.cc:1207,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/enqueue.cc:1211,1
    - Dst: ncclStrongStreamAcquire
      Src: /src/nccl/src/enqueue.cc:1211,1
    - Dst: ncclCudaGraphNone
      Src: /src/nccl/src/enqueue.cc:1211,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/enqueue.cc:1213,1
    - Dst: cudaMallocAsync
      Src: /src/nccl/src/enqueue.cc:1213,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/enqueue.cc:1218,1
    - Dst: cudaMemcpyAsync
      Src: /src/nccl/src/enqueue.cc:1218,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/enqueue.cc:1220,1
    - Dst: cudaEventCreateWithFlags
      Src: /src/nccl/src/enqueue.cc:1220,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/enqueue.cc:1221,1
    - Dst: cudaEventRecord
      Src: /src/nccl/src/enqueue.cc:1221,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/enqueue.cc:1223,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/enqueue.cc:1223,1
    - Dst: ncclIntruQueueEnqueue
      Src: /src/nccl/src/enqueue.cc:1227,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/enqueue.cc:1229,1
    - Dst: ncclStrongStreamRelease
      Src: /src/nccl/src/enqueue.cc:1229,1
    - Dst: ncclCudaGraphNone
      Src: /src/nccl/src/enqueue.cc:1229,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/enqueue.cc:1230,1
    - Dst: ncclCommPollEventCallbacks
      Src: /src/nccl/src/enqueue.cc:1230,1
    - Dst: cudaThreadExchangeStreamCaptureMode
      Src: /src/nccl/src/enqueue.cc:1233,1
    - Dst: free
      Src: /src/nccl/src/enqueue.cc:1236,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 77
    argCount: 2
    argNames:
    - comm
    - plan
    argTypes:
    - struct ncclComm*
    - struct ncclKernelPlan*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1242
      start: 1130
    functionDepth: 2
    functionLinenumber: 1130
    functionLinenumberEnd: 1242
    functionName: uploadWork
    functionSourceFile: /src/nccl/src/enqueue.cc
    functionUses: 0
    functionsReached:
    - cudaEventRecord
    - ncclIntruQueueEnqueue
    - ncclCudaGraphNone
    - ncclCommPollEventCallbacks
    - malloc
    - ROUNDUP
    - CUDACHECKGOTO
    - aligned_alloc
    - cudaThreadExchangeStreamCaptureMode
    - ncclStrongStreamRelease
    - ncclStrongStreamAcquire
    - waitWorkFifoAvailable
    - __builtin_assume_aligned
    - NCCLCHECKGOTO
    - memcpy
    - cudaEventCreateWithFlags
    - free
    - wc_store_fence
    - cudaMallocAsync
    - cudaMemcpyAsync
    - ncclCalloc
    - ncclIntruQueueHead
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t uploadWork(struct ncclComm* comm, struct ncclKernelPlan*
      plan)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ncclIntruQueueHead
      Src: /src/nccl/src/enqueue.cc:1252,1
    - Dst: ncclProfilerAddPidToProxyOp
      Src: /src/nccl/src/enqueue.cc:1257,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:1272,1
    - Dst: ncclProxySaveOp
      Src: /src/nccl/src/enqueue.cc:1272,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 2
    argNames:
    - comm
    - plan
    argTypes:
    - struct ncclComm*
    - struct ncclKernelPlan*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1284
      start: 1244
    functionDepth: 4
    functionLinenumber: 1244
    functionLinenumberEnd: 1284
    functionName: uploadProxyOps
    functionSourceFile: /src/nccl/src/enqueue.cc
    functionUses: 0
    functionsReached:
    - ncclIntruQueueHead
    - ncclProxySaveOp
    - ncclProfilerAddPidToProxyOp
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t uploadProxyOps(struct ncclComm* comm, struct ncclKernelPlan*
      plan)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:1287,1
    - Dst: ncclProfilerStartGroupEvent
      Src: /src/nccl/src/enqueue.cc:1287,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:1288,1
    - Dst: ncclProfilerStartTaskEvents
      Src: /src/nccl/src/enqueue.cc:1288,1
    - Dst: ncclIntruQueueHead
      Src: /src/nccl/src/enqueue.cc:1289,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:1290,1
    - Dst: uploadProxyOps
      Src: /src/nccl/src/enqueue.cc:1290,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:1291,1
    - Dst: ncclProxyStart
      Src: /src/nccl/src/enqueue.cc:1291,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:1293,1
    - Dst: ncclProfilerStopTaskEvents
      Src: /src/nccl/src/enqueue.cc:1293,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:1294,1
    - Dst: ncclProfilerStopGroupEvent
      Src: /src/nccl/src/enqueue.cc:1294,1
    - Dst: ncclIntruQueueMpscEnqueue
      Src: /src/nccl/src/enqueue.cc:1297,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - comm
    - plan
    argTypes:
    - struct ncclComm*
    - struct ncclKernelPlan*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1300
      start: 1286
    functionDepth: 5
    functionLinenumber: 1286
    functionLinenumberEnd: 1300
    functionName: hostStreamPlanTask
    functionSourceFile: /src/nccl/src/enqueue.cc
    functionUses: 0
    functionsReached:
    - uploadProxyOps
    - ncclProfilerStopTaskEvents
    - ncclProfilerStartTaskEvents
    - ncclProfilerStartGroupEvent
    - ncclProfilerStopGroupEvent
    - ncclProxyStart
    - ncclIntruQueueHead
    - ncclIntruQueueMpscEnqueue
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t hostStreamPlanTask(struct ncclComm* comm, struct ncclKernelPlan*
      plan)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NVTX3_FUNC_RANGE_IN
      Src: /src/nccl/src/enqueue.cc:1303,1
    - Dst: hostStreamPlanTask
      Src: /src/nccl/src/enqueue.cc:1305,1
    - Dst: WARN
      Src: /src/nccl/src/enqueue.cc:1307,1
    - Dst: ncclGetErrorString
      Src: /src/nccl/src/enqueue.cc:1307,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - plan_
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1310
      start: 1302
    functionDepth: 6
    functionLinenumber: 1302
    functionLinenumberEnd: 1310
    functionName: hostStreamPlanCallback
    functionSourceFile: /src/nccl/src/enqueue.cc
    functionUses: 0
    functionsReached:
    - WARN
    - ncclGetErrorString
    - NVTX3_FUNC_RANGE_IN
    - hostStreamPlanTask
    linkageType: ''
    returnType: void
    signature: void hostStreamPlanCallback(void *plan_)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CUDACHECK
      Src: /src/nccl/src/enqueue.cc:1319,1
    - Dst: cudaThreadExchangeStreamCaptureMode
      Src: /src/nccl/src/enqueue.cc:1319,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/enqueue.cc:1320,1
    - Dst: cudaFree
      Src: /src/nccl/src/enqueue.cc:1320,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/enqueue.cc:1321,1
    - Dst: cudaThreadExchangeStreamCaptureMode
      Src: /src/nccl/src/enqueue.cc:1321,1
    - Dst: ncclIntruQueueHead
      Src: /src/nccl/src/enqueue.cc:1325,1
    - Dst: free
      Src: /src/nccl/src/enqueue.cc:1328,1
    - Dst: free
      Src: /src/nccl/src/enqueue.cc:1329,1
    - Dst: free
      Src: /src/nccl/src/enqueue.cc:1330,1
    - Dst: ncclMemoryPoolFree
      Src: /src/nccl/src/enqueue.cc:1331,1
    - Dst: ncclIntruQueueHead
      Src: /src/nccl/src/enqueue.cc:1335,1
    - Dst: ncclMemoryPoolFree
      Src: /src/nccl/src/enqueue.cc:1338,1
    - Dst: ncclIntruQueueHead
      Src: /src/nccl/src/enqueue.cc:1342,1
    - Dst: struct ncclProxyOp*::ringAlgo::decRefCount
      Src: /src/nccl/src/enqueue.cc:1345,1
    - Dst: ncclMemoryPoolFree
      Src: /src/nccl/src/enqueue.cc:1346,1
    - Dst: ncclIntruQueueEmpty
      Src: /src/nccl/src/enqueue.cc:1351,1
    - Dst: ncclIntruQueueDequeue
      Src: /src/nccl/src/enqueue.cc:1352,1
    - Dst: struct ncclCommCallback*::fn
      Src: /src/nccl/src/enqueue.cc:1353,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:1356,1
    - Dst: ncclMemoryPoolFree
      Src: /src/nccl/src/enqueue.cc:1358,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 2
    argNames:
    - comm
    - me
    argTypes:
    - struct ncclComm*
    - struct ncclCommCallback*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1360
      start: 1312
    functionDepth: 1
    functionLinenumber: 1312
    functionLinenumberEnd: 1360
    functionName: reclaimPlan
    functionSourceFile: /src/nccl/src/enqueue.cc
    functionUses: 0
    functionsReached:
    - free
    - CUDACHECK
    - ncclIntruQueueEmpty
    - cudaThreadExchangeStreamCaptureMode
    - struct ncclProxyOp*::ringAlgo::decRefCount
    - cudaFree
    - ncclMemoryPoolFree
    - ncclIntruQueueDequeue
    - struct ncclCommCallback*::fn
    - ncclIntruQueueHead
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t reclaimPlan(struct ncclComm* comm, struct ncclCommCallback*
      me)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclIntruQueueMpscEnqueue
      Src: /src/nccl/src/enqueue.cc:1367,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - plans_
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1370
      start: 1362
    functionDepth: 1
    functionLinenumber: 1362
    functionLinenumberEnd: 1370
    functionName: persistentDestructor
    functionSourceFile: /src/nccl/src/enqueue.cc
    functionUses: 0
    functionsReached:
    - ncclIntruQueueMpscEnqueue
    linkageType: ''
    returnType: void
    signature: void persistentDestructor(void* plans_)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ncclParamLaunchOrderImplicit
      Src: /src/nccl/src/enqueue.cc:1383,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:1384,1
    - Dst: ncclCudaDriverVersion
      Src: /src/nccl/src/enqueue.cc:1384,1
    - Dst: std::min<int>
      Src: /src/nccl/src/enqueue.cc:1386,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - mode
    - capturing
    argTypes:
    - enum ncclImplicitOrder*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1391
      start: 1382
    functionDepth: 1
    functionLinenumber: 1382
    functionLinenumberEnd: 1391
    functionName: getImplicitOrder
    functionSourceFile: /src/nccl/src/enqueue.cc
    functionUses: 0
    functionsReached:
    - std::min<int>
    - ncclParamLaunchOrderImplicit
    - ncclCudaDriverVersion
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t getImplicitOrder(enum ncclImplicitOrder *mode, bool capturing,
      int driver=-1)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: ncclCudaGraphValid
      Src: /src/nccl/src/enqueue.cc:1396,1
    - Dst: memset
      Src: /src/nccl/src/enqueue.cc:1402,1
    - Dst: ncclMemoryPoolAlloc
      Src: /src/nccl/src/enqueue.cc:1404,1
    - Dst: ncclIntruQueueHead
      Src: /src/nccl/src/enqueue.cc:1415,1
    - Dst: ncclSymGetKernelPtr
      Src: /src/nccl/src/enqueue.cc:1417,1
    - Dst: ncclMemoryStackAlloc
      Src: /src/nccl/src/enqueue.cc:1422,1
    - Dst: ncclIntruQueueEnqueue
      Src: /src/nccl/src/enqueue.cc:1431,1
    - Dst: INFO
      Src: /src/nccl/src/enqueue.cc:1432,1
    - Dst: ncclFuncToString
      Src: /src/nccl/src/enqueue.cc:1433,1
    - Dst: ncclTypeSize
      Src: /src/nccl/src/enqueue.cc:1433,1
    - Dst: ncclSymKernelIdToString
      Src: /src/nccl/src/enqueue.cc:1433,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/enqueue.cc:1446,1
    - Dst: scheduleCollTasksToPlan
      Src: /src/nccl/src/enqueue.cc:1446,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/enqueue.cc:1450,1
    - Dst: scheduleP2pTasksToPlan
      Src: /src/nccl/src/enqueue.cc:1450,1
    - Dst: finishPlan
      Src: /src/nccl/src/enqueue.cc:1452,1
    - Dst: ncclIntruQueueEnqueue
      Src: /src/nccl/src/enqueue.cc:1454,1
    - Dst: ncclIntruQueueHead
      Src: /src/nccl/src/enqueue.cc:1460,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/enqueue.cc:1467,1
    - Dst: ncclStrongStreamAcquire
      Src: /src/nccl/src/enqueue.cc:1467,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/enqueue.cc:1471,1
    - Dst: cudaEventRecord
      Src: /src/nccl/src/enqueue.cc:1471,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/enqueue.cc:1472,1
    - Dst: cudaStreamWaitEvent
      Src: /src/nccl/src/enqueue.cc:1472,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/enqueue.cc:1475,1
    - Dst: ncclStreamWaitStream
      Src: /src/nccl/src/enqueue.cc:1475,1
    - Dst: ncclCudaGraphValid
      Src: /src/nccl/src/enqueue.cc:1477,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/enqueue.cc:1480,1
    - Dst: getImplicitOrder
      Src: /src/nccl/src/enqueue.cc:1480,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/enqueue.cc:1487,1
    - Dst: ncclStrongStreamAcquire
      Src: /src/nccl/src/enqueue.cc:1487,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/enqueue.cc:1488,1
    - Dst: ncclStreamWaitStream
      Src: /src/nccl/src/enqueue.cc:1488,1
    - Dst: cudaEventQuery
      Src: /src/nccl/src/enqueue.cc:1491,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/enqueue.cc:1501,1
    - Dst: ncclStrongStreamAcquire
      Src: /src/nccl/src/enqueue.cc:1501,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/enqueue.cc:1504,1
    - Dst: cudaLaunchHostFunc
      Src: /src/nccl/src/enqueue.cc:1504,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/enqueue.cc:1509,1
    - Dst: ncclStreamWaitStream
      Src: /src/nccl/src/enqueue.cc:1509,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/enqueue.cc:1510,1
    - Dst: ncclStrongStreamRelease
      Src: /src/nccl/src/enqueue.cc:1510,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/enqueue.cc:1517,1
    - Dst: ncclCudaGraphAddDestructor
      Src: /src/nccl/src/enqueue.cc:1517,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 84
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1522
      start: 1393
    functionDepth: 8
    functionLinenumber: 1393
    functionLinenumberEnd: 1522
    functionName: ncclLaunchPrepare
    functionSourceFile: /src/nccl/src/enqueue.cc
    functionUses: 1
    functionsReached:
    - cudaEventRecord
    - getImplicitOrder
    - ncclSymGetKernelPtr
    - ncclIntruQueueEnqueue
    - ncclMemoryPoolAlloc
    - INFO
    - finishPlan
    - ncclCudaGraphAddDestructor
    - scheduleCollTasksToPlan
    - ncclStreamWaitStream
    - cudaEventQuery
    - memset
    - CUDACHECKGOTO
    - ncclMemoryStackAlloc
    - scheduleP2pTasksToPlan
    - ncclTypeSize
    - ncclStrongStreamRelease
    - ncclFuncToString
    - ncclStrongStreamAcquire
    - NCCLCHECKGOTO
    - ncclSymKernelIdToString
    - ncclCudaGraphValid
    - cudaStreamWaitEvent
    - cudaLaunchHostFunc
    - ncclIntruQueueHead
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclLaunchPrepare(struct ncclComm* comm)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:1528,1
    - Dst: uploadWork
      Src: /src/nccl/src/enqueue.cc:1528,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - comm
    - plan
    argTypes:
    - struct ncclComm*
    - struct ncclKernelPlan*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1530
      start: 1524
    functionDepth: 3
    functionLinenumber: 1524
    functionLinenumberEnd: 1530
    functionName: ncclLaunchKernelBefore_NoUncapturedCuda
    functionSourceFile: /src/nccl/src/enqueue.cc
    functionUses: 1
    functionsReached:
    - uploadWork
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclLaunchKernelBefore_NoUncapturedCuda(struct ncclComm*
      comm, struct ncclKernelPlan* plan)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: countOneBits
      Src: /src/nccl/src/enqueue.cc:1542,1
    - Dst: ncclShmemDynamicSize
      Src: /src/nccl/src/enqueue.cc:1546,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/enqueue.cc:1555,1
    - Dst: ncclCudaDriverVersion
      Src: /src/nccl/src/enqueue.cc:1555,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/enqueue.cc:1558,1
    - Dst: cudaGetFuncBySymbol
      Src: /src/nccl/src/enqueue.cc:1558,1
    - Dst: ncclParamMemSyncDomain
      Src: /src/nccl/src/enqueue.cc:1590,1
    - Dst: ncclCudaGraphValid
      Src: /src/nccl/src/enqueue.cc:1594,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/enqueue.cc:1596,1
    - Dst: getImplicitOrder
      Src: /src/nccl/src/enqueue.cc:1596,1
    - Dst: ncclParamNvlinkUtilCentricSchedEnable
      Src: /src/nccl/src/enqueue.cc:1612,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/enqueue.cc:1626,1
    - Dst: cuLaunchKernelEx
      Src: /src/nccl/src/enqueue.cc:1626,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/enqueue.cc:1630,1
    - Dst: cuLaunchKernel
      Src: /src/nccl/src/enqueue.cc:1630,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 50
    argCount: 2
    argNames:
    - comm
    - plan
    argTypes:
    - struct ncclComm*
    - struct ncclKernelPlan*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1635
      start: 1539
    functionDepth: 2
    functionLinenumber: 1539
    functionLinenumberEnd: 1635
    functionName: ncclLaunchKernel
    functionSourceFile: /src/nccl/src/enqueue.cc
    functionUses: 1
    functionsReached:
    - NCCLCHECKGOTO
    - CUDACHECKGOTO
    - cudaGetFuncBySymbol
    - ncclCudaGraphValid
    - ncclParamNvlinkUtilCentricSchedEnable
    - ncclShmemDynamicSize
    - countOneBits
    - getImplicitOrder
    - ncclParamMemSyncDomain
    - cuLaunchKernelEx
    - cuLaunchKernel
    - CUCHECKGOTO
    - ncclCudaDriverVersion
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclLaunchKernel(struct ncclComm* comm, struct ncclKernelPlan*
      plan)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:1641,1
    - Dst: hostStreamPlanTask
      Src: /src/nccl/src/enqueue.cc:1641,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - comm
    - plan
    argTypes:
    - struct ncclComm*
    - struct ncclKernelPlan*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1644
      start: 1637
    functionDepth: 6
    functionLinenumber: 1637
    functionLinenumberEnd: 1644
    functionName: ncclLaunchKernelAfter_NoCuda
    functionSourceFile: /src/nccl/src/enqueue.cc
    functionUses: 1
    functionsReached:
    - hostStreamPlanTask
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclLaunchKernelAfter_NoCuda(struct ncclComm* comm, struct
      ncclKernelPlan* plan)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CUDACHECK
      Src: /src/nccl/src/enqueue.cc:1656,1
    - Dst: cudaEventDestroy
      Src: /src/nccl/src/enqueue.cc:1656,1
    - Dst: free
      Src: /src/nccl/src/enqueue.cc:1657,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - comm
    - cb
    argTypes:
    - struct ncclComm*
    - struct ncclCommEventCallback*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1659
      start: 1651
    functionDepth: 1
    functionLinenumber: 1651
    functionLinenumberEnd: 1659
    functionName: KernelFinishCallback_fn
    functionSourceFile: /src/nccl/src/enqueue.cc
    functionUses: 0
    functionsReached:
    - CUDACHECK
    - cudaEventDestroy
    - free
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t KernelFinishCallback_fn(\n      struct ncclComm* comm,
      struct ncclCommEventCallback* cb\n    )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CUDACHECK
      Src: /src/nccl/src/enqueue.cc:1656,1
    - Dst: cudaEventDestroy
      Src: /src/nccl/src/enqueue.cc:1656,1
    - Dst: free
      Src: /src/nccl/src/enqueue.cc:1657,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - comm
    - cb
    argTypes:
    - struct ncclComm*
    - struct ncclCommEventCallback*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1659
      start: 1651
    functionDepth: 1
    functionLinenumber: 1651
    functionLinenumberEnd: 1659
    functionName: KernelFinishCallback_fn
    functionSourceFile: /src/nccl/src/enqueue.cc
    functionUses: 0
    functionsReached:
    - CUDACHECK
    - cudaEventDestroy
    - free
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t KernelFinishCallback_fn(\n      struct ncclComm* comm,
      struct ncclCommEventCallback* cb\n    )"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ncclIntruQueueEmpty
      Src: /src/nccl/src/enqueue.cc:1664,1
    - Dst: ncclIntruQueueConstruct
      Src: /src/nccl/src/enqueue.cc:1667,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/enqueue.cc:1672,1
    - Dst: cudaEventRecord
      Src: /src/nccl/src/enqueue.cc:1672,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:1677,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/enqueue.cc:1677,1
    - Dst: ncclIntruQueueEnqueue
      Src: /src/nccl/src/enqueue.cc:1681,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/enqueue.cc:1683,1
    - Dst: cudaEventCreateWithFlags
      Src: /src/nccl/src/enqueue.cc:1683,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:1687,1
    - Dst: ncclStrongStreamAcquiredWorkStream
      Src: /src/nccl/src/enqueue.cc:1687,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:1696,1
    - Dst: ncclStreamAdvanceToEvent
      Src: /src/nccl/src/enqueue.cc:1696,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/enqueue.cc:1700,1
    - Dst: cudaStreamWaitEvent
      Src: /src/nccl/src/enqueue.cc:1700,1
    - Dst: ncclCudaGraphValid
      Src: /src/nccl/src/enqueue.cc:1702,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:1704,1
    - Dst: getImplicitOrder
      Src: /src/nccl/src/enqueue.cc:1704,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:1709,1
    - Dst: ncclStrongStreamAcquiredWorkStream
      Src: /src/nccl/src/enqueue.cc:1709,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/enqueue.cc:1711,1
    - Dst: cudaStreamWaitEvent
      Src: /src/nccl/src/enqueue.cc:1711,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:1713,1
    - Dst: ncclStrongStreamRelease
      Src: /src/nccl/src/enqueue.cc:1713,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:1716,1
    - Dst: ncclStrongStreamRelease
      Src: /src/nccl/src/enqueue.cc:1716,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1719
      start: 1662
    functionDepth: 2
    functionLinenumber: 1662
    functionLinenumberEnd: 1719
    functionName: ncclLaunchFinish
    functionSourceFile: /src/nccl/src/enqueue.cc
    functionUses: 1
    functionsReached:
    - cudaEventCreateWithFlags
    - cudaEventRecord
    - CUDACHECK
    - ncclCudaGraphValid
    - ncclIntruQueueConstruct
    - getImplicitOrder
    - ncclIntruQueueEmpty
    - ncclStrongStreamAcquiredWorkStream
    - ncclCalloc
    - cudaStreamWaitEvent
    - ncclStrongStreamRelease
    - ncclIntruQueueEnqueue
    - ncclStreamAdvanceToEvent
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclLaunchFinish(struct ncclComm* comm)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - comm
    - info
    - collNetSupport
    argTypes:
    - struct ncclComm*
    - struct ncclTaskColl*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1744
      start: 1725
    functionDepth: 0
    functionLinenumber: 1725
    functionLinenumberEnd: 1744
    functionName: getCollNetSupport
    functionSourceFile: /src/nccl/src/enqueue.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t getCollNetSupport(\n    struct ncclComm* comm, struct
      ncclTaskColl* info, int* collNetSupport\n  )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - collCostTable
    argTypes:
    - float**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1753
      start: 1746
    functionDepth: 0
    functionLinenumber: 1746
    functionLinenumberEnd: 1753
    functionName: initCollCostTable
    functionSourceFile: /src/nccl/src/enqueue.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void initCollCostTable(float** collCostTable)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:1777,1
    - Dst: ncclTopoGetAlgoTime
      Src: /src/nccl/src/enqueue.cc:1777,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 27
    argCount: 7
    argNames:
    - comm
    - info
    - nBytes
    - collNetSupport
    - nvlsSupport
    - numPipeOps
    - collCostTable
    argTypes:
    - struct ncclComm*
    - struct ncclTaskColl*
    - size_t
    - int
    - int
    - int
    - float**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1789
      start: 1756
    functionDepth: 1
    functionLinenumber: 1756
    functionLinenumberEnd: 1789
    functionName: updateCollCostTable
    functionSourceFile: /src/nccl/src/enqueue.cc
    functionUses: 0
    functionsReached:
    - ncclTopoGetAlgoTime
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t updateCollCostTable(\n    struct ncclComm* comm, struct
      ncclTaskColl* info, size_t nBytes,\n    int collNetSupport, int nvlsSupport,
      int numPipeOps,\n    float** collCostTable)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: ncclGetEnv
      Src: /src/nccl/src/enqueue.cc:1820,1
    - Dst: snprintf
      Src: /src/nccl/src/enqueue.cc:1822,1
    - Dst: ncclGetEnv
      Src: /src/nccl/src/enqueue.cc:1824,1
    - Dst: snprintf
      Src: /src/nccl/src/enqueue.cc:1826,1
    - Dst: WARN
      Src: /src/nccl/src/enqueue.cc:1828,1
    - Dst: ncclFuncToString
      Src: /src/nccl/src/enqueue.cc:1828,1
    - Dst: ncclDatatypeToString
      Src: /src/nccl/src/enqueue.cc:1828,1
    - Dst: TRACE
      Src: /src/nccl/src/enqueue.cc:1832,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 68
    argCount: 5
    argNames:
    - comm
    - info
    - nBytes
    - collCostTable
    - simInfo
    argTypes:
    - struct ncclComm*
    - struct ncclTaskColl*
    - size_t
    - float**
    - ncclSimInfo_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1877
      start: 1791
    functionDepth: 1
    functionLinenumber: 1791
    functionLinenumberEnd: 1877
    functionName: topoGetAlgoInfo
    functionSourceFile: /src/nccl/src/enqueue.cc
    functionUses: 0
    functionsReached:
    - WARN
    - TRACE
    - ncclDatatypeToString
    - ncclGetEnv
    - ncclFuncToString
    - snprintf
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t topoGetAlgoInfo(\n    struct ncclComm* comm, struct ncclTaskColl*
      info, size_t nBytes,\n    float** collCostTable, ncclSimInfo_t* simInfo\n  )"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ncclTypeSize
      Src: /src/nccl/src/enqueue.cc:1887,1
    - Dst: ncclFuncMaxSendRecvCount
      Src: /src/nccl/src/enqueue.cc:1888,1
    - Dst: ncclFuncSendCount
      Src: /src/nccl/src/enqueue.cc:1893,1
    - Dst: ncclFuncRecvCount
      Src: /src/nccl/src/enqueue.cc:1894,1
    - Dst: initCollCostTable
      Src: /src/nccl/src/enqueue.cc:1899,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:1900,1
    - Dst: updateCollCostTable
      Src: /src/nccl/src/enqueue.cc:1900,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:1902,1
    - Dst: ncclRegFind
      Src: /src/nccl/src/enqueue.cc:1902,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:1903,1
    - Dst: ncclRegFind
      Src: /src/nccl/src/enqueue.cc:1903,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:1904,1
    - Dst: ncclRegLocalIsValid
      Src: /src/nccl/src/enqueue.cc:1904,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:1905,1
    - Dst: ncclRegLocalIsValid
      Src: /src/nccl/src/enqueue.cc:1905,1
    - Dst: ncclCudaGraphValid
      Src: /src/nccl/src/enqueue.cc:1906,1
    - Dst: ncclParamGraphRegister
      Src: /src/nccl/src/enqueue.cc:1906,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:1907,1
    - Dst: struct ncclComm*::tuner::getCollInfo
      Src: /src/nccl/src/enqueue.cc:1907,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:1911,1
    - Dst: topoGetAlgoInfo
      Src: /src/nccl/src/enqueue.cc:1911,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:1913,1
    - Dst: topoGetAlgoInfo
      Src: /src/nccl/src/enqueue.cc:1913,1
    - Dst: ncclGetEnv
      Src: /src/nccl/src/enqueue.cc:1915,1
    - Dst: ncclGetEnv
      Src: /src/nccl/src/enqueue.cc:1915,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:1918,1
    - Dst: ncclRegFind
      Src: /src/nccl/src/enqueue.cc:1918,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:1919,1
    - Dst: ncclRegFind
      Src: /src/nccl/src/enqueue.cc:1919,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:1920,1
    - Dst: ncclRegLocalIsValid
      Src: /src/nccl/src/enqueue.cc:1920,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:1921,1
    - Dst: ncclRegLocalIsValid
      Src: /src/nccl/src/enqueue.cc:1921,1
    - Dst: ncclCudaGraphValid
      Src: /src/nccl/src/enqueue.cc:1922,1
    - Dst: ncclParamGraphRegister
      Src: /src/nccl/src/enqueue.cc:1922,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:1926,1
    - Dst: ncclNvlsRegResourcesQuery
      Src: /src/nccl/src/enqueue.cc:1926,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 36
    argCount: 6
    argNames:
    - comm
    - info
    - collNetSupport
    - nvlsSupport
    - numPipeOps
    - simInfo
    argTypes:
    - struct ncclComm*
    - struct ncclTaskColl*
    - int
    - int
    - int
    - ncclSimInfo_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1940
      start: 1883
    functionDepth: 2
    functionLinenumber: 1883
    functionLinenumberEnd: 1940
    functionName: getAlgoInfo
    functionSourceFile: /src/nccl/src/enqueue.cc
    functionUses: 1
    functionsReached:
    - struct ncclComm*::tuner::getCollInfo
    - ncclFuncMaxSendRecvCount
    - ncclCudaGraphValid
    - ncclNvlsRegResourcesQuery
    - ncclGetEnv
    - updateCollCostTable
    - topoGetAlgoInfo
    - ncclTypeSize
    - initCollCostTable
    - ncclRegFind
    - ncclFuncRecvCount
    - ncclRegLocalIsValid
    - ncclParamGraphRegister
    - ncclFuncSendCount
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t getAlgoInfo(\n    struct ncclComm* comm, struct ncclTaskColl*
      info,\n    int collNetSupport, int nvlsSupport, int numPipeOps, ncclSimInfo_t*
      simInfo/* = NULL*/\n  )"
  - BBCount: 53
    BranchProfiles: []
    Callsites:
    - Dst: ncclProtoGrainSize
      Src: /src/nccl/src/enqueue.cc:1949,1
    - Dst: WARN
      Src: /src/nccl/src/enqueue.cc:1982,1
    - Dst: min
      Src: /src/nccl/src/enqueue.cc:2002,1
    - Dst: ncclParamNvlsTreeMaxChunkSize
      Src: /src/nccl/src/enqueue.cc:2027,1
    - Dst: min
      Src: /src/nccl/src/enqueue.cc:2029,1
    - Dst: log2i
      Src: /src/nccl/src/enqueue.cc:2037,1
    - Dst: WARN
      Src: /src/nccl/src/enqueue.cc:2088,1
    - Dst: DIVUP
      Src: /src/nccl/src/enqueue.cc:2094,1
    - Dst: memset
      Src: /src/nccl/src/enqueue.cc:2095,1
    - Dst: DIVUP
      Src: /src/nccl/src/enqueue.cc:2149,1
    - Dst: WARN
      Src: /src/nccl/src/enqueue.cc:2153,1
    - Dst: ncclAlgoToString
      Src: /src/nccl/src/enqueue.cc:2153,1
    - Dst: ncclTypeSize
      Src: /src/nccl/src/enqueue.cc:2168,1
    - Dst: DIVUP
      Src: /src/nccl/src/enqueue.cc:2173,1
    CyclomaticComplexity: 88
    EdgeCount: 88
    ICount: 206
    argCount: 7
    argNames:
    - comm
    - info
    - nChannels
    - nBytes
    - outChunkSize
    - outDirectFlags
    - proxyOp
    argTypes:
    - struct ncclComm*
    - struct ncclTaskColl*
    - int
    - size_t
    - uint32_t*
    - uint32_t*
    - struct ncclProxyOp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2178
      start: 1944
    functionDepth: 1
    functionLinenumber: 1944
    functionLinenumberEnd: 2178
    functionName: calcCollChunking
    functionSourceFile: /src/nccl/src/enqueue.cc
    functionUses: 1
    functionsReached:
    - WARN
    - min
    - ncclParamNvlsTreeMaxChunkSize
    - log2i
    - DIVUP
    - ncclTypeSize
    - ncclProtoGrainSize
    - ncclAlgoToString
    - memset
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t calcCollChunking(\n    struct ncclComm* comm, struct
      ncclTaskColl* info, int nChannels, size_t nBytes,\n    /*outputs*/uint32_t*
      outChunkSize, uint32_t* outDirectFlags, struct ncclProxyOp* proxyOp\n  )"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: ncclTypeSize
      Src: /src/nccl/src/enqueue.cc:2200,1
    - Dst: __nv_cvt_float_to_fp8
      Src: /src/nccl/src/enqueue.cc:2232,1
    - Dst: __nv_cvt_float_to_fp8
      Src: /src/nccl/src/enqueue.cc:2236,1
    - Dst: __float2half
      Src: /src/nccl/src/enqueue.cc:2241,1
    - Dst: __float2bfloat16
      Src: /src/nccl/src/enqueue.cc:2246,1
    - Dst: ncclUserRedOpMangle
      Src: /src/nccl/src/enqueue.cc:2262,1
    - Dst: WARN
      Src: /src/nccl/src/enqueue.cc:2265,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 71
    argCount: 4
    argNames:
    - opFull
    - op
    - datatype
    - comm
    argTypes:
    - ncclDevRedOpFull*
    - ncclRedOp_t
    - ncclDataType_t
    - ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2273
      start: 2180
    functionDepth: 1
    functionLinenumber: 2180
    functionLinenumberEnd: 2273
    functionName: hostToDevRedOp
    functionSourceFile: /src/nccl/src/enqueue.cc
    functionUses: 0
    functionsReached:
    - WARN
    - __float2half
    - ncclTypeSize
    - __float2bfloat16
    - ncclUserRedOpMangle
    - __nv_cvt_float_to_fp8
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t hostToDevRedOp(\n    ncclDevRedOpFull *opFull, ncclRedOp_t
      op, ncclDataType_t datatype, ncclComm *comm\n  )"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: ncclTypeSize
      Src: /src/nccl/src/enqueue.cc:2283,1
    - Dst: ncclGroupCommJoin
      Src: /src/nccl/src/enqueue.cc:2287,1
    - Dst: ncclMemoryPoolAlloc
      Src: /src/nccl/src/enqueue.cc:2288,1
    - Dst: __atomic_load_n
      Src: /src/nccl/src/enqueue.cc:2295,1
    - Dst: ncclIntruQueueEnqueue
      Src: /src/nccl/src/enqueue.cc:2296,1
    - Dst: ncclP2pChannelBaseForRound
      Src: /src/nccl/src/enqueue.cc:2311,1
    - Dst: ncclP2pChannelForPart
      Src: /src/nccl/src/enqueue.cc:2313,1
    - Dst: ncclGroupCommPreconnect
      Src: /src/nccl/src/enqueue.cc:2321,1
    - Dst: ncclGroupCommPreconnect
      Src: /src/nccl/src/enqueue.cc:2327,1
    - Dst: WARN
      Src: /src/nccl/src/enqueue.cc:2339,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:2347,1
    - Dst: hostToDevRedOp
      Src: /src/nccl/src/enqueue.cc:2347,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:2350,1
    - Dst: ncclLaunchOneRank
      Src: /src/nccl/src/enqueue.cc:2350,1
    - Dst: ncclGroupCommJoin
      Src: /src/nccl/src/enqueue.cc:2354,1
    - Dst: ncclMemoryPoolAlloc
      Src: /src/nccl/src/enqueue.cc:2355,1
    - Dst: ncclTypeSize
      Src: /src/nccl/src/enqueue.cc:2362,1
    - Dst: ncclFuncTrafficPerByte
      Src: /src/nccl/src/enqueue.cc:2368,1
    - Dst: __atomic_load_n
      Src: /src/nccl/src/enqueue.cc:2373,1
    - Dst: ncclTaskCollSorterInsert
      Src: /src/nccl/src/enqueue.cc:2376,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:2386,1
    - Dst: ncclCudaGetCapturingGraph
      Src: /src/nccl/src/enqueue.cc:2386,1
    - Dst: ncclCudaGraphSame
      Src: /src/nccl/src/enqueue.cc:2387,1
    - Dst: WARN
      Src: /src/nccl/src/enqueue.cc:2388,1
    - Dst: ncclMemoryStackAlloc
      Src: /src/nccl/src/enqueue.cc:2393,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 93
    argCount: 2
    argNames:
    - comm
    - info
    argTypes:
    - struct ncclComm*
    - struct ncclInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2405
      start: 2278
    functionDepth: 2
    functionLinenumber: 2278
    functionLinenumberEnd: 2405
    functionName: taskAppend
    functionSourceFile: /src/nccl/src/enqueue.cc
    functionUses: 0
    functionsReached:
    - __atomic_load_n
    - WARN
    - ncclLaunchOneRank
    - hostToDevRedOp
    - ncclIntruQueueEnqueue
    - ncclGroupCommJoin
    - ncclGroupCommPreconnect
    - ncclCudaGraphSame
    - ncclMemoryStackAlloc
    - ncclTypeSize
    - ncclP2pChannelForPart
    - ncclCudaGetCapturingGraph
    - ncclTaskCollSorterInsert
    - ncclFuncTrafficPerByte
    - ncclMemoryPoolAlloc
    - ncclP2pChannelBaseForRound
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t taskAppend(struct ncclComm* comm, struct ncclInfo* info)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:2408,1
    - Dst: ncclGroupStartInternal
      Src: /src/nccl/src/enqueue.cc:2408,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/enqueue.cc:2412,1
    - Dst: CommCheck
      Src: /src/nccl/src/enqueue.cc:2412,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/enqueue.cc:2414,1
    - Dst: ncclCommEnsureReady
      Src: /src/nccl/src/enqueue.cc:2414,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/enqueue.cc:2417,1
    - Dst: cudaGetDevice
      Src: /src/nccl/src/enqueue.cc:2417,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/enqueue.cc:2418,1
    - Dst: cudaSetDevice
      Src: /src/nccl/src/enqueue.cc:2418,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/enqueue.cc:2420,1
    - Dst: ArgsCheck
      Src: /src/nccl/src/enqueue.cc:2420,1
    - Dst: INFO
      Src: /src/nccl/src/enqueue.cc:2422,1
    - Dst: TRACE_CALL
      Src: /src/nccl/src/enqueue.cc:2425,1
    - Dst: reinterpret_cast<int64_t>
      Src: /src/nccl/src/enqueue.cc:2425,1
    - Dst: reinterpret_cast<int64_t>
      Src: /src/nccl/src/enqueue.cc:2425,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/enqueue.cc:2427,1
    - Dst: taskAppend
      Src: /src/nccl/src/enqueue.cc:2427,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/enqueue.cc:2430,1
    - Dst: cudaSetDevice
      Src: /src/nccl/src/enqueue.cc:2430,1
    - Dst: ncclGroupErrCheck
      Src: /src/nccl/src/enqueue.cc:2431,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:2432,1
    - Dst: ncclGroupEndInternal
      Src: /src/nccl/src/enqueue.cc:2432,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:2435,1
    - Dst: ncclCommGetAsyncError
      Src: /src/nccl/src/enqueue.cc:2435,1
    - Dst: ncclCommSetAsyncError
      Src: /src/nccl/src/enqueue.cc:2438,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 1
    argNames:
    - info
    argTypes:
    - struct ncclInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2440
      start: 2407
    functionDepth: 5
    functionLinenumber: 2407
    functionLinenumberEnd: 2440
    functionName: ncclEnqueueCheck
    functionSourceFile: /src/nccl/src/enqueue.cc
    functionUses: 7
    functionsReached:
    - INFO
    - NCCLCHECKGOTO
    - CUDACHECKGOTO
    - ncclCommEnsureReady
    - CUDACHECK
    - taskAppend
    - ncclGroupEndInternal
    - ncclCommGetAsyncError
    - ArgsCheck
    - cudaSetDevice
    - CommCheck
    - TRACE_CALL
    - ncclGroupErrCheck
    - cudaGetDevice
    - ncclGroupStartInternal
    - ncclCommSetAsyncError
    - reinterpret_cast<int64_t>
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclEnqueueCheck(struct ncclInfo* info)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:2444,1
    - Dst: CommCheck
      Src: /src/nccl/src/enqueue.cc:2444,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/enqueue.cc:2446,1
    - Dst: ncclCommEnsureReady
      Src: /src/nccl/src/enqueue.cc:2446,1
    - Dst: ncclUserRedOp::ncclUserRedOp
      Src: /src/nccl/src/enqueue.cc:2452,1
    - Dst: std::memcpy
      Src: /src/nccl/src/enqueue.cc:2454,1
    - Dst: ncclTypeSize
      Src: /src/nccl/src/enqueue.cc:2470,1
    - Dst: std::memcpy
      Src: /src/nccl/src/enqueue.cc:2473,1
    - Dst: reinterpret_cast<uint64_t>
      Src: /src/nccl/src/enqueue.cc:2476,1
    - Dst: ncclRedOp_t
      Src: /src/nccl/src/enqueue.cc:2478,1
    - Dst: ncclUserRedOpMangle
      Src: /src/nccl/src/enqueue.cc:2479,1
    - Dst: TRACE_CALL
      Src: /src/nccl/src/enqueue.cc:2480,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 31
    argCount: 5
    argNames:
    - op
    - scalar
    - datatype
    - residence
    - comm
    argTypes:
    - ncclRedOp_t*
    - void*
    - ncclDataType_t
    - ncclScalarResidence_t
    - ncclComm_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2482
      start: 2443
    functionDepth: 2
    functionLinenumber: 2443
    functionLinenumberEnd: 2482
    functionName: ncclRedOpCreatePreMulSum
    functionSourceFile: /src/nccl/src/enqueue.cc
    functionUses: 0
    functionsReached:
    - ncclCommEnsureReady
    - std::memcpy
    - ncclTypeSize
    - CommCheck
    - ncclRedOp_t
    - TRACE_CALL
    - reinterpret_cast<uint64_t>
    - ncclUserRedOpMangle
    - NCCLCHECK
    - ncclUserRedOp::ncclUserRedOp
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclRedOpCreatePreMulSum(ncclRedOp_t *op, void *scalar,
      ncclDataType_t datatype, ncclScalarResidence_t residence, ncclComm_t comm)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/enqueue.cc:2487,1
    - Dst: WARN
      Src: /src/nccl/src/enqueue.cc:2495,1
    - Dst: WARN
      Src: /src/nccl/src/enqueue.cc:2499,1
    - Dst: ncclUserRedOpMangle
      Src: /src/nccl/src/enqueue.cc:2503,1
    - Dst: WARN
      Src: /src/nccl/src/enqueue.cc:2505,1
    - Dst: TRACE_CALL
      Src: /src/nccl/src/enqueue.cc:2511,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 2
    argNames:
    - op
    - comm
    argTypes:
    - ncclRedOp_t
    - ncclComm_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2513
      start: 2485
    functionDepth: 1
    functionLinenumber: 2485
    functionLinenumberEnd: 2513
    functionName: ncclRedOpDestroy
    functionSourceFile: /src/nccl/src/enqueue.cc
    functionUses: 0
    functionsReached:
    - WARN
    - TRACE_CALL
    - ncclUserRedOpMangle
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclRedOpDestroy(ncclRedOp_t op, ncclComm_t comm)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - coll
    argTypes:
    - ncclFunc_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 57
    functionName: kernelMask_coll
    functionSourceFile: /src/nccl/src/symmetric.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t kernelMask_coll(ncclFunc_t coll)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_load_n
      Src: /src/nccl/src/symmetric.cc:61,1
    - Dst: ncclGetEnv
      Src: /src/nccl/src/symmetric.cc:65,1
    - Dst: strcmp
      Src: /src/nccl/src/symmetric.cc:66,1
    - Dst: strcmp
      Src: /src/nccl/src/symmetric.cc:72,1
    - Dst: __atomic_store_n
      Src: /src/nccl/src/symmetric.cc:73,1
    - Dst: __atomic_store_n
      Src: /src/nccl/src/symmetric.cc:79,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 82
    functionName: kernelMask_user
    functionSourceFile: /src/nccl/src/symmetric.cc
    functionUses: 0
    functionsReached:
    - __atomic_load_n
    - __atomic_store_n
    - strcmp
    - ncclGetEnv
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t kernelMask_user()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::log1p
      Src: /src/nccl/src/symmetric.cc:88,1
    - Dst: std::exp
      Src: /src/nccl/src/symmetric.cc:88,1
    - Dst: std::exp
      Src: /src/nccl/src/symmetric.cc:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - x
    - ceiling
    - softness
    argTypes:
    - double
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 89
    functionName: softmin
    functionSourceFile: /src/nccl/src/symmetric.cc
    functionUses: 0
    functionsReached:
    - std::log1p
    - std::exp
    linkageType: ''
    returnType: double
    signature: double softmin(double x, double ceiling, double softness)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::log1p
      Src: /src/nccl/src/symmetric.cc:94,1
    - Dst: std::exp
      Src: /src/nccl/src/symmetric.cc:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - softness
    argTypes:
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 95
    functionName: softplus
    functionSourceFile: /src/nccl/src/symmetric.cc
    functionUses: 0
    functionsReached:
    - std::log1p
    - std::exp
    linkageType: ''
    returnType: double
    signature: double softplus(double x, double softness)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: softmin
      Src: /src/nccl/src/symmetric.cc:98,1
    - Dst: softplus
      Src: /src/nccl/src/symmetric.cc:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - busBytes
    - baseLat
    - nSMs
    - smBw
    - busMultiplier
    - peakBw
    argTypes:
    - double
    - double
    - int
    - double
    - double
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 100
    functionName: model
    functionSourceFile: /src/nccl/src/symmetric.cc
    functionUses: 0
    functionsReached:
    - softmin
    - softplus
    linkageType: ''
    returnType: double
    signature: double model(double busBytes, double baseLat, int nSMs, double smBw,
      double busMultiplier, double peakBw)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: divUp
      Src: /src/nccl/src/symmetric.cc:110,1
    - Dst: std::min<int>
      Src: /src/nccl/src/symmetric.cc:164,1
    - Dst: std::min<int>
      Src: /src/nccl/src/symmetric.cc:167,1
    - Dst: ncclParamSymCTAs
      Src: /src/nccl/src/symmetric.cc:167,1
    - Dst: model
      Src: /src/nccl/src/symmetric.cc:185,1
    - Dst: model
      Src: /src/nccl/src/symmetric.cc:188,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 68
    argCount: 5
    argNames:
    - comm
    - k
    - nBytes
    - timeUs
    - nBlocks
    argTypes:
    - struct ncclComm*
    - ncclSymKernelId
    - size_t
    - float*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 105
    functionDepth: 2
    functionLinenumber: 105
    functionLinenumberEnd: 195
    functionName: queryModel
    functionSourceFile: /src/nccl/src/symmetric.cc
    functionUses: 0
    functionsReached:
    - model
    - std::min<int>
    - ncclParamSymCTAs
    - divUp
    linkageType: ''
    returnType: void
    signature: void queryModel(struct ncclComm* comm, ncclSymKernelId k, size_t nBytes,
      float* timeUs, int* nBlocks)
  - BBCount: 12
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 3
    argNames:
    - coll
    - red
    - ty
    argTypes:
    - ncclFunc_t
    - int
    - ncclDataType_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 222
    functionName: ncclSymImplemented
    functionSourceFile: /src/nccl/src/symmetric.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ncclSymImplemented(ncclFunc_t coll, int/*ncclDevRedOp_t*/ red,
      ncclDataType_t ty)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: kernelMask_coll
      Src: /src/nccl/src/symmetric.cc:228,1
    - Dst: kernelMask_user
      Src: /src/nccl/src/symmetric.cc:229,1
    - Dst: ncclTypeSize
      Src: /src/nccl/src/symmetric.cc:258,1
    - Dst: popFirstOneBit
      Src: /src/nccl/src/symmetric.cc:273,1
    - Dst: queryModel
      Src: /src/nccl/src/symmetric.cc:276,1
    - Dst: kernelMask_user
      Src: /src/nccl/src/symmetric.cc:285,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 46
    argCount: 9
    argNames:
    - comm
    - coll
    - red
    - ty
    - nElts
    - estTimeUs
    - kernelId
    - nBlocks
    - nWarps
    argTypes:
    - struct ncclComm*
    - ncclFunc_t
    - int
    - ncclDataType_t
    - size_t
    - float*
    - ncclSymKernelId*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 224
    functionDepth: 3
    functionLinenumber: 224
    functionLinenumberEnd: 289
    functionName: ncclSymPickKernel
    functionSourceFile: /src/nccl/src/symmetric.cc
    functionUses: 1
    functionsReached:
    - kernelMask_coll
    - ncclTypeSize
    - kernelMask_user
    - queryModel
    - popFirstOneBit
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclSymPickKernel(\n    struct ncclComm* comm, ncclFunc_t
      coll, int/*ncclDevRedOp_t*/ red, ncclDataType_t ty, size_t nElts,\n    float*
      estTimeUs, ncclSymKernelId* kernelId, int* nBlocks, int* nWarps\n  )"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - kernelId
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 296
    functionName: ncclSymKernelIdToString
    functionSourceFile: /src/nccl/src/symmetric.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * ncclSymKernelIdToString(int kernelId)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport.cc:32,1
    - Dst: struct ncclTransport*::canConnect
      Src: /src/nccl/src/transport.cc:32,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport.cc:35,1
    - Dst: struct ncclTransportComm*::setup
      Src: /src/nccl/src/transport.cc:35,1
    - Dst: WARN
      Src: /src/nccl/src/transport.cc:40,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 7
    argNames:
    - comm
    - graph
    - connect
    - channelId
    - peer
    - connIndex
    - transportType
    argTypes:
    - struct ncclComm*
    - struct ncclTopoGraph*
    - struct ncclConnect*
    - int
    - int
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 42
    functionName: selectTransport
    functionSourceFile: /src/nccl/src/transport.cc
    functionUses: 0
    functionsReached:
    - WARN
    - struct ncclTransport*::canConnect
    - NCCLCHECK
    - struct ncclTransportComm*::setup
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t selectTransport(struct ncclComm* comm, struct ncclTopoGraph*
      graph, struct ncclConnect* connect, int channelId, int peer, int connIndex,
      int* transportType)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TRACE
      Src: /src/nccl/src/transport.cc:45,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 13
    argCount: 7
    argNames:
    - comm
    - channelId
    - nrecv
    - peerRecv
    - nsend
    - peerSend
    - connIndex
    argTypes:
    - struct ncclComm*
    - int
    - int
    - int*
    - int
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 59
    functionName: ncclTransportP2pConnect
    functionSourceFile: /src/nccl/src/transport.cc
    functionUses: 0
    functionsReached:
    - TRACE
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTransportP2pConnect(struct ncclComm* comm, int channelId,
      int nrecv, int* peerRecv, int nsend, int* peerSend, int connIndex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nccl/src/transport.cc:63,1
    - Dst: printf
      Src: /src/nccl/src/transport.cc:65,1
    - Dst: printf
      Src: /src/nccl/src/transport.cc:66,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - data
    - ndata
    argTypes:
    - struct ncclConnect*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 68
    functionName: dumpData
    functionSourceFile: /src/nccl/src/transport.cc
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void dumpData(struct ncclConnect* data, int ndata)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport.cc:88,1
    - Dst: ncclTopoCheckP2p
      Src: /src/nccl/src/transport.cc:88,1
    - Dst: INFO
      Src: /src/nccl/src/transport.cc:99,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 22
    argCount: 3
    argNames:
    - comm
    - isAllDirectP2p
    - directMode
    argTypes:
    - struct ncclComm*
    - bool*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 101
    functionName: ncclTransportCheckP2pType
    functionSourceFile: /src/nccl/src/transport.cc
    functionUses: 1
    functionsReached:
    - INFO
    - ncclTopoCheckP2p
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTransportCheckP2pType(struct ncclComm* comm, bool*
      isAllDirectP2p, bool* directMode)
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: ncclParamConnectRoundMaxPeers
      Src: /src/nccl/src/transport.cc:110,1
    - Dst: gettimeofday
      Src: /src/nccl/src/transport.cc:113,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport.cc:118,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport.cc:118,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport.cc:119,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport.cc:119,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport.cc:120,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport.cc:120,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport.cc:122,1
    - Dst: ncclStrongStreamAcquire
      Src: /src/nccl/src/transport.cc:122,1
    - Dst: ncclCudaGraphNone
      Src: /src/nccl/src/transport.cc:122,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport.cc:123,1
    - Dst: ncclStrongStreamAcquire
      Src: /src/nccl/src/transport.cc:123,1
    - Dst: ncclCudaGraphNone
      Src: /src/nccl/src/transport.cc:123,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport.cc:139,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport.cc:139,1
    - Dst: memset
      Src: /src/nccl/src/transport.cc:140,1
    - Dst: TIME_START
      Src: /src/nccl/src/transport.cc:145,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport.cc:148,1
    - Dst: selectTransport
      Src: /src/nccl/src/transport.cc:148,1
    - Dst: TIME_STOP
      Src: /src/nccl/src/transport.cc:151,1
    - Dst: TIME_START
      Src: /src/nccl/src/transport.cc:152,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport.cc:156,1
    - Dst: selectTransport
      Src: /src/nccl/src/transport.cc:156,1
    - Dst: TIME_STOP
      Src: /src/nccl/src/transport.cc:159,1
    - Dst: TIME_START
      Src: /src/nccl/src/transport.cc:161,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport.cc:164,1
    - Dst: bootstrapSend
      Src: /src/nccl/src/transport.cc:164,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport.cc:165,1
    - Dst: bootstrapRecv
      Src: /src/nccl/src/transport.cc:165,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport.cc:170,1
    - Dst: bootstrapSend
      Src: /src/nccl/src/transport.cc:170,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport.cc:171,1
    - Dst: bootstrapSend
      Src: /src/nccl/src/transport.cc:171,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport.cc:172,1
    - Dst: bootstrapRecv
      Src: /src/nccl/src/transport.cc:172,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport.cc:173,1
    - Dst: bootstrapRecv
      Src: /src/nccl/src/transport.cc:173,1
    - Dst: TIME_STOP
      Src: /src/nccl/src/transport.cc:175,1
    - Dst: TIME_START
      Src: /src/nccl/src/transport.cc:193,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport.cc:198,1
    - Dst: struct ncclConnector*::transportComm::connect
      Src: /src/nccl/src/transport.cc:198,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/transport.cc:202,1
    - Dst: cudaMemcpyAsync
      Src: /src/nccl/src/transport.cc:202,1
    - Dst: TIME_STOP
      Src: /src/nccl/src/transport.cc:209,1
    - Dst: TIME_START
      Src: /src/nccl/src/transport.cc:212,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport.cc:217,1
    - Dst: struct ncclConnector*::transportComm::connect
      Src: /src/nccl/src/transport.cc:217,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/transport.cc:221,1
    - Dst: cudaMemcpyAsync
      Src: /src/nccl/src/transport.cc:221,1
    - Dst: TIME_STOP
      Src: /src/nccl/src/transport.cc:228,1
    - Dst: ncclParamReportConnectProgress
      Src: /src/nccl/src/transport.cc:231,1
    - Dst: gettimeofday
      Src: /src/nccl/src/transport.cc:233,1
    - Dst: printf
      Src: /src/nccl/src/transport.cc:237,1
    - Dst: fflush
      Src: /src/nccl/src/transport.cc:239,1
    - Dst: gettimeofday
      Src: /src/nccl/src/transport.cc:251,1
    - Dst: INFO
      Src: /src/nccl/src/transport.cc:253,1
    - Dst: printf
      Src: /src/nccl/src/transport.cc:255,1
    - Dst: fflush
      Src: /src/nccl/src/transport.cc:257,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport.cc:271,1
    - Dst: bootstrapSend
      Src: /src/nccl/src/transport.cc:271,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport.cc:272,1
    - Dst: bootstrapSend
      Src: /src/nccl/src/transport.cc:272,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport.cc:273,1
    - Dst: bootstrapRecv
      Src: /src/nccl/src/transport.cc:273,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport.cc:274,1
    - Dst: bootstrapRecv
      Src: /src/nccl/src/transport.cc:274,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport.cc:277,1
    - Dst: bootstrapSend
      Src: /src/nccl/src/transport.cc:277,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport.cc:278,1
    - Dst: bootstrapRecv
      Src: /src/nccl/src/transport.cc:278,1
    - Dst: TIME_PRINT
      Src: /src/nccl/src/transport.cc:284,1
    - Dst: free
      Src: /src/nccl/src/transport.cc:287,1
    - Dst: free
      Src: /src/nccl/src/transport.cc:289,1
    - Dst: free
      Src: /src/nccl/src/transport.cc:290,1
    - Dst: free
      Src: /src/nccl/src/transport.cc:291,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport.cc:293,1
    - Dst: ncclStreamWaitStream
      Src: /src/nccl/src/transport.cc:293,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport.cc:294,1
    - Dst: ncclStrongStreamRelease
      Src: /src/nccl/src/transport.cc:294,1
    - Dst: ncclCudaGraphNone
      Src: /src/nccl/src/transport.cc:294,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport.cc:295,1
    - Dst: ncclStrongStreamRelease
      Src: /src/nccl/src/transport.cc:295,1
    - Dst: ncclCudaGraphNone
      Src: /src/nccl/src/transport.cc:295,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 146
    argCount: 3
    argNames:
    - comm
    - graph
    - connIndex
    argTypes:
    - struct ncclComm*
    - struct ncclTopoGraph*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 103
    functionDepth: 4
    functionLinenumber: 103
    functionLinenumberEnd: 299
    functionName: ncclTransportP2pSetup
    functionSourceFile: /src/nccl/src/transport.cc
    functionUses: 2
    functionsReached:
    - bootstrapRecv
    - printf
    - struct ncclConnector*::transportComm::connect
    - fflush
    - TIME_PRINT
    - gettimeofday
    - bootstrapSend
    - INFO
    - ncclStreamWaitStream
    - ncclParamReportConnectProgress
    - ncclCudaGraphNone
    - TIME_START
    - selectTransport
    - memset
    - CUDACHECKGOTO
    - ncclStrongStreamRelease
    - ncclStrongStreamAcquire
    - NCCLCHECKGOTO
    - free
    - cudaMemcpyAsync
    - ncclParamConnectRoundMaxPeers
    - ncclCalloc
    - TIME_STOP
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTransportP2pSetup(struct ncclComm* comm, struct ncclTopoGraph*
      graph, int connIndex)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: TRACE
      Src: /src/nccl/src/transport.cc:317,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport.cc:334,1
    - Dst: struct ncclTransportComm*::setup
      Src: /src/nccl/src/transport.cc:334,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport.cc:337,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport.cc:337,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport.cc:340,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport.cc:340,1
    - Dst: memcpy
      Src: /src/nccl/src/transport.cc:342,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport.cc:343,1
    - Dst: bootstrapAllGather
      Src: /src/nccl/src/transport.cc:343,1
    - Dst: memcpy
      Src: /src/nccl/src/transport.cc:348,1
    - Dst: memcpy
      Src: /src/nccl/src/transport.cc:353,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport.cc:357,1
    - Dst: struct ncclTransportComm*::connect
      Src: /src/nccl/src/transport.cc:357,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/transport.cc:359,1
    - Dst: cudaMemcpy
      Src: /src/nccl/src/transport.cc:359,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/transport.cc:361,1
    - Dst: cudaMemcpy
      Src: /src/nccl/src/transport.cc:361,1
    - Dst: memcpy
      Src: /src/nccl/src/transport.cc:364,1
    - Dst: TRACE
      Src: /src/nccl/src/transport.cc:365,1
    - Dst: free
      Src: /src/nccl/src/transport.cc:368,1
    - Dst: free
      Src: /src/nccl/src/transport.cc:369,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 8
    argNames:
    - comm
    - collNetGraph
    - channel
    - masterRank
    - masterPeer
    - collNetGraphChannelId
    - type
    - connect
    argTypes:
    - struct ncclComm*
    - struct ncclTopoGraph*
    - struct ncclChannel*
    - int
    - int
    - int
    - int
    - ncclConnect*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 305
    functionDepth: 4
    functionLinenumber: 305
    functionLinenumberEnd: 371
    functionName: ncclTransportCollNetSetup
    functionSourceFile: /src/nccl/src/transport.cc
    functionUses: 0
    functionsReached:
    - TRACE
    - NCCLCHECKGOTO
    - struct ncclTransportComm*::connect
    - memcpy
    - CUDACHECKGOTO
    - free
    - ncclCalloc
    - cudaMemcpy
    - bootstrapAllGather
    - NCCLCHECK
    - struct ncclTransportComm*::setup
    linkageType: ''
    returnType: bool
    signature: bool ncclTransportCollNetSetup(struct ncclComm* comm, struct ncclTopoGraph*
      collNetGraph, struct ncclChannel* channel, int masterRank, int masterPeer, int
      collNetGraphChannelId, int type, ncclConnect* connect)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport.cc:377,1
    - Dst: bootstrapIntraNodeAllGather
      Src: /src/nccl/src/transport.cc:377,1
    - Dst: WARN
      Src: /src/nccl/src/transport.cc:385,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - comm
    - collNetSetupFail
    argTypes:
    - struct ncclComm*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 373
    functionDepth: 4
    functionLinenumber: 373
    functionLinenumberEnd: 389
    functionName: ncclTransportCollNetCheck
    functionSourceFile: /src/nccl/src/transport.cc
    functionUses: 0
    functionsReached:
    - WARN
    - NCCLCHECK
    - bootstrapIntraNodeAllGather
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTransportCollNetCheck(struct ncclComm* comm, int collNetSetupFail)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ncclAtomicRefCountDecrement
      Src: /src/nccl/src/transport.cc:397,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport.cc:400,1
    - Dst: struct ncclConnector*::transportComm::free
      Src: /src/nccl/src/transport.cc:400,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport.cc:405,1
    - Dst: struct ncclConnector*::transportComm::free
      Src: /src/nccl/src/transport.cc:405,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 391
    functionDepth: 1
    functionLinenumber: 391
    functionLinenumberEnd: 412
    functionName: ncclTransportCollNetFree
    functionSourceFile: /src/nccl/src/transport.cc
    functionUses: 0
    functionsReached:
    - ncclAtomicRefCountDecrement
    - struct ncclConnector*::transportComm::free
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTransportCollNetFree(struct ncclComm* comm)
  - BBCount: 58
    BranchProfiles: []
    Callsites:
    - Dst: ncclGetEnv
      Src: /src/nccl/src/debug.cc:41,1
    - Dst: fclose
      Src: /src/nccl/src/debug.cc:46,1
    - Dst: strcasecmp
      Src: /src/nccl/src/debug.cc:51,1
    - Dst: strcasecmp
      Src: /src/nccl/src/debug.cc:53,1
    - Dst: strcasecmp
      Src: /src/nccl/src/debug.cc:55,1
    - Dst: strcasecmp
      Src: /src/nccl/src/debug.cc:57,1
    - Dst: strcasecmp
      Src: /src/nccl/src/debug.cc:59,1
    - Dst: ncclGetEnv
      Src: /src/nccl/src/debug.cc:67,1
    - Dst: strdup
      Src: /src/nccl/src/debug.cc:72,1
    - Dst: strtok
      Src: /src/nccl/src/debug.cc:73,1
    - Dst: strcasecmp
      Src: /src/nccl/src/debug.cc:76,1
    - Dst: strcasecmp
      Src: /src/nccl/src/debug.cc:78,1
    - Dst: strcasecmp
      Src: /src/nccl/src/debug.cc:80,1
    - Dst: strcasecmp
      Src: /src/nccl/src/debug.cc:82,1
    - Dst: strcasecmp
      Src: /src/nccl/src/debug.cc:84,1
    - Dst: strcasecmp
      Src: /src/nccl/src/debug.cc:86,1
    - Dst: strcasecmp
      Src: /src/nccl/src/debug.cc:88,1
    - Dst: strcasecmp
      Src: /src/nccl/src/debug.cc:90,1
    - Dst: strcasecmp
      Src: /src/nccl/src/debug.cc:92,1
    - Dst: strcasecmp
      Src: /src/nccl/src/debug.cc:94,1
    - Dst: strcasecmp
      Src: /src/nccl/src/debug.cc:96,1
    - Dst: strcasecmp
      Src: /src/nccl/src/debug.cc:98,1
    - Dst: strcasecmp
      Src: /src/nccl/src/debug.cc:100,1
    - Dst: strcasecmp
      Src: /src/nccl/src/debug.cc:102,1
    - Dst: strcasecmp
      Src: /src/nccl/src/debug.cc:104,1
    - Dst: strcasecmp
      Src: /src/nccl/src/debug.cc:106,1
    - Dst: strcasecmp
      Src: /src/nccl/src/debug.cc:108,1
    - Dst: strtok
      Src: /src/nccl/src/debug.cc:114,1
    - Dst: free
      Src: /src/nccl/src/debug.cc:116,1
    - Dst: ncclGetEnv
      Src: /src/nccl/src/debug.cc:119,1
    - Dst: strlen
      Src: /src/nccl/src/debug.cc:120,1
    - Dst: strtoll
      Src: /src/nccl/src/debug.cc:123,1
    - Dst: ncclGetEnv
      Src: /src/nccl/src/debug.cc:129,1
    - Dst: strdup
      Src: /src/nccl/src/debug.cc:136,1
    - Dst: strtok
      Src: /src/nccl/src/debug.cc:137,1
    - Dst: strcasecmp
      Src: /src/nccl/src/debug.cc:140,1
    - Dst: strcasecmp
      Src: /src/nccl/src/debug.cc:142,1
    - Dst: strcasecmp
      Src: /src/nccl/src/debug.cc:144,1
    - Dst: strcasecmp
      Src: /src/nccl/src/debug.cc:146,1
    - Dst: strcasecmp
      Src: /src/nccl/src/debug.cc:148,1
    - Dst: strcasecmp
      Src: /src/nccl/src/debug.cc:150,1
    - Dst: strtok
      Src: /src/nccl/src/debug.cc:159,1
    - Dst: free
      Src: /src/nccl/src/debug.cc:161,1
    - Dst: ncclGetEnv
      Src: /src/nccl/src/debug.cc:165,1
    - Dst: strlen
      Src: /src/nccl/src/debug.cc:181,1
    - Dst: memcpy
      Src: /src/nccl/src/debug.cc:188,1
    - Dst: strcpy
      Src: /src/nccl/src/debug.cc:193,1
    - Dst: strlen
      Src: /src/nccl/src/debug.cc:198,1
    - Dst: strcpy
      Src: /src/nccl/src/debug.cc:199,1
    - Dst: strcpy
      Src: /src/nccl/src/debug.cc:201,1
    - Dst: getHostName
      Src: /src/nccl/src/debug.cc:211,1
    - Dst: getpid
      Src: /src/nccl/src/debug.cc:212,1
    - Dst: ncclGetEnv
      Src: /src/nccl/src/debug.cc:218,1
    - Dst: snprintf
      Src: /src/nccl/src/debug.cc:233,1
    - Dst: snprintf
      Src: /src/nccl/src/debug.cc:236,1
    - Dst: fopen
      Src: /src/nccl/src/debug.cc:254,1
    - Dst: setlinebuf
      Src: /src/nccl/src/debug.cc:256,1
    - Dst: std::chrono::steady_clock::now
      Src: /src/nccl/src/debug.cc:262,1
    - Dst: __atomic_store_n
      Src: /src/nccl/src/debug.cc:264,1
    CyclomaticComplexity: 76
    EdgeCount: 76
    ICount: 208
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 265
    functionName: ncclDebugInit
    functionSourceFile: /src/nccl/src/debug.cc
    functionUses: 0
    functionsReached:
    - getHostName
    - strdup
    - strlen
    - free
    - ncclGetEnv
    - fclose
    - strtoll
    - memcpy
    - fopen
    - getpid
    - strtok
    - setlinebuf
    - std::chrono::steady_clock::now
    - strcasecmp
    - strcpy
    - __atomic_store_n
    - snprintf
    linkageType: ''
    returnType: void
    signature: void ncclDebugInit()
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_load_n
      Src: /src/nccl/src/debug.cc:273,1
    - Dst: pthread_mutex_lock
      Src: /src/nccl/src/debug.cc:279,1
    - Dst: va_start
      Src: /src/nccl/src/debug.cc:282,1
    - Dst: vsnprintf
      Src: /src/nccl/src/debug.cc:283,1
    - Dst: va_end
      Src: /src/nccl/src/debug.cc:284,1
    - Dst: pthread_mutex_unlock
      Src: /src/nccl/src/debug.cc:289,1
    - Dst: pthread_mutex_lock
      Src: /src/nccl/src/debug.cc:294,1
    - Dst: ncclDebugInit
      Src: /src/nccl/src/debug.cc:299,1
    - Dst: pthread_mutex_unlock
      Src: /src/nccl/src/debug.cc:301,1
    - Dst: syscall
      Src: /src/nccl/src/debug.cc:306,1
    - Dst: clock_gettime
      Src: /src/nccl/src/debug.cc:321,1
    - Dst: localtime_r
      Src: /src/nccl/src/debug.cc:323,1
    - Dst: memcpy
      Src: /src/nccl/src/debug.cc:330,1
    - Dst: snprintf
      Src: /src/nccl/src/debug.cc:331,1
    - Dst: strcpy
      Src: /src/nccl/src/debug.cc:335,1
    - Dst: std::strftime
      Src: /src/nccl/src/debug.cc:340,1
    - Dst: std::strftime
      Src: /src/nccl/src/debug.cc:343,1
    - Dst: min
      Src: /src/nccl/src/debug.cc:348,1
    - Dst: snprintf
      Src: /src/nccl/src/debug.cc:352,1
    - Dst: min
      Src: /src/nccl/src/debug.cc:353,1
    - Dst: cudaGetDevice
      Src: /src/nccl/src/debug.cc:358,1
    - Dst: snprintf
      Src: /src/nccl/src/debug.cc:363,1
    - Dst: __atomic_store_n
      Src: /src/nccl/src/debug.cc:364,1
    - Dst: snprintf
      Src: /src/nccl/src/debug.cc:366,1
    - Dst: snprintf
      Src: /src/nccl/src/debug.cc:368,1
    - Dst: std::chrono::steady_clock::now
      Src: /src/nccl/src/debug.cc:370,1
    - Dst: std::chrono::duration_cast<std::chrono::duration<double>>
      Src: /src/nccl/src/debug.cc:371,1
    - Dst: snprintf
      Src: /src/nccl/src/debug.cc:372,1
    - Dst: min
      Src: /src/nccl/src/debug.cc:374,1
    - Dst: va_start
      Src: /src/nccl/src/debug.cc:378,1
    - Dst: vsnprintf
      Src: /src/nccl/src/debug.cc:379,1
    - Dst: va_end
      Src: /src/nccl/src/debug.cc:380,1
    - Dst: min
      Src: /src/nccl/src/debug.cc:383,1
    - Dst: fwrite
      Src: /src/nccl/src/debug.cc:388,1
    - Dst: pthread_mutex_unlock
      Src: /src/nccl/src/debug.cc:389,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 80
    argCount: 5
    argNames:
    - level
    - flags
    - filefunc
    - line
    - fmt
    argTypes:
    - ncclDebugLogLevel
    - unsigned long
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 271
    functionDepth: 2
    functionLinenumber: 271
    functionLinenumberEnd: 390
    functionName: ncclDebugLog
    functionSourceFile: /src/nccl/src/debug.cc
    functionUses: 0
    functionsReached:
    - vsnprintf
    - std::chrono::duration_cast<std::chrono::duration<double>>
    - pthread_mutex_lock
    - std::chrono::steady_clock::now
    - __atomic_load_n
    - min
    - va_end
    - pthread_mutex_unlock
    - cudaGetDevice
    - std::strftime
    - ncclDebugInit
    - localtime_r
    - syscall
    - strcpy
    - clock_gettime
    - va_start
    - memcpy
    - fwrite
    - __atomic_store_n
    - snprintf
    linkageType: ''
    returnType: void
    signature: void ncclDebugLog(ncclDebugLogLevel level, unsigned long flags, const
      char *filefunc, int line, const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/nccl/src/debug.cc:396,1
    - Dst: __atomic_store_n
      Src: /src/nccl/src/debug.cc:398,1
    - Dst: pthread_mutex_unlock
      Src: /src/nccl/src/debug.cc:399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 393
    functionDepth: 0
    functionLinenumber: 393
    functionLinenumberEnd: 400
    functionName: ncclResetDebugInit
    functionSourceFile: /src/nccl/src/debug.cc
    functionUses: 0
    functionsReached:
    - pthread_mutex_unlock
    - __atomic_store_n
    - pthread_mutex_lock
    linkageType: ''
    returnType: void
    signature: void ncclResetDebugInit()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncclParamSetThreadName
      Src: /src/nccl/src/debug.cc:408,1
    - Dst: va_start
      Src: /src/nccl/src/debug.cc:411,1
    - Dst: vsnprintf
      Src: /src/nccl/src/debug.cc:412,1
    - Dst: va_end
      Src: /src/nccl/src/debug.cc:413,1
    - Dst: pthread_setname_np
      Src: /src/nccl/src/debug.cc:414,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - thread
    - fmt
    argTypes:
    - pthread_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 416
    functionName: ncclSetThreadName
    functionSourceFile: /src/nccl/src/debug.cc
    functionUses: 3
    functionsReached:
    - va_start
    - vsnprintf
    - va_end
    - pthread_setname_np
    - ncclParamSetThreadName
    linkageType: ''
    returnType: void
    signature: void ncclSetThreadName(pthread_t thread, const char *fmt, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nvtxPayloadEnumRegister
      Src: /src/nccl/src/init_nvtx.cc:26,1
    - Dst: nvtx3::domain::get<nccl_domain>
      Src: /src/nccl/src/init_nvtx.cc:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 27
    functionName: initNvtxRegisteredEnums
    functionSourceFile: /src/nccl/src/init_nvtx.cc
    functionUses: 1
    functionsReached:
    - nvtxPayloadEnumRegister
    - nvtx3::domain::get<nccl_domain>
    linkageType: ''
    returnType: void
    signature: void initNvtxRegisteredEnums()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ptr
    - v0
    - v1
    argTypes:
    - uint64_t*
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 15
    functionName: load128
    functionSourceFile: /src/nccl/src/device/op128.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __device__
    signature: __device__ load128(const uint64_t* ptr, uint64_t &v0, uint64_t &v1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ptr
    - v0
    - v1
    argTypes:
    - uint64_t*
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 20
    functionName: store128
    functionSourceFile: /src/nccl/src/device/op128.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __device__
    signature: __device__ store128(uint64_t* ptr, uint64_t v0, uint64_t v1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - shmemGenericPtr
    argTypes:
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 26
    functionName: shmemCvtPtr
    functionSourceFile: /src/nccl/src/device/op128.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __device__
    signature: __device__ * shmemCvtPtr(volatile uint64_t* shmemGenericPtr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - shmemAsmPtr
    - v0
    - v1
    argTypes:
    - uint64_t*
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 31
    functionName: loadShmem128
    functionSourceFile: /src/nccl/src/device/op128.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __device__
    signature: __device__ loadShmem128(uint64_t* shmemAsmPtr, uint64_t &v0, uint64_t
      &v1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - shmemAsmPtr
    - v0
    - v1
    argTypes:
    - uint64_t*
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 36
    functionName: storeShmem128
    functionSourceFile: /src/nccl/src/device/op128.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __device__
    signature: __device__ storeShmem128(uint64_t* shmemAsmPtr, uint64_t v0, uint64_t
      v1)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<uint32_t*>
      Src: /src/nccl/src/device/op128.h:45,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/device/op128.h:45,1
    - Dst: __funnelshift_r
      Src: /src/nccl/src/device/op128.h:53,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/device/op128.h:53,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - ptr
    - v0
    - v1
    argTypes:
    - T*
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 68
    functionName: loadShmemMisaligned128
    functionSourceFile: /src/nccl/src/device/op128.h
    functionUses: 0
    functionsReached:
    - __funnelshift_r
    - reinterpret_cast<uint32_t*>
    - reinterpret_cast<uintptr_t>
    linkageType: ''
    returnType: __device__
    signature: __device__ loadShmemMisaligned128(T *ptr, uint64_t &v0, uint64_t &v1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __cvta_generic_to_shared
      Src: /src/nccl/src/device/op128.h:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 74
    functionName: cvta_to_shared
    functionSourceFile: /src/nccl/src/device/op128.h
    functionUses: 0
    functionsReached:
    - __cvta_generic_to_shared
    linkageType: ''
    returnType: __device__
    signature: __device__ cvta_to_shared(T* ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __cvta_generic_to_global
      Src: /src/nccl/src/device/op128.h:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 78
    functionName: cvta_to_global
    functionSourceFile: /src/nccl/src/device/op128.h
    functionUses: 0
    functionsReached:
    - __cvta_generic_to_global
    linkageType: ''
    returnType: __device__
    signature: __device__ cvta_to_global(T* ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - shptr
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 85
    functionName: cvta_from_shared
    functionSourceFile: /src/nccl/src/device/op128.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __device__
    signature: __device__ * cvta_from_shared(uint32_t shptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - gptr
    argTypes:
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 91
    functionName: cvta_from_global
    functionSourceFile: /src/nccl/src/device/op128.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __device__
    signature: __device__ * cvta_from_global(uintptr_t gptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 177
    functionName: __forceinline__ typename BytePackOf<T>::Pack toPack(T value)
    functionSourceFile: /src/nccl/src/device/op128.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __device__
    signature: __device__ __forceinline__ typename BytePackOf<T>::Pack toPack(T value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pack
    argTypes:
    - typename BytePackOf<T>::Pack
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 184
    functionName: fromPack
    functionSourceFile: /src/nccl/src/device/op128.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __device__
    signature: __device__ fromPack(typename BytePackOf<T>::Pack pack)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - addr
    argTypes:
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 198
    functionName: __forceinline__ BytePack<0> ld_global<0>(uintptr_t addr)
    functionSourceFile: /src/nccl/src/device/op128.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __device__
    signature: __device__ __forceinline__ BytePack<0> ld_global<0>(uintptr_t addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - addr
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 199
    functionName: __forceinline__ BytePack<0> ld_shared<0>(uint32_t addr)
    functionSourceFile: /src/nccl/src/device/op128.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __device__
    signature: __device__ __forceinline__ BytePack<0> ld_shared<0>(uint32_t addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - addr
    argTypes:
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 200
    functionName: __forceinline__ BytePack<0> ld_volatile_global<0>(uintptr_t addr)
    functionSourceFile: /src/nccl/src/device/op128.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __device__
    signature: __device__ __forceinline__ BytePack<0> ld_volatile_global<0>(uintptr_t
      addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - addr
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 201
    functionName: __forceinline__ BytePack<0> ld_volatile_shared<0>(uint32_t addr)
    functionSourceFile: /src/nccl/src/device/op128.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __device__
    signature: __device__ __forceinline__ BytePack<0> ld_volatile_shared<0>(uint32_t
      addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - addr
    argTypes:
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 202
    functionName: __forceinline__ BytePack<0> ld_relaxed_gpu_global<0>(uintptr_t addr)
    functionSourceFile: /src/nccl/src/device/op128.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __device__
    signature: __device__ __forceinline__ BytePack<0> ld_relaxed_gpu_global<0>(uintptr_t
      addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - addr
    - value
    argTypes:
    - uintptr_t
    - BytePack<0>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 203
    functionName: __forceinline__
    functionSourceFile: /src/nccl/src/device/op128.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __device__
    signature: __device__ __forceinline__ void st_global<0>(uintptr_t addr, BytePack<0>
      value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - addr
    - value
    argTypes:
    - uint32_t
    - BytePack<0>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 204
    functionName: __forceinline__
    functionSourceFile: /src/nccl/src/device/op128.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __device__
    signature: __device__ __forceinline__ void st_shared<0>(uint32_t addr, BytePack<0>
      value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - addr
    - value
    argTypes:
    - uintptr_t
    - BytePack<0>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 205
    functionName: st_relaxed_gpu_global
    functionSourceFile: /src/nccl/src/device/op128.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __device__
    signature: __device__ st_relaxed_gpu_global<0>(uintptr_t addr, BytePack<0> value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - bytes
    - ','
    - data_cxx_ty
    - ','
    - data_ptx_ty
    - ','
    - data_reg_ty
    - ','
    - space
    - ','
    - addr_cxx_ty
    - ','
    - addr_reg_ty
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 230
    functionName: DEFINE_ld_st__size_space
    functionSourceFile: /src/nccl/src/device/op128.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_ld_st__size_space(bytes, data_cxx_ty, data_ptx_ty, data_reg_ty,
      space, addr_cxx_ty, addr_reg_ty)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - bytes
    - ','
    - data_cxx_ty
    - ','
    - data_ptx_ty
    - ','
    - data_reg_ty
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 251
    functionName: DEFINE_ld_st_gpu_relaxed__size
    functionSourceFile: /src/nccl/src/device/op128.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_ld_st_gpu_relaxed__size(bytes, data_cxx_ty, data_ptx_ty, data_reg_ty)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - bytes
    - ','
    - data_cxx_ty
    - ','
    - data_ptx_ty
    - ','
    - data_reg_ty
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 256
    functionName: DEFINE_ld_st__size
    functionSourceFile: /src/nccl/src/device/op128.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_ld_st__size(bytes, data_cxx_ty, data_ptx_ty, data_reg_ty)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - space
    - ','
    - addr_cxx_ty
    - ','
    - addr_reg_ty
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 284
    functionName: DEFINE_ld_st_16__space
    functionSourceFile: /src/nccl/src/device/op128.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_ld_st_16__space(space, addr_cxx_ty, addr_reg_ty)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - addr
    argTypes:
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 293
    functionName: __forceinline__ BytePack<16> ld_relaxed_gpu_global<16>(uintptr_t
      addr)
    functionSourceFile: /src/nccl/src/device/op128.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __device__
    signature: __device__ __forceinline__ BytePack<16> ld_relaxed_gpu_global<16>(uintptr_t
      addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - addr
    - value
    argTypes:
    - uintptr_t
    - BytePack<16>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 297
    functionName: st_relaxed_gpu_global
    functionSourceFile: /src/nccl/src/device/op128.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __device__
    signature: __device__ st_relaxed_gpu_global<16>(uintptr_t addr, BytePack<16> value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cvta_to_global
      Src: /src/nccl/src/device/op128.h:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 304
    functionDepth: 1
    functionLinenumber: 304
    functionLinenumberEnd: 308
    functionName: ld_volatile_global
    functionSourceFile: /src/nccl/src/device/op128.h
    functionUses: 0
    functionsReached:
    - cvta_to_global
    linkageType: ''
    returnType: __device__
    signature: __device__ ld_volatile_global(uint64_t *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cvta_to_global
      Src: /src/nccl/src/device/op128.h:312,1
    - Dst: cvta_to_global
      Src: /src/nccl/src/device/op128.h:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 317
    functionName: ld_relaxed_sys_global
    functionSourceFile: /src/nccl/src/device/op128.h
    functionUses: 0
    functionsReached:
    - cvta_to_global
    linkageType: ''
    returnType: __device__
    signature: __device__ ld_relaxed_sys_global(uint64_t *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cvta_to_global
      Src: /src/nccl/src/device/op128.h:321,1
    - Dst: cvta_to_global
      Src: /src/nccl/src/device/op128.h:323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 326
    functionName: ld_relaxed_gpu_global
    functionSourceFile: /src/nccl/src/device/op128.h
    functionUses: 0
    functionsReached:
    - cvta_to_global
    linkageType: ''
    returnType: __device__
    signature: __device__ ld_relaxed_gpu_global(uint64_t *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cvta_to_global
      Src: /src/nccl/src/device/op128.h:330,1
    - Dst: cvta_to_global
      Src: /src/nccl/src/device/op128.h:332,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 335
    functionName: ld_acquire_sys_global
    functionSourceFile: /src/nccl/src/device/op128.h
    functionUses: 0
    functionsReached:
    - cvta_to_global
    linkageType: ''
    returnType: __device__
    signature: __device__ ld_acquire_sys_global(uint64_t *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cvta_to_global
      Src: /src/nccl/src/device/op128.h:338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ptr
    - val
    argTypes:
    - uint64_t*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 337
    functionDepth: 1
    functionLinenumber: 337
    functionLinenumberEnd: 339
    functionName: st_volatile_global
    functionSourceFile: /src/nccl/src/device/op128.h
    functionUses: 0
    functionsReached:
    - cvta_to_global
    linkageType: ''
    returnType: __device__
    signature: __device__ st_volatile_global(uint64_t *ptr, uint64_t val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cvta_to_global
      Src: /src/nccl/src/device/op128.h:342,1
    - Dst: cvta_to_global
      Src: /src/nccl/src/device/op128.h:344,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ptr
    - val
    argTypes:
    - uint64_t*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 340
    functionDepth: 1
    functionLinenumber: 340
    functionLinenumberEnd: 346
    functionName: st_relaxed_sys_global
    functionSourceFile: /src/nccl/src/device/op128.h
    functionUses: 0
    functionsReached:
    - cvta_to_global
    linkageType: ''
    returnType: __device__
    signature: __device__ st_relaxed_sys_global(uint64_t *ptr, uint64_t val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cvta_to_global
      Src: /src/nccl/src/device/op128.h:349,1
    - Dst: cvta_to_global
      Src: /src/nccl/src/device/op128.h:351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ptr
    - val
    argTypes:
    - uint64_t*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 347
    functionDepth: 1
    functionLinenumber: 347
    functionLinenumberEnd: 353
    functionName: st_release_sys_global
    functionSourceFile: /src/nccl/src/device/op128.h
    functionUses: 0
    functionsReached:
    - cvta_to_global
    linkageType: ''
    returnType: __device__
    signature: __device__ st_release_sys_global(uint64_t *ptr, uint64_t val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 361
    functionName: fence_acq_rel_sys
    functionSourceFile: /src/nccl/src/device/op128.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __device__
    signature: __device__ fence_acq_rel_sys()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 368
    functionName: fence_acq_rel_gpu
    functionSourceFile: /src/nccl/src/device/op128.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __device__
    signature: __device__ fence_acq_rel_gpu()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - addr
    - val
    argTypes:
    - uintptr_t
    - BytePack<0>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 378
    functionDepth: 0
    functionLinenumber: 378
    functionLinenumberEnd: 380
    functionName: multimem_st_global
    functionSourceFile: /src/nccl/src/device/op128.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __device__
    signature: __device__ multimem_st_global<0>(uintptr_t addr, BytePack<0> val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - addr
    - val
    argTypes:
    - uintptr_t
    - BytePack<1>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 382
    functionDepth: 0
    functionLinenumber: 382
    functionLinenumberEnd: 384
    functionName: multimem_st_global
    functionSourceFile: /src/nccl/src/device/op128.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __device__
    signature: __device__ multimem_st_global<1>(uintptr_t addr, BytePack<1> val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - addr
    - val
    argTypes:
    - uintptr_t
    - BytePack<2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 386
    functionDepth: 0
    functionLinenumber: 386
    functionLinenumberEnd: 388
    functionName: multimem_st_global
    functionSourceFile: /src/nccl/src/device/op128.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __device__
    signature: __device__ multimem_st_global<2>(uintptr_t addr, BytePack<2> val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - addr
    - val
    argTypes:
    - uintptr_t
    - BytePack<4>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 392
    functionName: multimem_st_global
    functionSourceFile: /src/nccl/src/device/op128.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __device__
    signature: __device__ multimem_st_global<4>(uintptr_t addr, BytePack<4> val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - addr
    - val
    argTypes:
    - uintptr_t
    - BytePack<8>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 394
    functionDepth: 0
    functionLinenumber: 394
    functionLinenumberEnd: 396
    functionName: multimem_st_global
    functionSourceFile: /src/nccl/src/device/op128.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __device__
    signature: __device__ multimem_st_global<8>(uintptr_t addr, BytePack<8> val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - addr
    - val
    argTypes:
    - uintptr_t
    - BytePack<16>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 402
    functionName: multimem_st_global
    functionSourceFile: /src/nccl/src/device/op128.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __device__
    signature: __device__ multimem_st_global<16>(uintptr_t addr, BytePack<16> val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - addr
    - val
    argTypes:
    - uintptr_t
    - BytePack<Size>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 407
    functionName: multimem_st_global
    functionSourceFile: /src/nccl/src/device/op128.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __device__
    signature: __device__ multimem_st_global(uintptr_t addr, BytePack<Size> val)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/device/op128.h:420,1
    - Dst: reinterpret_cast<uint32_t*>
      Src: /src/nccl/src/device/op128.h:421,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/device/op128.h:421,1
    - Dst: __funnelshift_r
      Src: /src/nccl/src/device/op128.h:431,1
    - Dst: __funnelshift_r
      Src: /src/nccl/src/device/op128.h:433,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 25
    argCount: 3
    argNames:
    - ptr
    - ix
    - end
    argTypes:
    - T*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 412
    functionDepth: 0
    functionLinenumber: 412
    functionLinenumberEnd: 443
    functionName: loadPack
    functionSourceFile: /src/nccl/src/device/op128.h
    functionUses: 0
    functionsReached:
    - __funnelshift_r
    - reinterpret_cast<uint32_t*>
    - reinterpret_cast<uintptr_t>
    linkageType: ''
    returnType: __device__
    signature: __device__ loadPack(T* ptr, int ix, int end)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 4
    argNames:
    - ptr
    - ix
    - end
    - val
    argTypes:
    - T*
    - int
    - int
    - Pack
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 447
    functionDepth: 0
    functionLinenumber: 447
    functionLinenumberEnd: 457
    functionName: storePack
    functionSourceFile: /src/nccl/src/device/op128.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __device__
    signature: __device__ storePack(T* ptr, int ix, int end, Pack val)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/nccl/src/device/op128.h:468,1
    - Dst: min
      Src: /src/nccl/src/device/op128.h:469,1
    - Dst: ld_shared<EltSize>
      Src: /src/nccl/src/device/op128.h:478,1
    - Dst: st_global<EltSize>
      Src: /src/nccl/src/device/op128.h:480,1
    - Dst: divUp
      Src: /src/nccl/src/device/op128.h:490,1
    - Dst: ld_shared<4>
      Src: /src/nccl/src/device/op128.h:496,1
    - Dst: ld_shared<4>
      Src: /src/nccl/src/device/op128.h:497,1
    - Dst: ld_shared<4>
      Src: /src/nccl/src/device/op128.h:498,1
    - Dst: ld_shared<4>
      Src: /src/nccl/src/device/op128.h:499,1
    - Dst: ld_shared<4>
      Src: /src/nccl/src/device/op128.h:501,1
    - Dst: __funnelshift_r
      Src: /src/nccl/src/device/op128.h:502,1
    - Dst: __funnelshift_r
      Src: /src/nccl/src/device/op128.h:503,1
    - Dst: __funnelshift_r
      Src: /src/nccl/src/device/op128.h:504,1
    - Dst: __funnelshift_r
      Src: /src/nccl/src/device/op128.h:505,1
    - Dst: multimem_st_global
      Src: /src/nccl/src/device/op128.h:507,1
    - Dst: st_global<16>
      Src: /src/nccl/src/device/op128.h:508,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 4
    argNames:
    - lane
    - dstAddr
    - srcAddr
    - nBytesAhead
    argTypes:
    - int
    - uintptr_t
    - uint32_t
    - IntBytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 464
    functionDepth: 1
    functionLinenumber: 464
    functionLinenumberEnd: 514
    functionName: copyGlobalShared_WarpUnrolled
    functionSourceFile: /src/nccl/src/device/op128.h
    functionUses: 0
    functionsReached:
    - min
    - divUp
    - st_global<EltSize>
    - ld_shared<4>
    - ld_shared<EltSize>
    - multimem_st_global
    - st_global<16>
    - __funnelshift_r
    linkageType: ''
    returnType: __device__
    signature: "__device__ copyGlobalShared_WarpUnrolled(\n    int lane, uintptr_t
      dstAddr, uint32_t srcAddr, IntBytes nBytesAhead\n  )"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ncclCollCbdPart
      Src: /src/nccl/src/device/all_gather.h:18,1
    - Dst: min
      Src: /src/nccl/src/device/all_gather.h:45,1
    - Dst: Primitives::directSend
      Src: /src/nccl/src/device/all_gather.h:53,1
    - Dst: Primitives::directCopySend
      Src: /src/nccl/src/device/all_gather.h:55,1
    - Dst: Primitives::directRecvCopyDirectSend
      Src: /src/nccl/src/device/all_gather.h:62,1
    - Dst: Primitives::directRecv
      Src: /src/nccl/src/device/all_gather.h:70,1
    - Dst: reduceCopy
      Src: /src/nccl/src/device/all_gather.h:75,1
    - Dst: barrier_sync
      Src: /src/nccl/src/device/all_gather.h:82,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 3
    argNames:
    - tid
    - nthreads
    - work
    argTypes:
    - int
    - int
    - struct ncclDevWorkColl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 83
    functionName: runRing
    functionSourceFile: /src/nccl/src/device/all_gather.h
    functionUses: 0
    functionsReached:
    - min
    - ncclCollCbdPart
    - Primitives::directCopySend
    - Primitives::directSend
    - reduceCopy
    - barrier_sync
    - Primitives::directRecvCopyDirectSend
    - Primitives::directRecv
    linkageType: ''
    returnType: __device__
    signature: __device__ runRing(int tid, int nthreads, struct ncclDevWorkColl* work)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ncclCollCbdPart
      Src: /src/nccl/src/device/all_gather.h:18,1
    - Dst: min
      Src: /src/nccl/src/device/all_gather.h:45,1
    - Dst: Primitives::directSend
      Src: /src/nccl/src/device/all_gather.h:53,1
    - Dst: Primitives::directCopySend
      Src: /src/nccl/src/device/all_gather.h:55,1
    - Dst: Primitives::directRecvCopyDirectSend
      Src: /src/nccl/src/device/all_gather.h:62,1
    - Dst: Primitives::directRecv
      Src: /src/nccl/src/device/all_gather.h:70,1
    - Dst: reduceCopy
      Src: /src/nccl/src/device/all_gather.h:75,1
    - Dst: barrier_sync
      Src: /src/nccl/src/device/all_gather.h:82,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 36
    argCount: 3
    argNames:
    - tid
    - nthreads
    - work
    argTypes:
    - int
    - int
    - struct ncclDevWorkColl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 83
    functionName: runRing
    functionSourceFile: /src/nccl/src/device/all_gather.h
    functionUses: 0
    functionsReached:
    - min
    - ncclCollCbdPart
    - Primitives::directCopySend
    - Primitives::directSend
    - reduceCopy
    - barrier_sync
    - Primitives::directRecvCopyDirectSend
    - Primitives::directRecv
    linkageType: ''
    returnType: __device__
    signature: __device__ runRing(int tid, int nthreads, struct ncclDevWorkColl* work)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: runRing
      Src: /src/nccl/src/device/all_gather.h:91,1
    - Dst: runRing
      Src: /src/nccl/src/device/all_gather.h:93,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - tid
    - nthreads
    - work
    argTypes:
    - int
    - int
    - struct ncclDevWorkColl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 94
    functionName: run
    functionSourceFile: /src/nccl/src/device/all_gather.h
    functionUses: 0
    functionsReached:
    - runRing
    linkageType: ''
    returnType: void
    signature: void run(int tid, int nthreads, struct ncclDevWorkColl* work)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: runRing
      Src: /src/nccl/src/device/all_gather.h:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - tid
    - nthreads
    - work
    argTypes:
    - int
    - int
    - struct ncclDevWorkColl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 101
    functionName: run
    functionSourceFile: /src/nccl/src/device/all_gather.h
    functionUses: 0
    functionsReached:
    - runRing
    linkageType: ''
    returnType: void
    signature: void run(int tid, int nthreads, struct ncclDevWorkColl* work)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: runRing
      Src: /src/nccl/src/device/all_gather.h:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - tid
    - nthreads
    - work
    argTypes:
    - int
    - int
    - struct ncclDevWorkColl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 108
    functionName: run
    functionSourceFile: /src/nccl/src/device/all_gather.h
    functionUses: 0
    functionsReached:
    - runRing
    linkageType: ''
    returnType: void
    signature: void run(int tid, int nthreads, struct ncclDevWorkColl* work)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ncclCollCbdPart
      Src: /src/nccl/src/device/all_gather.h:119,1
    - Dst: ncclScratchForWarp
      Src: /src/nccl/src/device/all_gather.h:122,1
    - Dst: __syncthreads
      Src: /src/nccl/src/device/all_gather.h:124,1
    - Dst: __syncthreads
      Src: /src/nccl/src/device/all_gather.h:128,1
    - Dst: PatAGAlgorithm::getParallelFactor
      Src: /src/nccl/src/device/all_gather.h:132,1
    - Dst: cuda::atomic_ref::load
      Src: /src/nccl/src/device/all_gather.h:137,1
    - Dst: PatAGAlgorithm::getNextOp
      Src: /src/nccl/src/device/all_gather.h:138,1
    - Dst: cuda::atomic_ref::load
      Src: /src/nccl/src/device/all_gather.h:162,1
    - Dst: Primitives::patCopy
      Src: /src/nccl/src/device/all_gather.h:164,1
    - Dst: cuda::atomic_ref::store
      Src: /src/nccl/src/device/all_gather.h:165,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 34
    argCount: 3
    argNames:
    - tid
    - nthreads
    - work
    argTypes:
    - int
    - int
    - struct ncclDevWorkColl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 171
    functionName: run
    functionSourceFile: /src/nccl/src/device/all_gather.h
    functionUses: 0
    functionsReached:
    - PatAGAlgorithm::getParallelFactor
    - ncclCollCbdPart
    - __syncthreads
    - Primitives::patCopy
    - ncclScratchForWarp
    - cuda::atomic_ref::store
    - cuda::atomic_ref::load
    - PatAGAlgorithm::getNextOp
    linkageType: ''
    returnType: void
    signature: void run(int tid, int nthreads, struct ncclDevWorkColl* work)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/nccl/src/device/all_gather.h:198,1
    - Dst: min
      Src: /src/nccl/src/device/all_gather.h:199,1
    - Dst: min
      Src: /src/nccl/src/device/all_gather.h:218,1
    - Dst: reduceCopy
      Src: /src/nccl/src/device/all_gather.h:223,1
    - Dst: __device__
      Src: /src/nccl/src/device/all_gather.h:228,1
    - Dst: __device__
      Src: /src/nccl/src/device/all_gather.h:231,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 25
    argCount: 11
    argNames:
    - tid
    - tn
    - slice
    - maxSliceSize
    - nSrcs
    - srcPtrs
    - nDsts
    - dstPtrs
    - dstSizes
    - sendDirectFlag
    - recvDirectFlag
    argTypes:
    - int
    - int
    - int
    - int
    - int
    - void**
    - int
    - void**
    - int32_t*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 243
    functionName: "operator()(\n        int tid, int tn, int slice, int maxSliceSize,\n
      \       int nSrcs, void** srcPtrs, int nDsts, void** dstPtrs, int32_t* dstSizes,
      uint32_t sendDirectFlag, uint32_t recvDirectFlag\n      )"
    functionSourceFile: /src/nccl/src/device/all_gather.h
    functionUses: 0
    functionsReached:
    - min
    - reduceCopy
    - __device__
    linkageType: ''
    returnType: __device__
    signature: "__device__ operator()(\n        int tid, int tn, int slice, int maxSliceSize,\n
      \       int nSrcs, void** srcPtrs, int nDsts, void** dstPtrs, int32_t* dstSizes,
      uint32_t sendDirectFlag, uint32_t recvDirectFlag\n      )"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: roundUp
      Src: /src/nccl/src/device/all_gather.h:251,1
    - Dst: ncclCollCbdPart
      Src: /src/nccl/src/device/all_gather.h:261,1
    - Dst: min
      Src: /src/nccl/src/device/all_gather.h:271,1
    - Dst: Primitives::gather
      Src: /src/nccl/src/device/all_gather.h:272,1
    - Dst: min
      Src: /src/nccl/src/device/all_gather.h:283,1
    - Dst: Primitives::send
      Src: /src/nccl/src/device/all_gather.h:284,1
    - Dst: Primitives::scatter
      Src: /src/nccl/src/device/all_gather.h:296,1
    - Dst: Primitives::gather
      Src: /src/nccl/src/device/all_gather.h:299,1
    - Dst: Primitives::recv
      Src: /src/nccl/src/device/all_gather.h:307,1
    - Dst: min
      Src: /src/nccl/src/device/all_gather.h:312,1
    - Dst: Primitives::directSend
      Src: /src/nccl/src/device/all_gather.h:313,1
    - Dst: Primitives::template process</*Recv=*/1, /*Send=*/0>
      Src: /src/nccl/src/device/all_gather.h:334,1
    - Dst: divUp
      Src: /src/nccl/src/device/all_gather.h:340,1
    - Dst: min
      Src: /src/nccl/src/device/all_gather.h:346,1
    - Dst: "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk, StepPerSlice,
        Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::sendPeerNotify"
      Src: /src/nccl/src/device/all_gather.h:347,1
    - Dst: Primitives::template process</*Recv=*/1, /*Send=*/1>
      Src: /src/nccl/src/device/all_gather.h:357,1
    - Dst: "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk, StepPerSlice,
        Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::sendPeerNotify"
      Src: /src/nccl/src/device/all_gather.h:360,1
    - Dst: min
      Src: /src/nccl/src/device/all_gather.h:371,1
    - Dst: max
      Src: /src/nccl/src/device/all_gather.h:374,1
    - Dst: min
      Src: /src/nccl/src/device/all_gather.h:375,1
    - Dst: Primitives::send
      Src: /src/nccl/src/device/all_gather.h:376,1
    - Dst: max
      Src: /src/nccl/src/device/all_gather.h:376,1
    - Dst: Primitives::template process</*Recv=*/1, /*Send=*/1>
      Src: /src/nccl/src/device/all_gather.h:388,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 73
    argCount: 2
    argNames:
    - tid
    - work
    argTypes:
    - int
    - struct ncclDevWorkColl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 246
    functionDepth: 1
    functionLinenumber: 246
    functionLinenumberEnd: 394
    functionName: run
    functionSourceFile: /src/nccl/src/device/all_gather.h
    functionUses: 0
    functionsReached:
    - Primitives::gather
    - min
    - Primitives::send
    - Primitives::scatter
    - ncclCollCbdPart
    - divUp
    - roundUp
    - Primitives::directSend
    - Primitives::template process</*Recv=*/1, /*Send=*/1>
    - max
    - Primitives::template process</*Recv=*/1, /*Send=*/0>
    - "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk, StepPerSlice,
      Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::sendPeerNotify"
    - Primitives::recv
    linkageType: ''
    returnType: void
    signature: void run(int tid, int/*nthreads*/, struct ncclDevWorkColl* work)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/nccl/src/device/all_gather.h:422,1
    - Dst: min
      Src: /src/nccl/src/device/all_gather.h:423,1
    - Dst: min
      Src: /src/nccl/src/device/all_gather.h:442,1
    - Dst: reduceCopy
      Src: /src/nccl/src/device/all_gather.h:447,1
    - Dst: __device__
      Src: /src/nccl/src/device/all_gather.h:452,1
    - Dst: __device__
      Src: /src/nccl/src/device/all_gather.h:455,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 27
    argCount: 11
    argNames:
    - tid
    - tn
    - slice
    - maxSliceSize
    - nSrcs
    - srcPtrs
    - nDsts
    - dstPtrs
    - dstSizes
    - sendDirectFlag
    - recvDirectFlag
    argTypes:
    - int
    - int
    - int
    - int
    - int
    - void**
    - int
    - void**
    - int32_t*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 469
      start: 406
    functionDepth: 1
    functionLinenumber: 406
    functionLinenumberEnd: 469
    functionName: "operator()(\n        int tid, int tn, int slice, int maxSliceSize,\n
      \       int nSrcs, void** srcPtrs, int nDsts, void** dstPtrs, int32_t* dstSizes,
      uint32_t sendDirectFlag, uint32_t recvDirectFlag\n      )"
    functionSourceFile: /src/nccl/src/device/all_gather.h
    functionUses: 0
    functionsReached:
    - min
    - reduceCopy
    - __device__
    linkageType: ''
    returnType: __device__
    signature: "__device__ operator()(\n        int tid, int tn, int slice, int maxSliceSize,\n
      \       int nSrcs, void** srcPtrs, int nDsts, void** dstPtrs, int32_t* dstSizes,
      uint32_t sendDirectFlag, uint32_t recvDirectFlag\n      )"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: divUp
      Src: /src/nccl/src/device/all_gather.h:498,1
    - Dst: "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk, StepPerSlice,
        Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::sendPeerNotify"
      Src: /src/nccl/src/device/all_gather.h:499,1
    - Dst: __syncwarp
      Src: /src/nccl/src/device/all_gather.h:501,1
    - Dst: min
      Src: /src/nccl/src/device/all_gather.h:509,1
    - Dst: max
      Src: /src/nccl/src/device/all_gather.h:512,1
    - Dst: min
      Src: /src/nccl/src/device/all_gather.h:513,1
    - Dst: Primitives::send
      Src: /src/nccl/src/device/all_gather.h:514,1
    - Dst: max
      Src: /src/nccl/src/device/all_gather.h:514,1
    - Dst: "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk, StepPerSlice,
        Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::recvPeerNotify"
      Src: /src/nccl/src/device/all_gather.h:525,1
    - Dst: __syncwarp
      Src: /src/nccl/src/device/all_gather.h:527,1
    - Dst: Primitives::template process</*Recv=*/1, /*Send=*/1>
      Src: /src/nccl/src/device/all_gather.h:538,1
    - Dst: Primitives::template process</*Recv=*/1, /*Send=*/0>
      Src: /src/nccl/src/device/all_gather.h:556,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 46
    argCount: 2
    argNames:
    - tid
    - work
    argTypes:
    - int
    - struct ncclDevWorkColl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 472
    functionDepth: 1
    functionLinenumber: 472
    functionLinenumberEnd: 560
    functionName: run
    functionSourceFile: /src/nccl/src/device/all_gather.h
    functionUses: 0
    functionsReached:
    - "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk, StepPerSlice,
      Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::recvPeerNotify"
    - min
    - Primitives::send
    - __syncwarp
    - divUp
    - Primitives::template process</*Recv=*/1, /*Send=*/1>
    - max
    - Primitives::template process</*Recv=*/1, /*Send=*/0>
    - "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk, StepPerSlice,
      Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::sendPeerNotify"
    linkageType: ''
    returnType: void
    signature: void run(int tid, int/*nthreads*/, struct ncclDevWorkColl* work)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ncclCollCbdPart
      Src: /src/nccl/src/device/reduce.h:22,1
    - Dst: min
      Src: /src/nccl/src/device/reduce.h:35,1
    - Dst: Primitives::send
      Src: /src/nccl/src/device/reduce.h:36,1
    - Dst: min
      Src: /src/nccl/src/device/reduce.h:42,1
    - Dst: Primitives::recvReduceCopy
      Src: /src/nccl/src/device/reduce.h:43,1
    - Dst: min
      Src: /src/nccl/src/device/reduce.h:49,1
    - Dst: Primitives::recvReduceSend
      Src: /src/nccl/src/device/reduce.h:50,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - tid
    - nthreads
    - work
    argTypes:
    - int
    - int
    - struct ncclDevWorkColl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 53
    functionName: runRing
    functionSourceFile: /src/nccl/src/device/reduce.h
    functionUses: 3
    functionsReached:
    - Primitives::recvReduceCopy
    - min
    - Primitives::send
    - ncclCollCbdPart
    - Primitives::recvReduceSend
    linkageType: ''
    returnType: __device__
    signature: __device__ runRing(int tid, int nthreads, struct ncclDevWorkColl* work)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ncclCollCbdPart
      Src: /src/nccl/src/device/reduce.h:22,1
    - Dst: min
      Src: /src/nccl/src/device/reduce.h:35,1
    - Dst: Primitives::send
      Src: /src/nccl/src/device/reduce.h:36,1
    - Dst: min
      Src: /src/nccl/src/device/reduce.h:42,1
    - Dst: Primitives::recvReduceCopy
      Src: /src/nccl/src/device/reduce.h:43,1
    - Dst: min
      Src: /src/nccl/src/device/reduce.h:49,1
    - Dst: Primitives::recvReduceSend
      Src: /src/nccl/src/device/reduce.h:50,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 3
    argNames:
    - tid
    - nthreads
    - work
    argTypes:
    - int
    - int
    - struct ncclDevWorkColl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 53
    functionName: runRing
    functionSourceFile: /src/nccl/src/device/reduce.h
    functionUses: 3
    functionsReached:
    - Primitives::recvReduceCopy
    - min
    - Primitives::send
    - ncclCollCbdPart
    - Primitives::recvReduceSend
    linkageType: ''
    returnType: __device__
    signature: __device__ runRing(int tid, int nthreads, struct ncclDevWorkColl* work)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: runRing
      Src: /src/nccl/src/device/reduce.h:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - tid
    - nthreads
    - work
    argTypes:
    - int
    - int
    - struct ncclDevWorkColl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 61
    functionName: run
    functionSourceFile: /src/nccl/src/device/reduce.h
    functionUses: 0
    functionsReached:
    - runRing
    linkageType: ''
    returnType: void
    signature: void run(int tid, int nthreads, struct ncclDevWorkColl* work)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: runRing
      Src: /src/nccl/src/device/reduce.h:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - tid
    - nthreads
    - work
    argTypes:
    - int
    - int
    - struct ncclDevWorkColl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 68
    functionName: run
    functionSourceFile: /src/nccl/src/device/reduce.h
    functionUses: 0
    functionsReached:
    - runRing
    linkageType: ''
    returnType: void
    signature: void run(int tid, int nthreads, struct ncclDevWorkColl* work)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: runRing
      Src: /src/nccl/src/device/reduce.h:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - tid
    - nthreads
    - work
    argTypes:
    - int
    - int
    - struct ncclDevWorkColl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 75
    functionName: run
    functionSourceFile: /src/nccl/src/device/reduce.h
    functionUses: 0
    functionsReached:
    - runRing
    linkageType: ''
    returnType: void
    signature: void run(int tid, int nthreads, struct ncclDevWorkColl* work)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 36
    functionName: calcBytePerStep
    functionSourceFile: /src/nccl/src/device/primitives.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __device__
    signature: __device__ calcBytePerStep()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: calcBytePerGrain
    functionSourceFile: /src/nccl/src/device/primitives.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __device__
    signature: __device__ calcBytePerGrain()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 51
    functionName: calcBytePerStep
    functionSourceFile: /src/nccl/src/device/primitives.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __device__
    signature: __device__ calcBytePerStep()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 55
    functionName: calcBytePerGrain
    functionSourceFile: /src/nccl/src/device/primitives.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __device__
    signature: __device__ calcBytePerGrain()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 66
    functionName: calcBytePerStep
    functionSourceFile: /src/nccl/src/device/primitives.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __device__
    signature: __device__ calcBytePerStep()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 70
    functionName: calcBytePerGrain
    functionSourceFile: /src/nccl/src/device/primitives.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __device__
    signature: __device__ calcBytePerGrain()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 85
    functionName: FanAsymmetric
    functionSourceFile: /src/nccl/src/device/primitives.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FanAsymmetric()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 89
    functionName: nrecv
    functionSourceFile: /src/nccl/src/device/primitives.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __device__
    signature: __device__ nrecv() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 90
    functionName: nsend
    functionSourceFile: /src/nccl/src/device/primitives.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __device__
    signature: __device__ nsend() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 97
    functionName: FanSymmetric
    functionSourceFile: /src/nccl/src/device/primitives.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FanSymmetric()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: n
      Src: /src/nccl/src/device/primitives.h:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - nrecv
    - nsend
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 100
    functionName: FanSymmetric
    functionSourceFile: /src/nccl/src/device/primitives.h
    functionUses: 0
    functionsReached:
    - n
    linkageType: ''
    returnType: __device__
    signature: __device__ FanSymmetric(int nrecv, int nsend)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 101
    functionName: nrecv
    functionSourceFile: /src/nccl/src/device/primitives.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __device__
    signature: __device__ nrecv() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 102
    functionName: nsend
    functionSourceFile: /src/nccl/src/device/primitives.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __device__
    signature: __device__ nsend() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<RealPrimitives*>
      Src: /src/nccl/src/device/primitives.h:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - inpIx
    - outIx
    - eltN
    argTypes:
    - intptr_t
    - intptr_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 114
    functionName: directSend
    functionSourceFile: /src/nccl/src/device/primitives.h
    functionUses: 3
    functionsReached:
    - static_cast<RealPrimitives*>
    linkageType: ''
    returnType: __device__
    signature: __device__ directSend(intptr_t inpIx, intptr_t outIx, int eltN)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<RealPrimitives*>
      Src: /src/nccl/src/device/primitives.h:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - outIx
    - eltN
    argTypes:
    - intptr_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 117
    functionName: directSendFromOutput
    functionSourceFile: /src/nccl/src/device/primitives.h
    functionUses: 0
    functionsReached:
    - static_cast<RealPrimitives*>
    linkageType: ''
    returnType: __device__
    signature: __device__ directSendFromOutput(intptr_t outIx, int eltN)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<RealPrimitives*>
      Src: /src/nccl/src/device/primitives.h:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - outIx
    - eltN
    argTypes:
    - intptr_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 120
    functionName: directRecv
    functionSourceFile: /src/nccl/src/device/primitives.h
    functionUses: 2
    functionsReached:
    - static_cast<RealPrimitives*>
    linkageType: ''
    returnType: __device__
    signature: __device__ directRecv(intptr_t outIx, int eltN)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<RealPrimitives*>
      Src: /src/nccl/src/device/primitives.h:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - inpIx
    - outIx
    - eltN
    argTypes:
    - intptr_t
    - intptr_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 123
    functionName: directCopySend
    functionSourceFile: /src/nccl/src/device/primitives.h
    functionUses: 2
    functionsReached:
    - static_cast<RealPrimitives*>
    linkageType: ''
    returnType: __device__
    signature: __device__ directCopySend(intptr_t inpIx, intptr_t outIx, int eltN,
      bool postOp=false)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<RealPrimitives*>
      Src: /src/nccl/src/device/primitives.h:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - inpIx
    - outIx
    - eltN
    argTypes:
    - intptr_t
    - intptr_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 126
    functionName: directRecvCopyDirectSend
    functionSourceFile: /src/nccl/src/device/primitives.h
    functionUses: 2
    functionsReached:
    - static_cast<RealPrimitives*>
    linkageType: ''
    returnType: __device__
    signature: __device__ directRecvCopyDirectSend(intptr_t inpIx, intptr_t outIx,
      int eltN, bool postOp=false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - inpIx
    - outIx
    - eltN
    argTypes:
    - intptr_t
    - intptr_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 129
    functionName: directRecvDirectSend
    functionSourceFile: /src/nccl/src/device/primitives.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __device__
    signature: __device__ directRecvDirectSend(intptr_t inpIx, intptr_t outIx, int
      eltN, bool postOp=false)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<RealPrimitives*>
      Src: /src/nccl/src/device/primitives.h:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - inpIx
    - outIx
    - eltN
    argTypes:
    - intptr_t
    - intptr_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 133
    functionName: recvReduceCopyDirectSend
    functionSourceFile: /src/nccl/src/device/primitives.h
    functionUses: 0
    functionsReached:
    - static_cast<RealPrimitives*>
    linkageType: ''
    returnType: __device__
    signature: __device__ recvReduceCopyDirectSend(intptr_t inpIx, intptr_t outIx,
      int eltN, bool postOp=false)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<RealPrimitives*>
      Src: /src/nccl/src/device/primitives.h:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - inpIx
    - outIx
    - eltN
    argTypes:
    - intptr_t
    - intptr_t
    - ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 136
    functionName: directRecvReduceDirectSend
    functionSourceFile: /src/nccl/src/device/primitives.h
    functionUses: 0
    functionsReached:
    - static_cast<RealPrimitives*>
    linkageType: ''
    returnType: void
    signature: void directRecvReduceDirectSend(intptr_t inpIx, intptr_t outIx, ssize_t
      eltN, bool postOp=false)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<RealPrimitives*>
      Src: /src/nccl/src/device/primitives.h:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - inpIx
    - outIx
    - eltN
    argTypes:
    - intptr_t
    - intptr_t
    - ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 139
    functionName: directRecvReduceCopyDirectSend
    functionSourceFile: /src/nccl/src/device/primitives.h
    functionUses: 0
    functionsReached:
    - static_cast<RealPrimitives*>
    linkageType: ''
    returnType: void
    signature: void directRecvReduceCopyDirectSend(intptr_t inpIx, intptr_t outIx,
      ssize_t eltN, bool postOp=false)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - abortCache
    - abortValue
    - spins
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 152
    functionName: checkAbort
    functionSourceFile: /src/nccl/src/device/primitives.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: __device__
    signature: __device__ checkAbort(int &abortCache, const int abortValue, int &spins)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncclCollCbdPart
      Src: /src/nccl/src/device/all_reduce.h:20,1
    - Dst: alignUp
      Src: /src/nccl/src/device/all_reduce.h:36,1
    - Dst: divUp
      Src: /src/nccl/src/device/all_reduce.h:36,1
    - Dst: __device__
      Src: /src/nccl/src/device/all_reduce.h:38,1
    - Dst: modRanks
      Src: /src/nccl/src/device/all_reduce.h:43,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:46,1
    - Dst: Primitives::directSend
      Src: /src/nccl/src/device/all_reduce.h:47,1
    - Dst: modRanks
      Src: /src/nccl/src/device/all_reduce.h:51,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:54,1
    - Dst: Primitives::directRecvReduceDirectSend
      Src: /src/nccl/src/device/all_reduce.h:55,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:63,1
    - Dst: Primitives::directRecvReduceCopyDirectSend
      Src: /src/nccl/src/device/all_reduce.h:64,1
    - Dst: modRanks
      Src: /src/nccl/src/device/all_reduce.h:68,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:71,1
    - Dst: Primitives::directRecvCopyDirectSend
      Src: /src/nccl/src/device/all_reduce.h:72,1
    - Dst: modRanks
      Src: /src/nccl/src/device/all_reduce.h:76,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:79,1
    - Dst: Primitives::directRecv
      Src: /src/nccl/src/device/all_reduce.h:81,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 38
    argCount: 3
    argNames:
    - tid
    - nthreads
    - work
    argTypes:
    - int
    - int
    - struct ncclDevWorkColl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 83
    functionName: runRing
    functionSourceFile: /src/nccl/src/device/all_reduce.h
    functionUses: 6
    functionsReached:
    - min
    - Primitives::directRecvReduceDirectSend
    - Primitives::directRecvReduceCopyDirectSend
    - __device__
    - divUp
    - ncclCollCbdPart
    - modRanks
    - Primitives::directSend
    - Primitives::directRecvCopyDirectSend
    - alignUp
    - Primitives::directRecv
    linkageType: ''
    returnType: __device__
    signature: __device__ runRing(int tid, int nthreads, struct ncclDevWorkColl* work)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ncclCollCbdPart
      Src: /src/nccl/src/device/all_reduce.h:91,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:101,1
    - Dst: Primitives::directRecvReduceCopy
      Src: /src/nccl/src/device/all_reduce.h:102,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:108,1
    - Dst: Primitives::directSend
      Src: /src/nccl/src/device/all_reduce.h:109,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:115,1
    - Dst: Primitives::directRecvReduceDirectSend
      Src: /src/nccl/src/device/all_reduce.h:116,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:127,1
    - Dst: Primitives::directSendFromOutput
      Src: /src/nccl/src/device/all_reduce.h:128,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:134,1
    - Dst: Primitives::directRecv
      Src: /src/nccl/src/device/all_reduce.h:135,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:141,1
    - Dst: Primitives::directRecvCopyDirectSend
      Src: /src/nccl/src/device/all_reduce.h:142,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 44
    argCount: 3
    argNames:
    - tid
    - nthreads
    - work
    argTypes:
    - int
    - int
    - struct ncclDevWorkColl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 146
    functionName: runTreeUpDown
    functionSourceFile: /src/nccl/src/device/all_reduce.h
    functionUses: 0
    functionsReached:
    - min
    - Primitives::directRecvReduceDirectSend
    - Primitives::directSendFromOutput
    - ncclCollCbdPart
    - Primitives::directSend
    - Primitives::directRecvCopyDirectSend
    - Primitives::directRecv
    - Primitives::directRecvReduceCopy
    linkageType: ''
    returnType: __device__
    signature: __device__ runTreeUpDown(int tid, int nthreads, struct ncclDevWorkColl*
      work)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ncclCollCbdPart
      Src: /src/nccl/src/device/all_reduce.h:154,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:173,1
    - Dst: Primitives::directRecvReduceCopyDirectSend
      Src: /src/nccl/src/device/all_reduce.h:174,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:194,1
    - Dst: Primitives::directSend
      Src: /src/nccl/src/device/all_reduce.h:195,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:201,1
    - Dst: Primitives::directRecvReduceDirectSend
      Src: /src/nccl/src/device/all_reduce.h:202,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:217,1
    - Dst: Primitives::directRecv
      Src: /src/nccl/src/device/all_reduce.h:218,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:224,1
    - Dst: Primitives::directRecvCopyDirectSend
      Src: /src/nccl/src/device/all_reduce.h:225,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 45
    argCount: 3
    argNames:
    - tid
    - nthreads
    - work
    argTypes:
    - int
    - int
    - struct ncclDevWorkColl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 229
    functionName: runTreeSplit
    functionSourceFile: /src/nccl/src/device/all_reduce.h
    functionUses: 0
    functionsReached:
    - min
    - Primitives::directRecvReduceDirectSend
    - Primitives::directRecvReduceCopyDirectSend
    - ncclCollCbdPart
    - Primitives::directSend
    - Primitives::directRecvCopyDirectSend
    - Primitives::directRecv
    linkageType: ''
    returnType: __device__
    signature: __device__ runTreeSplit(int tid, int nthreads, struct ncclDevWorkColl*
      work)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncclCollCbdPart
      Src: /src/nccl/src/device/all_reduce.h:20,1
    - Dst: alignUp
      Src: /src/nccl/src/device/all_reduce.h:36,1
    - Dst: divUp
      Src: /src/nccl/src/device/all_reduce.h:36,1
    - Dst: __device__
      Src: /src/nccl/src/device/all_reduce.h:38,1
    - Dst: modRanks
      Src: /src/nccl/src/device/all_reduce.h:43,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:46,1
    - Dst: Primitives::directSend
      Src: /src/nccl/src/device/all_reduce.h:47,1
    - Dst: modRanks
      Src: /src/nccl/src/device/all_reduce.h:51,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:54,1
    - Dst: Primitives::directRecvReduceDirectSend
      Src: /src/nccl/src/device/all_reduce.h:55,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:63,1
    - Dst: Primitives::directRecvReduceCopyDirectSend
      Src: /src/nccl/src/device/all_reduce.h:64,1
    - Dst: modRanks
      Src: /src/nccl/src/device/all_reduce.h:68,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:71,1
    - Dst: Primitives::directRecvCopyDirectSend
      Src: /src/nccl/src/device/all_reduce.h:72,1
    - Dst: modRanks
      Src: /src/nccl/src/device/all_reduce.h:76,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:79,1
    - Dst: Primitives::directRecv
      Src: /src/nccl/src/device/all_reduce.h:81,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 38
    argCount: 3
    argNames:
    - tid
    - nthreads
    - work
    argTypes:
    - int
    - int
    - struct ncclDevWorkColl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 83
    functionName: runRing
    functionSourceFile: /src/nccl/src/device/all_reduce.h
    functionUses: 6
    functionsReached:
    - min
    - Primitives::directRecvReduceDirectSend
    - Primitives::directRecvReduceCopyDirectSend
    - __device__
    - divUp
    - ncclCollCbdPart
    - modRanks
    - Primitives::directSend
    - Primitives::directRecvCopyDirectSend
    - alignUp
    - Primitives::directRecv
    linkageType: ''
    returnType: __device__
    signature: __device__ runRing(int tid, int nthreads, struct ncclDevWorkColl* work)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ncclCollCbdPart
      Src: /src/nccl/src/device/all_reduce.h:91,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:101,1
    - Dst: Primitives::directRecvReduceCopy
      Src: /src/nccl/src/device/all_reduce.h:102,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:108,1
    - Dst: Primitives::directSend
      Src: /src/nccl/src/device/all_reduce.h:109,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:115,1
    - Dst: Primitives::directRecvReduceDirectSend
      Src: /src/nccl/src/device/all_reduce.h:116,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:127,1
    - Dst: Primitives::directSendFromOutput
      Src: /src/nccl/src/device/all_reduce.h:128,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:134,1
    - Dst: Primitives::directRecv
      Src: /src/nccl/src/device/all_reduce.h:135,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:141,1
    - Dst: Primitives::directRecvCopyDirectSend
      Src: /src/nccl/src/device/all_reduce.h:142,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 44
    argCount: 3
    argNames:
    - tid
    - nthreads
    - work
    argTypes:
    - int
    - int
    - struct ncclDevWorkColl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 146
    functionName: runTreeUpDown
    functionSourceFile: /src/nccl/src/device/all_reduce.h
    functionUses: 0
    functionsReached:
    - min
    - Primitives::directRecvReduceDirectSend
    - Primitives::directSendFromOutput
    - ncclCollCbdPart
    - Primitives::directSend
    - Primitives::directRecvCopyDirectSend
    - Primitives::directRecv
    - Primitives::directRecvReduceCopy
    linkageType: ''
    returnType: __device__
    signature: __device__ runTreeUpDown(int tid, int nthreads, struct ncclDevWorkColl*
      work)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ncclCollCbdPart
      Src: /src/nccl/src/device/all_reduce.h:154,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:173,1
    - Dst: Primitives::directRecvReduceCopyDirectSend
      Src: /src/nccl/src/device/all_reduce.h:174,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:194,1
    - Dst: Primitives::directSend
      Src: /src/nccl/src/device/all_reduce.h:195,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:201,1
    - Dst: Primitives::directRecvReduceDirectSend
      Src: /src/nccl/src/device/all_reduce.h:202,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:217,1
    - Dst: Primitives::directRecv
      Src: /src/nccl/src/device/all_reduce.h:218,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:224,1
    - Dst: Primitives::directRecvCopyDirectSend
      Src: /src/nccl/src/device/all_reduce.h:225,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 45
    argCount: 3
    argNames:
    - tid
    - nthreads
    - work
    argTypes:
    - int
    - int
    - struct ncclDevWorkColl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 229
    functionName: runTreeSplit
    functionSourceFile: /src/nccl/src/device/all_reduce.h
    functionUses: 0
    functionsReached:
    - min
    - Primitives::directRecvReduceDirectSend
    - Primitives::directRecvReduceCopyDirectSend
    - ncclCollCbdPart
    - Primitives::directSend
    - Primitives::directRecvCopyDirectSend
    - Primitives::directRecv
    linkageType: ''
    returnType: __device__
    signature: __device__ runTreeSplit(int tid, int nthreads, struct ncclDevWorkColl*
      work)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: runRing
      Src: /src/nccl/src/device/all_reduce.h:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - tid
    - nthreads
    - work
    argTypes:
    - int
    - int
    - struct ncclDevWorkColl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 234
    functionDepth: 0
    functionLinenumber: 234
    functionLinenumberEnd: 237
    functionName: run
    functionSourceFile: /src/nccl/src/device/all_reduce.h
    functionUses: 0
    functionsReached:
    - runRing
    linkageType: ''
    returnType: void
    signature: void run(int tid, int nthreads, struct ncclDevWorkColl* work)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: runTreeUpDown
      Src: /src/nccl/src/device/all_reduce.h:244,1
    - Dst: runTreeSplit
      Src: /src/nccl/src/device/all_reduce.h:246,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 3
    argNames:
    - tid
    - nthreads
    - work
    argTypes:
    - int
    - int
    - struct ncclDevWorkColl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 242
    functionDepth: 2
    functionLinenumber: 242
    functionLinenumberEnd: 248
    functionName: run
    functionSourceFile: /src/nccl/src/device/all_reduce.h
    functionUses: 0
    functionsReached:
    - runTreeSplit
    - runTreeUpDown
    linkageType: ''
    returnType: void
    signature: void run(int tid, int nthreads, struct ncclDevWorkColl* work)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:293,1
    - Dst: Primitives::scatter
      Src: /src/nccl/src/device/all_reduce.h:294,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:308,1
    - Dst: Primitives::recvReduceDirectSend
      Src: /src/nccl/src/device/all_reduce.h:309,1
    - Dst: "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk, StepPerSlice,
        Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::sendPeerNotify"
      Src: /src/nccl/src/device/all_reduce.h:315,1
    - Dst: __syncwarp
      Src: /src/nccl/src/device/all_reduce.h:317,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:324,1
    - Dst: Primitives::send
      Src: /src/nccl/src/device/all_reduce.h:325,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:347,1
    - Dst: Primitives::directGather
      Src: /src/nccl/src/device/all_reduce.h:348,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:362,1
    - Dst: Primitives::directRecvCopyDirectSend
      Src: /src/nccl/src/device/all_reduce.h:363,1
    - Dst: "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk, StepPerSlice,
        Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::recvPeerNotify"
      Src: /src/nccl/src/device/all_reduce.h:368,1
    - Dst: __syncwarp
      Src: /src/nccl/src/device/all_reduce.h:370,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:378,1
    - Dst: Primitives::recv
      Src: /src/nccl/src/device/all_reduce.h:379,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 65
    argCount: 2
    argNames:
    - tid
    - work
    argTypes:
    - int
    - struct ncclDevWorkColl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 384
    functionName: run
    functionSourceFile: /src/nccl/src/device/all_reduce.h
    functionUses: 0
    functionsReached:
    - "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk, StepPerSlice,
      Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::recvPeerNotify"
    - min
    - Primitives::send
    - __syncwarp
    - Primitives::scatter
    - Primitives::recvReduceDirectSend
    - Primitives::directRecvCopyDirectSend
    - Primitives::directGather
    - "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk, StepPerSlice,
      Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::sendPeerNotify"
    - Primitives::recv
    linkageType: ''
    returnType: void
    signature: void run(int tid, int/*nthreads*/, struct ncclDevWorkColl* work)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: ncclCollCbdPart
      Src: /src/nccl/src/device/all_reduce.h:410,1
    - Dst: alignUp
      Src: /src/nccl/src/device/all_reduce.h:413,1
    - Dst: divUp
      Src: /src/nccl/src/device/all_reduce.h:413,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:424,1
    - Dst: Primitives::scatter
      Src: /src/nccl/src/device/all_reduce.h:425,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:436,1
    - Dst: Primitives::gather
      Src: /src/nccl/src/device/all_reduce.h:437,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:451,1
    - Dst: Primitives::directRecvDirectSend
      Src: /src/nccl/src/device/all_reduce.h:452,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:470,1
    - Dst: Primitives::scatter
      Src: /src/nccl/src/device/all_reduce.h:471,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:482,1
    - Dst: Primitives::gather
      Src: /src/nccl/src/device/all_reduce.h:483,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:497,1
    - Dst: Primitives::directRecvDirectSend
      Src: /src/nccl/src/device/all_reduce.h:498,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:512,1
    - Dst: Primitives::directRecvDirectSend
      Src: /src/nccl/src/device/all_reduce.h:513,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 49
    argCount: 2
    argNames:
    - tid
    - work
    argTypes:
    - int
    - struct ncclDevWorkColl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 389
    functionDepth: 1
    functionLinenumber: 389
    functionLinenumberEnd: 517
    functionName: run
    functionSourceFile: /src/nccl/src/device/all_reduce.h
    functionUses: 0
    functionsReached:
    - Primitives::gather
    - min
    - Primitives::scatter
    - divUp
    - ncclCollCbdPart
    - Primitives::directRecvDirectSend
    - alignUp
    linkageType: ''
    returnType: void
    signature: void run(int tid, int/*nthreads*/, struct ncclDevWorkColl* work)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ncclCollCbdPart
      Src: /src/nccl/src/device/all_reduce.h:527,1
    - Dst: alignUp
      Src: /src/nccl/src/device/all_reduce.h:539,1
    - Dst: divUp
      Src: /src/nccl/src/device/all_reduce.h:539,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:559,1
    - Dst: Primitives::scatter
      Src: /src/nccl/src/device/all_reduce.h:560,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:571,1
    - Dst: Primitives::gather
      Src: /src/nccl/src/device/all_reduce.h:572,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:586,1
    - Dst: Primitives::directRecvDirectSend
      Src: /src/nccl/src/device/all_reduce.h:587,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:603,1
    - Dst: Primitives::directRecvDirectSend
      Src: /src/nccl/src/device/all_reduce.h:604,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:621,1
    - Dst: Primitives::directRecvDirectSend
      Src: /src/nccl/src/device/all_reduce.h:622,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 51
    argCount: 2
    argNames:
    - tid
    - work
    argTypes:
    - int
    - struct ncclDevWorkColl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 522
    functionDepth: 1
    functionLinenumber: 522
    functionLinenumberEnd: 625
    functionName: run
    functionSourceFile: /src/nccl/src/device/all_reduce.h
    functionUses: 0
    functionsReached:
    - Primitives::gather
    - min
    - Primitives::scatter
    - divUp
    - ncclCollCbdPart
    - Primitives::directRecvDirectSend
    - alignUp
    linkageType: ''
    returnType: void
    signature: void run(int tid, int/*nthreads*/, struct ncclDevWorkColl* work)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk, StepPerSlice,
        Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::sendPeerNotify"
      Src: /src/nccl/src/device/all_reduce.h:666,1
    - Dst: __syncwarp
      Src: /src/nccl/src/device/all_reduce.h:668,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:675,1
    - Dst: Primitives::directSend
      Src: /src/nccl/src/device/all_reduce.h:677,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:687,1
    - Dst: Primitives::directRecvReduceDirectSend
      Src: /src/nccl/src/device/all_reduce.h:689,1
    - Dst: "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk, StepPerSlice,
        Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::recvPeerNotify"
      Src: /src/nccl/src/device/all_reduce.h:700,1
    - Dst: __syncwarp
      Src: /src/nccl/src/device/all_reduce.h:702,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:712,1
    - Dst: Primitives::directRecv
      Src: /src/nccl/src/device/all_reduce.h:713,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:725,1
    - Dst: Primitives::directRecvCopyDirectSend
      Src: /src/nccl/src/device/all_reduce.h:726,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:739,1
    - Dst: Primitives::directRecv
      Src: /src/nccl/src/device/all_reduce.h:740,1
    - Dst: min
      Src: /src/nccl/src/device/all_reduce.h:745,1
    - Dst: Primitives::directRecvCopyDirectSend
      Src: /src/nccl/src/device/all_reduce.h:746,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 65
    argCount: 3
    argNames:
    - tid
    - nthreads
    - work
    argTypes:
    - int
    - int
    - struct ncclDevWorkColl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 751
      start: 630
    functionDepth: 1
    functionLinenumber: 630
    functionLinenumberEnd: 751
    functionName: run
    functionSourceFile: /src/nccl/src/device/all_reduce.h
    functionUses: 0
    functionsReached:
    - "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk, StepPerSlice,
      Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::recvPeerNotify"
    - min
    - Primitives::directRecvReduceDirectSend
    - __syncwarp
    - Primitives::directSend
    - Primitives::directRecv
    - Primitives::directRecvCopyDirectSend
    - "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk, StepPerSlice,
      Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::sendPeerNotify"
    linkageType: ''
    returnType: void
    signature: void run(int tid, int nthreads, struct ncclDevWorkColl* work)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: runRing
      Src: /src/nccl/src/device/all_reduce.h:757,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - tid
    - nthreads
    - work
    argTypes:
    - int
    - int
    - struct ncclDevWorkColl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 758
      start: 756
    functionDepth: 0
    functionLinenumber: 756
    functionLinenumberEnd: 758
    functionName: run
    functionSourceFile: /src/nccl/src/device/all_reduce.h
    functionUses: 0
    functionsReached:
    - runRing
    linkageType: ''
    returnType: void
    signature: void run(int tid, int nthreads, struct ncclDevWorkColl* work)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: runTreeSplit
      Src: /src/nccl/src/device/all_reduce.h:764,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - tid
    - nthreads
    - work
    argTypes:
    - int
    - int
    - struct ncclDevWorkColl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 763
    functionDepth: 2
    functionLinenumber: 763
    functionLinenumberEnd: 765
    functionName: run
    functionSourceFile: /src/nccl/src/device/all_reduce.h
    functionUses: 0
    functionsReached:
    - runTreeSplit
    linkageType: ''
    returnType: void
    signature: void run(int tid, int nthreads, struct ncclDevWorkColl* work)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: runRing
      Src: /src/nccl/src/device/all_reduce.h:771,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - tid
    - nthreads
    - work
    argTypes:
    - int
    - int
    - struct ncclDevWorkColl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 770
    functionDepth: 0
    functionLinenumber: 770
    functionLinenumberEnd: 772
    functionName: run
    functionSourceFile: /src/nccl/src/device/all_reduce.h
    functionUses: 0
    functionsReached:
    - runRing
    linkageType: ''
    returnType: void
    signature: void run(int tid, int nthreads, struct ncclDevWorkColl* work)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: runTreeSplit
      Src: /src/nccl/src/device/all_reduce.h:778,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - tid
    - nthreads
    - work
    argTypes:
    - int
    - int
    - struct ncclDevWorkColl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 779
      start: 777
    functionDepth: 2
    functionLinenumber: 777
    functionLinenumberEnd: 779
    functionName: run
    functionSourceFile: /src/nccl/src/device/all_reduce.h
    functionUses: 0
    functionsReached:
    - runTreeSplit
    linkageType: ''
    returnType: void
    signature: void run(int tid, int nthreads, struct ncclDevWorkColl* work)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ncclCollCbdPart
      Src: /src/nccl/src/device/broadcast.h:21,1
    - Dst: min
      Src: /src/nccl/src/device/broadcast.h:40,1
    - Dst: Primitives::directSend
      Src: /src/nccl/src/device/broadcast.h:44,1
    - Dst: Primitives::directCopySend
      Src: /src/nccl/src/device/broadcast.h:46,1
    - Dst: Primitives::directRecv
      Src: /src/nccl/src/device/broadcast.h:49,1
    - Dst: Primitives::directRecvCopyDirectSend
      Src: /src/nccl/src/device/broadcast.h:51,1
    - Dst: reduceCopy
      Src: /src/nccl/src/device/broadcast.h:57,1
    - Dst: barrier_sync
      Src: /src/nccl/src/device/broadcast.h:60,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 3
    argNames:
    - tid
    - nthreads
    - work
    argTypes:
    - int
    - int
    - struct ncclDevWorkColl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 61
    functionName: runRing
    functionSourceFile: /src/nccl/src/device/broadcast.h
    functionUses: 9
    functionsReached:
    - min
    - ncclCollCbdPart
    - Primitives::directCopySend
    - Primitives::directSend
    - reduceCopy
    - barrier_sync
    - Primitives::directRecvCopyDirectSend
    - Primitives::directRecv
    linkageType: ''
    returnType: __device__
    signature: __device__ runRing(int tid, int nthreads, struct ncclDevWorkColl* work)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ncclCollCbdPart
      Src: /src/nccl/src/device/broadcast.h:21,1
    - Dst: min
      Src: /src/nccl/src/device/broadcast.h:40,1
    - Dst: Primitives::directSend
      Src: /src/nccl/src/device/broadcast.h:44,1
    - Dst: Primitives::directCopySend
      Src: /src/nccl/src/device/broadcast.h:46,1
    - Dst: Primitives::directRecv
      Src: /src/nccl/src/device/broadcast.h:49,1
    - Dst: Primitives::directRecvCopyDirectSend
      Src: /src/nccl/src/device/broadcast.h:51,1
    - Dst: reduceCopy
      Src: /src/nccl/src/device/broadcast.h:57,1
    - Dst: barrier_sync
      Src: /src/nccl/src/device/broadcast.h:60,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 3
    argNames:
    - tid
    - nthreads
    - work
    argTypes:
    - int
    - int
    - struct ncclDevWorkColl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 61
    functionName: runRing
    functionSourceFile: /src/nccl/src/device/broadcast.h
    functionUses: 9
    functionsReached:
    - min
    - ncclCollCbdPart
    - Primitives::directCopySend
    - Primitives::directSend
    - reduceCopy
    - barrier_sync
    - Primitives::directRecvCopyDirectSend
    - Primitives::directRecv
    linkageType: ''
    returnType: __device__
    signature: __device__ runRing(int tid, int nthreads, struct ncclDevWorkColl* work)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: runRing
      Src: /src/nccl/src/device/broadcast.h:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - tid
    - nthreads
    - work
    argTypes:
    - int
    - int
    - struct ncclDevWorkColl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: run
    functionSourceFile: /src/nccl/src/device/broadcast.h
    functionUses: 0
    functionsReached:
    - runRing
    linkageType: ''
    returnType: void
    signature: void run(int tid, int nthreads, struct ncclDevWorkColl* work)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: runRing
      Src: /src/nccl/src/device/broadcast.h:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - tid
    - nthreads
    - work
    argTypes:
    - int
    - int
    - struct ncclDevWorkColl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 76
    functionName: run
    functionSourceFile: /src/nccl/src/device/broadcast.h
    functionUses: 0
    functionsReached:
    - runRing
    linkageType: ''
    returnType: void
    signature: void run(int tid, int nthreads, struct ncclDevWorkColl* work)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: runRing
      Src: /src/nccl/src/device/broadcast.h:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - tid
    - nthreads
    - work
    argTypes:
    - int
    - int
    - struct ncclDevWorkColl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 83
    functionName: run
    functionSourceFile: /src/nccl/src/device/broadcast.h
    functionUses: 0
    functionsReached:
    - runRing
    linkageType: ''
    returnType: void
    signature: void run(int tid, int nthreads, struct ncclDevWorkColl* work)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclShmemScratchWarpSize
      Src: /src/nccl/src/device/common.h:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - warp
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 76
    functionName: ncclScratchForWarp
    functionSourceFile: /src/nccl/src/device/common.h
    functionUses: 1
    functionsReached:
    - ncclShmemScratchWarpSize
    linkageType: ''
    returnType: __device__
    signature: __device__ * ncclScratchForWarp(int warp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - name
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 84
    functionName: barrier_sync
    functionSourceFile: /src/nccl/src/device/common.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: __device__
    signature: __device__ barrier_sync(int name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - name
    - nThreads
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 91
    functionName: barrier_sync
    functionSourceFile: /src/nccl/src/device/common.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: __device__
    signature: __device__ barrier_sync(int name, int nThreads)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 94
    functionName: barrier_sync_aligned
    functionSourceFile: /src/nccl/src/device/common.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __device__
    signature: __device__ barrier_sync_aligned(int name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - name
    - nThreads
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 97
    functionName: barrier_sync_aligned
    functionSourceFile: /src/nccl/src/device/common.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __device__
    signature: __device__ barrier_sync_aligned(int name, int nThreads)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - vote
    - name
    argTypes:
    - bool
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 107
    functionName: barrier_red_or
    functionSourceFile: /src/nccl/src/device/common.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __device__
    signature: __device__ barrier_red_or(bool vote, int name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - vote
    - name
    - nThreads
    argTypes:
    - bool
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 116
    functionName: barrier_red_or
    functionSourceFile: /src/nccl/src/device/common.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __device__
    signature: __device__ barrier_red_or(bool vote, int name, int nThreads)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __cvta_generic_to_shared
      Src: /src/nccl/src/device/common.h:124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - tid
    - dst
    - src
    - bytes
    argTypes:
    - int
    - void*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 127
    functionName: copyToShmem16
    functionSourceFile: /src/nccl/src/device/common.h
    functionUses: 0
    functionsReached:
    - __cvta_generic_to_shared
    linkageType: ''
    returnType: __device__
    signature: __device__ copyToShmem16(int tid, void* dst, void const* src, int bytes)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: ncclScratchForWarp
      Src: /src/nccl/src/device/common.h:142,1
    - Dst: __syncwarp
      Src: /src/nccl/src/device/common.h:143,1
    - Dst: __popc
      Src: /src/nccl/src/device/common.h:145,1
    - Dst: __popc
      Src: /src/nccl/src/device/common.h:148,1
    - Dst: __popc
      Src: /src/nccl/src/device/common.h:151,1
    - Dst: __popc
      Src: /src/nccl/src/device/common.h:154,1
    - Dst: __syncwarp
      Src: /src/nccl/src/device/common.h:155,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 61
    argCount: 4
    argNames:
    - tid
    - tn
    - args
    - batchIx
    argTypes:
    - int
    - int
    - struct ncclDevKernelArgs*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 130
    functionDepth: 2
    functionLinenumber: 130
    functionLinenumberEnd: 241
    functionName: loadWorkBatchToShmem
    functionSourceFile: /src/nccl/src/device/common.h
    functionUses: 0
    functionsReached:
    - ncclScratchForWarp
    - __popc
    - __syncwarp
    linkageType: ''
    returnType: __device__
    signature: "__device__ loadWorkBatchToShmem(\n    int tid, int tn, struct ncclDevKernelArgs
      const* args, int batchIx\n  )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 247
    functionName: globaltimer
    functionSourceFile: /src/nccl/src/device/common.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: long long int
    signature: long long int globaltimer()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - tid
    - tn
    - work
    argTypes:
    - int
    - int
    - struct ncclDevWorkColl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 253
    functionName: run
    functionSourceFile: /src/nccl/src/device/common.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __device__
    signature: __device__ run(int tid, int tn, struct ncclDevWorkColl* work)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: loadArg
      Src: /src/nccl/src/device/common.h:277,1
    - Dst: reinterpret_cast<void*>
      Src: /src/nccl/src/device/common.h:277,1
    - Dst: __syncthreads
      Src: /src/nccl/src/device/common.h:280,1
    - Dst: __syncthreads
      Src: /src/nccl/src/device/common.h:288,1
    - Dst: RunWorkColl<Fn, T, RedOp, Algo, Proto>
      Src: /src/nccl/src/device/common.h:294,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 296
    functionName: run
    functionSourceFile: /src/nccl/src/device/common.h
    functionUses: 0
    functionsReached:
    - __syncthreads
    - loadArg
    - RunWorkColl<Fn, T, RedOp, Algo, Proto>
    - reinterpret_cast<void*>
    linkageType: ''
    returnType: void
    signature: void run()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - workItemIdx
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 307
    functionName: profilerEnabled
    functionSourceFile: /src/nccl/src/device/common.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __device__
    signature: __device__ profilerEnabled(int workItemIdx)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: profilerEnabled
      Src: /src/nccl/src/device/common.h:315,1
    - Dst: globaltimer
      Src: /src/nccl/src/device/common.h:316,1
    - Dst: profilerEnabled
      Src: /src/nccl/src/device/common.h:321,1
    - Dst: globaltimer
      Src: /src/nccl/src/device/common.h:322,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 1
    argNames:
    - action
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 329
    functionName: profiler
    functionSourceFile: /src/nccl/src/device/common.h
    functionUses: 0
    functionsReached:
    - profilerEnabled
    - globaltimer
    linkageType: ''
    returnType: __device__
    signature: __device__ profiler(int action)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: __popcll
      Src: /src/nccl/src/device/common.h:347,1
    - Dst: __syncthreads
      Src: /src/nccl/src/device/common.h:350,1
    - Dst: copyToShmem16
      Src: /src/nccl/src/device/common.h:364,1
    - Dst: copyToShmem16
      Src: /src/nccl/src/device/common.h:372,1
    - Dst: loadWorkBatchToShmem
      Src: /src/nccl/src/device/common.h:380,1
    - Dst: __syncthreads
      Src: /src/nccl/src/device/common.h:383,1
    - Dst: profiler
      Src: /src/nccl/src/device/common.h:386,1
    - Dst: SpecializedRunWorkBatch
      Src: /src/nccl/src/device/common.h:388,1
    - Dst: __syncthreads
      Src: /src/nccl/src/device/common.h:395,1
    - Dst: profiler
      Src: /src/nccl/src/device/common.h:396,1
    - Dst: loadWorkBatchToShmem
      Src: /src/nccl/src/device/common.h:397,1
    - Dst: __syncthreads
      Src: /src/nccl/src/device/common.h:398,1
    - Dst: profiler
      Src: /src/nccl/src/device/common.h:400,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 43
    argCount: 1
    argNames:
    - args
    argTypes:
    - struct ncclDevKernelArgs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 332
    functionDepth: 3
    functionLinenumber: 332
    functionLinenumberEnd: 401
    functionName: ncclKernelMain
    functionSourceFile: /src/nccl/src/device/common.h
    functionUses: 0
    functionsReached:
    - SpecializedRunWorkBatch
    - __syncthreads
    - copyToShmem16
    - __popcll
    - profiler
    - loadWorkBatchToShmem
    linkageType: ''
    returnType: __device__
    signature: __device__ ncclKernelMain(struct ncclDevKernelArgs const* args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - suffix
    - ','
    - coll
    - ','
    - redop
    - ','
    - ty
    - ','
    - algo
    - ','
    - proto
    - ','
    - specializedFnId
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 406
    functionDepth: 0
    functionLinenumber: 406
    functionLinenumberEnd: 410
    functionName: DEFINE_ncclDevKernel
    functionSourceFile: /src/nccl/src/device/common.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_ncclDevKernel(suffix, coll, redop, ty, algo, proto, specializedFnId)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - suffix
    - ','
    - coll
    - ','
    - redop
    - ','
    - ty
    - ','
    - algo
    - ','
    - proto
    - ','
    - specializedFnId
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 411
    functionDepth: 0
    functionLinenumber: 411
    functionLinenumberEnd: 413
    functionName: DEFINE_ncclDevKernel_nop
    functionSourceFile: /src/nccl/src/device/common.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_ncclDevKernel_nop(suffix, coll, redop, ty, algo, proto, specializedFnId)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - suffix
    - ','
    - coll
    - ','
    - redop
    - ','
    - ty
    - ','
    - algo
    - ','
    - proto
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 414
    functionDepth: 0
    functionLinenumber: 414
    functionLinenumberEnd: 418
    functionName: DEFINE_ncclDevFunc
    functionSourceFile: /src/nccl/src/device/common.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_ncclDevFunc(suffix, coll, redop, ty, algo, proto)
  - BBCount: 110
    BranchProfiles: []
    Callsites:
    - Dst: __syncwarp
      Src: /src/nccl/src/device/prims_simple.h:59,1
    - Dst: barrier_sync
      Src: /src/nccl/src/device/prims_simple.h:62,1
    - Dst: __syncwarp
      Src: /src/nccl/src/device/prims_simple.h:66,1
    - Dst: barrier_sync
      Src: /src/nccl/src/device/prims_simple.h:69,1
    - Dst: barrier_sync
      Src: /src/nccl/src/device/prims_simple.h:75,1
    - Dst: __any_sync
      Src: /src/nccl/src/device/prims_simple.h:80,1
    - Dst: barrier_red_or
      Src: /src/nccl/src/device/prims_simple.h:83,1
    - Dst: __any_sync
      Src: /src/nccl/src/device/prims_simple.h:88,1
    - Dst: barrier_red_or
      Src: /src/nccl/src/device/prims_simple.h:91,1
    - Dst: cvta_to_global
      Src: /src/nccl/src/device/prims_simple.h:99,1
    - Dst: ld_volatile_global
      Src: /src/nccl/src/device/prims_simple.h:105,1
    - Dst: loadStepValue
      Src: /src/nccl/src/device/prims_simple.h:116,1
    - Dst: checkAbort
      Src: /src/nccl/src/device/prims_simple.h:117,1
    - Dst: loadInt
      Src: /src/nccl/src/device/prims_simple.h:142,1
    - Dst: ncclNetDeviceIncrementHead
      Src: /src/nccl/src/device/prims_simple.h:166,1
    - Dst: fence_acq_rel_sys
      Src: /src/nccl/src/device/prims_simple.h:177,1
    - Dst: st_relaxed_sys_global
      Src: /src/nccl/src/device/prims_simple.h:179,1
    - Dst: max
      Src: /src/nccl/src/device/prims_simple.h:194,1
    - Dst: divUp
      Src: /src/nccl/src/device/prims_simple.h:194,1
    - Dst: waitPeer<DirectRecv, DirectSend, Recv, Send, Src, Dst>
      Src: /src/nccl/src/device/prims_simple.h:236,1
    - Dst: subBarrier
      Src: /src/nccl/src/device/prims_simple.h:237,1
    - Dst: ncclNetDeviceUnpack
      Src: /src/nccl/src/device/prims_simple.h:242,1
    - Dst: subBarrier
      Src: /src/nccl/src/device/prims_simple.h:244,1
    - Dst: reduceCopy
      Src: /src/nccl/src/device/prims_simple.h:253,1
    - Dst: nsend
      Src: /src/nccl/src/device/prims_simple.h:256,1
    - Dst: reduceCopy
      Src: /src/nccl/src/device/prims_simple.h:261,1
    - Dst: reduceCopy
      Src: /src/nccl/src/device/prims_simple.h:271,1
    - Dst: nrecv
      Src: /src/nccl/src/device/prims_simple.h:275,1
    - Dst: reduceCopy
      Src: /src/nccl/src/device/prims_simple.h:279,1
    - Dst: nrecv
      Src: /src/nccl/src/device/prims_simple.h:283,1
    - Dst: nsend
      Src: /src/nccl/src/device/prims_simple.h:284,1
    - Dst: barrier
      Src: /src/nccl/src/device/prims_simple.h:293,1
    - Dst: postPeer<Recv, Send>
      Src: /src/nccl/src/device/prims_simple.h:294,1
    - Dst: waitPeer<DirectRecv, DirectSend, Recv, Send, Src, Dst>
      Src: /src/nccl/src/device/prims_simple.h:311,1
    - Dst: barrier
      Src: /src/nccl/src/device/prims_simple.h:313,1
    - Dst: postPeer<Recv, Send>
      Src: /src/nccl/src/device/prims_simple.h:315,1
    - Dst: st_relaxed_sys_global
      Src: /src/nccl/src/device/prims_simple.h:325,1
    - Dst: st_relaxed_sys_global
      Src: /src/nccl/src/device/prims_simple.h:332,1
    - Dst: ld_volatile_global
      Src: /src/nccl/src/device/prims_simple.h:333,1
    - Dst: checkAbort
      Src: /src/nccl/src/device/prims_simple.h:335,1
    - Dst: loadStepValue
      Src: /src/nccl/src/device/prims_simple.h:349,1
    - Dst: checkAbort
      Src: /src/nccl/src/device/prims_simple.h:350,1
    - Dst: loadInt
      Src: /src/nccl/src/device/prims_simple.h:355,1
    - Dst: subBarrier
      Src: /src/nccl/src/device/prims_simple.h:382,1
    - Dst: nrecv
      Src: /src/nccl/src/device/prims_simple.h:386,1
    - Dst: nsend
      Src: /src/nccl/src/device/prims_simple.h:392,1
    - Dst: template operator()<SlicePerChunk, 0, Recv*MaxRecv, 0, Send*MaxSend, MultimemSrcs,
        MultimemDsts>
      Src: /src/nccl/src/device/prims_simple.h:394,1
    - Dst: barrier
      Src: /src/nccl/src/device/prims_simple.h:399,1
    - Dst: barrier
      Src: /src/nccl/src/device/prims_simple.h:408,1
    - Dst: fence_acq_rel_sys
      Src: /src/nccl/src/device/prims_simple.h:414,1
    - Dst: st_relaxed_sys_global
      Src: /src/nccl/src/device/prims_simple.h:416,1
    - Dst: max
      Src: /src/nccl/src/device/prims_simple.h:432,1
    - Dst: DIVUP
      Src: /src/nccl/src/device/prims_simple.h:432,1
    - Dst: max
      Src: /src/nccl/src/device/prims_simple.h:436,1
    - Dst: min
      Src: /src/nccl/src/device/prims_simple.h:436,1
    - Dst: waitPeer<0, DirectSend, 0, 1, 1, 0>
      Src: /src/nccl/src/device/prims_simple.h:444,1
    - Dst: subBarrier
      Src: /src/nccl/src/device/prims_simple.h:445,1
    - Dst: nsend
      Src: /src/nccl/src/device/prims_simple.h:448,1
    - Dst: nsend
      Src: /src/nccl/src/device/prims_simple.h:449,1
    - Dst: min
      Src: /src/nccl/src/device/prims_simple.h:454,1
    - Dst: reduceCopy
      Src: /src/nccl/src/device/prims_simple.h:456,1
    - Dst: waitPeer<DirectRecv, 0, 1, 0, 0, 1>
      Src: /src/nccl/src/device/prims_simple.h:466,1
    - Dst: subBarrier
      Src: /src/nccl/src/device/prims_simple.h:467,1
    - Dst: nrecv
      Src: /src/nccl/src/device/prims_simple.h:469,1
    - Dst: nrecv
      Src: /src/nccl/src/device/prims_simple.h:470,1
    - Dst: min
      Src: /src/nccl/src/device/prims_simple.h:474,1
    - Dst: reduceCopy
      Src: /src/nccl/src/device/prims_simple.h:476,1
    - Dst: barrierAny
      Src: /src/nccl/src/device/prims_simple.h:480,1
    - Dst: postPeer<Recv, Send>
      Src: /src/nccl/src/device/prims_simple.h:481,1
    - Dst: ncclNetDeviceUnpackSetup
      Src: /src/nccl/src/device/prims_simple.h:492,1
    - Dst: roundUp
      Src: /src/nccl/src/device/prims_simple.h:496,1
    - Dst: loadStepValue
      Src: /src/nccl/src/device/prims_simple.h:505,1
    - Dst: roundUp
      Src: /src/nccl/src/device/prims_simple.h:541,1
    - Dst: loadStepValue
      Src: /src/nccl/src/device/prims_simple.h:554,1
    - Dst: tid
      Src: /src/nccl/src/device/prims_simple.h:589,1
    - Dst: Fan
      Src: /src/nccl/src/device/prims_simple.h:605,1
    - Dst: assert
      Src: /src/nccl/src/device/prims_simple.h:613,1
    - Dst: loadRecvConn
      Src: /src/nccl/src/device/prims_simple.h:646,1
    - Dst: loadSendConn
      Src: /src/nccl/src/device/prims_simple.h:648,1
    - Dst: barrierAny
      Src: /src/nccl/src/device/prims_simple.h:650,1
    - Dst: __ballot_sync
      Src: /src/nccl/src/device/prims_simple.h:654,1
    - Dst: setDataPtrs
      Src: /src/nccl/src/device/prims_simple.h:662,1
    - Dst: loadStepValue
      Src: /src/nccl/src/device/prims_simple.h:679,1
    - Dst: loadStepValue
      Src: /src/nccl/src/device/prims_simple.h:690,1
    - Dst: patBarrier
      Src: /src/nccl/src/device/prims_simple.h:700,1
    - Dst: checkAbort
      Src: /src/nccl/src/device/prims_simple.h:715,1
    - Dst: ncclNetDeviceSaveHead
      Src: /src/nccl/src/device/prims_simple.h:719,1
    - Dst: barrier
      Src: /src/nccl/src/device/prims_simple.h:724,1
    - Dst: checkAbort
      Src: /src/nccl/src/device/prims_simple.h:733,1
    CyclomaticComplexity: 194
    EdgeCount: 194
    ICount: 445
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (2*(nrecv+nsend) <= nthreads)
      pos:
        line_end: 612
        line_start: 612
        source_file: /src/nccl/src/device/prims_simple.h
    constantsTouched: []
    func_position:
      end: 735
      start: 18
    functionDepth: 2
    functionLinenumber: 18
    functionLinenumberEnd: 735
    functionName: ~Primitives()
    functionSourceFile: /src/nccl/src/device/prims_simple.h
    functionUses: 0
    functionsReached:
    - divUp
    - __any_sync
    - DIVUP
    - waitPeer<0, DirectSend, 0, 1, 1, 0>
    - barrierAny
    - ncclNetDeviceUnpack
    - fence_acq_rel_sys
    - postPeer<Recv, Send>
    - ncclNetDeviceSaveHead
    - ncclNetDeviceUnpackSetup
    - min
    - tid
    - nsend
    - cvta_to_global
    - assert
    - waitPeer<DirectRecv, 0, 1, 0, 0, 1>
    - waitPeer<DirectRecv, DirectSend, Recv, Send, Src, Dst>
    - ld_volatile_global
    - barrier_sync
    - Fan
    - loadRecvConn
    - patBarrier
    - loadSendConn
    - subBarrier
    - loadInt
    - __syncwarp
    - __ballot_sync
    - nrecv
    - roundUp
    - barrier
    - reduceCopy
    - max
    - ncclNetDeviceIncrementHead
    - barrier_red_or
    - st_relaxed_sys_global
    - loadStepValue
    - checkAbort
    - setDataPtrs
    - template operator()<SlicePerChunk, 0, Recv*MaxRecv, 0, Send*MaxSend, MultimemSrcs,
      MultimemDsts>
    linkageType: ''
    returnType: "class Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk,
      StepPerSlice, Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  > {\n
      \ static constexpr int MaxRecv = Fan::MaxRecv, MaxSend = Fan::MaxSend;\n  static
      constexpr int Input=0, Output=1;\n  static constexpr int RoleInput = 0x01,\n
      \                      RoleOutput = 0x02,\n                       RoleWaitRecv
      = 0x04,\n                       RoleWaitSend = 0x08,\n                       RolePostSend
      = 0x10,\n                       RolePostRecv = 0x20,\n                       Aborted
      = 0x40,\n                       NetRegMode = 0x80,\n                       ConnFifoEnabled
      = 0x100,\n                       DirectWrite = 0x200,\n                       DirectRead
      = 0x400,\n                       PatMode = 0x800,\n                       NvlsMinPolling
      = 0x1000,\n                       NetDeviceUnpack = 0x2000,\n                       AnyNetDeviceUnpack
      = 0x4000;\n  const int tid, tidInBlock;\n  const int nthreads;\n  int nworkers;\n
      \ const int stepSize;\n  Fan fan;\n  int index; // Peer index I'm responsible
      for\n  int flags;\n  int group;\n  uint64_t step;\n  struct ncclConnInfo* conn
      = NULL;\n  struct ncclConnFifo* connFifo = NULL;\n  T* connEltsFifo;\n  T* directBuff
      = NULL;\n  uint64_t *connStepPtr;\n  uint64_t connStepCache; // Cache last seen
      value of (*connStepPtr)\n  int      connStepSize; // Connection step size\n
      \ void*    netDeviceHandle;\n  uint64_t accSize;\n\n  // Don't use barrier 0
      as it's used by the final sync\n  __device__ void barrier() {\n    if (nthreads
      == WARP_SIZE) __syncwarp();\n    else {\n      int bar = 15-group;\n      barrier_sync(bar,
      nthreads);\n    }\n  }\n  __device__ void subBarrier() {\n    if (nworkers ==
      WARP_SIZE) __syncwarp();\n    else {\n      int bar = 15-group - (nworkers!=nthreads
      ? 1 : 0);\n      barrier_sync(bar, nworkers);\n    }\n  }\n\n  // PAT uses a
      single barrier across all groups\n  __device__ void patBarrier() {\n    barrier_sync(15,
      NCCL_PAT_NWORKERS);\n  }\n\n  __device__ bool barrierAny(int vote) {\n    if
      (nthreads == WARP_SIZE) {\n      return __any_sync(~0u, vote);\n    } else {\n
      \     int name = 15-group;\n      return barrier_red_or(vote, name, nthreads);\n
      \   }\n  }\n  __device__ bool subBarrierAny(int vote) {\n    if (nworkers ==
      WARP_SIZE) {\n      return __any_sync(~0u, vote);\n    } else {\n      int name
      = 15-group - (nworkers!=nthreads ? 1 : 0);\n      return barrier_red_or(vote,
      name, nworkers);\n    }\n  }\n\n  inline __device__ uint64_t loadStepValue(uint64_t*
      ptr) {\n    #if __CUDA_ARCH__ >= 900 && CUDART_VERSION >= 12010\n    if (flags
      & NvlsMinPolling) {\n      uint64_t ans;\n      asm volatile(\"multimem.ld_reduce.acquire.sys.global.min.u64
      %0, [%1];\" : \"=l\"(ans) : \"l\"(cvta_to_global(ptr)) : \"memory\");\n      return
      ans;\n    }\n    #endif\n    // volatile is faster than acquire but not as correct.
      Make sure reduceCopy\n    // loads data using volatile so it doesn't see stale
      data in L1.\n    return ld_volatile_global(ptr);\n  }\n\n  template <int DirectRecv,
      int DirectSend, int Recv, int Send, int Src, int Dst>\n  __device__ __forceinline__
      void waitPeer(intptr_t srcIx, intptr_t dstIx, int offset, int nelts) {\n    const
      bool isSendNotRecv = (Send && Recv) ? (flags & RoleWaitSend) : Send;\n    //
      Yes, for some template arguments this code will be unreachable.  That's fine.\n
      \   // coverity[dead_error_line]\n    if ((flags & (Recv * RoleWaitRecv)) ||
      (flags & (Send * RoleWaitSend))) {\n      int spins = 0;\n      while (connStepCache
      + (isSendNotRecv ? NCCL_STEPS : 0) < step + StepPerSlice) {\n        connStepCache
      = loadStepValue(connStepPtr);\n        if (checkAbort(flags, Aborted, spins))
      break;\n        //if (spins == 0) printf(\"r=%d b=%d t=%d SPUN OUT got=%d want=%d\\n\",
      ncclShmem.comm.rank, blockIdx.x, threadIdx.x, int(connStepCache + (isSendNotRecv
      ? NCCL_STEPS : 0)), int(step+StepPerSlice));\n      }\n    }\n\n    if (flags
      & (Recv*RoleWaitRecv | Send*RoleWaitSend)) {\n      if ((flags & ConnFifoEnabled)
      && (flags & (Send * RoleWaitSend)))\n        connFifo[step%NCCL_STEPS].size
      = nelts*sizeof(T);\n\n      void **ptrs = isSendNotRecv ? (ncclShmem.groups[group].dsts
      + Dst)\n                                  : (ncclShmem.groups[group].srcs +
      Src);\n      if ((flags & NetRegMode) && ((!isSendNotRecv && DirectRecv) ||
      (isSendNotRecv && DirectSend))) {\n        if (P2p) {\n          ptrs[index]
      = NULL;\n        } else {\n          if (isSendNotRecv) {\n            if (!Recv)\n
      \             ptrs[index] = NULL;\n            else\n              ptrs[index]
      = (T*)ncclShmem.groups[group].userOutput + dstIx + offset;\n          } else
      {\n            ptrs[index] = (T*)ncclShmem.groups[group].userOutput + srcIx
      + offset;\n          }\n        }\n      } else if ((flags & ConnFifoEnabled)
      && connFifo[step%NCCL_STEPS].mode == NCCL_MODE_OFFSET) {\n        ptrs[index]
      = connEltsFifo + loadInt(&connFifo[step%NCCL_STEPS].offset)/sizeof(T);\n      }
      else if (isSendNotRecv && DirectSend) {\n        if (flags & DirectWrite) {\n
      \         ptrs[index] = directBuff + dstIx + offset;\n        } else if (flags
      & DirectRead) {  // empty send\n          ptrs[index] = nullptr;\n        }
      else {\n          ptrs[index] = connEltsFifo + (step%NCCL_STEPS)*connStepSize;\n
      \       }\n      } else if (!isSendNotRecv && DirectRecv) {\n        if (flags
      & DirectRead) {\n          ptrs[index] = directBuff + srcIx + offset;\n        }
      else if (flags & DirectWrite) {\n          ptrs[index] = directBuff + dstIx
      + offset;  // send to next from my output buffer\n        } else {\n          ptrs[index]
      = connEltsFifo + (step%NCCL_STEPS)*connStepSize;\n        }\n      }\n      else
      {\n        // Yes, for some template arguments this code will be unreachable.
      \ That's fine.\n        // coverity[dead_error_line]\n        ptrs[index] =
      connEltsFifo + (step%NCCL_STEPS)*connStepSize;\n      }\n      if (flags & NetDeviceUnpack)
      {\n        ncclNetDeviceIncrementHead(group, index);\n      }\n      step +=
      StepPerSlice;\n    }\n  }\n\n  template<int Recv, int Send>\n  inline __device__
      void postPeer(bool dataStored) {\n    if (flags & (Recv*RolePostRecv | Send*RolePostSend))
      {\n      step += StepPerSlice;\n      if (Send && (flags & RolePostSend) &&
      (dataStored||(flags&ConnFifoEnabled))) {\n        fence_acq_rel_sys();\n      }\n
      \     st_relaxed_sys_global(connStepPtr, step);\n    }\n  }\n\n  template <int
      DirectRecv1, int DirectSend1, int Recv, int Send, int SrcBuf, int DstBuf>\n
      \ __device__ __forceinline__ void genericOp(\n      intptr_t srcIx, intptr_t
      dstIx, int nelem, bool postOp\n    ) {\n    constexpr int DirectRecv = 1 &&
      Direct && DirectRecv1;\n    constexpr int DirectSend = 1 && Direct && DirectSend1;\n
      \   constexpr int Src = SrcBuf != -1;\n    constexpr int Dst = DstBuf != -1;\n\n
      \   nelem = nelem < 0 ? 0 : nelem;\n    int sliceSize = stepSize*StepPerSlice;\n
      \   sliceSize = max(divUp(nelem, 16*SlicePerChunk)*16, sliceSize/32);\n    int
      slice = 0;\n    int offset = 0;\n\n    if (tid < nworkers && offset < nelem
      && !isNetOffload) {\n      // Worker-only loop for non-empty slices. Non-workers
      and empty slices are\n      // processed in the loop following this if block.
      The benefit of splitting\n      // the loop like this is we pull two branches
      out of the critical path.\n      // Using \"number of branch insns (taken or
      not) encountered dynamically\"\n      // as the performance metric, then:\n
      \     //   perf_orig = 2*numslices\n      //   perf_new = 2+numslices\n      //
      So the new code and old code behave the same for numslices=2, and for\n      //
      numslices>2 the new code is superior. And note that in the case\n      // numslices=1,
      the loop is trivially unrollable (single iteration) so we\n      // don't incur
      that that tail branch and we still have perf_new=2.\n      //\n      // ORIGINAL
      CODE:\n      //   unrolled for(slices) {\n      //     if(worker) { // This
      branch removed\n      //       wait();\n      //       subBarrier();\n      //
      \      if(slice not empty) // This branch removed\n      //         ReduceCopyMulti();\n
      \     //     }\n      //     barrier();\n      //     post();\n      //   }
      // Since we no longer unroll, new branch added here\n      #if __CUDA_ARCH__
      < 700\n        // Above doesn't matter on older hardware.\n        #pragma unroll
      SlicePerChunk\n      #else\n        #pragma unroll 1\n      #endif\n      do
      {\n        sliceSize = sliceSize < nelem-offset ? sliceSize : nelem-offset;\n
      \       if (tid == 0) {\n          T* userInput = (T*)ncclShmem.groups[group].userInput;\n
      \         T* userOutput = (T*)ncclShmem.groups[group].userOutput;\n          if
      (Src) ncclShmem.groups[group].srcs[0] = (SrcBuf==Input ? userInput : userOutput)
      + srcIx + offset;\n          if (Dst) ncclShmem.groups[group].dsts[0] = (DstBuf==Input
      ? userInput : userOutput) + dstIx + offset;\n        }\n        waitPeer<DirectRecv,
      DirectSend, Recv, Send, Src, Dst>(srcIx, dstIx, offset, sliceSize);\n        subBarrier();\n
      \       /* if user abort the kernel, we don't need to actually perform copy/reduce;
      just set size\n         * to 0 to avoid unnecessary workload. */\n        int
      workSize = ncclShmem.aborted ? 0 : sliceSize;\n        if (flags & AnyNetDeviceUnpack)
      {\n          ncclNetDeviceUnpack<Recv>(tid, tidInBlock, nworkers, group, ncclShmem.groups[group].devicePlugin.unpack.unpackNetDeviceIndexMask,
      Src, workSize);\n          // Sync here to make sure all workers are reading
      from the updated srcs)\n          subBarrier();\n        }\n\n        if (DirectRecv
      && ncclShmem.groups[group].srcs[0] == ncclShmem.groups[group].dsts[0]\n            /*
      NVLS can have srcs[0] == dsts[0], but we cannot enter this \"if branch\",\n
      \            * so we need to check whether MultimemSrcs and MultimemDsts are
      0. */\n            && MultimemSrcs == 0 && MultimemDsts == 0 && !Src) {\n          //
      We can only have one direct receive. Since srcs[0] == dstPtr+offset, skip one
      copy\n          if (Send && Dst && ncclShmem.groups[group].srcs[0] != ncclShmem.groups[group].dsts[1])
      {\n            reduceCopy<Unroll, RedOp, T, 0, 1, 1, 0, 1, MaxSend, /*PreOpSrcs*/0>\n
      \             (tid, nworkers, /*redArg*/0, /*preOpArgs*/nullptr, /*postOp*/false,\n
      \              1, ncclShmem.groups[group].srcs,\n               fan.nsend(),
      ncclShmem.groups[group].dsts+1,\n               workSize);\n          }\n        }
      else if (DirectSend && !DirectRecv && SrcBuf != Input && ncclShmem.groups[group].dsts[Dst]
      == nullptr) {\n          // For broadcast in CollNet to do empty send\n          reduceCopy<Unroll,
      RedOp, T, 0, 1, 1, 0, 1, 1, /*PreOpSrcs*/0>\n            (tid, nworkers, ncclShmem.redOpArgs[0],
      \ nullptr, postOp,\n             Recv, ncclShmem.groups[group].srcs,\n             Dst,
      ncclShmem.groups[group].dsts,\n             workSize);\n        } else if (ncclShmem.groups[group].srcs[0]
      && ncclShmem.groups[group].dsts[0]) {\n          constexpr int PreOpSrcs = SrcBuf
      != Input ? 0 :\n                                    DirectRecv*MaxRecv == NCCL_MAX_DIRECT_ARITY
      ? (1+NCCL_MAX_DIRECT_ARITY) : 1;\n          if (Send && Dst && ncclShmem.groups[group].dsts[1]
      == nullptr) {\n            // this case should only be directCopySend() with
      registered buffers and send to net peer\n            reduceCopy<Unroll, RedOp,
      T,\n              0, Recv + Src, Recv * MaxRecv + Src,\n              0, 1,
      1, PreOpSrcs>\n              (tid, nworkers, ncclShmem.redOpArgs[0], ncclShmem.redOpArgs,
      postOp,\n                Recv * fan.nrecv() + Src, ncclShmem.groups[group].srcs,\n
      \               1, ncclShmem.groups[group].dsts,\n                workSize);\n
      \         } else {\n            reduceCopy<Unroll, RedOp, T,\n              MultimemSrcs,
      Recv + Src, Recv * MaxRecv + Src,\n              MultimemDsts, Send + Dst, Send
      * MaxSend + Dst, PreOpSrcs>\n              (tid, nworkers, ncclShmem.redOpArgs[0],
      ncclShmem.redOpArgs, postOp,\n                Recv * fan.nrecv() + Src, ncclShmem.groups[group].srcs,\n
      \               Send * fan.nsend() + Dst, ncclShmem.groups[group].dsts,\n                workSize);\n
      \         }\n        } else {\n          // we will come here when calling prims.directSend
      with net peer,\n          // in this case, ncclShmem.groups[group].dsts[0] ==
      NULL, so we\n          // skip data flush.\n          workSize = 0;\n        }\n
      \       barrier(); // This barrier has a counterpart in following loop\n        postPeer<Recv,
      Send>(0 < workSize);\n        offset += sliceSize;\n        slice += 1;\n        //
      Yes, for some template arguments this code will be unreachable.  That's fine.\n
      \       // coverity[dead_error_line]\n      } while (slice < SlicePerChunk &&
      offset < nelem);\n    }\n\n    // Non-workers come straight here. Workers too
      but only once the remaining\n    // slices are all empty. Since empty slices
      are the uncommon case, and\n    // worker perf is the limiter, perf-wise this
      loop is effectively unentered,\n    // hence just a single branch insn.\n    #pragma
      unroll 1\n    while (slice < SlicePerChunk) {\n      sliceSize = sliceSize <
      nelem-offset ? sliceSize : nelem-offset;\n      { // Only workers could have
      Wait roles so we know the slice must be empty\n        // since we've exited
      the loop above.\n        waitPeer<DirectRecv, DirectSend, Recv, Send, Src, Dst>(0,
      0, 0, sliceSize);\n      }\n      barrier(); // Has couterpart in preceding
      worker-only loop.\n      int workSize = ncclShmem.aborted ? 0 : sliceSize;\n
      \     postPeer<Recv, Send>(0 < workSize);\n      offset += sliceSize;\n      slice
      += 1;\n    }\n  }\n\npublic:\n  static inline __device__ void sendPeerNotify(int
      peer, int connIndex, int steps) {\n    ncclDevChannelPeer* peerPtr = ncclShmem.channel.peers[peer];\n
      \   peerPtr->send[connIndex].step += steps;\n    st_relaxed_sys_global(peerPtr->send[connIndex].tail,
      peerPtr->send[connIndex].step);\n  }\n\n  static inline __device__ void recvPeerNotify(int
      peer, int connIndex, int steps) {\n    int spins = 0;\n    ncclDevChannelPeer*
      peerPtr = ncclShmem.channel.peers[peer];\n    peerPtr->recv[connIndex].step
      += steps;\n    st_relaxed_sys_global(peerPtr->recv[connIndex].head, peerPtr->recv[connIndex].step);\n
      \   while (ld_volatile_global(peerPtr->recv[connIndex].tail) < peerPtr->recv[connIndex].step)
      {\n      int abort = 0;\n      if (checkAbort(abort, 1, spins)) break;\n    }\n
      \ }\n\n  template<int Recv, int Send, typename Fn>\n  __device__ __forceinline__
      void process(Fn &&fn, uint32_t sendDirectFlag = 0, uint32_t recvDirectFlag =
      0) {\n    #pragma unroll 1\n    for (int slice=0; slice < SlicePerChunk; slice++)
      {\n      if (tid < nworkers) {\n        int nsend, nrecv;\n        if (flags
      & (Recv*RoleWaitRecv | Send*RoleWaitSend)) {\n          const bool isSendNotRecv
      = (Send && Recv) ? (flags & RoleWaitSend) : Send;\n          int spins = 0;\n
      \         while (connStepCache + (isSendNotRecv ? NCCL_STEPS : 0) < step + StepPerSlice)
      {\n            connStepCache = loadStepValue(connStepPtr);\n            if (checkAbort(flags,
      Aborted, spins)) break;\n          }\n          void **ptrs = isSendNotRecv
      ? ncclShmem.groups[group].dsts\n                                      : ncclShmem.groups[group].srcs;\n
      \         if ((flags & ConnFifoEnabled) && connFifo[step%NCCL_STEPS].mode ==
      NCCL_MODE_OFFSET) {\n            int offset = loadInt(&connFifo[step%NCCL_STEPS].offset);\n
      \           ptrs[index] = connEltsFifo + offset/sizeof(T);\n          } else
      if (Direct && fn.work->regUsed) {\n            if (isSendNotRecv) {\n              if
      (flags & DirectWrite) {\n                ptrs[index] = directBuff;\n              }
      else if (flags & DirectRead) {  // empty send\n                ptrs[index] =
      nullptr;\n              } else {\n                ptrs[index] = connEltsFifo
      + (step%NCCL_STEPS)*connStepSize;\n              }\n            } else {\n              if
      (flags & DirectRead) {\n                ptrs[index] = directBuff;\n              }
      else if (flags & DirectWrite) {\n                if (Send)\n                  ptrs[index]
      = directBuff;  // send to next from my output buffer\n                else\n
      \                 ptrs[index] = nullptr;\n              } else {\n                ptrs[index]
      = connEltsFifo + (step%NCCL_STEPS)*connStepSize;\n              }\n            }\n
      \         } else {\n            ptrs[index] = connEltsFifo + (step%NCCL_STEPS)*connStepSize;\n
      \         }\n        }\n        subBarrier();\n        if (Recv == 0 || ncclShmem.groups[group].srcs[0]
      == nullptr) {\n          nrecv = 0;\n        } else {\n          nrecv = fan.nrecv();\n
      \       }\n\n        if (Send == 0 || ncclShmem.groups[group].dsts[0] == nullptr)
      {\n          nsend = 0;\n        } else {\n          nsend = fan.nsend();\n
      \       }\n        fn.template operator()<SlicePerChunk, 0, Recv*MaxRecv, 0,
      Send*MaxSend, MultimemSrcs, MultimemDsts>\n          (tid, nworkers, slice,
      stepSize * StepPerSlice,\n            nrecv, ncclShmem.groups[group].srcs,\n
      \           nsend, ncclShmem.groups[group].dsts, ncclShmem.groups[group].dstSizes,
      sendDirectFlag, recvDirectFlag);\n      }\n      barrier();\n      int32_t dstSize
      = 0;\n      if (flags & Send*RolePostSend) {\n        // Yes, for some template
      arguments this code will be unreachable.  That's fine.\n        // coverity[dead_error_begin]\n
      \       dstSize = ncclShmem.groups[group].dstSizes[index];\n        ncclShmem.groups[group].dstSizes[index]
      = 0;\n        if (flags & ConnFifoEnabled) connFifo[step%NCCL_STEPS].size =
      dstSize*sizeof(T);\n      }\n      barrier();\n      if (flags & (Recv*(RoleWaitRecv|RolePostRecv)
      | Send*(RoleWaitSend|RolePostSend))) {\n        step += StepPerSlice;\n      }\n
      \     if (flags & (Recv*RolePostRecv | Send*RolePostSend)) {\n        if (Send
      && (!Recv || (flags & RolePostSend)) && (dstSize!=0 || (flags&ConnFifoEnabled)))
      {\n          fence_acq_rel_sys();\n        }\n        st_relaxed_sys_global(connStepPtr,
      step);\n      }\n    }\n  }\n\nprivate:\n  // Scatter/Gather generic op\n  //
      skip: my own rank order in the buffer chunks\n  // shift: peer offset to avoid
      all ranks sending to or receiving from same peer\n  template <int DirectRecv1,
      int DirectSend1, int Recv, int Send>\n  __device__ __forceinline__ void\n  ScatterGatherOp(intptr_t
      inpIx, intptr_t outIx, ssize_t totalElem, int peerElem, ssize_t peerOffset,
      int skip, int shift, bool postOp) {\n    constexpr int DirectRecv = 1 && Direct
      && DirectRecv1;\n    constexpr int DirectSend = 1 && Direct && DirectSend1;\n
      \   int offset = 0; // slice offset\n    int sliceSize = stepSize*StepPerSlice;\n
      \   int dataSize = max(DIVUP(peerElem, 16*SlicePerChunk)*16, sliceSize/32);
      \ // per-peer slice size\n\n    #pragma unroll\n    for (int slice=0; slice<SlicePerChunk;
      ++slice) {\n      ssize_t realSize = max(0, min(dataSize, peerElem-offset));\n
      \     bool fenceNeeded = false;\n      if (tid < nworkers) {\n        if (Send)
      {\n          // Scatter pre-scales data of input buffer only in non-Direct case\n
      \         constexpr int PreOpSrcs = DirectSend ? 0 : 1;\n          if (tid==0)
      ncclShmem.groups[group].srcs[0] = (T*)ncclShmem.groups[group].userInput + inpIx
      + offset;\n          // realSize is not accurate here; but intra-node does not
      rely on sizes FIFO\n          waitPeer<0, DirectSend, 0, 1, 1, 0>(0, inpIx,
      offset, realSize);\n          subBarrier();\n          #pragma unroll\n          //
      Loop over peers\n          for (int j=0; j<fan.nsend(); j++) {\n            int
      i = (j+shift)%fan.nsend();\n            ssize_t pOffset = i*peerOffset;\n            //
      Skip the data I am responsible of reducing myself\n            if (skip >= 0
      && i >= skip) pOffset += peerOffset;\n            void* src0 = (T*)ncclShmem.groups[group].srcs[0]
      + pOffset;\n            ssize_t realPeerSize = min(realSize, totalElem-pOffset);\n
      \           if (realPeerSize > 0 && ncclShmem.groups[group].dsts[i] != nullptr)
      {\n              reduceCopy<Unroll, RedOp, T, 0,1,1, 0,1,1, PreOpSrcs>(tid,
      nworkers, ncclShmem.redOpArgs[0], ncclShmem.redOpArgs, false, 1, &src0, 1, ncclShmem.groups[group].dsts+i,
      realPeerSize);\n              // Mark for threadfence at the end\n              fenceNeeded
      |= true;\n            }\n          }\n        } else if (Recv) {\n          if
      (tid==0) ncclShmem.groups[group].dsts[0] = (T*)ncclShmem.groups[group].userOutput
      + outIx + offset;\n          ssize_t pOffset = index*peerOffset;\n          if
      (skip >= 0 && index >= skip) pOffset += peerOffset;\n          // Adjust remote
      index with peer offset in case we are directly pulling from peer's output buffer\n
      \         waitPeer<DirectRecv, 0, 1, 0, 0, 1>(outIx+pOffset, outIx+pOffset,
      offset, realSize);\n          subBarrier();\n          #pragma unroll\n          for
      (int j=0; j<fan.nrecv(); j++) {\n            int i = (j+shift)%fan.nrecv();\n
      \           pOffset = i*peerOffset;\n            if (skip >= 0 && i >= skip)
      pOffset += peerOffset;\n            void* dst0 = (T*)ncclShmem.groups[group].dsts[0]
      + pOffset;\n            ssize_t realPeerSize = min(realSize, totalElem-pOffset);\n
      \           if (DirectRecv && ncclShmem.groups[group].srcs[i] == dst0) realPeerSize
      = 0;\n            if (realPeerSize > 0) reduceCopy<Unroll, RedOp, T, 0,1,1,
      0,1,1, /*PreOpSrcs=*/0>(tid, nworkers, ncclShmem.redOpArgs[0], ncclShmem.redOpArgs,
      postOp, 1, ncclShmem.groups[group].srcs+i, 1, &dst0, realPeerSize);\n          }\n
      \       }\n      }\n      fenceNeeded = barrierAny(fenceNeeded);\n      postPeer<Recv,
      Send>(fenceNeeded);\n      offset += realSize;\n    }\n  }\n\n  __device__ __forceinline__
      void loadRecvConn(ncclDevChannelPeer *peer, int connIndex, uint32_t direct,
      int ipcRegFlag, int netRegFlag) {\n    conn = &peer->recv[connIndex];\n    if
      (conn->netDeviceHandle.netDeviceType == NCCL_NET_DEVICE_UNPACK) {\n      //
      handle must be a device ptr\n      netDeviceHandle = conn->netDeviceHandle.handle;\n
      \     // Cache the handle\n      ncclNetDeviceUnpackSetup(netDeviceHandle, group,
      index);\n      flags |= NetDeviceUnpack;\n    }\n    step = conn->step;\n    step
      = roundUp(step, SlicePerChunk*StepPerSlice);\n    if (flags & RolePostRecv)
      {\n      connStepPtr = conn->head;\n      *connStepPtr = step; // Return credits
      in case we rounded up.\n    }\n    if (flags & RoleWaitRecv) {\n      if ((flags
      & PatMode) == 0) ncclShmem.groups[group].recvConns[index] = conn; // WaitRecv
      role saves since that's who needs it in setDataPtrs()\n      flags |= (conn->flags
      & NCCL_NVLS_MIN_POLL) ? NvlsMinPolling : 0;\n      connStepPtr = conn->tail;\n
      \     connStepCache = loadStepValue(connStepPtr);\n      connStepSize = conn->stepSize/sizeof(T);\n
      \     connEltsFifo = (T*)conn->buffs[NCCL_PROTO_SIMPLE];\n      if (conn->connFifo
      != nullptr) {\n        flags |= ConnFifoEnabled;\n        connFifo = conn->connFifo;\n
      \     }\n      if (Direct) {\n        if (ipcRegFlag) {\n          // User buffers
      have been registered\n          if (conn->flags & (NCCL_P2P_READ | NCCL_P2P_WRITE))
      {\n            if (P2p) {\n              flags |= conn->flags & NCCL_P2P_WRITE
      ? DirectWrite : DirectRead;\n            } else if (connIndex == 1 && direct)
      {\n              flags |= DirectRead;\n            } else {\n              flags
      |= direct & NCCL_P2P_READ ? DirectRead : DirectWrite;\n            }\n          }
      else if ((conn->flags & NCCL_NVLS_MIN_POLL)) {\n            /* NVLS direct */\n
      \           flags |= DirectRead;\n          }\n        }\n        if (netRegFlag)
      {\n          if (conn->flags & NCCL_DIRECT_NIC) {\n            flags |= NetRegMode;\n
      \           connFifo[step % NCCL_STEPS].size = 0;\n          }\n        }\n
      \     }\n    }\n  }\n\n  __device__ __forceinline__ void loadSendConn(ncclDevChannelPeer
      *peer, int connIndex, uint32_t direct, int ipcRegFlag, int netRegFlag) {\n    conn
      = &peer->send[connIndex];\n    step = conn->step;\n    step = roundUp(step,
      SlicePerChunk*StepPerSlice);\n\n    connFifo = conn->connFifo;\n    if (connFifo
      != nullptr) flags |= ConnFifoEnabled;\n\n    if (flags & RolePostSend) {\n      connStepPtr
      = conn->tail;\n      connEltsFifo = (T*)conn->buffs[NCCL_PROTO_SIMPLE];\n    }\n
      \   if (flags & RoleWaitSend) {\n      if ((flags & PatMode) == 0) ncclShmem.groups[group].sendConns[index]
      = conn; // WaitSend role saves since that's who needs it in setDataPtrs()\n
      \     flags |= (conn->flags & NCCL_NVLS_MIN_POLL) ? NvlsMinPolling : 0;\n      connStepPtr
      = conn->head;\n      connStepCache = loadStepValue(connStepPtr);\n      connStepSize
      = conn->stepSize/sizeof(T);\n      connEltsFifo = (T*)conn->buffs[NCCL_PROTO_SIMPLE];\n
      \     if (Direct) {\n        if (ipcRegFlag) {\n          // User buffers have
      been registered\n          if (conn->flags & (NCCL_P2P_WRITE | NCCL_P2P_READ))
      {\n            if (P2p) {\n              flags |= conn->flags & NCCL_P2P_WRITE
      ? DirectWrite : DirectRead;\n            } else if (connIndex == 1 && direct)
      {\n              flags |= DirectRead;  // scatter-reduce use direct pull\n            }
      else {\n              flags |= direct & NCCL_P2P_READ ? DirectRead : DirectWrite;\n
      \           }\n          } else if ((conn->flags & NCCL_NVLS_MIN_POLL)) {\n
      \           /* NVLS direct */\n            flags |= DirectWrite;\n          }\n
      \       }\n        if (netRegFlag) {\n          if (conn->flags & NCCL_DIRECT_NIC)
      {\n            flags |= NetRegMode;\n          }\n        }\n      }\n    }\n
      \ }\n\n public:\n  __device__ Primitives(\n      int tid, int nthreads, int
      const *recvPeers, int const *sendPeers,\n      void const *inputBuf, void *outputBuf,
      uint64_t redOpArg, uint8_t group=0,\n      uint8_t connIndexRecv = 0, uint8_t
      connIndexSend = 0, struct ncclDevWorkColl* collWork = nullptr,\n      struct
      ncclDevWorkP2p* p2pWork = nullptr, int stepSize_ = 0, int mode = primsModeDefault\n
      \   ):\n    tid(tid), nthreads(nthreads), tidInBlock(threadIdx.x), group(group),\n
      \   stepSize(stepSize_ == 0 ? ncclShmem.comm.buffSizes[NCCL_PROTO_SIMPLE]/NCCL_STEPS/sizeof(T)
      : stepSize_) {\n\n    int peer = -1;\n    flags = 0;\n    index = -1;\n    if
      (mode == primsModeDefault) { // Connect to ranks in sendPeers/recvPeers\n      //
      For send operations, we need an extra warp to overlap the threadfence and the
      copy\n      this->nworkers = nthreads - (MaxSend > 0 && nthreads >= NCCL_SIMPLE_EXTRA_GROUP_IF_NTHREADS_GE
      ? WARP_SIZE : 0);\n\n      int nrecv=0, nsend=0;\n      // Yes, for some template
      arguments this code will be unreachable.  That's fine.\n      // coverity[dead_error_line]\n
      \     while (nrecv < MaxRecv && recvPeers[nrecv] != -1) nrecv++;\n      // coverity[dead_error_line]\n
      \     while (nsend < MaxSend && sendPeers[nsend] != -1) nsend++;\n      this->fan
      = Fan(nrecv, nsend);\n\n      constexpr int ThreadPerSync =\n        MaxSend
      >= 16 || MaxRecv >= 16 ? 32 : // NVLS may have an arity > 8. In that case increase
      the size of the groups\n        MaxSend >= 8 || MaxRecv >= 8 ? 16 :\n        8;
      // Allows for all roles (WaitRecv/WaitSend/PostRecv/PostSend) within a single
      warp\n      static_assert(MaxSend <= ThreadPerSync && MaxRecv <= ThreadPerSync,
      \"Not enough threads to cover all peers\");\n\n      assert(2*(nrecv+nsend)
      <= nthreads); // Ensure no thread is assigned more than one role.\n      //
      Coverity assumes that index will equal tid based on the line below, but it doesn't
      consider the setting\n      // of flags.  This results in multiple false positive
      overruns being reported here and in all_reduce.h.\n      // Unfortunately, we've
      been unsuccessful in trying to silence them with a single directive here so\n
      \     // instead it's being done at the callers.\n      // coverity[assignment:FALSE]\n
      \     if      (tid < nrecv)                 { flags |= RoleWaitRecv; index =
      tid; }\n      // Yes, for some template arguments this code will be unreachable.
      \ That's fine.\n      // coverity[dead_error_begin]\n      else if (tid < nrecv+nsend)
      \          { flags |= RoleWaitSend; index = tid-nrecv; }\n      else if (nthreads-nsend
      <= tid)       { flags |= RolePostSend; index = tid-(nthreads-nsend); }\n      else
      if (nthreads-nrecv-nsend <= tid) { flags |= RolePostRecv; index = tid-(nthreads-nrecv-nsend);
      }\n\n      if (flags & (RoleWaitRecv|RolePostRecv)) peer = recvPeers[index];\n
      \     if (flags & (RoleWaitSend|RolePostSend)) peer = sendPeers[index];\n\n
      \     // Coverity thinks that index could be -1 here but that's not actually
      the case.\n      // coverity[negative_returns:FALSE]\n      int sendIpcReg;\n
      \     int recvIpcReg;\n      int sendNetReg;\n      int recvNetReg;\n      if
      (P2p) {\n        sendIpcReg = p2pWork ? p2pWork->sendIpcReg : 0;\n        recvIpcReg
      = p2pWork ? p2pWork->recvIpcReg : 0;\n        sendNetReg = p2pWork ? p2pWork->sendNetReg
      : 0;\n        recvNetReg = p2pWork ? p2pWork->recvNetReg : 0;\n      } else
      {\n        recvIpcReg = sendIpcReg = collWork ? collWork->regUsed : 0;\n        recvNetReg
      = sendNetReg = collWork ? collWork->netRegUsed : 0;\n      }\n\n      // coverity[overrun-call]
      => Coverity think prims.index can be greater than 1\n      if (flags & (RoleWaitRecv|RolePostRecv))
      loadRecvConn(ncclShmem.channel.peers[peer], connIndexRecv, collWork ? collWork->direct
      : 0, recvIpcReg, recvNetReg);\n      // coverity[overrun-call] => Coverity think
      prims.index can be greater than 1\n      if (flags & (RoleWaitSend|RolePostSend))
      loadSendConn(ncclShmem.channel.peers[peer], connIndexSend, collWork ? collWork->direct
      : 0, sendIpcReg, sendNetReg);\n\n      if (barrierAny(flags & NetDeviceUnpack))
      {\n        flags |= AnyNetDeviceUnpack;\n        // RoleWaitRecv starts at tid=0,
      so this creates the bitmask of which recv peers\n        // have NetDeviceUnpack.\n
      \       uint32_t mask = __ballot_sync(~0u, ((flags & RoleWaitRecv) && (flags
      & NetDeviceUnpack)) ? 1 : 0);\n        if (tid == 0) {\n          ncclShmem.groups[this->group].devicePlugin.unpack.unpackNetDeviceIndexMask
      = mask;\n        }\n      }\n\n      // coverity[negative_returns:FALSE] =>
      coverity thinks that index could be -1 but that's not actually the case\n      //
      coverity[var_deref_model] => coverity thinks work can dereferenced if NULL but
      this is not the case\n      setDataPtrs(inputBuf, outputBuf, redOpArg, (struct
      ncclDevWorkCollReg*)collWork, sendIpcReg || recvIpcReg, peer);\n      // coverity[uninit_member]
      => coverity thinks fan.n is not initialized\n    } else if (mode == primsModePatRs
      || mode == primsModePatAg) { // Connect to all ranks +/- 2^n\n      flags |=
      PatMode;\n      const int roles[5] = { RoleWaitRecv, RolePostRecv, RoleWaitSend,
      RolePostSend, RoleInput | RoleOutput };\n      if (tid < 5) flags |= roles[tid];\n\n
      \     int nranks = ncclShmem.comm.nRanks;\n      if (tid < 32 && ((1UL<<tid)
      < nranks)) {\n        int rank = ncclShmem.comm.rank;\n        uint32_t delta
      = 1 << tid;\n        // Load recv peer\n        int recvPeer = mode == primsModePatRs
      ? (rank - delta + nranks) % nranks : (rank + delta) % nranks;\n        struct
      ncclPatPeer* peer = ((struct ncclPatPeer*)recvPeers)+tid;\n        struct ncclConnInfo*
      conn = peer->conn = ncclShmem.channel.peers[recvPeer]->recv+connIndexRecv;\n
      \       peer->step = conn->step;\n        peer->buff = conn->buffs[NCCL_PROTO_SIMPLE];\n
      \       peer->stepCache = loadStepValue(peer->tailPtr = conn->tail);\n        peer->headPtr
      = conn->head;\n        peer->accSize = 0;\n        peer->connStepSize = conn->stepSize/sizeof(T);\n
      \       // Load send peer\n        int sendPeer = mode == primsModePatAg ? (rank
      - delta + nranks) % nranks : (rank + delta) % nranks;\n        peer = ((struct
      ncclPatPeer*)sendPeers)+tid;\n        conn = peer->conn = ncclShmem.channel.peers[sendPeer]->send+connIndexSend;\n
      \       peer->step = conn->step;\n        peer->connFifo = conn->connFifo;\n
      \       peer->buff = conn->buffs[NCCL_PROTO_SIMPLE];\n        peer->stepCache
      = loadStepValue(peer->headPtr = conn->head);\n        peer->tailPtr = conn->tail;\n
      \       peer->accSize = 0;\n        peer->connStepSize = conn->stepSize/sizeof(T);\n
      \     }\n      if (tid==0) {\n        ncclShmem.groups[group].userInput = (void*)inputBuf;\n
      \       ncclShmem.groups[group].userOutput = (void*)outputBuf;\n        ncclShmem.redOpArgs[0]
      = redOpArg;  // scaler for local input\n      }\n      patBarrier();\n    }\n
      \ }"
    signature: "class Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk,
      StepPerSlice, Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  > {\n
      \ static constexpr int MaxRecv = Fan::MaxRecv, MaxSend = Fan::MaxSend;\n  static
      constexpr int Input=0, Output=1;\n  static constexpr int RoleInput = 0x01,\n
      \                      RoleOutput = 0x02,\n                       RoleWaitRecv
      = 0x04,\n                       RoleWaitSend = 0x08,\n                       RolePostSend
      = 0x10,\n                       RolePostRecv = 0x20,\n                       Aborted
      = 0x40,\n                       NetRegMode = 0x80,\n                       ConnFifoEnabled
      = 0x100,\n                       DirectWrite = 0x200,\n                       DirectRead
      = 0x400,\n                       PatMode = 0x800,\n                       NvlsMinPolling
      = 0x1000,\n                       NetDeviceUnpack = 0x2000,\n                       AnyNetDeviceUnpack
      = 0x4000;\n  const int tid, tidInBlock;\n  const int nthreads;\n  int nworkers;\n
      \ const int stepSize;\n  Fan fan;\n  int index; // Peer index I'm responsible
      for\n  int flags;\n  int group;\n  uint64_t step;\n  struct ncclConnInfo* conn
      = NULL;\n  struct ncclConnFifo* connFifo = NULL;\n  T* connEltsFifo;\n  T* directBuff
      = NULL;\n  uint64_t *connStepPtr;\n  uint64_t connStepCache; // Cache last seen
      value of (*connStepPtr)\n  int      connStepSize; // Connection step size\n
      \ void*    netDeviceHandle;\n  uint64_t accSize;\n\n  // Don't use barrier 0
      as it's used by the final sync\n  __device__ void barrier() {\n    if (nthreads
      == WARP_SIZE) __syncwarp();\n    else {\n      int bar = 15-group;\n      barrier_sync(bar,
      nthreads);\n    }\n  }\n  __device__ void subBarrier() {\n    if (nworkers ==
      WARP_SIZE) __syncwarp();\n    else {\n      int bar = 15-group - (nworkers!=nthreads
      ? 1 : 0);\n      barrier_sync(bar, nworkers);\n    }\n  }\n\n  // PAT uses a
      single barrier across all groups\n  __device__ void patBarrier() {\n    barrier_sync(15,
      NCCL_PAT_NWORKERS);\n  }\n\n  __device__ bool barrierAny(int vote) {\n    if
      (nthreads == WARP_SIZE) {\n      return __any_sync(~0u, vote);\n    } else {\n
      \     int name = 15-group;\n      return barrier_red_or(vote, name, nthreads);\n
      \   }\n  }\n  __device__ bool subBarrierAny(int vote) {\n    if (nworkers ==
      WARP_SIZE) {\n      return __any_sync(~0u, vote);\n    } else {\n      int name
      = 15-group - (nworkers!=nthreads ? 1 : 0);\n      return barrier_red_or(vote,
      name, nworkers);\n    }\n  }\n\n  inline __device__ uint64_t loadStepValue(uint64_t*
      ptr) {\n    #if __CUDA_ARCH__ >= 900 && CUDART_VERSION >= 12010\n    if (flags
      & NvlsMinPolling) {\n      uint64_t ans;\n      asm volatile(\"multimem.ld_reduce.acquire.sys.global.min.u64
      %0, [%1];\" : \"=l\"(ans) : \"l\"(cvta_to_global(ptr)) : \"memory\");\n      return
      ans;\n    }\n    #endif\n    // volatile is faster than acquire but not as correct.
      Make sure reduceCopy\n    // loads data using volatile so it doesn't see stale
      data in L1.\n    return ld_volatile_global(ptr);\n  }\n\n  template <int DirectRecv,
      int DirectSend, int Recv, int Send, int Src, int Dst>\n  __device__ __forceinline__
      void waitPeer(intptr_t srcIx, intptr_t dstIx, int offset, int nelts) {\n    const
      bool isSendNotRecv = (Send && Recv) ? (flags & RoleWaitSend) : Send;\n    //
      Yes, for some template arguments this code will be unreachable.  That's fine.\n
      \   // coverity[dead_error_line]\n    if ((flags & (Recv * RoleWaitRecv)) ||
      (flags & (Send * RoleWaitSend))) {\n      int spins = 0;\n      while (connStepCache
      + (isSendNotRecv ? NCCL_STEPS : 0) < step + StepPerSlice) {\n        connStepCache
      = loadStepValue(connStepPtr);\n        if (checkAbort(flags, Aborted, spins))
      break;\n        //if (spins == 0) printf(\"r=%d b=%d t=%d SPUN OUT got=%d want=%d\\n\",
      ncclShmem.comm.rank, blockIdx.x, threadIdx.x, int(connStepCache + (isSendNotRecv
      ? NCCL_STEPS : 0)), int(step+StepPerSlice));\n      }\n    }\n\n    if (flags
      & (Recv*RoleWaitRecv | Send*RoleWaitSend)) {\n      if ((flags & ConnFifoEnabled)
      && (flags & (Send * RoleWaitSend)))\n        connFifo[step%NCCL_STEPS].size
      = nelts*sizeof(T);\n\n      void **ptrs = isSendNotRecv ? (ncclShmem.groups[group].dsts
      + Dst)\n                                  : (ncclShmem.groups[group].srcs +
      Src);\n      if ((flags & NetRegMode) && ((!isSendNotRecv && DirectRecv) ||
      (isSendNotRecv && DirectSend))) {\n        if (P2p) {\n          ptrs[index]
      = NULL;\n        } else {\n          if (isSendNotRecv) {\n            if (!Recv)\n
      \             ptrs[index] = NULL;\n            else\n              ptrs[index]
      = (T*)ncclShmem.groups[group].userOutput + dstIx + offset;\n          } else
      {\n            ptrs[index] = (T*)ncclShmem.groups[group].userOutput + srcIx
      + offset;\n          }\n        }\n      } else if ((flags & ConnFifoEnabled)
      && connFifo[step%NCCL_STEPS].mode == NCCL_MODE_OFFSET) {\n        ptrs[index]
      = connEltsFifo + loadInt(&connFifo[step%NCCL_STEPS].offset)/sizeof(T);\n      }
      else if (isSendNotRecv && DirectSend) {\n        if (flags & DirectWrite) {\n
      \         ptrs[index] = directBuff + dstIx + offset;\n        } else if (flags
      & DirectRead) {  // empty send\n          ptrs[index] = nullptr;\n        }
      else {\n          ptrs[index] = connEltsFifo + (step%NCCL_STEPS)*connStepSize;\n
      \       }\n      } else if (!isSendNotRecv && DirectRecv) {\n        if (flags
      & DirectRead) {\n          ptrs[index] = directBuff + srcIx + offset;\n        }
      else if (flags & DirectWrite) {\n          ptrs[index] = directBuff + dstIx
      + offset;  // send to next from my output buffer\n        } else {\n          ptrs[index]
      = connEltsFifo + (step%NCCL_STEPS)*connStepSize;\n        }\n      }\n      else
      {\n        // Yes, for some template arguments this code will be unreachable.
      \ That's fine.\n        // coverity[dead_error_line]\n        ptrs[index] =
      connEltsFifo + (step%NCCL_STEPS)*connStepSize;\n      }\n      if (flags & NetDeviceUnpack)
      {\n        ncclNetDeviceIncrementHead(group, index);\n      }\n      step +=
      StepPerSlice;\n    }\n  }\n\n  template<int Recv, int Send>\n  inline __device__
      void postPeer(bool dataStored) {\n    if (flags & (Recv*RolePostRecv | Send*RolePostSend))
      {\n      step += StepPerSlice;\n      if (Send && (flags & RolePostSend) &&
      (dataStored||(flags&ConnFifoEnabled))) {\n        fence_acq_rel_sys();\n      }\n
      \     st_relaxed_sys_global(connStepPtr, step);\n    }\n  }\n\n  template <int
      DirectRecv1, int DirectSend1, int Recv, int Send, int SrcBuf, int DstBuf>\n
      \ __device__ __forceinline__ void genericOp(\n      intptr_t srcIx, intptr_t
      dstIx, int nelem, bool postOp\n    ) {\n    constexpr int DirectRecv = 1 &&
      Direct && DirectRecv1;\n    constexpr int DirectSend = 1 && Direct && DirectSend1;\n
      \   constexpr int Src = SrcBuf != -1;\n    constexpr int Dst = DstBuf != -1;\n\n
      \   nelem = nelem < 0 ? 0 : nelem;\n    int sliceSize = stepSize*StepPerSlice;\n
      \   sliceSize = max(divUp(nelem, 16*SlicePerChunk)*16, sliceSize/32);\n    int
      slice = 0;\n    int offset = 0;\n\n    if (tid < nworkers && offset < nelem
      && !isNetOffload) {\n      // Worker-only loop for non-empty slices. Non-workers
      and empty slices are\n      // processed in the loop following this if block.
      The benefit of splitting\n      // the loop like this is we pull two branches
      out of the critical path.\n      // Using \"number of branch insns (taken or
      not) encountered dynamically\"\n      // as the performance metric, then:\n
      \     //   perf_orig = 2*numslices\n      //   perf_new = 2+numslices\n      //
      So the new code and old code behave the same for numslices=2, and for\n      //
      numslices>2 the new code is superior. And note that in the case\n      // numslices=1,
      the loop is trivially unrollable (single iteration) so we\n      // don't incur
      that that tail branch and we still have perf_new=2.\n      //\n      // ORIGINAL
      CODE:\n      //   unrolled for(slices) {\n      //     if(worker) { // This
      branch removed\n      //       wait();\n      //       subBarrier();\n      //
      \      if(slice not empty) // This branch removed\n      //         ReduceCopyMulti();\n
      \     //     }\n      //     barrier();\n      //     post();\n      //   }
      // Since we no longer unroll, new branch added here\n      #if __CUDA_ARCH__
      < 700\n        // Above doesn't matter on older hardware.\n        #pragma unroll
      SlicePerChunk\n      #else\n        #pragma unroll 1\n      #endif\n      do
      {\n        sliceSize = sliceSize < nelem-offset ? sliceSize : nelem-offset;\n
      \       if (tid == 0) {\n          T* userInput = (T*)ncclShmem.groups[group].userInput;\n
      \         T* userOutput = (T*)ncclShmem.groups[group].userOutput;\n          if
      (Src) ncclShmem.groups[group].srcs[0] = (SrcBuf==Input ? userInput : userOutput)
      + srcIx + offset;\n          if (Dst) ncclShmem.groups[group].dsts[0] = (DstBuf==Input
      ? userInput : userOutput) + dstIx + offset;\n        }\n        waitPeer<DirectRecv,
      DirectSend, Recv, Send, Src, Dst>(srcIx, dstIx, offset, sliceSize);\n        subBarrier();\n
      \       /* if user abort the kernel, we don't need to actually perform copy/reduce;
      just set size\n         * to 0 to avoid unnecessary workload. */\n        int
      workSize = ncclShmem.aborted ? 0 : sliceSize;\n        if (flags & AnyNetDeviceUnpack)
      {\n          ncclNetDeviceUnpack<Recv>(tid, tidInBlock, nworkers, group, ncclShmem.groups[group].devicePlugin.unpack.unpackNetDeviceIndexMask,
      Src, workSize);\n          // Sync here to make sure all workers are reading
      from the updated srcs)\n          subBarrier();\n        }\n\n        if (DirectRecv
      && ncclShmem.groups[group].srcs[0] == ncclShmem.groups[group].dsts[0]\n            /*
      NVLS can have srcs[0] == dsts[0], but we cannot enter this \"if branch\",\n
      \            * so we need to check whether MultimemSrcs and MultimemDsts are
      0. */\n            && MultimemSrcs == 0 && MultimemDsts == 0 && !Src) {\n          //
      We can only have one direct receive. Since srcs[0] == dstPtr+offset, skip one
      copy\n          if (Send && Dst && ncclShmem.groups[group].srcs[0] != ncclShmem.groups[group].dsts[1])
      {\n            reduceCopy<Unroll, RedOp, T, 0, 1, 1, 0, 1, MaxSend, /*PreOpSrcs*/0>\n
      \             (tid, nworkers, /*redArg*/0, /*preOpArgs*/nullptr, /*postOp*/false,\n
      \              1, ncclShmem.groups[group].srcs,\n               fan.nsend(),
      ncclShmem.groups[group].dsts+1,\n               workSize);\n          }\n        }
      else if (DirectSend && !DirectRecv && SrcBuf != Input && ncclShmem.groups[group].dsts[Dst]
      == nullptr) {\n          // For broadcast in CollNet to do empty send\n          reduceCopy<Unroll,
      RedOp, T, 0, 1, 1, 0, 1, 1, /*PreOpSrcs*/0>\n            (tid, nworkers, ncclShmem.redOpArgs[0],
      \ nullptr, postOp,\n             Recv, ncclShmem.groups[group].srcs,\n             Dst,
      ncclShmem.groups[group].dsts,\n             workSize);\n        } else if (ncclShmem.groups[group].srcs[0]
      && ncclShmem.groups[group].dsts[0]) {\n          constexpr int PreOpSrcs = SrcBuf
      != Input ? 0 :\n                                    DirectRecv*MaxRecv == NCCL_MAX_DIRECT_ARITY
      ? (1+NCCL_MAX_DIRECT_ARITY) : 1;\n          if (Send && Dst && ncclShmem.groups[group].dsts[1]
      == nullptr) {\n            // this case should only be directCopySend() with
      registered buffers and send to net peer\n            reduceCopy<Unroll, RedOp,
      T,\n              0, Recv + Src, Recv * MaxRecv + Src,\n              0, 1,
      1, PreOpSrcs>\n              (tid, nworkers, ncclShmem.redOpArgs[0], ncclShmem.redOpArgs,
      postOp,\n                Recv * fan.nrecv() + Src, ncclShmem.groups[group].srcs,\n
      \               1, ncclShmem.groups[group].dsts,\n                workSize);\n
      \         } else {\n            reduceCopy<Unroll, RedOp, T,\n              MultimemSrcs,
      Recv + Src, Recv * MaxRecv + Src,\n              MultimemDsts, Send + Dst, Send
      * MaxSend + Dst, PreOpSrcs>\n              (tid, nworkers, ncclShmem.redOpArgs[0],
      ncclShmem.redOpArgs, postOp,\n                Recv * fan.nrecv() + Src, ncclShmem.groups[group].srcs,\n
      \               Send * fan.nsend() + Dst, ncclShmem.groups[group].dsts,\n                workSize);\n
      \         }\n        } else {\n          // we will come here when calling prims.directSend
      with net peer,\n          // in this case, ncclShmem.groups[group].dsts[0] ==
      NULL, so we\n          // skip data flush.\n          workSize = 0;\n        }\n
      \       barrier(); // This barrier has a counterpart in following loop\n        postPeer<Recv,
      Send>(0 < workSize);\n        offset += sliceSize;\n        slice += 1;\n        //
      Yes, for some template arguments this code will be unreachable.  That's fine.\n
      \       // coverity[dead_error_line]\n      } while (slice < SlicePerChunk &&
      offset < nelem);\n    }\n\n    // Non-workers come straight here. Workers too
      but only once the remaining\n    // slices are all empty. Since empty slices
      are the uncommon case, and\n    // worker perf is the limiter, perf-wise this
      loop is effectively unentered,\n    // hence just a single branch insn.\n    #pragma
      unroll 1\n    while (slice < SlicePerChunk) {\n      sliceSize = sliceSize <
      nelem-offset ? sliceSize : nelem-offset;\n      { // Only workers could have
      Wait roles so we know the slice must be empty\n        // since we've exited
      the loop above.\n        waitPeer<DirectRecv, DirectSend, Recv, Send, Src, Dst>(0,
      0, 0, sliceSize);\n      }\n      barrier(); // Has couterpart in preceding
      worker-only loop.\n      int workSize = ncclShmem.aborted ? 0 : sliceSize;\n
      \     postPeer<Recv, Send>(0 < workSize);\n      offset += sliceSize;\n      slice
      += 1;\n    }\n  }\n\npublic:\n  static inline __device__ void sendPeerNotify(int
      peer, int connIndex, int steps) {\n    ncclDevChannelPeer* peerPtr = ncclShmem.channel.peers[peer];\n
      \   peerPtr->send[connIndex].step += steps;\n    st_relaxed_sys_global(peerPtr->send[connIndex].tail,
      peerPtr->send[connIndex].step);\n  }\n\n  static inline __device__ void recvPeerNotify(int
      peer, int connIndex, int steps) {\n    int spins = 0;\n    ncclDevChannelPeer*
      peerPtr = ncclShmem.channel.peers[peer];\n    peerPtr->recv[connIndex].step
      += steps;\n    st_relaxed_sys_global(peerPtr->recv[connIndex].head, peerPtr->recv[connIndex].step);\n
      \   while (ld_volatile_global(peerPtr->recv[connIndex].tail) < peerPtr->recv[connIndex].step)
      {\n      int abort = 0;\n      if (checkAbort(abort, 1, spins)) break;\n    }\n
      \ }\n\n  template<int Recv, int Send, typename Fn>\n  __device__ __forceinline__
      void process(Fn &&fn, uint32_t sendDirectFlag = 0, uint32_t recvDirectFlag =
      0) {\n    #pragma unroll 1\n    for (int slice=0; slice < SlicePerChunk; slice++)
      {\n      if (tid < nworkers) {\n        int nsend, nrecv;\n        if (flags
      & (Recv*RoleWaitRecv | Send*RoleWaitSend)) {\n          const bool isSendNotRecv
      = (Send && Recv) ? (flags & RoleWaitSend) : Send;\n          int spins = 0;\n
      \         while (connStepCache + (isSendNotRecv ? NCCL_STEPS : 0) < step + StepPerSlice)
      {\n            connStepCache = loadStepValue(connStepPtr);\n            if (checkAbort(flags,
      Aborted, spins)) break;\n          }\n          void **ptrs = isSendNotRecv
      ? ncclShmem.groups[group].dsts\n                                      : ncclShmem.groups[group].srcs;\n
      \         if ((flags & ConnFifoEnabled) && connFifo[step%NCCL_STEPS].mode ==
      NCCL_MODE_OFFSET) {\n            int offset = loadInt(&connFifo[step%NCCL_STEPS].offset);\n
      \           ptrs[index] = connEltsFifo + offset/sizeof(T);\n          } else
      if (Direct && fn.work->regUsed) {\n            if (isSendNotRecv) {\n              if
      (flags & DirectWrite) {\n                ptrs[index] = directBuff;\n              }
      else if (flags & DirectRead) {  // empty send\n                ptrs[index] =
      nullptr;\n              } else {\n                ptrs[index] = connEltsFifo
      + (step%NCCL_STEPS)*connStepSize;\n              }\n            } else {\n              if
      (flags & DirectRead) {\n                ptrs[index] = directBuff;\n              }
      else if (flags & DirectWrite) {\n                if (Send)\n                  ptrs[index]
      = directBuff;  // send to next from my output buffer\n                else\n
      \                 ptrs[index] = nullptr;\n              } else {\n                ptrs[index]
      = connEltsFifo + (step%NCCL_STEPS)*connStepSize;\n              }\n            }\n
      \         } else {\n            ptrs[index] = connEltsFifo + (step%NCCL_STEPS)*connStepSize;\n
      \         }\n        }\n        subBarrier();\n        if (Recv == 0 || ncclShmem.groups[group].srcs[0]
      == nullptr) {\n          nrecv = 0;\n        } else {\n          nrecv = fan.nrecv();\n
      \       }\n\n        if (Send == 0 || ncclShmem.groups[group].dsts[0] == nullptr)
      {\n          nsend = 0;\n        } else {\n          nsend = fan.nsend();\n
      \       }\n        fn.template operator()<SlicePerChunk, 0, Recv*MaxRecv, 0,
      Send*MaxSend, MultimemSrcs, MultimemDsts>\n          (tid, nworkers, slice,
      stepSize * StepPerSlice,\n            nrecv, ncclShmem.groups[group].srcs,\n
      \           nsend, ncclShmem.groups[group].dsts, ncclShmem.groups[group].dstSizes,
      sendDirectFlag, recvDirectFlag);\n      }\n      barrier();\n      int32_t dstSize
      = 0;\n      if (flags & Send*RolePostSend) {\n        // Yes, for some template
      arguments this code will be unreachable.  That's fine.\n        // coverity[dead_error_begin]\n
      \       dstSize = ncclShmem.groups[group].dstSizes[index];\n        ncclShmem.groups[group].dstSizes[index]
      = 0;\n        if (flags & ConnFifoEnabled) connFifo[step%NCCL_STEPS].size =
      dstSize*sizeof(T);\n      }\n      barrier();\n      if (flags & (Recv*(RoleWaitRecv|RolePostRecv)
      | Send*(RoleWaitSend|RolePostSend))) {\n        step += StepPerSlice;\n      }\n
      \     if (flags & (Recv*RolePostRecv | Send*RolePostSend)) {\n        if (Send
      && (!Recv || (flags & RolePostSend)) && (dstSize!=0 || (flags&ConnFifoEnabled)))
      {\n          fence_acq_rel_sys();\n        }\n        st_relaxed_sys_global(connStepPtr,
      step);\n      }\n    }\n  }\n\nprivate:\n  // Scatter/Gather generic op\n  //
      skip: my own rank order in the buffer chunks\n  // shift: peer offset to avoid
      all ranks sending to or receiving from same peer\n  template <int DirectRecv1,
      int DirectSend1, int Recv, int Send>\n  __device__ __forceinline__ void\n  ScatterGatherOp(intptr_t
      inpIx, intptr_t outIx, ssize_t totalElem, int peerElem, ssize_t peerOffset,
      int skip, int shift, bool postOp) {\n    constexpr int DirectRecv = 1 && Direct
      && DirectRecv1;\n    constexpr int DirectSend = 1 && Direct && DirectSend1;\n
      \   int offset = 0; // slice offset\n    int sliceSize = stepSize*StepPerSlice;\n
      \   int dataSize = max(DIVUP(peerElem, 16*SlicePerChunk)*16, sliceSize/32);
      \ // per-peer slice size\n\n    #pragma unroll\n    for (int slice=0; slice<SlicePerChunk;
      ++slice) {\n      ssize_t realSize = max(0, min(dataSize, peerElem-offset));\n
      \     bool fenceNeeded = false;\n      if (tid < nworkers) {\n        if (Send)
      {\n          // Scatter pre-scales data of input buffer only in non-Direct case\n
      \         constexpr int PreOpSrcs = DirectSend ? 0 : 1;\n          if (tid==0)
      ncclShmem.groups[group].srcs[0] = (T*)ncclShmem.groups[group].userInput + inpIx
      + offset;\n          // realSize is not accurate here; but intra-node does not
      rely on sizes FIFO\n          waitPeer<0, DirectSend, 0, 1, 1, 0>(0, inpIx,
      offset, realSize);\n          subBarrier();\n          #pragma unroll\n          //
      Loop over peers\n          for (int j=0; j<fan.nsend(); j++) {\n            int
      i = (j+shift)%fan.nsend();\n            ssize_t pOffset = i*peerOffset;\n            //
      Skip the data I am responsible of reducing myself\n            if (skip >= 0
      && i >= skip) pOffset += peerOffset;\n            void* src0 = (T*)ncclShmem.groups[group].srcs[0]
      + pOffset;\n            ssize_t realPeerSize = min(realSize, totalElem-pOffset);\n
      \           if (realPeerSize > 0 && ncclShmem.groups[group].dsts[i] != nullptr)
      {\n              reduceCopy<Unroll, RedOp, T, 0,1,1, 0,1,1, PreOpSrcs>(tid,
      nworkers, ncclShmem.redOpArgs[0], ncclShmem.redOpArgs, false, 1, &src0, 1, ncclShmem.groups[group].dsts+i,
      realPeerSize);\n              // Mark for threadfence at the end\n              fenceNeeded
      |= true;\n            }\n          }\n        } else if (Recv) {\n          if
      (tid==0) ncclShmem.groups[group].dsts[0] = (T*)ncclShmem.groups[group].userOutput
      + outIx + offset;\n          ssize_t pOffset = index*peerOffset;\n          if
      (skip >= 0 && index >= skip) pOffset += peerOffset;\n          // Adjust remote
      index with peer offset in case we are directly pulling from peer's output buffer\n
      \         waitPeer<DirectRecv, 0, 1, 0, 0, 1>(outIx+pOffset, outIx+pOffset,
      offset, realSize);\n          subBarrier();\n          #pragma unroll\n          for
      (int j=0; j<fan.nrecv(); j++) {\n            int i = (j+shift)%fan.nrecv();\n
      \           pOffset = i*peerOffset;\n            if (skip >= 0 && i >= skip)
      pOffset += peerOffset;\n            void* dst0 = (T*)ncclShmem.groups[group].dsts[0]
      + pOffset;\n            ssize_t realPeerSize = min(realSize, totalElem-pOffset);\n
      \           if (DirectRecv && ncclShmem.groups[group].srcs[i] == dst0) realPeerSize
      = 0;\n            if (realPeerSize > 0) reduceCopy<Unroll, RedOp, T, 0,1,1,
      0,1,1, /*PreOpSrcs=*/0>(tid, nworkers, ncclShmem.redOpArgs[0], ncclShmem.redOpArgs,
      postOp, 1, ncclShmem.groups[group].srcs+i, 1, &dst0, realPeerSize);\n          }\n
      \       }\n      }\n      fenceNeeded = barrierAny(fenceNeeded);\n      postPeer<Recv,
      Send>(fenceNeeded);\n      offset += realSize;\n    }\n  }\n\n  __device__ __forceinline__
      void loadRecvConn(ncclDevChannelPeer *peer, int connIndex, uint32_t direct,
      int ipcRegFlag, int netRegFlag) {\n    conn = &peer->recv[connIndex];\n    if
      (conn->netDeviceHandle.netDeviceType == NCCL_NET_DEVICE_UNPACK) {\n      //
      handle must be a device ptr\n      netDeviceHandle = conn->netDeviceHandle.handle;\n
      \     // Cache the handle\n      ncclNetDeviceUnpackSetup(netDeviceHandle, group,
      index);\n      flags |= NetDeviceUnpack;\n    }\n    step = conn->step;\n    step
      = roundUp(step, SlicePerChunk*StepPerSlice);\n    if (flags & RolePostRecv)
      {\n      connStepPtr = conn->head;\n      *connStepPtr = step; // Return credits
      in case we rounded up.\n    }\n    if (flags & RoleWaitRecv) {\n      if ((flags
      & PatMode) == 0) ncclShmem.groups[group].recvConns[index] = conn; // WaitRecv
      role saves since that's who needs it in setDataPtrs()\n      flags |= (conn->flags
      & NCCL_NVLS_MIN_POLL) ? NvlsMinPolling : 0;\n      connStepPtr = conn->tail;\n
      \     connStepCache = loadStepValue(connStepPtr);\n      connStepSize = conn->stepSize/sizeof(T);\n
      \     connEltsFifo = (T*)conn->buffs[NCCL_PROTO_SIMPLE];\n      if (conn->connFifo
      != nullptr) {\n        flags |= ConnFifoEnabled;\n        connFifo = conn->connFifo;\n
      \     }\n      if (Direct) {\n        if (ipcRegFlag) {\n          // User buffers
      have been registered\n          if (conn->flags & (NCCL_P2P_READ | NCCL_P2P_WRITE))
      {\n            if (P2p) {\n              flags |= conn->flags & NCCL_P2P_WRITE
      ? DirectWrite : DirectRead;\n            } else if (connIndex == 1 && direct)
      {\n              flags |= DirectRead;\n            } else {\n              flags
      |= direct & NCCL_P2P_READ ? DirectRead : DirectWrite;\n            }\n          }
      else if ((conn->flags & NCCL_NVLS_MIN_POLL)) {\n            /* NVLS direct */\n
      \           flags |= DirectRead;\n          }\n        }\n        if (netRegFlag)
      {\n          if (conn->flags & NCCL_DIRECT_NIC) {\n            flags |= NetRegMode;\n
      \           connFifo[step % NCCL_STEPS].size = 0;\n          }\n        }\n
      \     }\n    }\n  }\n\n  __device__ __forceinline__ void loadSendConn(ncclDevChannelPeer
      *peer, int connIndex, uint32_t direct, int ipcRegFlag, int netRegFlag) {\n    conn
      = &peer->send[connIndex];\n    step = conn->step;\n    step = roundUp(step,
      SlicePerChunk*StepPerSlice);\n\n    connFifo = conn->connFifo;\n    if (connFifo
      != nullptr) flags |= ConnFifoEnabled;\n\n    if (flags & RolePostSend) {\n      connStepPtr
      = conn->tail;\n      connEltsFifo = (T*)conn->buffs[NCCL_PROTO_SIMPLE];\n    }\n
      \   if (flags & RoleWaitSend) {\n      if ((flags & PatMode) == 0) ncclShmem.groups[group].sendConns[index]
      = conn; // WaitSend role saves since that's who needs it in setDataPtrs()\n
      \     flags |= (conn->flags & NCCL_NVLS_MIN_POLL) ? NvlsMinPolling : 0;\n      connStepPtr
      = conn->head;\n      connStepCache = loadStepValue(connStepPtr);\n      connStepSize
      = conn->stepSize/sizeof(T);\n      connEltsFifo = (T*)conn->buffs[NCCL_PROTO_SIMPLE];\n
      \     if (Direct) {\n        if (ipcRegFlag) {\n          // User buffers have
      been registered\n          if (conn->flags & (NCCL_P2P_WRITE | NCCL_P2P_READ))
      {\n            if (P2p) {\n              flags |= conn->flags & NCCL_P2P_WRITE
      ? DirectWrite : DirectRead;\n            } else if (connIndex == 1 && direct)
      {\n              flags |= DirectRead;  // scatter-reduce use direct pull\n            }
      else {\n              flags |= direct & NCCL_P2P_READ ? DirectRead : DirectWrite;\n
      \           }\n          } else if ((conn->flags & NCCL_NVLS_MIN_POLL)) {\n
      \           /* NVLS direct */\n            flags |= DirectWrite;\n          }\n
      \       }\n        if (netRegFlag) {\n          if (conn->flags & NCCL_DIRECT_NIC)
      {\n            flags |= NetRegMode;\n          }\n        }\n      }\n    }\n
      \ }\n\n public:\n  __device__ Primitives(\n      int tid, int nthreads, int
      const *recvPeers, int const *sendPeers,\n      void const *inputBuf, void *outputBuf,
      uint64_t redOpArg, uint8_t group=0,\n      uint8_t connIndexRecv = 0, uint8_t
      connIndexSend = 0, struct ncclDevWorkColl* collWork = nullptr,\n      struct
      ncclDevWorkP2p* p2pWork = nullptr, int stepSize_ = 0, int mode = primsModeDefault\n
      \   ):\n    tid(tid), nthreads(nthreads), tidInBlock(threadIdx.x), group(group),\n
      \   stepSize(stepSize_ == 0 ? ncclShmem.comm.buffSizes[NCCL_PROTO_SIMPLE]/NCCL_STEPS/sizeof(T)
      : stepSize_) {\n\n    int peer = -1;\n    flags = 0;\n    index = -1;\n    if
      (mode == primsModeDefault) { // Connect to ranks in sendPeers/recvPeers\n      //
      For send operations, we need an extra warp to overlap the threadfence and the
      copy\n      this->nworkers = nthreads - (MaxSend > 0 && nthreads >= NCCL_SIMPLE_EXTRA_GROUP_IF_NTHREADS_GE
      ? WARP_SIZE : 0);\n\n      int nrecv=0, nsend=0;\n      // Yes, for some template
      arguments this code will be unreachable.  That's fine.\n      // coverity[dead_error_line]\n
      \     while (nrecv < MaxRecv && recvPeers[nrecv] != -1) nrecv++;\n      // coverity[dead_error_line]\n
      \     while (nsend < MaxSend && sendPeers[nsend] != -1) nsend++;\n      this->fan
      = Fan(nrecv, nsend);\n\n      constexpr int ThreadPerSync =\n        MaxSend
      >= 16 || MaxRecv >= 16 ? 32 : // NVLS may have an arity > 8. In that case increase
      the size of the groups\n        MaxSend >= 8 || MaxRecv >= 8 ? 16 :\n        8;
      // Allows for all roles (WaitRecv/WaitSend/PostRecv/PostSend) within a single
      warp\n      static_assert(MaxSend <= ThreadPerSync && MaxRecv <= ThreadPerSync,
      \"Not enough threads to cover all peers\");\n\n      assert(2*(nrecv+nsend)
      <= nthreads); // Ensure no thread is assigned more than one role.\n      //
      Coverity assumes that index will equal tid based on the line below, but it doesn't
      consider the setting\n      // of flags.  This results in multiple false positive
      overruns being reported here and in all_reduce.h.\n      // Unfortunately, we've
      been unsuccessful in trying to silence them with a single directive here so\n
      \     // instead it's being done at the callers.\n      // coverity[assignment:FALSE]\n
      \     if      (tid < nrecv)                 { flags |= RoleWaitRecv; index =
      tid; }\n      // Yes, for some template arguments this code will be unreachable.
      \ That's fine.\n      // coverity[dead_error_begin]\n      else if (tid < nrecv+nsend)
      \          { flags |= RoleWaitSend; index = tid-nrecv; }\n      else if (nthreads-nsend
      <= tid)       { flags |= RolePostSend; index = tid-(nthreads-nsend); }\n      else
      if (nthreads-nrecv-nsend <= tid) { flags |= RolePostRecv; index = tid-(nthreads-nrecv-nsend);
      }\n\n      if (flags & (RoleWaitRecv|RolePostRecv)) peer = recvPeers[index];\n
      \     if (flags & (RoleWaitSend|RolePostSend)) peer = sendPeers[index];\n\n
      \     // Coverity thinks that index could be -1 here but that's not actually
      the case.\n      // coverity[negative_returns:FALSE]\n      int sendIpcReg;\n
      \     int recvIpcReg;\n      int sendNetReg;\n      int recvNetReg;\n      if
      (P2p) {\n        sendIpcReg = p2pWork ? p2pWork->sendIpcReg : 0;\n        recvIpcReg
      = p2pWork ? p2pWork->recvIpcReg : 0;\n        sendNetReg = p2pWork ? p2pWork->sendNetReg
      : 0;\n        recvNetReg = p2pWork ? p2pWork->recvNetReg : 0;\n      } else
      {\n        recvIpcReg = sendIpcReg = collWork ? collWork->regUsed : 0;\n        recvNetReg
      = sendNetReg = collWork ? collWork->netRegUsed : 0;\n      }\n\n      // coverity[overrun-call]
      => Coverity think prims.index can be greater than 1\n      if (flags & (RoleWaitRecv|RolePostRecv))
      loadRecvConn(ncclShmem.channel.peers[peer], connIndexRecv, collWork ? collWork->direct
      : 0, recvIpcReg, recvNetReg);\n      // coverity[overrun-call] => Coverity think
      prims.index can be greater than 1\n      if (flags & (RoleWaitSend|RolePostSend))
      loadSendConn(ncclShmem.channel.peers[peer], connIndexSend, collWork ? collWork->direct
      : 0, sendIpcReg, sendNetReg);\n\n      if (barrierAny(flags & NetDeviceUnpack))
      {\n        flags |= AnyNetDeviceUnpack;\n        // RoleWaitRecv starts at tid=0,
      so this creates the bitmask of which recv peers\n        // have NetDeviceUnpack.\n
      \       uint32_t mask = __ballot_sync(~0u, ((flags & RoleWaitRecv) && (flags
      & NetDeviceUnpack)) ? 1 : 0);\n        if (tid == 0) {\n          ncclShmem.groups[this->group].devicePlugin.unpack.unpackNetDeviceIndexMask
      = mask;\n        }\n      }\n\n      // coverity[negative_returns:FALSE] =>
      coverity thinks that index could be -1 but that's not actually the case\n      //
      coverity[var_deref_model] => coverity thinks work can dereferenced if NULL but
      this is not the case\n      setDataPtrs(inputBuf, outputBuf, redOpArg, (struct
      ncclDevWorkCollReg*)collWork, sendIpcReg || recvIpcReg, peer);\n      // coverity[uninit_member]
      => coverity thinks fan.n is not initialized\n    } else if (mode == primsModePatRs
      || mode == primsModePatAg) { // Connect to all ranks +/- 2^n\n      flags |=
      PatMode;\n      const int roles[5] = { RoleWaitRecv, RolePostRecv, RoleWaitSend,
      RolePostSend, RoleInput | RoleOutput };\n      if (tid < 5) flags |= roles[tid];\n\n
      \     int nranks = ncclShmem.comm.nRanks;\n      if (tid < 32 && ((1UL<<tid)
      < nranks)) {\n        int rank = ncclShmem.comm.rank;\n        uint32_t delta
      = 1 << tid;\n        // Load recv peer\n        int recvPeer = mode == primsModePatRs
      ? (rank - delta + nranks) % nranks : (rank + delta) % nranks;\n        struct
      ncclPatPeer* peer = ((struct ncclPatPeer*)recvPeers)+tid;\n        struct ncclConnInfo*
      conn = peer->conn = ncclShmem.channel.peers[recvPeer]->recv+connIndexRecv;\n
      \       peer->step = conn->step;\n        peer->buff = conn->buffs[NCCL_PROTO_SIMPLE];\n
      \       peer->stepCache = loadStepValue(peer->tailPtr = conn->tail);\n        peer->headPtr
      = conn->head;\n        peer->accSize = 0;\n        peer->connStepSize = conn->stepSize/sizeof(T);\n
      \       // Load send peer\n        int sendPeer = mode == primsModePatAg ? (rank
      - delta + nranks) % nranks : (rank + delta) % nranks;\n        peer = ((struct
      ncclPatPeer*)sendPeers)+tid;\n        conn = peer->conn = ncclShmem.channel.peers[sendPeer]->send+connIndexSend;\n
      \       peer->step = conn->step;\n        peer->connFifo = conn->connFifo;\n
      \       peer->buff = conn->buffs[NCCL_PROTO_SIMPLE];\n        peer->stepCache
      = loadStepValue(peer->headPtr = conn->head);\n        peer->tailPtr = conn->tail;\n
      \       peer->accSize = 0;\n        peer->connStepSize = conn->stepSize/sizeof(T);\n
      \     }\n      if (tid==0) {\n        ncclShmem.groups[group].userInput = (void*)inputBuf;\n
      \       ncclShmem.groups[group].userOutput = (void*)outputBuf;\n        ncclShmem.redOpArgs[0]
      = redOpArg;  // scaler for local input\n      }\n      patBarrier();\n    }\n
      \ } ~Primitives()"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __syncwarp
      Src: /src/nccl/src/device/prims_simple.h:59,1
    - Dst: barrier_sync
      Src: /src/nccl/src/device/prims_simple.h:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 64
    functionName: "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk,
      StepPerSlice, Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::barrier"
    functionSourceFile: /src/nccl/src/device/prims_simple.h
    functionUses: 0
    functionsReached:
    - barrier_sync
    - __syncwarp
    linkageType: ''
    returnType: __device__
    signature: __device__ barrier()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __syncwarp
      Src: /src/nccl/src/device/prims_simple.h:66,1
    - Dst: barrier_sync
      Src: /src/nccl/src/device/prims_simple.h:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 71
    functionName: "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk,
      StepPerSlice, Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::subBarrier"
    functionSourceFile: /src/nccl/src/device/prims_simple.h
    functionUses: 0
    functionsReached:
    - barrier_sync
    - __syncwarp
    linkageType: ''
    returnType: __device__
    signature: __device__ subBarrier()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: barrier_sync
      Src: /src/nccl/src/device/prims_simple.h:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 76
    functionName: "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk,
      StepPerSlice, Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::patBarrier"
    functionSourceFile: /src/nccl/src/device/prims_simple.h
    functionUses: 0
    functionsReached:
    - barrier_sync
    linkageType: ''
    returnType: __device__
    signature: __device__ patBarrier()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __any_sync
      Src: /src/nccl/src/device/prims_simple.h:80,1
    - Dst: barrier_red_or
      Src: /src/nccl/src/device/prims_simple.h:83,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - vote
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 85
    functionName: "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk,
      StepPerSlice, Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::barrierAny"
    functionSourceFile: /src/nccl/src/device/prims_simple.h
    functionUses: 0
    functionsReached:
    - __any_sync
    - barrier_red_or
    linkageType: ''
    returnType: __device__
    signature: __device__ barrierAny(int vote)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __any_sync
      Src: /src/nccl/src/device/prims_simple.h:88,1
    - Dst: barrier_red_or
      Src: /src/nccl/src/device/prims_simple.h:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - vote
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 93
    functionName: "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk,
      StepPerSlice, Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::subBarrierAny"
    functionSourceFile: /src/nccl/src/device/prims_simple.h
    functionUses: 0
    functionsReached:
    - __any_sync
    - barrier_red_or
    linkageType: ''
    returnType: __device__
    signature: __device__ subBarrierAny(int vote)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cvta_to_global
      Src: /src/nccl/src/device/prims_simple.h:99,1
    - Dst: ld_volatile_global
      Src: /src/nccl/src/device/prims_simple.h:105,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 95
    functionDepth: 2
    functionLinenumber: 95
    functionLinenumberEnd: 106
    functionName: "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk,
      StepPerSlice, Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::loadStepValue"
    functionSourceFile: /src/nccl/src/device/prims_simple.h
    functionUses: 0
    functionsReached:
    - cvta_to_global
    - ld_volatile_global
    linkageType: ''
    returnType: __device__
    signature: __device__ loadStepValue(uint64_t* ptr)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk, StepPerSlice,
        Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::loadStepValue"
      Src: /src/nccl/src/device/prims_simple.h:116,1
    - Dst: checkAbort
      Src: /src/nccl/src/device/prims_simple.h:117,1
    - Dst: loadInt
      Src: /src/nccl/src/device/prims_simple.h:142,1
    - Dst: ncclNetDeviceIncrementHead
      Src: /src/nccl/src/device/prims_simple.h:166,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 54
    argCount: 4
    argNames:
    - srcIx
    - dstIx
    - offset
    - nelts
    argTypes:
    - intptr_t
    - intptr_t
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 109
    functionDepth: 3
    functionLinenumber: 109
    functionLinenumberEnd: 170
    functionName: "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk,
      StepPerSlice, Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::waitPeer"
    functionSourceFile: /src/nccl/src/device/prims_simple.h
    functionUses: 0
    functionsReached:
    - "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk, StepPerSlice,
      Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::loadStepValue"
    - loadInt
    - ncclNetDeviceIncrementHead
    - checkAbort
    linkageType: ''
    returnType: __device__
    signature: __device__ waitPeer(intptr_t srcIx, intptr_t dstIx, int offset, int
      nelts)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fence_acq_rel_sys
      Src: /src/nccl/src/device/prims_simple.h:177,1
    - Dst: st_relaxed_sys_global
      Src: /src/nccl/src/device/prims_simple.h:179,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - dataStored
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 173
    functionDepth: 2
    functionLinenumber: 173
    functionLinenumberEnd: 181
    functionName: "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk,
      StepPerSlice, Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::postPeer"
    functionSourceFile: /src/nccl/src/device/prims_simple.h
    functionUses: 0
    functionsReached:
    - fence_acq_rel_sys
    - st_relaxed_sys_global
    linkageType: ''
    returnType: __device__
    signature: __device__ postPeer(bool dataStored)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: max
      Src: /src/nccl/src/device/prims_simple.h:194,1
    - Dst: divUp
      Src: /src/nccl/src/device/prims_simple.h:194,1
    - Dst: "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk, StepPerSlice,
        Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::waitPeer"
      Src: /src/nccl/src/device/prims_simple.h:236,1
    - Dst: "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk, StepPerSlice,
        Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::subBarrier"
      Src: /src/nccl/src/device/prims_simple.h:237,1
    - Dst: ncclNetDeviceUnpack
      Src: /src/nccl/src/device/prims_simple.h:242,1
    - Dst: "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk, StepPerSlice,
        Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::subBarrier"
      Src: /src/nccl/src/device/prims_simple.h:244,1
    - Dst: reduceCopy
      Src: /src/nccl/src/device/prims_simple.h:253,1
    - Dst: nsend
      Src: /src/nccl/src/device/prims_simple.h:256,1
    - Dst: reduceCopy
      Src: /src/nccl/src/device/prims_simple.h:261,1
    - Dst: reduceCopy
      Src: /src/nccl/src/device/prims_simple.h:271,1
    - Dst: nrecv
      Src: /src/nccl/src/device/prims_simple.h:275,1
    - Dst: reduceCopy
      Src: /src/nccl/src/device/prims_simple.h:279,1
    - Dst: nrecv
      Src: /src/nccl/src/device/prims_simple.h:283,1
    - Dst: nsend
      Src: /src/nccl/src/device/prims_simple.h:284,1
    - Dst: "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk, StepPerSlice,
        Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::barrier"
      Src: /src/nccl/src/device/prims_simple.h:293,1
    - Dst: "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk, StepPerSlice,
        Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::postPeer"
      Src: /src/nccl/src/device/prims_simple.h:294,1
    - Dst: "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk, StepPerSlice,
        Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::waitPeer"
      Src: /src/nccl/src/device/prims_simple.h:311,1
    - Dst: "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk, StepPerSlice,
        Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::barrier"
      Src: /src/nccl/src/device/prims_simple.h:313,1
    - Dst: "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk, StepPerSlice,
        Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::postPeer"
      Src: /src/nccl/src/device/prims_simple.h:315,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 50
    argCount: 4
    argNames:
    - srcIx
    - dstIx
    - nelem
    - postOp
    argTypes:
    - intptr_t
    - intptr_t
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 184
    functionDepth: 4
    functionLinenumber: 184
    functionLinenumberEnd: 319
    functionName: "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk,
      StepPerSlice, Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::genericOp"
    functionSourceFile: /src/nccl/src/device/prims_simple.h
    functionUses: 0
    functionsReached:
    - "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk, StepPerSlice,
      Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::subBarrier"
    - divUp
    - "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk, StepPerSlice,
      Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::postPeer"
    - nsend
    - nrecv
    - ncclNetDeviceUnpack
    - "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk, StepPerSlice,
      Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::waitPeer"
    - reduceCopy
    - max
    - "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk, StepPerSlice,
      Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::barrier"
    linkageType: ''
    returnType: __device__
    signature: "__device__ genericOp(\n      intptr_t srcIx, intptr_t dstIx, int nelem,
      bool postOp\n    )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: st_relaxed_sys_global
      Src: /src/nccl/src/device/prims_simple.h:325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - peer
    - connIndex
    - steps
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 322
    functionDepth: 2
    functionLinenumber: 322
    functionLinenumberEnd: 326
    functionName: "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk,
      StepPerSlice, Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::sendPeerNotify"
    functionSourceFile: /src/nccl/src/device/prims_simple.h
    functionUses: 4
    functionsReached:
    - st_relaxed_sys_global
    linkageType: ''
    returnType: __device__
    signature: __device__ sendPeerNotify(int peer, int connIndex, int steps)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: st_relaxed_sys_global
      Src: /src/nccl/src/device/prims_simple.h:332,1
    - Dst: ld_volatile_global
      Src: /src/nccl/src/device/prims_simple.h:333,1
    - Dst: checkAbort
      Src: /src/nccl/src/device/prims_simple.h:335,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - peer
    - connIndex
    - steps
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 328
    functionDepth: 2
    functionLinenumber: 328
    functionLinenumberEnd: 337
    functionName: "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk,
      StepPerSlice, Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::recvPeerNotify"
    functionSourceFile: /src/nccl/src/device/prims_simple.h
    functionUses: 3
    functionsReached:
    - checkAbort
    - ld_volatile_global
    - st_relaxed_sys_global
    linkageType: ''
    returnType: __device__
    signature: __device__ recvPeerNotify(int peer, int connIndex, int steps)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk, StepPerSlice,
        Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::loadStepValue"
      Src: /src/nccl/src/device/prims_simple.h:349,1
    - Dst: checkAbort
      Src: /src/nccl/src/device/prims_simple.h:350,1
    - Dst: loadInt
      Src: /src/nccl/src/device/prims_simple.h:355,1
    - Dst: "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk, StepPerSlice,
        Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::subBarrier"
      Src: /src/nccl/src/device/prims_simple.h:382,1
    - Dst: nrecv
      Src: /src/nccl/src/device/prims_simple.h:386,1
    - Dst: nsend
      Src: /src/nccl/src/device/prims_simple.h:392,1
    - Dst: Fn::template operator()<SlicePerChunk, 0, Recv*MaxRecv, 0, Send*MaxSend,
        MultimemSrcs, MultimemDsts>
      Src: /src/nccl/src/device/prims_simple.h:394,1
    - Dst: "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk, StepPerSlice,
        Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::barrier"
      Src: /src/nccl/src/device/prims_simple.h:399,1
    - Dst: "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk, StepPerSlice,
        Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::barrier"
      Src: /src/nccl/src/device/prims_simple.h:408,1
    - Dst: fence_acq_rel_sys
      Src: /src/nccl/src/device/prims_simple.h:414,1
    - Dst: st_relaxed_sys_global
      Src: /src/nccl/src/device/prims_simple.h:416,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 69
    argCount: 1
    argNames:
    - fn
    argTypes:
    - Fn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 340
    functionDepth: 3
    functionLinenumber: 340
    functionLinenumberEnd: 419
    functionName: "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk,
      StepPerSlice, Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::process"
    functionSourceFile: /src/nccl/src/device/prims_simple.h
    functionUses: 0
    functionsReached:
    - "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk, StepPerSlice,
      Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::loadStepValue"
    - "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk, StepPerSlice,
      Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::subBarrier"
    - loadInt
    - Fn::template operator()<SlicePerChunk, 0, Recv*MaxRecv, 0, Send*MaxSend, MultimemSrcs,
      MultimemDsts>
    - st_relaxed_sys_global
    - nsend
    - nrecv
    - checkAbort
    - fence_acq_rel_sys
    - "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk, StepPerSlice,
      Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::barrier"
    linkageType: ''
    returnType: __device__
    signature: __device__ process(Fn &&fn, uint32_t sendDirectFlag = 0, uint32_t recvDirectFlag
      = 0)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: max
      Src: /src/nccl/src/device/prims_simple.h:432,1
    - Dst: DIVUP
      Src: /src/nccl/src/device/prims_simple.h:432,1
    - Dst: max
      Src: /src/nccl/src/device/prims_simple.h:436,1
    - Dst: min
      Src: /src/nccl/src/device/prims_simple.h:436,1
    - Dst: "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk, StepPerSlice,
        Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::waitPeer"
      Src: /src/nccl/src/device/prims_simple.h:444,1
    - Dst: "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk, StepPerSlice,
        Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::subBarrier"
      Src: /src/nccl/src/device/prims_simple.h:445,1
    - Dst: nsend
      Src: /src/nccl/src/device/prims_simple.h:448,1
    - Dst: nsend
      Src: /src/nccl/src/device/prims_simple.h:449,1
    - Dst: min
      Src: /src/nccl/src/device/prims_simple.h:454,1
    - Dst: reduceCopy
      Src: /src/nccl/src/device/prims_simple.h:456,1
    - Dst: "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk, StepPerSlice,
        Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::waitPeer"
      Src: /src/nccl/src/device/prims_simple.h:466,1
    - Dst: "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk, StepPerSlice,
        Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::subBarrier"
      Src: /src/nccl/src/device/prims_simple.h:467,1
    - Dst: nrecv
      Src: /src/nccl/src/device/prims_simple.h:469,1
    - Dst: nrecv
      Src: /src/nccl/src/device/prims_simple.h:470,1
    - Dst: min
      Src: /src/nccl/src/device/prims_simple.h:474,1
    - Dst: reduceCopy
      Src: /src/nccl/src/device/prims_simple.h:476,1
    - Dst: "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk, StepPerSlice,
        Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::barrierAny"
      Src: /src/nccl/src/device/prims_simple.h:480,1
    - Dst: "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk, StepPerSlice,
        Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::postPeer"
      Src: /src/nccl/src/device/prims_simple.h:481,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 39
    argCount: 8
    argNames:
    - inpIx
    - outIx
    - totalElem
    - peerElem
    - peerOffset
    - skip
    - shift
    - postOp
    argTypes:
    - intptr_t
    - intptr_t
    - ssize_t
    - int
    - ssize_t
    - int
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 426
    functionDepth: 4
    functionLinenumber: 426
    functionLinenumberEnd: 484
    functionName: "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk,
      StepPerSlice, Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::ScatterGatherOp"
    functionSourceFile: /src/nccl/src/device/prims_simple.h
    functionUses: 0
    functionsReached:
    - "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk, StepPerSlice,
      Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::subBarrier"
    - min
    - DIVUP
    - "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk, StepPerSlice,
      Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::postPeer"
    - nsend
    - nrecv
    - reduceCopy
    - "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk, StepPerSlice,
      Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::waitPeer"
    - "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk, StepPerSlice,
      Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::barrierAny"
    - max
    linkageType: ''
    returnType: __device__
    signature: __device__ ScatterGatherOp(intptr_t inpIx, intptr_t outIx, ssize_t
      totalElem, int peerElem, ssize_t peerOffset, int skip, int shift, bool postOp)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: ncclNetDeviceUnpackSetup
      Src: /src/nccl/src/device/prims_simple.h:492,1
    - Dst: roundUp
      Src: /src/nccl/src/device/prims_simple.h:496,1
    - Dst: "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk, StepPerSlice,
        Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::loadStepValue"
      Src: /src/nccl/src/device/prims_simple.h:505,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 49
    argCount: 5
    argNames:
    - peer
    - connIndex
    - direct
    - ipcRegFlag
    - netRegFlag
    argTypes:
    - ncclDevChannelPeer*
    - int
    - uint32_t
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 486
    functionDepth: 3
    functionLinenumber: 486
    functionLinenumberEnd: 536
    functionName: "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk,
      StepPerSlice, Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::loadRecvConn"
    functionSourceFile: /src/nccl/src/device/prims_simple.h
    functionUses: 0
    functionsReached:
    - roundUp
    - "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk, StepPerSlice,
      Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::loadStepValue"
    - ncclNetDeviceUnpackSetup
    linkageType: ''
    returnType: void
    signature: void loadRecvConn(ncclDevChannelPeer *peer, int connIndex, uint32_t
      direct, int ipcRegFlag, int netRegFlag)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: roundUp
      Src: /src/nccl/src/device/prims_simple.h:541,1
    - Dst: "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk, StepPerSlice,
        Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::loadStepValue"
      Src: /src/nccl/src/device/prims_simple.h:554,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 42
    argCount: 5
    argNames:
    - peer
    - connIndex
    - direct
    - ipcRegFlag
    - netRegFlag
    argTypes:
    - ncclDevChannelPeer*
    - int
    - uint32_t
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 538
    functionDepth: 3
    functionLinenumber: 538
    functionLinenumberEnd: 580
    functionName: "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk,
      StepPerSlice, Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::loadSendConn"
    functionSourceFile: /src/nccl/src/device/prims_simple.h
    functionUses: 0
    functionsReached:
    - roundUp
    - "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk, StepPerSlice,
      Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::loadStepValue"
    linkageType: ''
    returnType: void
    signature: void loadSendConn(ncclDevChannelPeer *peer, int connIndex, uint32_t
      direct, int ipcRegFlag, int netRegFlag)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: Fan
      Src: /src/nccl/src/device/prims_simple.h:605,1
    - Dst: assert
      Src: /src/nccl/src/device/prims_simple.h:613,1
    - Dst: "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk, StepPerSlice,
        Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::loadRecvConn"
      Src: /src/nccl/src/device/prims_simple.h:646,1
    - Dst: "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk, StepPerSlice,
        Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::loadSendConn"
      Src: /src/nccl/src/device/prims_simple.h:648,1
    - Dst: "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk, StepPerSlice,
        Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::barrierAny"
      Src: /src/nccl/src/device/prims_simple.h:650,1
    - Dst: __ballot_sync
      Src: /src/nccl/src/device/prims_simple.h:654,1
    - Dst: setDataPtrs
      Src: /src/nccl/src/device/prims_simple.h:662,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (2*(nrecv+nsend) <= nthreads)
      pos:
        line_end: 612
        line_start: 612
        source_file: /src/nccl/src/device/prims_simple.h
    constantsTouched: []
    func_position:
      end: 664
      start: 595
    functionDepth: 4
    functionLinenumber: 595
    functionLinenumberEnd: 664
    functionName: "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk,
      StepPerSlice, Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::if"
    functionSourceFile: /src/nccl/src/device/prims_simple.h
    functionUses: 0
    functionsReached:
    - setDataPtrs
    - "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk, StepPerSlice,
      Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::loadRecvConn"
    - __ballot_sync
    - assert
    - "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk, StepPerSlice,
      Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::barrierAny"
    - Fan
    - "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk, StepPerSlice,
      Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::loadSendConn"
    linkageType: ''
    returnType: void
    signature: void if (mode == primsModeDefault)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk, StepPerSlice,
        Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::loadStepValue"
      Src: /src/nccl/src/device/prims_simple.h:679,1
    - Dst: "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk, StepPerSlice,
        Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::loadStepValue"
      Src: /src/nccl/src/device/prims_simple.h:690,1
    - Dst: "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk, StepPerSlice,
        Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::patBarrier"
      Src: /src/nccl/src/device/prims_simple.h:700,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 664
    functionDepth: 3
    functionLinenumber: 664
    functionLinenumberEnd: 701
    functionName: "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk,
      StepPerSlice, Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::if"
    functionSourceFile: /src/nccl/src/device/prims_simple.h
    functionUses: 0
    functionsReached:
    - "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk, StepPerSlice,
      Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::loadStepValue"
    - "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk, StepPerSlice,
      Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::patBarrier"
    linkageType: ''
    returnType: else
    signature: else if (mode == primsModePatRs || mode == primsModePatAg)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: checkAbort
      Src: /src/nccl/src/device/prims_simple.h:756,1
    - Dst: reinterpret_cast<void*>
      Src: /src/nccl/src/device/prims_simple.h:764,1
    - Dst: checkAbort
      Src: /src/nccl/src/device/prims_simple.h:773,1
    - Dst: reinterpret_cast<T*>
      Src: /src/nccl/src/device/prims_simple.h:777,1
    - Dst: checkAbort
      Src: /src/nccl/src/device/prims_simple.h:792,1
    - Dst: reinterpret_cast<T*>
      Src: /src/nccl/src/device/prims_simple.h:811,1
    - Dst: checkAbort
      Src: /src/nccl/src/device/prims_simple.h:822,1
    - Dst: reinterpret_cast<T*>
      Src: /src/nccl/src/device/prims_simple.h:826,1
    - Dst: checkAbort
      Src: /src/nccl/src/device/prims_simple.h:833,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 75
    argCount: 6
    argNames:
    - inputBuf
    - outputBuf
    - redOpArg
    - work
    - ipcReg
    - peer
    argTypes:
    - void*
    - void*
    - uint64_t
    - struct ncclDevWorkCollReg*
    - uint8_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 848
      start: 737
    functionDepth: 0
    functionLinenumber: 737
    functionLinenumberEnd: 848
    functionName: setDataPtrs
    functionSourceFile: /src/nccl/src/device/prims_simple.h
    functionUses: 2
    functionsReached:
    - reinterpret_cast<void*>
    - reinterpret_cast<T*>
    - checkAbort
    linkageType: ''
    returnType: __device__
    signature: __device__ setDataPtrs(void const *inputBuf, void *outputBuf, uint64_t
      redOpArg, struct ncclDevWorkCollReg* work, uint8_t ipcReg, int peer)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - delta
    argTypes:
    - intptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 855
      start: 850
    functionDepth: 0
    functionLinenumber: 850
    functionLinenumberEnd: 855
    functionName: moveDataPtrs
    functionSourceFile: /src/nccl/src/device/prims_simple.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __device__
    signature: __device__ moveDataPtrs(intptr_t delta)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: genericOp<0, 0, 0, 1, Input, -1>
      Src: /src/nccl/src/device/prims_simple.h:858,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inpIx
    - eltN
    argTypes:
    - intptr_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 859
      start: 857
    functionDepth: 0
    functionLinenumber: 857
    functionLinenumberEnd: 859
    functionName: send
    functionSourceFile: /src/nccl/src/device/prims_simple.h
    functionUses: 11
    functionsReached:
    - genericOp<0, 0, 0, 1, Input, -1>
    linkageType: ''
    returnType: __device__
    signature: __device__ send(intptr_t inpIx, int eltN)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: genericOp<0, 0, 0, 1, Output, -1>
      Src: /src/nccl/src/device/prims_simple.h:861,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - outIx
    - eltN
    argTypes:
    - intptr_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 862
      start: 860
    functionDepth: 0
    functionLinenumber: 860
    functionLinenumberEnd: 862
    functionName: sendFromOutput
    functionSourceFile: /src/nccl/src/device/prims_simple.h
    functionUses: 0
    functionsReached:
    - genericOp<0, 0, 0, 1, Output, -1>
    linkageType: ''
    returnType: __device__
    signature: __device__ sendFromOutput(intptr_t outIx, int eltN)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: genericOp<0, 1, 0, 1, Input, -1>
      Src: /src/nccl/src/device/prims_simple.h:864,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - inpIx
    - outIx
    - eltN
    argTypes:
    - intptr_t
    - intptr_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 865
      start: 863
    functionDepth: 0
    functionLinenumber: 863
    functionLinenumberEnd: 865
    functionName: directSend
    functionSourceFile: /src/nccl/src/device/prims_simple.h
    functionUses: 12
    functionsReached:
    - genericOp<0, 1, 0, 1, Input, -1>
    linkageType: ''
    returnType: __device__
    signature: __device__ directSend(intptr_t inpIx, intptr_t outIx, int eltN)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: genericOp<0, 1, 0, 1, Output, -1>
      Src: /src/nccl/src/device/prims_simple.h:867,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - outIx
    - eltN
    argTypes:
    - intptr_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 868
      start: 866
    functionDepth: 0
    functionLinenumber: 866
    functionLinenumberEnd: 868
    functionName: directSendFromOutput
    functionSourceFile: /src/nccl/src/device/prims_simple.h
    functionUses: 2
    functionsReached:
    - genericOp<0, 1, 0, 1, Output, -1>
    linkageType: ''
    returnType: __device__
    signature: __device__ directSendFromOutput(intptr_t outIx, int eltN)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: genericOp<0, 0, 1, 0, -1, Output>
      Src: /src/nccl/src/device/prims_simple.h:871,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - outIx
    - eltN
    argTypes:
    - intptr_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 872
      start: 870
    functionDepth: 0
    functionLinenumber: 870
    functionLinenumberEnd: 872
    functionName: recv
    functionSourceFile: /src/nccl/src/device/prims_simple.h
    functionUses: 8
    functionsReached:
    - genericOp<0, 0, 1, 0, -1, Output>
    linkageType: ''
    returnType: __device__
    signature: __device__ recv(intptr_t outIx, int eltN, bool postOp=false)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: genericOp<1, 0, 1, 0, -1, Output>
      Src: /src/nccl/src/device/prims_simple.h:874,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - outIx
    - eltN
    argTypes:
    - intptr_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 875
      start: 873
    functionDepth: 0
    functionLinenumber: 873
    functionLinenumberEnd: 875
    functionName: directRecv
    functionSourceFile: /src/nccl/src/device/prims_simple.h
    functionUses: 11
    functionsReached:
    - genericOp<1, 0, 1, 0, -1, Output>
    linkageType: ''
    returnType: __device__
    signature: __device__ directRecv(intptr_t outIx, int eltN, bool postOp=false)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: genericOp<1, 0, 1, 0, -1, Output>
      Src: /src/nccl/src/device/prims_simple.h:877,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - inpIx
    - outIx
    - eltN
    argTypes:
    - intptr_t
    - intptr_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 878
      start: 876
    functionDepth: 0
    functionLinenumber: 876
    functionLinenumberEnd: 878
    functionName: directRecvCopy
    functionSourceFile: /src/nccl/src/device/prims_simple.h
    functionUses: 0
    functionsReached:
    - genericOp<1, 0, 1, 0, -1, Output>
    linkageType: ''
    returnType: __device__
    signature: __device__ directRecvCopy(intptr_t inpIx, intptr_t outIx, int eltN)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: genericOp<0, 0, 0, 1, Input, Output>
      Src: /src/nccl/src/device/prims_simple.h:881,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - inpIx
    - outIx
    - eltN
    argTypes:
    - intptr_t
    - intptr_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 882
      start: 880
    functionDepth: 0
    functionLinenumber: 880
    functionLinenumberEnd: 882
    functionName: copySend
    functionSourceFile: /src/nccl/src/device/prims_simple.h
    functionUses: 0
    functionsReached:
    - genericOp<0, 0, 0, 1, Input, Output>
    linkageType: ''
    returnType: __device__
    signature: __device__ copySend(intptr_t inpIx, intptr_t outIx, int eltN, bool
      postOp=false)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: genericOp<0, 1, 0, 1, Input, Output>
      Src: /src/nccl/src/device/prims_simple.h:884,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - inpIx
    - outIx
    - eltN
    argTypes:
    - intptr_t
    - intptr_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 885
      start: 883
    functionDepth: 0
    functionLinenumber: 883
    functionLinenumberEnd: 885
    functionName: directCopySend
    functionSourceFile: /src/nccl/src/device/prims_simple.h
    functionUses: 4
    functionsReached:
    - genericOp<0, 1, 0, 1, Input, Output>
    linkageType: ''
    returnType: __device__
    signature: __device__ directCopySend(intptr_t inpIx, intptr_t outIx, int eltN,
      bool postOp=false)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: genericOp<0, 0, 1, 1, -1, -1>
      Src: /src/nccl/src/device/prims_simple.h:888,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - eltN
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 889
      start: 887
    functionDepth: 0
    functionLinenumber: 887
    functionLinenumberEnd: 889
    functionName: recvSend
    functionSourceFile: /src/nccl/src/device/prims_simple.h
    functionUses: 0
    functionsReached:
    - genericOp<0, 0, 1, 1, -1, -1>
    linkageType: ''
    returnType: __device__
    signature: __device__ recvSend(int eltN, bool postOp=false)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: genericOp<0, 0, 1, 1, -1, Output>
      Src: /src/nccl/src/device/prims_simple.h:891,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - outIx
    - eltN
    argTypes:
    - intptr_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 892
      start: 890
    functionDepth: 0
    functionLinenumber: 890
    functionLinenumberEnd: 892
    functionName: recvCopySend
    functionSourceFile: /src/nccl/src/device/prims_simple.h
    functionUses: 0
    functionsReached:
    - genericOp<0, 0, 1, 1, -1, Output>
    linkageType: ''
    returnType: __device__
    signature: __device__ recvCopySend(intptr_t outIx, int eltN, bool postOp=false)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: genericOp<1, 1, 1, 1, -1, Output>
      Src: /src/nccl/src/device/prims_simple.h:894,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - inpIx
    - outIx
    - eltN
    argTypes:
    - intptr_t
    - intptr_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 895
      start: 893
    functionDepth: 0
    functionLinenumber: 893
    functionLinenumberEnd: 895
    functionName: directRecvCopyDirectSend
    functionSourceFile: /src/nccl/src/device/prims_simple.h
    functionUses: 12
    functionsReached:
    - genericOp<1, 1, 1, 1, -1, Output>
    linkageType: ''
    returnType: __device__
    signature: __device__ directRecvCopyDirectSend(intptr_t inpIx, intptr_t outIx,
      int eltN, bool postOp=false)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: genericOp<1, 1, 1, 1, -1, -1>
      Src: /src/nccl/src/device/prims_simple.h:897,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - inpIx
    - outIx
    - eltN
    argTypes:
    - intptr_t
    - intptr_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 898
      start: 896
    functionDepth: 0
    functionLinenumber: 896
    functionLinenumberEnd: 898
    functionName: directRecvDirectSend
    functionSourceFile: /src/nccl/src/device/prims_simple.h
    functionUses: 2
    functionsReached:
    - genericOp<1, 1, 1, 1, -1, -1>
    linkageType: ''
    returnType: __device__
    signature: __device__ directRecvDirectSend(intptr_t inpIx, intptr_t outIx, int
      eltN, bool postOp=false)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: genericOp<0, 1, 1, 1, -1, -1>
      Src: /src/nccl/src/device/prims_simple.h:900,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - outIx
    - eltN
    argTypes:
    - intptr_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 901
      start: 899
    functionDepth: 0
    functionLinenumber: 899
    functionLinenumberEnd: 901
    functionName: recvDirectSend
    functionSourceFile: /src/nccl/src/device/prims_simple.h
    functionUses: 0
    functionsReached:
    - genericOp<0, 1, 1, 1, -1, -1>
    linkageType: ''
    returnType: __device__
    signature: __device__ recvDirectSend(intptr_t outIx, int eltN, bool postOp=false)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: genericOp<1, 0, 1, 1, -1, -1>
      Src: /src/nccl/src/device/prims_simple.h:903,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - outIx
    - eltN
    argTypes:
    - intptr_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 904
      start: 902
    functionDepth: 0
    functionLinenumber: 902
    functionLinenumberEnd: 904
    functionName: directRecvSend
    functionSourceFile: /src/nccl/src/device/prims_simple.h
    functionUses: 0
    functionsReached:
    - genericOp<1, 0, 1, 1, -1, -1>
    linkageType: ''
    returnType: __device__
    signature: __device__ directRecvSend(intptr_t outIx, int eltN, bool postOp=false)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: genericOp<0, 1, 1, 1, -1, Output>
      Src: /src/nccl/src/device/prims_simple.h:906,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - outIx
    - eltN
    argTypes:
    - intptr_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 907
      start: 905
    functionDepth: 0
    functionLinenumber: 905
    functionLinenumberEnd: 907
    functionName: recvCopyDirectSend
    functionSourceFile: /src/nccl/src/device/prims_simple.h
    functionUses: 0
    functionsReached:
    - genericOp<0, 1, 1, 1, -1, Output>
    linkageType: ''
    returnType: __device__
    signature: __device__ recvCopyDirectSend(intptr_t outIx, int eltN, bool postOp=false)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: genericOp<0, 0, 1, 0, Input, Output>
      Src: /src/nccl/src/device/prims_simple.h:910,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - inpIx
    - outIx
    - eltN
    argTypes:
    - intptr_t
    - intptr_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 911
      start: 909
    functionDepth: 0
    functionLinenumber: 909
    functionLinenumberEnd: 911
    functionName: recvReduceCopy
    functionSourceFile: /src/nccl/src/device/prims_simple.h
    functionUses: 2
    functionsReached:
    - genericOp<0, 0, 1, 0, Input, Output>
    linkageType: ''
    returnType: __device__
    signature: __device__ recvReduceCopy(intptr_t inpIx, intptr_t outIx, int eltN,
      bool postOp=false)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: genericOp<1, 0, 1, 0, Input, Output>
      Src: /src/nccl/src/device/prims_simple.h:913,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - inpIx
    - outIx
    - eltN
    argTypes:
    - intptr_t
    - intptr_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 914
      start: 912
    functionDepth: 0
    functionLinenumber: 912
    functionLinenumberEnd: 914
    functionName: directRecvReduceCopy
    functionSourceFile: /src/nccl/src/device/prims_simple.h
    functionUses: 2
    functionsReached:
    - genericOp<1, 0, 1, 0, Input, Output>
    linkageType: ''
    returnType: __device__
    signature: __device__ directRecvReduceCopy(intptr_t inpIx, intptr_t outIx, int
      eltN, bool postOp=false)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: genericOp<0, 0, 1, 1, Input, -1>
      Src: /src/nccl/src/device/prims_simple.h:917,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inpIx
    - eltN
    argTypes:
    - intptr_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 918
      start: 916
    functionDepth: 0
    functionLinenumber: 916
    functionLinenumberEnd: 918
    functionName: recvReduceSend
    functionSourceFile: /src/nccl/src/device/prims_simple.h
    functionUses: 2
    functionsReached:
    - genericOp<0, 0, 1, 1, Input, -1>
    linkageType: ''
    returnType: __device__
    signature: __device__ recvReduceSend(intptr_t inpIx, int eltN, bool postOp=false)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: genericOp<1, 0, 1, 1, Input, -1>
      Src: /src/nccl/src/device/prims_simple.h:920,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inpIx
    - eltN
    argTypes:
    - intptr_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 921
      start: 919
    functionDepth: 0
    functionLinenumber: 919
    functionLinenumberEnd: 921
    functionName: directRecvReduceSend
    functionSourceFile: /src/nccl/src/device/prims_simple.h
    functionUses: 0
    functionsReached:
    - genericOp<1, 0, 1, 1, Input, -1>
    linkageType: ''
    returnType: __device__
    signature: __device__ directRecvReduceSend(intptr_t inpIx, int eltN, bool postOp=false)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: genericOp<0, 1, 1, 1, Input, -1>
      Src: /src/nccl/src/device/prims_simple.h:923,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - inpIx
    - outIx
    - eltN
    argTypes:
    - intptr_t
    - intptr_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 924
      start: 922
    functionDepth: 0
    functionLinenumber: 922
    functionLinenumberEnd: 924
    functionName: recvReduceDirectSend
    functionSourceFile: /src/nccl/src/device/prims_simple.h
    functionUses: 1
    functionsReached:
    - genericOp<0, 1, 1, 1, Input, -1>
    linkageType: ''
    returnType: __device__
    signature: __device__ recvReduceDirectSend(intptr_t inpIx, intptr_t outIx, int
      eltN, bool postOp=false)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: genericOp<1, 1, 1, 1, Input, -1>
      Src: /src/nccl/src/device/prims_simple.h:926,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - inpIx
    - outIx
    - eltN
    argTypes:
    - intptr_t
    - intptr_t
    - ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 927
      start: 925
    functionDepth: 0
    functionLinenumber: 925
    functionLinenumberEnd: 927
    functionName: directRecvReduceDirectSend
    functionSourceFile: /src/nccl/src/device/prims_simple.h
    functionUses: 7
    functionsReached:
    - genericOp<1, 1, 1, 1, Input, -1>
    linkageType: ''
    returnType: __device__
    signature: __device__ directRecvReduceDirectSend(intptr_t inpIx, intptr_t outIx,
      ssize_t eltN, bool postOp=false)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: genericOp<0, 0, 1, 1, Input, Output>
      Src: /src/nccl/src/device/prims_simple.h:930,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - inpIx
    - outIx
    - eltN
    argTypes:
    - intptr_t
    - intptr_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 931
      start: 929
    functionDepth: 0
    functionLinenumber: 929
    functionLinenumberEnd: 931
    functionName: recvReduceCopySend
    functionSourceFile: /src/nccl/src/device/prims_simple.h
    functionUses: 0
    functionsReached:
    - genericOp<0, 0, 1, 1, Input, Output>
    linkageType: ''
    returnType: __device__
    signature: __device__ recvReduceCopySend(intptr_t inpIx, intptr_t outIx, int eltN,
      bool postOp=false)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: genericOp<0, 1, 1, 1, Input, Output>
      Src: /src/nccl/src/device/prims_simple.h:934,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - inpIx
    - outIx
    - eltN
    argTypes:
    - intptr_t
    - intptr_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 935
      start: 932
    functionDepth: 0
    functionLinenumber: 932
    functionLinenumberEnd: 935
    functionName: recvReduceCopyDirectSend
    functionSourceFile: /src/nccl/src/device/prims_simple.h
    functionUses: 0
    functionsReached:
    - genericOp<0, 1, 1, 1, Input, Output>
    linkageType: ''
    returnType: __device__
    signature: __device__ recvReduceCopyDirectSend(intptr_t inpIx, intptr_t outIx,
      int eltN, bool postOp=false)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: genericOp<1, 1, 1, 1, Input, Output>
      Src: /src/nccl/src/device/prims_simple.h:937,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - inpIx
    - outIx
    - eltN
    argTypes:
    - intptr_t
    - intptr_t
    - ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 938
      start: 936
    functionDepth: 0
    functionLinenumber: 936
    functionLinenumberEnd: 938
    functionName: directRecvReduceCopyDirectSend
    functionSourceFile: /src/nccl/src/device/prims_simple.h
    functionUses: 4
    functionsReached:
    - genericOp<1, 1, 1, 1, Input, Output>
    linkageType: ''
    returnType: __device__
    signature: __device__ directRecvReduceCopyDirectSend(intptr_t inpIx, intptr_t
      outIx, ssize_t eltN, bool postOp=false)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ScatterGatherOp<0, 0, 0, 1>
      Src: /src/nccl/src/device/prims_simple.h:942,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - inpIx
    - totalElem
    - peerElem
    - peerOffset
    - skip
    - shift
    argTypes:
    - intptr_t
    - ssize_t
    - int
    - ssize_t
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 943
      start: 940
    functionDepth: 0
    functionLinenumber: 940
    functionLinenumberEnd: 943
    functionName: scatter
    functionSourceFile: /src/nccl/src/device/prims_simple.h
    functionUses: 4
    functionsReached:
    - ScatterGatherOp<0, 0, 0, 1>
    linkageType: ''
    returnType: __device__
    signature: __device__ scatter(intptr_t inpIx, ssize_t totalElem, int peerElem,
      ssize_t peerOffset, int skip, int shift)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ScatterGatherOp<0, 1, 0, 1>
      Src: /src/nccl/src/device/prims_simple.h:946,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - inpIx
    - totalElem
    - peerElem
    - peerOffset
    - skip
    - shift
    argTypes:
    - intptr_t
    - ssize_t
    - int
    - ssize_t
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 947
      start: 944
    functionDepth: 0
    functionLinenumber: 944
    functionLinenumberEnd: 947
    functionName: directScatter
    functionSourceFile: /src/nccl/src/device/prims_simple.h
    functionUses: 0
    functionsReached:
    - ScatterGatherOp<0, 1, 0, 1>
    linkageType: ''
    returnType: __device__
    signature: __device__ directScatter(intptr_t inpIx, ssize_t totalElem, int peerElem,
      ssize_t peerOffset, int skip, int shift)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ScatterGatherOp<0, 0, 1, 0>
      Src: /src/nccl/src/device/prims_simple.h:951,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - outIx
    - totalElem
    - peerElem
    - peerOffset
    - skip
    - shift
    argTypes:
    - intptr_t
    - ssize_t
    - int
    - ssize_t
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 952
      start: 949
    functionDepth: 0
    functionLinenumber: 949
    functionLinenumberEnd: 952
    functionName: gather
    functionSourceFile: /src/nccl/src/device/prims_simple.h
    functionUses: 3
    functionsReached:
    - ScatterGatherOp<0, 0, 1, 0>
    linkageType: ''
    returnType: __device__
    signature: __device__ gather(intptr_t outIx, ssize_t totalElem, int peerElem,
      ssize_t peerOffset, int skip, int shift, bool postOp=false)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ScatterGatherOp<1, 0, 1, 0>
      Src: /src/nccl/src/device/prims_simple.h:955,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - outIx
    - totalElem
    - peerElem
    - peerOffset
    - skip
    - shift
    argTypes:
    - intptr_t
    - ssize_t
    - int
    - ssize_t
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 956
      start: 953
    functionDepth: 0
    functionLinenumber: 953
    functionLinenumberEnd: 956
    functionName: directGather
    functionSourceFile: /src/nccl/src/device/prims_simple.h
    functionUses: 1
    functionsReached:
    - ScatterGatherOp<1, 0, 1, 0>
    linkageType: ''
    returnType: __device__
    signature: __device__ directGather(intptr_t outIx, ssize_t totalElem, int peerElem,
      ssize_t peerOffset, int skip, int shift)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: patBarrier
      Src: /src/nccl/src/device/prims_simple.h:959,1
    - Dst: patBarrier
      Src: /src/nccl/src/device/prims_simple.h:959,1
    - Dst: loadStepValue
      Src: /src/nccl/src/device/prims_simple.h:982,1
    - Dst: checkAbort
      Src: /src/nccl/src/device/prims_simple.h:983,1
    - Dst: loadStepValue
      Src: /src/nccl/src/device/prims_simple.h:989,1
    - Dst: checkAbort
      Src: /src/nccl/src/device/prims_simple.h:990,1
    - Dst: patBarrier
      Src: /src/nccl/src/device/prims_simple.h:1013,1
    - Dst: reduceCopy
      Src: /src/nccl/src/device/prims_simple.h:1020,1
    - Dst: st_relaxed_sys_global
      Src: /src/nccl/src/device/prims_simple.h:1030,1
    - Dst: st_relaxed_sys_global
      Src: /src/nccl/src/device/prims_simple.h:1034,1
    - Dst: atomicMax
      Src: /src/nccl/src/device/prims_simple.h:1038,1
    - Dst: atomicMax
      Src: /src/nccl/src/device/prims_simple.h:1039,1
    - Dst: patBarrier
      Src: /src/nccl/src/device/prims_simple.h:1041,1
    - Dst: fence_acq_rel_sys
      Src: /src/nccl/src/device/prims_simple.h:1044,1
    - Dst: st_relaxed_sys_global
      Src: /src/nccl/src/device/prims_simple.h:1045,1
    - Dst: st_relaxed_sys_global
      Src: /src/nccl/src/device/prims_simple.h:1048,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 74
    argCount: 2
    argNames:
    - ps
    - shmem
    argTypes:
    - struct ncclPatStep*
    - struct ncclPatShmem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1050
      start: 958
    functionDepth: 2
    functionLinenumber: 958
    functionLinenumberEnd: 1050
    functionName: patReduce
    functionSourceFile: /src/nccl/src/device/prims_simple.h
    functionUses: 0
    functionsReached:
    - st_relaxed_sys_global
    - loadStepValue
    - reduceCopy
    - checkAbort
    - fence_acq_rel_sys
    - patBarrier
    - atomicMax
    linkageType: ''
    returnType: __device__
    signature: __device__ patReduce(struct ncclPatStep* ps, struct ncclPatShmem* shmem)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: patBarrier
      Src: /src/nccl/src/device/prims_simple.h:1053,1
    - Dst: patBarrier
      Src: /src/nccl/src/device/prims_simple.h:1053,1
    - Dst: loadStepValue
      Src: /src/nccl/src/device/prims_simple.h:1076,1
    - Dst: checkAbort
      Src: /src/nccl/src/device/prims_simple.h:1077,1
    - Dst: loadStepValue
      Src: /src/nccl/src/device/prims_simple.h:1089,1
    - Dst: checkAbort
      Src: /src/nccl/src/device/prims_simple.h:1090,1
    - Dst: patBarrier
      Src: /src/nccl/src/device/prims_simple.h:1106,1
    - Dst: reduceCopy
      Src: /src/nccl/src/device/prims_simple.h:1114,1
    - Dst: st_relaxed_sys_global
      Src: /src/nccl/src/device/prims_simple.h:1124,1
    - Dst: st_relaxed_sys_global
      Src: /src/nccl/src/device/prims_simple.h:1128,1
    - Dst: atomicMax
      Src: /src/nccl/src/device/prims_simple.h:1132,1
    - Dst: atomicMax
      Src: /src/nccl/src/device/prims_simple.h:1133,1
    - Dst: patBarrier
      Src: /src/nccl/src/device/prims_simple.h:1135,1
    - Dst: fence_acq_rel_sys
      Src: /src/nccl/src/device/prims_simple.h:1138,1
    - Dst: st_relaxed_sys_global
      Src: /src/nccl/src/device/prims_simple.h:1139,1
    - Dst: st_relaxed_sys_global
      Src: /src/nccl/src/device/prims_simple.h:1142,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 76
    argCount: 2
    argNames:
    - ps
    - shmem
    argTypes:
    - struct ncclPatStep*
    - struct ncclPatShmem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1144
      start: 1052
    functionDepth: 2
    functionLinenumber: 1052
    functionLinenumberEnd: 1144
    functionName: patCopy
    functionSourceFile: /src/nccl/src/device/prims_simple.h
    functionUses: 1
    functionsReached:
    - st_relaxed_sys_global
    - loadStepValue
    - reduceCopy
    - checkAbort
    - fence_acq_rel_sys
    - patBarrier
    - atomicMax
    linkageType: ''
    returnType: __device__
    signature: __device__ patCopy(struct ncclPatStep* ps, struct ncclPatShmem* shmem)
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: recvOffset
      Src: /src/nccl/src/device/prims_ll.h:41,1
    - Dst: sendOffset
      Src: /src/nccl/src/device/prims_ll.h:42,1
    - Dst: NCCL_LL_FLAG
      Src: /src/nccl/src/device/prims_ll.h:43,1
    - Dst: NCCL_LL_FLAG
      Src: /src/nccl/src/device/prims_ll.h:44,1
    - Dst: __syncwarp
      Src: /src/nccl/src/device/prims_ll.h:48,1
    - Dst: barrier_sync
      Src: /src/nccl/src/device/prims_ll.h:50,1
    - Dst: checkAbort
      Src: /src/nccl/src/device/prims_ll.h:61,1
    - Dst: barrier
      Src: /src/nccl/src/device/prims_ll.h:69,1
    - Dst: barrier
      Src: /src/nccl/src/device/prims_ll.h:76,1
    - Dst: storeLL
      Src: /src/nccl/src/device/prims_ll.h:84,1
    - Dst: sendPtr
      Src: /src/nccl/src/device/prims_ll.h:84,1
    - Dst: sendFlag
      Src: /src/nccl/src/device/prims_ll.h:84,1
    - Dst: recvPtr
      Src: /src/nccl/src/device/prims_ll.h:90,1
    - Dst: recvFlag
      Src: /src/nccl/src/device/prims_ll.h:91,1
    - Dst: checkAbort
      Src: /src/nccl/src/device/prims_ll.h:96,1
    - Dst: nrecv
      Src: /src/nccl/src/device/prims_ll.h:108,1
    - Dst: recvPtr
      Src: /src/nccl/src/device/prims_ll.h:109,1
    - Dst: recvPtr
      Src: /src/nccl/src/device/prims_ll.h:115,1
    - Dst: recvFlag
      Src: /src/nccl/src/device/prims_ll.h:116,1
    - Dst: checkAbort
      Src: /src/nccl/src/device/prims_ll.h:120,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/device/prims_ll.h:180,1
    - Dst: reinterpret_cast<uint32_t*>
      Src: /src/nccl/src/device/prims_ll.h:181,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/device/prims_ll.h:181,1
    - Dst: load
      Src: /src/nccl/src/device/prims_ll.h:182,1
    - Dst: load
      Src: /src/nccl/src/device/prims_ll.h:183,1
    - Dst: load
      Src: /src/nccl/src/device/prims_ll.h:185,1
    - Dst: load
      Src: /src/nccl/src/device/prims_ll.h:193,1
    - Dst: __funnelshift_r
      Src: /src/nccl/src/device/prims_ll.h:200,1
    - Dst: __funnelshift_r
      Src: /src/nccl/src/device/prims_ll.h:202,1
    - Dst: waitSend
      Src: /src/nccl/src/device/prims_ll.h:233,1
    - Dst: divUp
      Src: /src/nccl/src/device/prims_ll.h:233,1
    - Dst: DataLoader::loadBegin
      Src: /src/nccl/src/device/prims_ll.h:247,1
    - Dst: readLLBeginAll<1>
      Src: /src/nccl/src/device/prims_ll.h:251,1
    - Dst: readLL
      Src: /src/nccl/src/device/prims_ll.h:252,1
    - Dst: DataLoader::loadFinish
      Src: /src/nccl/src/device/prims_ll.h:255,1
    - Dst: applyPreOp
      Src: /src/nccl/src/device/prims_ll.h:256,1
    - Dst: applyReduce
      Src: /src/nccl/src/device/prims_ll.h:259,1
    - Dst: nrecv
      Src: /src/nccl/src/device/prims_ll.h:263,1
    - Dst: readLLFinish
      Src: /src/nccl/src/device/prims_ll.h:264,1
    - Dst: applyReduce
      Src: /src/nccl/src/device/prims_ll.h:265,1
    - Dst: applyPostOp
      Src: /src/nccl/src/device/prims_ll.h:269,1
    - Dst: nsend
      Src: /src/nccl/src/device/prims_ll.h:275,1
    - Dst: storeLL
      Src: /src/nccl/src/device/prims_ll.h:276,1
    - Dst: sendPtr
      Src: /src/nccl/src/device/prims_ll.h:276,1
    - Dst: sendFlag
      Src: /src/nccl/src/device/prims_ll.h:276,1
    - Dst: storeLL
      Src: /src/nccl/src/device/prims_ll.h:277,1
    - Dst: sendPtr
      Src: /src/nccl/src/device/prims_ll.h:277,1
    - Dst: sendFlag
      Src: /src/nccl/src/device/prims_ll.h:277,1
    - Dst: storeData
      Src: /src/nccl/src/device/prims_ll.h:280,1
    - Dst: incRecv
      Src: /src/nccl/src/device/prims_ll.h:288,1
    - Dst: postRecv
      Src: /src/nccl/src/device/prims_ll.h:289,1
    - Dst: nsend
      Src: /src/nccl/src/device/prims_ll.h:294,1
    - Dst: incSend
      Src: /src/nccl/src/device/prims_ll.h:295,1
    - Dst: incSend
      Src: /src/nccl/src/device/prims_ll.h:296,1
    - Dst: nrecv
      Src: /src/nccl/src/device/prims_ll.h:306,1
    - Dst: nsend
      Src: /src/nccl/src/device/prims_ll.h:318,1
    - Dst: redOp
      Src: /src/nccl/src/device/prims_ll.h:333,1
    - Dst: loadRecvConn
      Src: /src/nccl/src/device/prims_ll.h:343,1
    - Dst: loadSendConn
      Src: /src/nccl/src/device/prims_ll.h:348,1
    - Dst: Fan
      Src: /src/nccl/src/device/prims_ll.h:351,1
    - Dst: nrecv
      Src: /src/nccl/src/device/prims_ll.h:363,1
    - Dst: nsend
      Src: /src/nccl/src/device/prims_ll.h:365,1
    - Dst: barrier
      Src: /src/nccl/src/device/prims_ll.h:368,1
    CyclomaticComplexity: 62
    EdgeCount: 62
    ICount: 193
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 8
    functionDepth: 1
    functionLinenumber: 8
    functionLinenumberEnd: 369
    functionName: ~Primitives()
    functionSourceFile: /src/nccl/src/device/prims_ll.h
    functionUses: 0
    functionsReached:
    - readLLFinish
    - reinterpret_cast<uint32_t*>
    - storeLL
    - divUp
    - DataLoader::loadFinish
    - readLL
    - waitSend
    - DataLoader::loadBegin
    - recvPtr
    - applyPreOp
    - incRecv
    - readLLBeginAll<1>
    - applyReduce
    - load
    - nsend
    - incSend
    - sendOffset
    - sendPtr
    - barrier_sync
    - loadRecvConn
    - Fan
    - loadSendConn
    - redOp
    - recvFlag
    - __syncwarp
    - recvOffset
    - nrecv
    - barrier
    - postRecv
    - storeData
    - applyPostOp
    - NCCL_LL_FLAG
    - sendFlag
    - reinterpret_cast<uintptr_t>
    - __funnelshift_r
    - checkAbort
    linkageType: ''
    returnType: "class Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>:\n
      \ public PrimitivesWithoutDirect<Primitives<T, RedOp, Fan, Direct, ProtoLL,
      P2p, isNetOffload>> {\n\n  // In the case of Fan::MaxRecv == 0, we need to force
      MaxRecv to 1 for this to compile\n  // This is because of a recv buffer which
      is allocated to MaxRecv length in send-only cases\n  static constexpr int MaxRecv
      = Fan::MaxRecv > 1 ? Fan::MaxRecv : 1;\n  static constexpr int MaxSend = Fan::MaxSend;\n
      \ static constexpr int Input=0, Output=1;\n  RedOp redOp;\n  const int tid;\n
      \ const int nthreads;\n  const int wid;\n  const int group;\n  const int stepLines;\n
      \ Fan fan;\n  T *userBufs[2];\n  struct ncclConnInfo* recvConn = NULL;\n  volatile
      uint64_t* recvConnHeadPtr = NULL;\n  uint64_t recvConnHead;\n\n  struct ncclConnInfo*
      sendConn = NULL;\n  volatile struct ncclConnFifo* sendConnFifo = NULL;\n  volatile
      uint64_t* sendConnHeadPtr = NULL;\n  uint64_t sendConnHead;\n  uint64_t sendConnHeadCache;
      // Cache last seen value\n\n  uint64_t recvStep[MaxRecv];\n  uint64_t sendStep[MaxSend];\n
      \ union ncclLLFifoLine* recvBuff[MaxRecv];\n  union ncclLLFifoLine* sendBuff[MaxSend];\n\n
      \ inline __device__ int recvOffset(int i) { return (recvStep[i]%NCCL_STEPS)*stepLines;
      }\n  inline __device__ int sendOffset(int i) { return (sendStep[i]%NCCL_STEPS)*stepLines;
      }\n  inline __device__ union ncclLLFifoLine* recvPtr(int i) { return recvBuff[i]+recvOffset(i);
      }\n  inline __device__ union ncclLLFifoLine* sendPtr(int i) { return sendBuff[i]+sendOffset(i);
      }\n  inline __device__ uint32_t recvFlag(int i) { return NCCL_LL_FLAG(recvStep[i]+1);
      }\n  inline __device__ uint32_t sendFlag(int i) { return NCCL_LL_FLAG(sendStep[i]+1);
      }\n\n  inline __device__ void barrier() {\n    if (nthreads == WARP_SIZE) {\n
      \     __syncwarp();\n    } else {\n      barrier_sync(15-group, nthreads);\n
      \   }\n  }\n\n  int abort = 0;\n\n  inline __device__ void waitSend(int nbytes)
      {\n    if (sendConnHeadPtr) {\n      int spins = 0;\n      while (sendConnHeadCache
      + NCCL_STEPS < sendConnHead + 1) {\n        sendConnHeadCache = *sendConnHeadPtr;\n
      \       if (checkAbort(abort, 1, spins)) break;\n      }\n      if (sendConnFifo)
      {\n        int size = ((sendConnHead & NCCL_LL_CLEAN_MASK) == NCCL_LL_CLEAN_MASK)
      ? stepLines*sizeof(union ncclLLFifoLine) : nbytes;\n        sendConnFifo[sendConnHead%NCCL_STEPS].size
      = size;\n      }\n      sendConnHead += 1;\n    }\n    barrier();\n  }\n\n  inline
      __device__ void incRecv(int i) {\n    recvStep[i] += 1;\n  }\n  inline __device__
      void postRecv() {\n    barrier();\n    if (recvConnHeadPtr) *recvConnHeadPtr
      = recvConnHead += 1;\n  }\n\n  inline __device__ void incSend(int i, int offset)
      {\n    // LL Cleanup : write all flags in the slice to make sure we don't have\n
      \   // data corruption when flag loops over.\n    if ((sendStep[i] & NCCL_LL_CLEAN_MASK)
      == NCCL_LL_CLEAN_MASK) {\n      for (int o = offset; o<stepLines; o+=nthreads)
      storeLL(sendPtr(i)+o, 0, sendFlag(i));\n    }\n    sendStep[i]++;\n  }\n\n  __device__
      uint64_t readLL(int offset, int i) {\n    union ncclLLFifoLine* src = recvPtr(i)
      + offset;\n    uint32_t flag = recvFlag(i);\n    uint32_t data1, flag1, data2,
      flag2;\n    int spins = 0;\n    do {\n      asm volatile(\"ld.volatile.global.v4.u32
      {%0,%1,%2,%3}, [%4];\" : \"=r\"(data1), \"=r\"(flag1), \"=r\"(data2), \"=r\"(flag2)
      : \"l\"(&src->i4) : \"memory\");\n      if (checkAbort(abort, 1, spins)) break;\n
      \   } while ((flag1 != flag) || (flag2 != flag));\n    uint64_t val64 = data1
      + (((uint64_t)data2) << 32);\n    return val64;\n  }\n\n  template<int BeginIx>\n
      \ __device__ void readLLBeginAll(int offset, ncclLLFifoLine(&line)[MaxRecv])
      {\n    #pragma unroll\n    for (int i=BeginIx; i < MaxRecv; i++) {\n      //
      Yes, for some template arguments this code will be unreachable.  That's fine.\n
      \     // coverity[dead_error_line]\n      if (i < fan.nrecv()) {\n        union
      ncclLLFifoLine* src = recvPtr(i) + offset;\n        asm volatile(\"ld.volatile.global.v4.u32
      {%0,%1,%2,%3}, [%4];\" : \"=r\"(line[i].data1), \"=r\"(line[i].flag1), \"=r\"(line[i].data2),
      \"=r\"(line[i].flag2) : \"l\"(&src->i4) : \"memory\");\n      }\n    }\n  }\n
      \ __device__ uint64_t readLLFinish(int offset, ncclLLFifoLine(&line)[MaxRecv],
      int i) {\n    union ncclLLFifoLine* src = recvPtr(i) + offset;\n    uint32_t
      flag = recvFlag(i);\n    int spins = 0;\n    while (line[i].flag1 != flag ||
      line[i].flag2 != flag) {\n      asm volatile(\"ld.volatile.global.v4.u32 {%0,%1,%2,%3},
      [%4];\" : \"=r\"(line[i].data1), \"=r\"(line[i].flag1), \"=r\"(line[i].data2),
      \"=r\"(line[i].flag2) : \"l\"(&src->i4) : \"memory\");\n      if (checkAbort(abort,
      1, spins)) break;\n    }\n    uint64_t val64 = line[i].data1 + (((uint64_t)line[i].data2)
      << 32);\n    return val64;\n  }\n\n  __device__ void storeLL(union ncclLLFifoLine*
      dst, uint64_t val, uint32_t flag) {\n    asm volatile(\"st.volatile.global.v4.u32
      [%0], {%1,%2,%3,%4};\" :: \"l\"(&dst->i4), \"r\"((uint32_t)val), \"r\"(flag),
      \"r\"((uint32_t)(val >> 32)), \"r\"(flag) : \"memory\");\n  }\n\n  static constexpr
      int EltPerLine = sizeof(uint64_t)/sizeof(T);\n\n  template<typename U>\n  __device__
      static U load(U *src) {\n    union {\n      U elt;\n      uint16_t u2;\n      uint32_t
      u4;\n      uint64_t u8;\n    };\n    if(sizeof(U) == 1)\n      asm volatile(\"ld.volatile.global.b8
      %0,[%1];\" : \"=r\"(u4) : \"l\"(src) : \"memory\");\n    else if(sizeof(U) ==
      2)\n      asm volatile(\"ld.volatile.global.b16 %0,[%1];\" : \"=h\"(u2) : \"l\"(src)
      : \"memory\");\n    else if(sizeof(U) == 4)\n      asm volatile(\"ld.volatile.global.b32
      %0,[%1];\" : \"=r\"(u4) : \"l\"(src) : \"memory\");\n    else\n      asm volatile(\"ld.volatile.global.b64
      %0,[%1];\" : \"=l\"(u8) : \"l\"(src) : \"memory\");\n    return elt;\n  }\n\n
      \ template<typename U>\n  __device__ static void store(U *dst, U val) {\n    union
      {\n      U elt;\n      uint16_t u2;\n      uint32_t u4;\n      uint64_t u8;\n
      \   };\n    elt = val;\n    if(sizeof(U) == 1)\n      asm volatile(\"st.volatile.global.b8
      [%0],%1;\" :: \"l\"(dst), \"r\"(u4) : \"memory\");\n    else if(sizeof(U) ==
      2)\n      asm volatile(\"st.volatile.global.b16 [%0],%1;\" :: \"l\"(dst), \"h\"(u2)
      : \"memory\");\n    else if(sizeof(U) == 4)\n      asm volatile(\"st.volatile.global.b32
      [%0],%1;\" :: \"l\"(dst), \"r\"(u4) : \"memory\");\n    else\n      asm volatile(\"st.volatile.global.b64
      [%0],%1;\" :: \"l\"(dst), \"l\"(u8) : \"memory\");\n  }\n\n  struct DataLoader
      {\n    int misalign;\n    union {\n      uint32_t u4[sizeof(T) <= 2 ? 3 : 2];\n
      \     uint64_t u8;\n      T elt[EltPerLine];\n    };\n\n    __device__ void
      loadBegin(T *src, int eltN) {\n      if (sizeof(T) <= 2) {\n        misalign
      = reinterpret_cast<uintptr_t>(src)%4;\n        uint32_t *p = reinterpret_cast<uint32_t*>(reinterpret_cast<uintptr_t>(src)
      & -uintptr_t(4));\n        u4[0] = load(p+0);\n        u4[1] = misalign + eltN*sizeof(T)
      > 4 ? load(p+1) : 0;\n        // u4[2] would be simpler, but that throws warnings
      on some compilers\n        u4[sizeof(T) <= 2 ? 2 : 0] = misalign + eltN*sizeof(T)
      > 8 ? load(p+2) : 0;\n      }\n      else {\n        #pragma unroll\n        for(int
      i=0; i < EltPerLine; i++) {\n          // Yes, for some template arguments this
      code will be unreachable.  That's fine.\n          // coverity[dead_error_line]\n
      \         if(i==0 || i < eltN)\n            elt[i] = load(src + i);\n        }\n
      \     }\n    }\n\n    __device__ uint64_t loadFinish() {\n      if (sizeof(T)
      <= 2) {\n        u4[0] = __funnelshift_r(u4[0], u4[1], 8*misalign);\n        //
      u4[2] would be simpler, but that throws warnings on some compilers\n        u4[1]
      = __funnelshift_r(u4[1], u4[sizeof(T) <= 2 ? 2 : 0], 8*misalign);\n      }\n
      \     return u8;\n    }\n  };\n\n  __device__ void storeData(T *dst, uint64_t
      val, int eltN) {\n    union {\n      uint64_t u8;\n      T elt[EltPerLine];\n
      \   };\n    u8 = val;\n    #pragma unroll\n    for(int i=0; i < EltPerLine;
      i++) {\n      // Yes, for some template arguments this code will be unreachable.
      \ That's fine.\n      // coverity[dead_error_line]\n      if (i==0 || i < eltN)\n
      \       //store(dst+i, elt[i]);\n        dst[i] = elt[i];\n    }\n  }\n\n  template
      <int RECV, int SEND, int SrcBuf, int DstBuf>\n  __device__ __forceinline__ void
      LLGenericOp(intptr_t srcIx, intptr_t dstIx, int nelem, bool postOp) {\n    constexpr
      int SRC = SrcBuf != -1 ? 1 : 0;\n    constexpr int DST = DstBuf != -1 ? 1 :
      0;\n    T *srcElts = SrcBuf == -1 ? nullptr : userBufs[SrcBuf] + srcIx;\n    T
      *dstElts = DstBuf == -1 ? nullptr : userBufs[DstBuf] + dstIx;\n\n    // Always
      waitSend in case of cleanup\n    nelem = nelem < 0 ? 0 : nelem;\n    if (SEND)
      waitSend(divUp(nelem, EltPerLine)*sizeof(ncclLLFifoLine));\n\n    nelem -= tid*EltPerLine;\n
      \   srcElts += tid*EltPerLine;\n    dstElts += tid*EltPerLine;\n    int offset
      = tid;\n    int eltPerTrip = nthreads*EltPerLine;\n    while (nelem > 0) {\n
      \     int eltInLine = EltPerLine < nelem ? EltPerLine : nelem;\n\n      DataLoader
      dl;\n      ncclLLFifoLine line[MaxRecv];\n      uint64_t data, peerData;\n      if
      (SRC) {\n        dl.loadBegin(srcElts, eltInLine);\n        srcElts += eltPerTrip;\n
      \     }\n      if (RECV) {\n        readLLBeginAll<1>(offset, line);\n        peerData
      = readLL(offset, 0);\n      }\n      if (SRC) {\n        data = dl.loadFinish();\n
      \       if (SrcBuf == Input) data = applyPreOp(redOp, data);\n      }\n      if
      (RECV) {\n        data = !SRC ? peerData : applyReduce(redOp, peerData, data);\n
      \       #pragma unroll MaxRecv\n        // Yes, for some template arguments
      this code will be unreachable.  That's fine.\n        // coverity[dead_error_line]\n
      \       for (int i=1; i < MaxRecv && i < fan.nrecv(); i++) {\n          peerData
      = readLLFinish(offset, line, i);\n          data = applyReduce(redOp, peerData,
      data);\n        }\n      }\n\n      if (postOp) data = applyPostOp(redOp, data);\n\n
      \     // Send : inter-node, then intra-node, then local\n      if (SEND) {\n
      \       // Yes, for some template arguments this code will be unreachable.  That's
      fine.\n        // coverity[dead_error_line]\n        for (int i=1; i < MaxSend
      && i < fan.nsend(); i++)\n          storeLL(sendPtr(i)+offset, data, sendFlag(i));\n
      \       storeLL(sendPtr(0)+offset, data, sendFlag(0));\n      }\n      if (DST)
      {\n        storeData(dstElts, data, eltInLine);\n        dstElts += eltPerTrip;\n
      \     }\n      nelem -= eltPerTrip;\n      offset += nthreads;\n    }\n\n    if
      (RECV) {\n      for (int i=0; i < MaxRecv; i++) incRecv(i);\n      postRecv();\n
      \   }\n    if (SEND) {\n      // Yes, for some template arguments this code
      will be unreachable.  That's fine.\n      // coverity[dead_error_line]\n      for
      (int i=1; i < MaxSend && i < fan.nsend(); i++)\n        incSend(i, offset);\n
      \     incSend(0, offset);\n    }\n  }\n\n  __device__ __forceinline__ void loadRecvConn(struct
      ncclConnInfo* conn, int i) {\n    recvBuff[i] = (union ncclLLFifoLine*)conn->buffs[NCCL_PROTO_LL];\n
      \   recvStep[i] = conn->step;\n    if (wid == i) recvConn = conn;\n  }\n  __device__
      __forceinline__ void loadRecvSync() {\n    if (tid >= nthreads-WARP_SIZE &&
      wid < fan.nrecv()) {\n      recvConnHeadPtr = recvConn->head;\n      recvConnHead
      = recvConn->step;\n    }\n  }\n\n  __device__ __forceinline__ void loadSendConn(struct
      ncclConnInfo* conn, int i) {\n    sendBuff[i] = (union ncclLLFifoLine*)conn->buffs[NCCL_PROTO_LL];\n
      \   sendStep[i] = conn->step;\n    if (wid == i) sendConn = conn;\n  }\n  __device__
      __forceinline__ void loadSendSync() {\n    if (tid < fan.nsend()) {\n      sendConnHeadPtr
      = sendConn->head;\n      sendConnHeadCache = *sendConnHeadPtr;\n      sendConnHead
      = sendConn->step;\n      sendConnFifo = sendConn->connFifo;\n    }\n  }\n\n
      public:\n  __device__  Primitives(\n      const int tid, const int nthreads,
      int const *recvPeers, int const *sendPeers,\n      void const *inputBuf, void
      *outputBuf, uint64_t redOpArg, uint8_t group=0,\n      uint8_t connIndexRecv=0,
      uint8_t connIndexSend=0, struct ncclDevWorkColl* e = nullptr,\n      bool ipcReg
      = false, bool netReg = false, int stepSize_ = 0\n    ):\n    redOp(redOpArg),\n
      \   tid(tid), nthreads(nthreads), wid(tid%WARP_SIZE), group(group),\n    stepLines(ncclShmem.comm.buffSizes[NCCL_PROTO_LL]/NCCL_STEPS/sizeof(ncclLLFifoLine))
      {\n    auto *channel = &ncclShmem.channel;\n    // If we are going to support
      oneshot collNet + LL, then we would need to add connector index here\n    int
      nrecv=0, nsend=0;\n    // We compare with Fan::MaxRecv here because this->MaxRecv
      is always at least 1\n    // Yes, for some template arguments this code will
      be unreachable.  That's fine.\n    // coverity[dead_error_line]\n    while (nrecv
      < Fan::MaxRecv && recvPeers[nrecv] >= 0) {\n      loadRecvConn(&channel->peers[recvPeers[nrecv]]->recv[connIndexRecv],
      nrecv);\n      nrecv++;\n    }\n    // coverity[dead_error_line]\n    while
      (nsend < MaxSend && sendPeers[nsend] >= 0) {\n      loadSendConn(&channel->peers[sendPeers[nsend]]->send[connIndexSend],
      nsend);\n      nsend++;\n    }\n    this->fan = Fan(nrecv, nsend);\n    // Coverity
      reports recvConn and sendConn being possibly NULL at this point but that won't
      actually\n    // happen given the two \"while\" loops just above.\n    // coverity[var_deref_model:FALSE]\n
      \   loadRecvSync();\n    // coverity[var_deref_model:FALSE]\n    loadSendSync();\n
      \   setDataPtrs(inputBuf, outputBuf);\n  }"
    signature: "class Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>:\n
      \ public PrimitivesWithoutDirect<Primitives<T, RedOp, Fan, Direct, ProtoLL,
      P2p, isNetOffload>> {\n\n  // In the case of Fan::MaxRecv == 0, we need to force
      MaxRecv to 1 for this to compile\n  // This is because of a recv buffer which
      is allocated to MaxRecv length in send-only cases\n  static constexpr int MaxRecv
      = Fan::MaxRecv > 1 ? Fan::MaxRecv : 1;\n  static constexpr int MaxSend = Fan::MaxSend;\n
      \ static constexpr int Input=0, Output=1;\n  RedOp redOp;\n  const int tid;\n
      \ const int nthreads;\n  const int wid;\n  const int group;\n  const int stepLines;\n
      \ Fan fan;\n  T *userBufs[2];\n  struct ncclConnInfo* recvConn = NULL;\n  volatile
      uint64_t* recvConnHeadPtr = NULL;\n  uint64_t recvConnHead;\n\n  struct ncclConnInfo*
      sendConn = NULL;\n  volatile struct ncclConnFifo* sendConnFifo = NULL;\n  volatile
      uint64_t* sendConnHeadPtr = NULL;\n  uint64_t sendConnHead;\n  uint64_t sendConnHeadCache;
      // Cache last seen value\n\n  uint64_t recvStep[MaxRecv];\n  uint64_t sendStep[MaxSend];\n
      \ union ncclLLFifoLine* recvBuff[MaxRecv];\n  union ncclLLFifoLine* sendBuff[MaxSend];\n\n
      \ inline __device__ int recvOffset(int i) { return (recvStep[i]%NCCL_STEPS)*stepLines;
      }\n  inline __device__ int sendOffset(int i) { return (sendStep[i]%NCCL_STEPS)*stepLines;
      }\n  inline __device__ union ncclLLFifoLine* recvPtr(int i) { return recvBuff[i]+recvOffset(i);
      }\n  inline __device__ union ncclLLFifoLine* sendPtr(int i) { return sendBuff[i]+sendOffset(i);
      }\n  inline __device__ uint32_t recvFlag(int i) { return NCCL_LL_FLAG(recvStep[i]+1);
      }\n  inline __device__ uint32_t sendFlag(int i) { return NCCL_LL_FLAG(sendStep[i]+1);
      }\n\n  inline __device__ void barrier() {\n    if (nthreads == WARP_SIZE) {\n
      \     __syncwarp();\n    } else {\n      barrier_sync(15-group, nthreads);\n
      \   }\n  }\n\n  int abort = 0;\n\n  inline __device__ void waitSend(int nbytes)
      {\n    if (sendConnHeadPtr) {\n      int spins = 0;\n      while (sendConnHeadCache
      + NCCL_STEPS < sendConnHead + 1) {\n        sendConnHeadCache = *sendConnHeadPtr;\n
      \       if (checkAbort(abort, 1, spins)) break;\n      }\n      if (sendConnFifo)
      {\n        int size = ((sendConnHead & NCCL_LL_CLEAN_MASK) == NCCL_LL_CLEAN_MASK)
      ? stepLines*sizeof(union ncclLLFifoLine) : nbytes;\n        sendConnFifo[sendConnHead%NCCL_STEPS].size
      = size;\n      }\n      sendConnHead += 1;\n    }\n    barrier();\n  }\n\n  inline
      __device__ void incRecv(int i) {\n    recvStep[i] += 1;\n  }\n  inline __device__
      void postRecv() {\n    barrier();\n    if (recvConnHeadPtr) *recvConnHeadPtr
      = recvConnHead += 1;\n  }\n\n  inline __device__ void incSend(int i, int offset)
      {\n    // LL Cleanup : write all flags in the slice to make sure we don't have\n
      \   // data corruption when flag loops over.\n    if ((sendStep[i] & NCCL_LL_CLEAN_MASK)
      == NCCL_LL_CLEAN_MASK) {\n      for (int o = offset; o<stepLines; o+=nthreads)
      storeLL(sendPtr(i)+o, 0, sendFlag(i));\n    }\n    sendStep[i]++;\n  }\n\n  __device__
      uint64_t readLL(int offset, int i) {\n    union ncclLLFifoLine* src = recvPtr(i)
      + offset;\n    uint32_t flag = recvFlag(i);\n    uint32_t data1, flag1, data2,
      flag2;\n    int spins = 0;\n    do {\n      asm volatile(\"ld.volatile.global.v4.u32
      {%0,%1,%2,%3}, [%4];\" : \"=r\"(data1), \"=r\"(flag1), \"=r\"(data2), \"=r\"(flag2)
      : \"l\"(&src->i4) : \"memory\");\n      if (checkAbort(abort, 1, spins)) break;\n
      \   } while ((flag1 != flag) || (flag2 != flag));\n    uint64_t val64 = data1
      + (((uint64_t)data2) << 32);\n    return val64;\n  }\n\n  template<int BeginIx>\n
      \ __device__ void readLLBeginAll(int offset, ncclLLFifoLine(&line)[MaxRecv])
      {\n    #pragma unroll\n    for (int i=BeginIx; i < MaxRecv; i++) {\n      //
      Yes, for some template arguments this code will be unreachable.  That's fine.\n
      \     // coverity[dead_error_line]\n      if (i < fan.nrecv()) {\n        union
      ncclLLFifoLine* src = recvPtr(i) + offset;\n        asm volatile(\"ld.volatile.global.v4.u32
      {%0,%1,%2,%3}, [%4];\" : \"=r\"(line[i].data1), \"=r\"(line[i].flag1), \"=r\"(line[i].data2),
      \"=r\"(line[i].flag2) : \"l\"(&src->i4) : \"memory\");\n      }\n    }\n  }\n
      \ __device__ uint64_t readLLFinish(int offset, ncclLLFifoLine(&line)[MaxRecv],
      int i) {\n    union ncclLLFifoLine* src = recvPtr(i) + offset;\n    uint32_t
      flag = recvFlag(i);\n    int spins = 0;\n    while (line[i].flag1 != flag ||
      line[i].flag2 != flag) {\n      asm volatile(\"ld.volatile.global.v4.u32 {%0,%1,%2,%3},
      [%4];\" : \"=r\"(line[i].data1), \"=r\"(line[i].flag1), \"=r\"(line[i].data2),
      \"=r\"(line[i].flag2) : \"l\"(&src->i4) : \"memory\");\n      if (checkAbort(abort,
      1, spins)) break;\n    }\n    uint64_t val64 = line[i].data1 + (((uint64_t)line[i].data2)
      << 32);\n    return val64;\n  }\n\n  __device__ void storeLL(union ncclLLFifoLine*
      dst, uint64_t val, uint32_t flag) {\n    asm volatile(\"st.volatile.global.v4.u32
      [%0], {%1,%2,%3,%4};\" :: \"l\"(&dst->i4), \"r\"((uint32_t)val), \"r\"(flag),
      \"r\"((uint32_t)(val >> 32)), \"r\"(flag) : \"memory\");\n  }\n\n  static constexpr
      int EltPerLine = sizeof(uint64_t)/sizeof(T);\n\n  template<typename U>\n  __device__
      static U load(U *src) {\n    union {\n      U elt;\n      uint16_t u2;\n      uint32_t
      u4;\n      uint64_t u8;\n    };\n    if(sizeof(U) == 1)\n      asm volatile(\"ld.volatile.global.b8
      %0,[%1];\" : \"=r\"(u4) : \"l\"(src) : \"memory\");\n    else if(sizeof(U) ==
      2)\n      asm volatile(\"ld.volatile.global.b16 %0,[%1];\" : \"=h\"(u2) : \"l\"(src)
      : \"memory\");\n    else if(sizeof(U) == 4)\n      asm volatile(\"ld.volatile.global.b32
      %0,[%1];\" : \"=r\"(u4) : \"l\"(src) : \"memory\");\n    else\n      asm volatile(\"ld.volatile.global.b64
      %0,[%1];\" : \"=l\"(u8) : \"l\"(src) : \"memory\");\n    return elt;\n  }\n\n
      \ template<typename U>\n  __device__ static void store(U *dst, U val) {\n    union
      {\n      U elt;\n      uint16_t u2;\n      uint32_t u4;\n      uint64_t u8;\n
      \   };\n    elt = val;\n    if(sizeof(U) == 1)\n      asm volatile(\"st.volatile.global.b8
      [%0],%1;\" :: \"l\"(dst), \"r\"(u4) : \"memory\");\n    else if(sizeof(U) ==
      2)\n      asm volatile(\"st.volatile.global.b16 [%0],%1;\" :: \"l\"(dst), \"h\"(u2)
      : \"memory\");\n    else if(sizeof(U) == 4)\n      asm volatile(\"st.volatile.global.b32
      [%0],%1;\" :: \"l\"(dst), \"r\"(u4) : \"memory\");\n    else\n      asm volatile(\"st.volatile.global.b64
      [%0],%1;\" :: \"l\"(dst), \"l\"(u8) : \"memory\");\n  }\n\n  struct DataLoader
      {\n    int misalign;\n    union {\n      uint32_t u4[sizeof(T) <= 2 ? 3 : 2];\n
      \     uint64_t u8;\n      T elt[EltPerLine];\n    };\n\n    __device__ void
      loadBegin(T *src, int eltN) {\n      if (sizeof(T) <= 2) {\n        misalign
      = reinterpret_cast<uintptr_t>(src)%4;\n        uint32_t *p = reinterpret_cast<uint32_t*>(reinterpret_cast<uintptr_t>(src)
      & -uintptr_t(4));\n        u4[0] = load(p+0);\n        u4[1] = misalign + eltN*sizeof(T)
      > 4 ? load(p+1) : 0;\n        // u4[2] would be simpler, but that throws warnings
      on some compilers\n        u4[sizeof(T) <= 2 ? 2 : 0] = misalign + eltN*sizeof(T)
      > 8 ? load(p+2) : 0;\n      }\n      else {\n        #pragma unroll\n        for(int
      i=0; i < EltPerLine; i++) {\n          // Yes, for some template arguments this
      code will be unreachable.  That's fine.\n          // coverity[dead_error_line]\n
      \         if(i==0 || i < eltN)\n            elt[i] = load(src + i);\n        }\n
      \     }\n    }\n\n    __device__ uint64_t loadFinish() {\n      if (sizeof(T)
      <= 2) {\n        u4[0] = __funnelshift_r(u4[0], u4[1], 8*misalign);\n        //
      u4[2] would be simpler, but that throws warnings on some compilers\n        u4[1]
      = __funnelshift_r(u4[1], u4[sizeof(T) <= 2 ? 2 : 0], 8*misalign);\n      }\n
      \     return u8;\n    }\n  };\n\n  __device__ void storeData(T *dst, uint64_t
      val, int eltN) {\n    union {\n      uint64_t u8;\n      T elt[EltPerLine];\n
      \   };\n    u8 = val;\n    #pragma unroll\n    for(int i=0; i < EltPerLine;
      i++) {\n      // Yes, for some template arguments this code will be unreachable.
      \ That's fine.\n      // coverity[dead_error_line]\n      if (i==0 || i < eltN)\n
      \       //store(dst+i, elt[i]);\n        dst[i] = elt[i];\n    }\n  }\n\n  template
      <int RECV, int SEND, int SrcBuf, int DstBuf>\n  __device__ __forceinline__ void
      LLGenericOp(intptr_t srcIx, intptr_t dstIx, int nelem, bool postOp) {\n    constexpr
      int SRC = SrcBuf != -1 ? 1 : 0;\n    constexpr int DST = DstBuf != -1 ? 1 :
      0;\n    T *srcElts = SrcBuf == -1 ? nullptr : userBufs[SrcBuf] + srcIx;\n    T
      *dstElts = DstBuf == -1 ? nullptr : userBufs[DstBuf] + dstIx;\n\n    // Always
      waitSend in case of cleanup\n    nelem = nelem < 0 ? 0 : nelem;\n    if (SEND)
      waitSend(divUp(nelem, EltPerLine)*sizeof(ncclLLFifoLine));\n\n    nelem -= tid*EltPerLine;\n
      \   srcElts += tid*EltPerLine;\n    dstElts += tid*EltPerLine;\n    int offset
      = tid;\n    int eltPerTrip = nthreads*EltPerLine;\n    while (nelem > 0) {\n
      \     int eltInLine = EltPerLine < nelem ? EltPerLine : nelem;\n\n      DataLoader
      dl;\n      ncclLLFifoLine line[MaxRecv];\n      uint64_t data, peerData;\n      if
      (SRC) {\n        dl.loadBegin(srcElts, eltInLine);\n        srcElts += eltPerTrip;\n
      \     }\n      if (RECV) {\n        readLLBeginAll<1>(offset, line);\n        peerData
      = readLL(offset, 0);\n      }\n      if (SRC) {\n        data = dl.loadFinish();\n
      \       if (SrcBuf == Input) data = applyPreOp(redOp, data);\n      }\n      if
      (RECV) {\n        data = !SRC ? peerData : applyReduce(redOp, peerData, data);\n
      \       #pragma unroll MaxRecv\n        // Yes, for some template arguments
      this code will be unreachable.  That's fine.\n        // coverity[dead_error_line]\n
      \       for (int i=1; i < MaxRecv && i < fan.nrecv(); i++) {\n          peerData
      = readLLFinish(offset, line, i);\n          data = applyReduce(redOp, peerData,
      data);\n        }\n      }\n\n      if (postOp) data = applyPostOp(redOp, data);\n\n
      \     // Send : inter-node, then intra-node, then local\n      if (SEND) {\n
      \       // Yes, for some template arguments this code will be unreachable.  That's
      fine.\n        // coverity[dead_error_line]\n        for (int i=1; i < MaxSend
      && i < fan.nsend(); i++)\n          storeLL(sendPtr(i)+offset, data, sendFlag(i));\n
      \       storeLL(sendPtr(0)+offset, data, sendFlag(0));\n      }\n      if (DST)
      {\n        storeData(dstElts, data, eltInLine);\n        dstElts += eltPerTrip;\n
      \     }\n      nelem -= eltPerTrip;\n      offset += nthreads;\n    }\n\n    if
      (RECV) {\n      for (int i=0; i < MaxRecv; i++) incRecv(i);\n      postRecv();\n
      \   }\n    if (SEND) {\n      // Yes, for some template arguments this code
      will be unreachable.  That's fine.\n      // coverity[dead_error_line]\n      for
      (int i=1; i < MaxSend && i < fan.nsend(); i++)\n        incSend(i, offset);\n
      \     incSend(0, offset);\n    }\n  }\n\n  __device__ __forceinline__ void loadRecvConn(struct
      ncclConnInfo* conn, int i) {\n    recvBuff[i] = (union ncclLLFifoLine*)conn->buffs[NCCL_PROTO_LL];\n
      \   recvStep[i] = conn->step;\n    if (wid == i) recvConn = conn;\n  }\n  __device__
      __forceinline__ void loadRecvSync() {\n    if (tid >= nthreads-WARP_SIZE &&
      wid < fan.nrecv()) {\n      recvConnHeadPtr = recvConn->head;\n      recvConnHead
      = recvConn->step;\n    }\n  }\n\n  __device__ __forceinline__ void loadSendConn(struct
      ncclConnInfo* conn, int i) {\n    sendBuff[i] = (union ncclLLFifoLine*)conn->buffs[NCCL_PROTO_LL];\n
      \   sendStep[i] = conn->step;\n    if (wid == i) sendConn = conn;\n  }\n  __device__
      __forceinline__ void loadSendSync() {\n    if (tid < fan.nsend()) {\n      sendConnHeadPtr
      = sendConn->head;\n      sendConnHeadCache = *sendConnHeadPtr;\n      sendConnHead
      = sendConn->step;\n      sendConnFifo = sendConn->connFifo;\n    }\n  }\n\n
      public:\n  __device__  Primitives(\n      const int tid, const int nthreads,
      int const *recvPeers, int const *sendPeers,\n      void const *inputBuf, void
      *outputBuf, uint64_t redOpArg, uint8_t group=0,\n      uint8_t connIndexRecv=0,
      uint8_t connIndexSend=0, struct ncclDevWorkColl* e = nullptr,\n      bool ipcReg
      = false, bool netReg = false, int stepSize_ = 0\n    ):\n    redOp(redOpArg),\n
      \   tid(tid), nthreads(nthreads), wid(tid%WARP_SIZE), group(group),\n    stepLines(ncclShmem.comm.buffSizes[NCCL_PROTO_LL]/NCCL_STEPS/sizeof(ncclLLFifoLine))
      {\n    auto *channel = &ncclShmem.channel;\n    // If we are going to support
      oneshot collNet + LL, then we would need to add connector index here\n    int
      nrecv=0, nsend=0;\n    // We compare with Fan::MaxRecv here because this->MaxRecv
      is always at least 1\n    // Yes, for some template arguments this code will
      be unreachable.  That's fine.\n    // coverity[dead_error_line]\n    while (nrecv
      < Fan::MaxRecv && recvPeers[nrecv] >= 0) {\n      loadRecvConn(&channel->peers[recvPeers[nrecv]]->recv[connIndexRecv],
      nrecv);\n      nrecv++;\n    }\n    // coverity[dead_error_line]\n    while
      (nsend < MaxSend && sendPeers[nsend] >= 0) {\n      loadSendConn(&channel->peers[sendPeers[nsend]]->send[connIndexSend],
      nsend);\n      nsend++;\n    }\n    this->fan = Fan(nrecv, nsend);\n    // Coverity
      reports recvConn and sendConn being possibly NULL at this point but that won't
      actually\n    // happen given the two \"while\" loops just above.\n    // coverity[var_deref_model:FALSE]\n
      \   loadRecvSync();\n    // coverity[var_deref_model:FALSE]\n    loadSendSync();\n
      \   setDataPtrs(inputBuf, outputBuf);\n  } ~Primitives()"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 39
    functionName: Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::recvOffset
    functionSourceFile: /src/nccl/src/device/prims_ll.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __device__
    signature: __device__ recvOffset(int i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::sendOffset
    functionSourceFile: /src/nccl/src/device/prims_ll.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __device__
    signature: __device__ sendOffset(int i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::recvOffset
      Src: /src/nccl/src/device/prims_ll.h:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::recvPtr
    functionSourceFile: /src/nccl/src/device/prims_ll.h
    functionUses: 0
    functionsReached:
    - Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::recvOffset
    linkageType: ''
    returnType: ncclLLFifoLine
    signature: ncclLLFifoLine * recvPtr(int i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::sendOffset
      Src: /src/nccl/src/device/prims_ll.h:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 42
    functionName: Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::sendPtr
    functionSourceFile: /src/nccl/src/device/prims_ll.h
    functionUses: 0
    functionsReached:
    - Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::sendOffset
    linkageType: ''
    returnType: ncclLLFifoLine
    signature: ncclLLFifoLine * sendPtr(int i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCL_LL_FLAG
      Src: /src/nccl/src/device/prims_ll.h:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::recvFlag
    functionSourceFile: /src/nccl/src/device/prims_ll.h
    functionUses: 0
    functionsReached:
    - NCCL_LL_FLAG
    linkageType: ''
    returnType: __device__
    signature: __device__ recvFlag(int i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCL_LL_FLAG
      Src: /src/nccl/src/device/prims_ll.h:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 44
    functionName: Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::sendFlag
    functionSourceFile: /src/nccl/src/device/prims_ll.h
    functionUses: 0
    functionsReached:
    - NCCL_LL_FLAG
    linkageType: ''
    returnType: __device__
    signature: __device__ sendFlag(int i)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __syncwarp
      Src: /src/nccl/src/device/prims_ll.h:48,1
    - Dst: barrier_sync
      Src: /src/nccl/src/device/prims_ll.h:50,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 52
    functionName: Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::barrier
    functionSourceFile: /src/nccl/src/device/prims_ll.h
    functionUses: 0
    functionsReached:
    - barrier_sync
    - __syncwarp
    linkageType: ''
    returnType: __device__
    signature: __device__ barrier()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: checkAbort
      Src: /src/nccl/src/device/prims_ll.h:61,1
    - Dst: Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::barrier
      Src: /src/nccl/src/device/prims_ll.h:69,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - nbytes
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 56
    functionDepth: 2
    functionLinenumber: 56
    functionLinenumberEnd: 70
    functionName: Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::waitSend
    functionSourceFile: /src/nccl/src/device/prims_ll.h
    functionUses: 0
    functionsReached:
    - Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::barrier
    - checkAbort
    linkageType: ''
    returnType: __device__
    signature: __device__ waitSend(int nbytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 74
    functionName: Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::incRecv
    functionSourceFile: /src/nccl/src/device/prims_ll.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __device__
    signature: __device__ incRecv(int i)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::barrier
      Src: /src/nccl/src/device/prims_ll.h:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 75
    functionDepth: 2
    functionLinenumber: 75
    functionLinenumberEnd: 78
    functionName: Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::postRecv
    functionSourceFile: /src/nccl/src/device/prims_ll.h
    functionUses: 0
    functionsReached:
    - Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::barrier
    linkageType: ''
    returnType: __device__
    signature: __device__ postRecv()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::storeLL
      Src: /src/nccl/src/device/prims_ll.h:84,1
    - Dst: Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::sendPtr
      Src: /src/nccl/src/device/prims_ll.h:84,1
    - Dst: Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::sendFlag
      Src: /src/nccl/src/device/prims_ll.h:84,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - i
    - offset
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 80
    functionDepth: 2
    functionLinenumber: 80
    functionLinenumberEnd: 87
    functionName: Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::incSend
    functionSourceFile: /src/nccl/src/device/prims_ll.h
    functionUses: 0
    functionsReached:
    - Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::sendPtr
    - Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::sendFlag
    - Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::storeLL
    linkageType: ''
    returnType: __device__
    signature: __device__ incSend(int i, int offset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::recvPtr
      Src: /src/nccl/src/device/prims_ll.h:90,1
    - Dst: Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::recvFlag
      Src: /src/nccl/src/device/prims_ll.h:91,1
    - Dst: checkAbort
      Src: /src/nccl/src/device/prims_ll.h:96,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 2
    argNames:
    - offset
    - i
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 89
    functionDepth: 2
    functionLinenumber: 89
    functionLinenumberEnd: 100
    functionName: Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::readLL
    functionSourceFile: /src/nccl/src/device/prims_ll.h
    functionUses: 0
    functionsReached:
    - checkAbort
    - Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::recvPtr
    - Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::recvFlag
    linkageType: ''
    returnType: __device__
    signature: __device__ readLL(int offset, int i)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nrecv
      Src: /src/nccl/src/device/prims_ll.h:108,1
    - Dst: Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::recvPtr
      Src: /src/nccl/src/device/prims_ll.h:109,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - offset
    - (line)
    argTypes:
    - int
    - ncclLLFifoLine[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 103
    functionDepth: 2
    functionLinenumber: 103
    functionLinenumberEnd: 113
    functionName: Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::readLLBeginAll
    functionSourceFile: /src/nccl/src/device/prims_ll.h
    functionUses: 0
    functionsReached:
    - nrecv
    - Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::recvPtr
    linkageType: ''
    returnType: __device__
    signature: __device__ readLLBeginAll(int offset, ncclLLFifoLine(&line)[MaxRecv])
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::recvPtr
      Src: /src/nccl/src/device/prims_ll.h:115,1
    - Dst: Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::recvFlag
      Src: /src/nccl/src/device/prims_ll.h:116,1
    - Dst: checkAbort
      Src: /src/nccl/src/device/prims_ll.h:120,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 3
    argNames:
    - offset
    - (line)
    - i
    argTypes:
    - int
    - ncclLLFifoLine[]
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 114
    functionDepth: 2
    functionLinenumber: 114
    functionLinenumberEnd: 124
    functionName: Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::readLLFinish
    functionSourceFile: /src/nccl/src/device/prims_ll.h
    functionUses: 0
    functionsReached:
    - checkAbort
    - Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::recvPtr
    - Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::recvFlag
    linkageType: ''
    returnType: __device__
    signature: __device__ readLLFinish(int offset, ncclLLFifoLine(&line)[MaxRecv],
      int i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - dst
    - val
    - flag
    argTypes:
    - union ncclLLFifoLine*
    - uint64_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 128
    functionName: Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::storeLL
    functionSourceFile: /src/nccl/src/device/prims_ll.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: __device__
    signature: __device__ storeLL(union ncclLLFifoLine* dst, uint64_t val, uint32_t
      flag)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - src
    argTypes:
    - U*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 149
    functionName: Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::load
    functionSourceFile: /src/nccl/src/device/prims_ll.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __device__
    signature: __device__ load(U *src)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - dst
    - val
    argTypes:
    - U*
    - U
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 152
    functionDepth: 0
    functionLinenumber: 152
    functionLinenumberEnd: 168
    functionName: Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::store
    functionSourceFile: /src/nccl/src/device/prims_ll.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __device__
    signature: __device__ store(U *dst, U val)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/device/prims_ll.h:180,1
    - Dst: reinterpret_cast<uint32_t*>
      Src: /src/nccl/src/device/prims_ll.h:181,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/device/prims_ll.h:181,1
    - Dst: Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::load
      Src: /src/nccl/src/device/prims_ll.h:182,1
    - Dst: Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::load
      Src: /src/nccl/src/device/prims_ll.h:183,1
    - Dst: Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::load
      Src: /src/nccl/src/device/prims_ll.h:185,1
    - Dst: Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::load
      Src: /src/nccl/src/device/prims_ll.h:193,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - src
    - eltN
    argTypes:
    - T*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 196
    functionName: Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::loadBegin
    functionSourceFile: /src/nccl/src/device/prims_ll.h
    functionUses: 0
    functionsReached:
    - Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::load
    - reinterpret_cast<uint32_t*>
    - reinterpret_cast<uintptr_t>
    linkageType: ''
    returnType: __device__
    signature: __device__ loadBegin(T *src, int eltN)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __funnelshift_r
      Src: /src/nccl/src/device/prims_ll.h:200,1
    - Dst: __funnelshift_r
      Src: /src/nccl/src/device/prims_ll.h:202,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 205
    functionName: Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::loadFinish
    functionSourceFile: /src/nccl/src/device/prims_ll.h
    functionUses: 0
    functionsReached:
    - __funnelshift_r
    linkageType: ''
    returnType: __device__
    signature: __device__ loadFinish()
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - dst
    - val
    - eltN
    argTypes:
    - T*
    - uint64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 222
    functionName: Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::storeData
    functionSourceFile: /src/nccl/src/device/prims_ll.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __device__
    signature: __device__ storeData(T *dst, uint64_t val, int eltN)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::waitSend
      Src: /src/nccl/src/device/prims_ll.h:233,1
    - Dst: divUp
      Src: /src/nccl/src/device/prims_ll.h:233,1
    - Dst: DataLoader::loadBegin
      Src: /src/nccl/src/device/prims_ll.h:247,1
    - Dst: Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::readLLBeginAll
      Src: /src/nccl/src/device/prims_ll.h:251,1
    - Dst: Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::readLL
      Src: /src/nccl/src/device/prims_ll.h:252,1
    - Dst: DataLoader::loadFinish
      Src: /src/nccl/src/device/prims_ll.h:255,1
    - Dst: applyPreOp
      Src: /src/nccl/src/device/prims_ll.h:256,1
    - Dst: applyReduce
      Src: /src/nccl/src/device/prims_ll.h:259,1
    - Dst: nrecv
      Src: /src/nccl/src/device/prims_ll.h:263,1
    - Dst: Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::readLLFinish
      Src: /src/nccl/src/device/prims_ll.h:264,1
    - Dst: applyReduce
      Src: /src/nccl/src/device/prims_ll.h:265,1
    - Dst: applyPostOp
      Src: /src/nccl/src/device/prims_ll.h:269,1
    - Dst: nsend
      Src: /src/nccl/src/device/prims_ll.h:275,1
    - Dst: Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::storeLL
      Src: /src/nccl/src/device/prims_ll.h:276,1
    - Dst: Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::sendPtr
      Src: /src/nccl/src/device/prims_ll.h:276,1
    - Dst: Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::sendFlag
      Src: /src/nccl/src/device/prims_ll.h:276,1
    - Dst: Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::storeLL
      Src: /src/nccl/src/device/prims_ll.h:277,1
    - Dst: Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::sendPtr
      Src: /src/nccl/src/device/prims_ll.h:277,1
    - Dst: Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::sendFlag
      Src: /src/nccl/src/device/prims_ll.h:277,1
    - Dst: Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::storeData
      Src: /src/nccl/src/device/prims_ll.h:280,1
    - Dst: Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::incRecv
      Src: /src/nccl/src/device/prims_ll.h:288,1
    - Dst: Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::postRecv
      Src: /src/nccl/src/device/prims_ll.h:289,1
    - Dst: nsend
      Src: /src/nccl/src/device/prims_ll.h:294,1
    - Dst: Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::incSend
      Src: /src/nccl/src/device/prims_ll.h:295,1
    - Dst: Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::incSend
      Src: /src/nccl/src/device/prims_ll.h:296,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 52
    argCount: 4
    argNames:
    - srcIx
    - dstIx
    - nelem
    - postOp
    argTypes:
    - intptr_t
    - intptr_t
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 225
    functionDepth: 3
    functionLinenumber: 225
    functionLinenumberEnd: 298
    functionName: Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::LLGenericOp
    functionSourceFile: /src/nccl/src/device/prims_ll.h
    functionUses: 0
    functionsReached:
    - Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::waitSend
    - Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::sendFlag
    - divUp
    - DataLoader::loadFinish
    - DataLoader::loadBegin
    - applyPreOp
    - Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::storeLL
    - Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::sendPtr
    - applyReduce
    - nsend
    - Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::readLL
    - Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::storeData
    - nrecv
    - Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::incSend
    - Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::incRecv
    - applyPostOp
    - Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::readLLBeginAll
    - Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::postRecv
    - Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::readLLFinish
    linkageType: ''
    returnType: __device__
    signature: __device__ LLGenericOp(intptr_t srcIx, intptr_t dstIx, int nelem, bool
      postOp)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - conn
    - i
    argTypes:
    - struct ncclConnInfo*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 304
    functionName: Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::loadRecvConn
    functionSourceFile: /src/nccl/src/device/prims_ll.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void loadRecvConn(struct ncclConnInfo* conn, int i)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nrecv
      Src: /src/nccl/src/device/prims_ll.h:306,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 305
    functionDepth: 1
    functionLinenumber: 305
    functionLinenumberEnd: 310
    functionName: Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::loadRecvSync
    functionSourceFile: /src/nccl/src/device/prims_ll.h
    functionUses: 0
    functionsReached:
    - nrecv
    linkageType: ''
    returnType: void
    signature: void loadRecvSync()
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - conn
    - i
    argTypes:
    - struct ncclConnInfo*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 316
    functionName: Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::loadSendConn
    functionSourceFile: /src/nccl/src/device/prims_ll.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void loadSendConn(struct ncclConnInfo* conn, int i)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nsend
      Src: /src/nccl/src/device/prims_ll.h:318,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 324
    functionName: Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::loadSendSync
    functionSourceFile: /src/nccl/src/device/prims_ll.h
    functionUses: 0
    functionsReached:
    - nsend
    linkageType: ''
    returnType: void
    signature: void loadSendSync()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::loadRecvConn
      Src: /src/nccl/src/device/prims_ll.h:343,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 342
    functionDepth: 1
    functionLinenumber: 342
    functionLinenumberEnd: 345
    functionName: Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::while
    functionSourceFile: /src/nccl/src/device/prims_ll.h
    functionUses: 0
    functionsReached:
    - Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::loadRecvConn
    linkageType: ''
    returnType: void
    signature: void while (nrecv < Fan::MaxRecv && recvPeers[nrecv] >= 0)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::loadSendConn
      Src: /src/nccl/src/device/prims_ll.h:348,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 347
    functionDepth: 1
    functionLinenumber: 347
    functionLinenumberEnd: 350
    functionName: Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::while
    functionSourceFile: /src/nccl/src/device/prims_ll.h
    functionUses: 0
    functionsReached:
    - Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::loadSendConn
    linkageType: ''
    returnType: void
    signature: void while (nsend < MaxSend && sendPeers[nsend] >= 0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - inputBuf
    - outputBuf
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 374
    functionName: setDataPtrs
    functionSourceFile: /src/nccl/src/device/prims_ll.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: __device__
    signature: __device__ setDataPtrs(void const *inputBuf, void *outputBuf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - delta
    argTypes:
    - intptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 379
    functionName: moveDataPtrs
    functionSourceFile: /src/nccl/src/device/prims_ll.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __device__
    signature: __device__ moveDataPtrs(intptr_t delta)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LLGenericOp<0, 1, Input, -1>
      Src: /src/nccl/src/device/prims_ll.h:382,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inpIx
    - eltN
    argTypes:
    - intptr_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 381
    functionDepth: 0
    functionLinenumber: 381
    functionLinenumberEnd: 383
    functionName: send
    functionSourceFile: /src/nccl/src/device/prims_ll.h
    functionUses: 14
    functionsReached:
    - LLGenericOp<0, 1, Input, -1>
    linkageType: ''
    returnType: __device__
    signature: __device__ send(intptr_t inpIx, int eltN)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LLGenericOp<0, 1, Output, -1>
      Src: /src/nccl/src/device/prims_ll.h:385,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - outIx
    - eltN
    argTypes:
    - intptr_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 384
    functionDepth: 0
    functionLinenumber: 384
    functionLinenumberEnd: 386
    functionName: sendFromOutput
    functionSourceFile: /src/nccl/src/device/prims_ll.h
    functionUses: 0
    functionsReached:
    - LLGenericOp<0, 1, Output, -1>
    linkageType: ''
    returnType: __device__
    signature: __device__ sendFromOutput(intptr_t outIx, int eltN)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LLGenericOp<1, 0, -1, Output>
      Src: /src/nccl/src/device/prims_ll.h:388,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - outIx
    - eltN
    argTypes:
    - intptr_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 389
    functionName: recv
    functionSourceFile: /src/nccl/src/device/prims_ll.h
    functionUses: 12
    functionsReached:
    - LLGenericOp<1, 0, -1, Output>
    linkageType: ''
    returnType: __device__
    signature: __device__ recv(intptr_t outIx, int eltN, bool postOp=false)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LLGenericOp<1, 1, Input, -1>
      Src: /src/nccl/src/device/prims_ll.h:391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inpIx
    - eltN
    argTypes:
    - intptr_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 390
    functionDepth: 0
    functionLinenumber: 390
    functionLinenumberEnd: 392
    functionName: recvReduceSend
    functionSourceFile: /src/nccl/src/device/prims_ll.h
    functionUses: 2
    functionsReached:
    - LLGenericOp<1, 1, Input, -1>
    linkageType: ''
    returnType: __device__
    signature: __device__ recvReduceSend(intptr_t inpIx, int eltN)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LLGenericOp<1, 0, Input, Output>
      Src: /src/nccl/src/device/prims_ll.h:394,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - inpIx
    - outIx
    - eltN
    argTypes:
    - intptr_t
    - intptr_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 393
    functionDepth: 0
    functionLinenumber: 393
    functionLinenumberEnd: 395
    functionName: recvReduceCopy
    functionSourceFile: /src/nccl/src/device/prims_ll.h
    functionUses: 2
    functionsReached:
    - LLGenericOp<1, 0, Input, Output>
    linkageType: ''
    returnType: __device__
    signature: __device__ recvReduceCopy(intptr_t inpIx, intptr_t outIx, int eltN,
      bool postOp=false)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LLGenericOp<0, 1, Input, Output>
      Src: /src/nccl/src/device/prims_ll.h:397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - inpIx
    - outIx
    - eltN
    argTypes:
    - intptr_t
    - intptr_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 396
    functionDepth: 0
    functionLinenumber: 396
    functionLinenumberEnd: 398
    functionName: copySend
    functionSourceFile: /src/nccl/src/device/prims_ll.h
    functionUses: 0
    functionsReached:
    - LLGenericOp<0, 1, Input, Output>
    linkageType: ''
    returnType: __device__
    signature: __device__ copySend(intptr_t inpIx, intptr_t outIx, int eltN, bool
      postOp=false)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LLGenericOp<1, 1, -1, Output>
      Src: /src/nccl/src/device/prims_ll.h:400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - outIx
    - eltN
    argTypes:
    - intptr_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 399
    functionDepth: 0
    functionLinenumber: 399
    functionLinenumberEnd: 401
    functionName: recvCopySend
    functionSourceFile: /src/nccl/src/device/prims_ll.h
    functionUses: 0
    functionsReached:
    - LLGenericOp<1, 1, -1, Output>
    linkageType: ''
    returnType: __device__
    signature: __device__ recvCopySend(intptr_t outIx, int eltN, bool postOp=false)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LLGenericOp<1, 1, Input, Output>
      Src: /src/nccl/src/device/prims_ll.h:403,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - inpIx
    - outIx
    - eltN
    argTypes:
    - intptr_t
    - intptr_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 402
    functionDepth: 0
    functionLinenumber: 402
    functionLinenumberEnd: 404
    functionName: recvReduceCopySend
    functionSourceFile: /src/nccl/src/device/prims_ll.h
    functionUses: 0
    functionsReached:
    - LLGenericOp<1, 1, Input, Output>
    linkageType: ''
    returnType: __device__
    signature: __device__ recvReduceCopySend(intptr_t inpIx, intptr_t outIx, int eltN,
      bool postOp=false)
  - BBCount: 38
    BranchProfiles: []
    Callsites:
    - Dst: recvOffset
      Src: /src/nccl/src/device/prims_ll128.h:47,1
    - Dst: sendOffset
      Src: /src/nccl/src/device/prims_ll128.h:48,1
    - Dst: barrier_sync
      Src: /src/nccl/src/device/prims_ll128.h:53,1
    - Dst: checkAbort
      Src: /src/nccl/src/device/prims_ll128.h:63,1
    - Dst: __threadfence_system
      Src: /src/nccl/src/device/prims_ll128.h:78,1
    - Dst: __threadfence
      Src: /src/nccl/src/device/prims_ll128.h:80,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/device/prims_ll128.h:89,1
    - Dst: load128
      Src: /src/nccl/src/device/prims_ll128.h:101,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/device/prims_ll128.h:108,1
    - Dst: reinterpret_cast<uint64_t*>
      Src: /src/nccl/src/device/prims_ll128.h:109,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/device/prims_ll128.h:109,1
    - Dst: shmemCvtPtr
      Src: /src/nccl/src/device/prims_ll128.h:110,1
    - Dst: ncclScratchForWarp
      Src: /src/nccl/src/device/prims_ll128.h:110,1
    - Dst: load128
      Src: /src/nccl/src/device/prims_ll128.h:114,1
    - Dst: storeShmem128
      Src: /src/nccl/src/device/prims_ll128.h:117,1
    - Dst: __syncwarp
      Src: /src/nccl/src/device/prims_ll128.h:119,1
    - Dst: loadShmemMisaligned128
      Src: /src/nccl/src/device/prims_ll128.h:129,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/device/prims_ll128.h:153,1
    - Dst: shmemCvtPtr
      Src: /src/nccl/src/device/prims_ll128.h:154,1
    - Dst: ncclScratchForWarp
      Src: /src/nccl/src/device/prims_ll128.h:154,1
    - Dst: store128
      Src: /src/nccl/src/device/prims_ll128.h:160,1
    - Dst: storeShmem128
      Src: /src/nccl/src/device/prims_ll128.h:162,1
    - Dst: __syncwarp
      Src: /src/nccl/src/device/prims_ll128.h:165,1
    - Dst: ncclScratchForWarp
      Src: /src/nccl/src/device/prims_ll128.h:168,1
    - Dst: __syncwarp
      Src: /src/nccl/src/device/prims_ll128.h:181,1
    - Dst: recvPtr
      Src: /src/nccl/src/device/prims_ll128.h:184,1
    - Dst: recvFlag
      Src: /src/nccl/src/device/prims_ll128.h:185,1
    - Dst: load128
      Src: /src/nccl/src/device/prims_ll128.h:192,1
    - Dst: checkAbort
      Src: /src/nccl/src/device/prims_ll128.h:195,1
    - Dst: __any_sync
      Src: /src/nccl/src/device/prims_ll128.h:196,1
    - Dst: load128
      Src: /src/nccl/src/device/prims_ll128.h:200,1
    - Dst: loadRegsFinish
      Src: /src/nccl/src/device/prims_ll128.h:207,1
    - Dst: applyPreOp
      Src: /src/nccl/src/device/prims_ll128.h:211,1
    - Dst: applyPreOp
      Src: /src/nccl/src/device/prims_ll128.h:213,1
    - Dst: applyReduce
      Src: /src/nccl/src/device/prims_ll128.h:223,1
    - Dst: applyReduce
      Src: /src/nccl/src/device/prims_ll128.h:224,1
    - Dst: nrecv
      Src: /src/nccl/src/device/prims_ll128.h:230,1
    - Dst: recvFlag
      Src: /src/nccl/src/device/prims_ll128.h:231,1
    - Dst: recvPtr
      Src: /src/nccl/src/device/prims_ll128.h:232,1
    - Dst: load128
      Src: /src/nccl/src/device/prims_ll128.h:239,1
    - Dst: checkAbort
      Src: /src/nccl/src/device/prims_ll128.h:242,1
    - Dst: __any_sync
      Src: /src/nccl/src/device/prims_ll128.h:243,1
    - Dst: load128
      Src: /src/nccl/src/device/prims_ll128.h:247,1
    - Dst: applyReduce
      Src: /src/nccl/src/device/prims_ll128.h:251,1
    - Dst: applyReduce
      Src: /src/nccl/src/device/prims_ll128.h:252,1
    - Dst: applyPostOp
      Src: /src/nccl/src/device/prims_ll128.h:261,1
    - Dst: applyPostOp
      Src: /src/nccl/src/device/prims_ll128.h:262,1
    - Dst: nsend
      Src: /src/nccl/src/device/prims_ll128.h:270,1
    - Dst: sendFlag
      Src: /src/nccl/src/device/prims_ll128.h:271,1
    - Dst: sendPtr
      Src: /src/nccl/src/device/prims_ll128.h:272,1
    - Dst: store128
      Src: /src/nccl/src/device/prims_ll128.h:275,1
    - Dst: sendFlag
      Src: /src/nccl/src/device/prims_ll128.h:278,1
    - Dst: sendPtr
      Src: /src/nccl/src/device/prims_ll128.h:279,1
    - Dst: store128
      Src: /src/nccl/src/device/prims_ll128.h:282,1
    - Dst: waitSend
      Src: /src/nccl/src/device/prims_ll128.h:301,1
    - Dst: divUp
      Src: /src/nccl/src/device/prims_ll128.h:301,1
    - Dst: barrier
      Src: /src/nccl/src/device/prims_ll128.h:302,1
    - Dst: min
      Src: /src/nccl/src/device/prims_ll128.h:307,1
    - Dst: loadRegsBegin
      Src: /src/nccl/src/device/prims_ll128.h:309,1
    - Dst: recvReduceSendCopy<NCCL_LL128_SHMEM_ELEMS_PER_THREAD, RECV, SEND, SrcBuf,
        DstBuf>
      Src: /src/nccl/src/device/prims_ll128.h:310,1
    - Dst: storeRegs
      Src: /src/nccl/src/device/prims_ll128.h:311,1
    - Dst: barrier
      Src: /src/nccl/src/device/prims_ll128.h:319,1
    - Dst: postSend
      Src: /src/nccl/src/device/prims_ll128.h:321,1
    - Dst: postRecv
      Src: /src/nccl/src/device/prims_ll128.h:323,1
    - Dst: nrecv
      Src: /src/nccl/src/device/prims_ll128.h:332,1
    - Dst: nsend
      Src: /src/nccl/src/device/prims_ll128.h:344,1
    - Dst: nsend
      Src: /src/nccl/src/device/prims_ll128.h:350,1
    - Dst: redOp
      Src: /src/nccl/src/device/prims_ll128.h:365,1
    - Dst: loadRecvConn
      Src: /src/nccl/src/device/prims_ll128.h:373,1
    - Dst: loadSendConn
      Src: /src/nccl/src/device/prims_ll128.h:377,1
    - Dst: Fan
      Src: /src/nccl/src/device/prims_ll128.h:380,1
    - Dst: nrecv
      Src: /src/nccl/src/device/prims_ll128.h:392,1
    - Dst: nsend
      Src: /src/nccl/src/device/prims_ll128.h:394,1
    - Dst: barrier
      Src: /src/nccl/src/device/prims_ll128.h:397,1
    CyclomaticComplexity: 77
    EdgeCount: 77
    ICount: 210
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 12
    functionDepth: 2
    functionLinenumber: 12
    functionLinenumberEnd: 398
    functionName: ~Primitives()
    functionSourceFile: /src/nccl/src/device/prims_ll128.h
    functionUses: 0
    functionsReached:
    - __threadfence_system
    - divUp
    - storeRegs
    - __any_sync
    - waitSend
    - load128
    - recvPtr
    - applyPreOp
    - store128
    - min
    - applyReduce
    - nsend
    - sendOffset
    - sendPtr
    - reinterpret_cast<uint64_t*>
    - barrier_sync
    - loadRecvConn
    - Fan
    - loadSendConn
    - redOp
    - recvFlag
    - __syncwarp
    - recvOffset
    - __threadfence
    - storeShmem128
    - nrecv
    - ncclScratchForWarp
    - recvReduceSendCopy<NCCL_LL128_SHMEM_ELEMS_PER_THREAD, RECV, SEND, SrcBuf, DstBuf>
    - barrier
    - postRecv
    - loadShmemMisaligned128
    - applyPostOp
    - loadRegsBegin
    - sendFlag
    - reinterpret_cast<uintptr_t>
    - postSend
    - shmemCvtPtr
    - checkAbort
    - loadRegsFinish
    linkageType: ''
    returnType: "class Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>:\n
      \ public PrimitivesWithoutDirect<Primitives<T, RedOp, Fan, Direct, ProtoLL128,
      P2p, isNetOffload>> {\n\n  static constexpr int MaxRecv = Fan::MaxRecv, MaxSend
      = Fan::MaxSend;\n  static constexpr int Input=0, Output=1;\n  RedOp redOp;\n
      \ const int tid; // thread index in primitives group\n  const int nthreads;
      // thread count in primitives group\n  const int wid; // lane index in warp\n
      \ const int stepSize;\n  const int warp; // warp index in primitives group\n
      \ const int warpInBlock; // warp index in thread block\n  const bool flagThread;\n
      \ const int group;\n  Fan fan;\n  T *userBufs[2];\n  struct ncclConnInfo* recvConn
      = NULL;\n  volatile uint64_t* recvConnHeadPtr = NULL;\n  uint64_t recvConnHead;\n\n
      \ struct ncclConnInfo* sendConn = NULL;\n  volatile struct ncclConnFifo* sendConnFifo
      = NULL;\n  volatile uint64_t* sendConnTailPtr = NULL;\n  uint64_t sendConnTail;\n
      \ volatile uint64_t* sendConnHeadPtr = NULL;\n  uint64_t sendConnHead;\n  uint64_t
      sendConnHeadCache; // Cache last seen value\n\n  uint64_t recvStep[MaxRecv];\n
      \ uint64_t sendStep[MaxSend];\n  uint64_t* recvBuff[MaxRecv];\n  uint64_t* sendBuff[MaxSend];\n\n
      \ inline __device__ int recvOffset(int i) { return (recvStep[i]%NCCL_STEPS)*stepSize;
      }\n  inline __device__ int sendOffset(int i) { return (sendStep[i]%NCCL_STEPS)*stepSize;
      }\n  inline __device__ uint64_t* recvPtr(int i) { return recvBuff[i]+recvOffset(i);
      }\n  inline __device__ uint64_t* sendPtr(int i) { return sendBuff[i]+sendOffset(i);
      }\n  inline __device__ uint64_t recvFlag(int i) { return recvStep[i]+1; }\n
      \ inline __device__ uint64_t sendFlag(int i) { return sendStep[i]+1; }\n\n  inline
      __device__ void barrier() {\n    barrier_sync(15-group, nthreads);\n  }\n\n
      \ int abort = 0;\n\n  inline __device__ void waitSend(int nbytes) {\n    if
      (sendConnHeadPtr) {\n      int spins = 0;\n      while (sendConnHeadCache +
      NCCL_STEPS < sendConnHead + 1) {\n        sendConnHeadCache = *sendConnHeadPtr;\n
      \       if (checkAbort(abort, 1, spins)) break;\n      }\n      if (sendConnFifo)
      {\n        sendConnFifo[sendStep[wid]%NCCL_STEPS].size = nbytes;\n      }\n
      \     sendConnHead += 1;\n    }\n  }\n\n  inline __device__ void postRecv()
      {\n    if (recvConnHeadPtr) *recvConnHeadPtr = recvConnHead += 1;\n  }\n  inline
      __device__ void postSend() {\n    if (sendConnTailPtr) {\n#if __CUDA_ARCH__
      >= 900\n      __threadfence_system();\n#else\n      __threadfence();\n#endif\n
      \     *sendConnTailPtr = sendConnTail += 1;\n    }\n  }\n\n  template<int WordPerThread>\n
      \ __device__ __forceinline__ void loadRegsBegin(uint64_t(&regs)[WordPerThread],
      T const *src, int eltN) {\n    constexpr int EltPer16B = 16/sizeof(T);\n    if(reinterpret_cast<uintptr_t>(src)%16
      == 0) {\n      /* We are aligned to 16 bytes, so load directly to registers
      no shmem.\n       * Flag threads load half as much data which gets shuffled
      to the even\n       * registers during Finish. The point of splitting into two
      phases is to\n       * defer that shuffle, which incurs a dependency stall,
      until after other\n       * memops are launched by the caller.\n       */\n
      \     #pragma unroll\n      for(int g=0; g < WordPerThread/2; g++) {\n        int
      ix = g*WARP_SIZE - 4*(g/2) + wid - (g%2)*(wid/8);\n        if(!flagThread ||
      g%2==0) {\n          if(ix*EltPer16B < eltN)\n            load128((uint64_t*)(src
      + ix*EltPer16B), regs[2*g+0], regs[2*g+1]);\n        }\n      }\n    }\n    else
      {\n      // Not aligned. Stage the smallest 16 byte aligned region subsuming
      the\n      // buffer into shmem.\n      int misalignment = reinterpret_cast<uintptr_t>(src)
      % 16;\n      uint64_t *src8 = reinterpret_cast<uint64_t*>(reinterpret_cast<uintptr_t>(src)
      & -uintptr_t(16));\n      uint64_t *shm8 = shmemCvtPtr((uint64_t*)ncclScratchForWarp(warpInBlock));\n
      \     #pragma unroll\n      for(int g=0; g < WordPerThread/2; g++)\n        if((g*WARP_SIZE
      + wid)*16 < misalignment + eltN*sizeof(T))\n          load128(src8 + 2*(g*WARP_SIZE
      + wid), regs[2*g+0], regs[2*g+1]);\n      #pragma unroll\n      for(int g=0;
      g < WordPerThread/2; g++)\n        storeShmem128(shm8 + 2*(g*WARP_SIZE + wid),
      regs[2*g+0], regs[2*g+1]);\n\n      __syncwarp();\n\n      // Now load from
      shmem stage to regs. Preserve the same pre-shuffled layout\n      // as the
      aligned case since Finish() will be applied regardless.\n      T *shm = (T*)shm8
      + misalignment/sizeof(T);\n      #pragma unroll\n      for(int g=0; g < WordPerThread/2;
      g++) {\n        int ix = g*WARP_SIZE - 4*(g/2) + wid - (g%2)*(wid/8);\n        if(!flagThread
      || g%2==0) {\n          if(ix*EltPer16B < eltN)\n            loadShmemMisaligned128(shm
      + ix*EltPer16B, regs[2*g+0], regs[2*g+1]);\n        }\n      }\n    }\n  }\n\n
      \ template<int WordPerThread>\n  __device__ __forceinline__ void loadRegsFinish(uint64_t(&regs)[WordPerThread])
      {\n    // Move data out of flag registers into the vacant registers.\n    #pragma
      unroll\n    for (int g=1; g < WordPerThread/2; g+=2) {\n      if (flagThread)
      regs[2*g] = regs[2*g-1];\n    }\n  }\n\n  template<int WordPerThread>\n  __device__
      __forceinline__ void storeRegs(T *dst, uint64_t(&regs)[WordPerThread], int eltN)
      {\n    constexpr int EltPer16B = 16/sizeof(T);\n    // Reverse Finish() register
      permuatation.\n    #pragma unroll\n    for (int g=1; g < WordPerThread/2; g+=2)
      {\n      if (flagThread) regs[2*g-1] = regs[2*g];\n    }\n    // Write to dst
      if 16-byte aligned, shmem otherwise.\n    int misalignment = reinterpret_cast<uintptr_t>(dst)%16;\n
      \   uint64_t *shm8 = shmemCvtPtr((uint64_t*)ncclScratchForWarp(warpInBlock));\n
      \   #pragma unroll\n    for(int g=0; g < WordPerThread/2; g++) {\n      int
      ix = g*WARP_SIZE - 4*(g/2) + wid - (g%2)*(wid/8);\n      if (!flagThread ||
      g%2==0) {\n        if(misalignment == 0 && (ix+1)*EltPer16B <= eltN)\n          store128((uint64_t*)(dst
      + ix*EltPer16B), regs[2*g+0], regs[2*g+1]);\n        else\n          storeShmem128(shm8+2*ix,
      regs[2*g+0], regs[2*g+1]);\n      }\n    }\n    __syncwarp();\n    // Write
      rest from shmem to dst. No need to coalesce stores to 16-bytes,\n    // the
      hardware keeps up fine.\n    T *shm = (T*)ncclScratchForWarp(warpInBlock);\n
      \   int skip = misalignment == 0 ? eltN & -EltPer16B : 0;\n    for(int i=skip+wid;
      i < eltN; i += WARP_SIZE)\n      dst[i] = shm[i];\n  }\n\n  #define WARP_MASK
      0xffffffff\n\n  template <int ELEMS_PER_THREAD, int RECV, int SEND, int SrcBuf,
      int DstBuf>\n  __device__ __forceinline__ void recvReduceSendCopy(uint64_t(&v)[ELEMS_PER_THREAD],
      int ll128Offset, bool postOp) {\n    constexpr int SRC = SrcBuf != -1 ? 1 :
      0;\n    uint64_t vr[ELEMS_PER_THREAD];\n\n    __syncwarp();\n    /************************
      Wait first recv ********************/\n    if (RECV) {\n      uint64_t* ptr
      = recvPtr(0)+ll128Offset;\n      uint64_t flag = recvFlag(0);\n      bool needReload;\n
      \     int spins = 0;\n      do {\n        needReload = false;\n        #pragma
      unroll\n        for (int u=0; u<ELEMS_PER_THREAD; u+=2) {\n          load128(ptr+u*WARP_SIZE,
      vr[u], vr[u+1]);\n          needReload |= flagThread && (vr[u+1] != flag);\n
      \       }\n        needReload &= (0 == checkAbort(abort, 1, spins));\n      }
      while (__any_sync(WARP_MASK, needReload));\n\n      #pragma unroll\n      for
      (int u=0; u<ELEMS_PER_THREAD; u+=2)\n        load128(ptr+u*WARP_SIZE, vr[u],
      vr[u+1]);\n    }\n\n    /************* Finish register load **************/\n
      \   if (SRC) {\n      // By deferring register shuffle here we've overlapped
      spinning on first\n      // peer's data with memory loads of src data.\n      loadRegsFinish(v);\n
      \     if (SrcBuf == Input) {\n        #pragma unroll\n        for (int u=0;
      u<ELEMS_PER_THREAD; u+=2) {\n          v[u] = applyPreOp(redOp, v[u]);\n          if
      (!flagThread)\n            v[u+1] = applyPreOp(redOp, v[u+1]);\n        }\n
      \     }\n    }\n\n    /************************ Recv rest *********************/\n
      \   if (RECV) {\n      { // Consume data from first recv\n        #pragma unroll\n
      \       for (int u=0; u<ELEMS_PER_THREAD; u+=2) {\n          v[u]   = SRC ?
      applyReduce(redOp, vr[u], v[u]) : vr[u];\n          v[u+1] = SRC ? applyReduce(redOp,
      vr[u+1], v[u+1]) : vr[u+1];\n        }\n      }\n\n      // Yes, for some template
      arguments this code will be unreachable.  That's fine.\n      // coverity[dead_error_line]\n
      \     for (int i=1; i<MaxRecv && i<fan.nrecv(); i++) {\n        uint64_t flag
      = recvFlag(i);\n        uint64_t* ptr = recvPtr(i)+ll128Offset;\n        bool
      needReload;\n        int spins = 0;\n        do {\n          needReload = false;\n
      \         #pragma unroll\n          for (int u=0; u<ELEMS_PER_THREAD; u+=2)
      {\n            load128(ptr+u*WARP_SIZE, vr[u], vr[u+1]);\n            needReload
      |= flagThread && (vr[u+1] != flag);\n          }\n          needReload &= (0
      == checkAbort(abort, 1, spins));\n        } while (__any_sync(WARP_MASK, needReload));\n\n
      \       #pragma unroll\n        for (int u=0; u<ELEMS_PER_THREAD; u+=2)\n          load128(ptr+u*WARP_SIZE,
      vr[u], vr[u+1]);\n\n        #pragma unroll\n        for (int u=0; u<ELEMS_PER_THREAD;
      u+=2) {\n          v[u]   = applyReduce(redOp, vr[u], v[u]);\n          v[u+1]
      = applyReduce(redOp, vr[u+1], v[u+1]);\n        }\n      }\n    }\n    /**********************
      End Recv ************************/\n\n    if (postOp) {\n      #pragma unroll\n
      \     for (int u=0; u<ELEMS_PER_THREAD; u+=2) {\n        v[u]   = applyPostOp(redOp,
      v[u]);\n        v[u+1] = applyPostOp(redOp, v[u+1]);\n      }\n    }\n\n    /************************
      Send **************************/\n    if (SEND) {\n      // Yes, for some template
      arguments this code will be unreachable.  That's fine.\n      // coverity[dead_error_line]\n
      \     for (int i=1; i<MaxSend && i<fan.nsend(); i++) {\n        uint64_t flag
      = sendFlag(i);\n        uint64_t* ptr = sendPtr(i)+ll128Offset;\n        #pragma
      unroll\n        for (int u=0; u<ELEMS_PER_THREAD; u+=2) {\n          store128(ptr+u*WARP_SIZE,
      v[u], flagThread ? flag : v[u+1]);\n        }\n      }\n      uint64_t flag
      = sendFlag(0);\n      uint64_t* ptr = sendPtr(0)+ll128Offset;\n      #pragma
      unroll\n      for (int u=0; u<ELEMS_PER_THREAD; u+=2) {\n        store128(ptr+u*WARP_SIZE,
      v[u], flagThread ? flag : v[u+1]);\n      }\n    }\n    /**********************
      End Send ************************/\n  }\n\n  static constexpr int WireWordPerSlice
      = WARP_SIZE*NCCL_LL128_SHMEM_ELEMS_PER_THREAD;\n  static constexpr int DataEltPerSlice
      = (WireWordPerSlice - WireWordPerSlice/NCCL_LL128_LINEELEMS)*(sizeof(uint64_t)/sizeof(T));\n\n
      \ template <int RECV, int SEND, int SrcBuf, int DstBuf>\n  __device__ __forceinline__
      void GenericOp(intptr_t srcIx, intptr_t dstIx, int nelem, bool postOp) {\n    constexpr
      int SRC = SrcBuf != -1 ? 1 : 0;\n    constexpr int DST = DstBuf != -1 ? 1 :
      0;\n    T const *srcPtr = SrcBuf == -1 ? nullptr : userBufs[SrcBuf] + srcIx;\n
      \   T       *dstPtr = DstBuf == -1 ? nullptr : userBufs[DstBuf] + dstIx;\n    int
      wireOffset = WireWordPerSlice*warp + 2*wid;\n    const int nwarps = nthreads/WARP_SIZE;\n
      \   nelem = nelem < 0 ? 0 : nelem;\n\n    if (SEND) waitSend(divUp(nelem, DataEltPerSlice)*WireWordPerSlice*sizeof(uint64_t));\n
      \   barrier();\n    nelem -= DataEltPerSlice*warp;\n    srcPtr += DataEltPerSlice*warp;\n
      \   dstPtr += DataEltPerSlice*warp;\n    while (nelem > 0) {\n      const int
      eltInSlice = min(nelem, DataEltPerSlice);\n      uint64_t regs[NCCL_LL128_SHMEM_ELEMS_PER_THREAD];\n
      \     if (SRC) loadRegsBegin(regs, srcPtr, eltInSlice);\n      recvReduceSendCopy<NCCL_LL128_SHMEM_ELEMS_PER_THREAD,
      RECV, SEND, SrcBuf, DstBuf>(regs, wireOffset, postOp);\n      if (DST) storeRegs(dstPtr,
      regs, eltInSlice);\n\n      wireOffset += WireWordPerSlice*nwarps;\n      srcPtr
      += DataEltPerSlice*nwarps;\n      dstPtr += DataEltPerSlice*nwarps;\n      nelem
      -= DataEltPerSlice*nwarps;\n    }\n\n    barrier();\n    if (SEND) for (int
      i=0; i < MaxSend; i++) sendStep[i] += 1;\n    if (SEND) postSend();\n    if
      (RECV) for (int i=0; i < MaxRecv; i++) recvStep[i] += 1;\n    if (RECV) postRecv();\n
      \ }\n\n  __device__ __forceinline__ void loadRecvConn(struct ncclConnInfo* conn,
      int i) {\n    recvBuff[i] = (uint64_t*)conn->buffs[NCCL_PROTO_LL128];\n    recvStep[i]
      = conn->step;\n    if (wid == i) recvConn = conn;\n  }\n  __device__ __forceinline__
      void loadRecvSync() {\n    if (tid >= nthreads-WARP_SIZE && wid < fan.nrecv())
      {\n      recvConnHeadPtr = recvConn->head;\n      recvConnHead = recvConn->step;\n
      \   }\n  }\n\n  __device__ __forceinline__ void loadSendConn(struct ncclConnInfo*
      conn, int i) {\n    sendBuff[i] = (uint64_t*)conn->buffs[NCCL_PROTO_LL128];\n
      \   sendStep[i] = conn->step;\n    if (wid == i) sendConn = conn;\n  }\n  __device__
      __forceinline__ void loadSendSync() {\n    if (tid < fan.nsend()) {\n      sendConnHeadPtr
      = sendConn->head;\n      sendConnHeadCache = *sendConnHeadPtr;\n      sendConnHead
      = sendConn->step;\n      sendConnFifo = sendConn->connFifo;\n    }\n    if (tid
      >= nthreads-WARP_SIZE && wid<fan.nsend()) {\n      if (sendConn->connFifo) {\n
      \       sendConnTailPtr = sendConn->tail;\n        sendConnTail = sendConn->step;\n
      \     }\n    }\n  }\n\npublic:\n  __device__ Primitives(\n      const int tid,
      const int nthreads, int const *recvPeers, int const *sendPeers,\n      void
      const *inputBuf, void *outputBuf, uint64_t redOpArg, uint8_t group=0,\n      uint8_t
      connIndexRecv=0, uint8_t connIndexSend=0, struct ncclDevWorkColl* e = nullptr,\n
      \     bool ipcReg = false, bool netReg = false, int stepSize_ = 0\n    ):\n
      \   redOp(redOpArg),\n    tid(tid), nthreads(nthreads), wid(tid%WARP_SIZE),
      warp(tid/WARP_SIZE),\n    warpInBlock(threadIdx.x/WARP_SIZE),\n    flagThread((tid%8)==7),
      group(group),\n    stepSize(ncclShmem.comm.buffSizes[NCCL_PROTO_LL128]/NCCL_STEPS/sizeof(uint64_t))
      {\n    auto *channel = &ncclShmem.channel;\n    int nrecv=0, nsend=0;\n    while
      (nrecv < MaxRecv && recvPeers[nrecv] >= 0) {\n      loadRecvConn(&channel->peers[recvPeers[nrecv]]->recv[connIndexRecv],
      nrecv);\n      nrecv++;\n    }\n    while (nsend < MaxSend && sendPeers[nsend]
      >= 0) {\n      loadSendConn(&channel->peers[sendPeers[nsend]]->send[connIndexSend],
      nsend);\n      nsend++;\n    }\n    this->fan = Fan(nrecv, nsend);\n    // Coverity
      reports recvConn and sendConn being possibly NULL at this point but that won't
      actually\n    // happen given the two \"while\" loops just above.\n    // coverity[var_deref_model:FALSE]\n
      \   loadRecvSync();\n    // coverity[var_deref_model:FALSE]\n    loadSendSync();\n
      \   setDataPtrs(inputBuf, outputBuf);\n  }"
    signature: "class Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>:\n
      \ public PrimitivesWithoutDirect<Primitives<T, RedOp, Fan, Direct, ProtoLL128,
      P2p, isNetOffload>> {\n\n  static constexpr int MaxRecv = Fan::MaxRecv, MaxSend
      = Fan::MaxSend;\n  static constexpr int Input=0, Output=1;\n  RedOp redOp;\n
      \ const int tid; // thread index in primitives group\n  const int nthreads;
      // thread count in primitives group\n  const int wid; // lane index in warp\n
      \ const int stepSize;\n  const int warp; // warp index in primitives group\n
      \ const int warpInBlock; // warp index in thread block\n  const bool flagThread;\n
      \ const int group;\n  Fan fan;\n  T *userBufs[2];\n  struct ncclConnInfo* recvConn
      = NULL;\n  volatile uint64_t* recvConnHeadPtr = NULL;\n  uint64_t recvConnHead;\n\n
      \ struct ncclConnInfo* sendConn = NULL;\n  volatile struct ncclConnFifo* sendConnFifo
      = NULL;\n  volatile uint64_t* sendConnTailPtr = NULL;\n  uint64_t sendConnTail;\n
      \ volatile uint64_t* sendConnHeadPtr = NULL;\n  uint64_t sendConnHead;\n  uint64_t
      sendConnHeadCache; // Cache last seen value\n\n  uint64_t recvStep[MaxRecv];\n
      \ uint64_t sendStep[MaxSend];\n  uint64_t* recvBuff[MaxRecv];\n  uint64_t* sendBuff[MaxSend];\n\n
      \ inline __device__ int recvOffset(int i) { return (recvStep[i]%NCCL_STEPS)*stepSize;
      }\n  inline __device__ int sendOffset(int i) { return (sendStep[i]%NCCL_STEPS)*stepSize;
      }\n  inline __device__ uint64_t* recvPtr(int i) { return recvBuff[i]+recvOffset(i);
      }\n  inline __device__ uint64_t* sendPtr(int i) { return sendBuff[i]+sendOffset(i);
      }\n  inline __device__ uint64_t recvFlag(int i) { return recvStep[i]+1; }\n
      \ inline __device__ uint64_t sendFlag(int i) { return sendStep[i]+1; }\n\n  inline
      __device__ void barrier() {\n    barrier_sync(15-group, nthreads);\n  }\n\n
      \ int abort = 0;\n\n  inline __device__ void waitSend(int nbytes) {\n    if
      (sendConnHeadPtr) {\n      int spins = 0;\n      while (sendConnHeadCache +
      NCCL_STEPS < sendConnHead + 1) {\n        sendConnHeadCache = *sendConnHeadPtr;\n
      \       if (checkAbort(abort, 1, spins)) break;\n      }\n      if (sendConnFifo)
      {\n        sendConnFifo[sendStep[wid]%NCCL_STEPS].size = nbytes;\n      }\n
      \     sendConnHead += 1;\n    }\n  }\n\n  inline __device__ void postRecv()
      {\n    if (recvConnHeadPtr) *recvConnHeadPtr = recvConnHead += 1;\n  }\n  inline
      __device__ void postSend() {\n    if (sendConnTailPtr) {\n#if __CUDA_ARCH__
      >= 900\n      __threadfence_system();\n#else\n      __threadfence();\n#endif\n
      \     *sendConnTailPtr = sendConnTail += 1;\n    }\n  }\n\n  template<int WordPerThread>\n
      \ __device__ __forceinline__ void loadRegsBegin(uint64_t(&regs)[WordPerThread],
      T const *src, int eltN) {\n    constexpr int EltPer16B = 16/sizeof(T);\n    if(reinterpret_cast<uintptr_t>(src)%16
      == 0) {\n      /* We are aligned to 16 bytes, so load directly to registers
      no shmem.\n       * Flag threads load half as much data which gets shuffled
      to the even\n       * registers during Finish. The point of splitting into two
      phases is to\n       * defer that shuffle, which incurs a dependency stall,
      until after other\n       * memops are launched by the caller.\n       */\n
      \     #pragma unroll\n      for(int g=0; g < WordPerThread/2; g++) {\n        int
      ix = g*WARP_SIZE - 4*(g/2) + wid - (g%2)*(wid/8);\n        if(!flagThread ||
      g%2==0) {\n          if(ix*EltPer16B < eltN)\n            load128((uint64_t*)(src
      + ix*EltPer16B), regs[2*g+0], regs[2*g+1]);\n        }\n      }\n    }\n    else
      {\n      // Not aligned. Stage the smallest 16 byte aligned region subsuming
      the\n      // buffer into shmem.\n      int misalignment = reinterpret_cast<uintptr_t>(src)
      % 16;\n      uint64_t *src8 = reinterpret_cast<uint64_t*>(reinterpret_cast<uintptr_t>(src)
      & -uintptr_t(16));\n      uint64_t *shm8 = shmemCvtPtr((uint64_t*)ncclScratchForWarp(warpInBlock));\n
      \     #pragma unroll\n      for(int g=0; g < WordPerThread/2; g++)\n        if((g*WARP_SIZE
      + wid)*16 < misalignment + eltN*sizeof(T))\n          load128(src8 + 2*(g*WARP_SIZE
      + wid), regs[2*g+0], regs[2*g+1]);\n      #pragma unroll\n      for(int g=0;
      g < WordPerThread/2; g++)\n        storeShmem128(shm8 + 2*(g*WARP_SIZE + wid),
      regs[2*g+0], regs[2*g+1]);\n\n      __syncwarp();\n\n      // Now load from
      shmem stage to regs. Preserve the same pre-shuffled layout\n      // as the
      aligned case since Finish() will be applied regardless.\n      T *shm = (T*)shm8
      + misalignment/sizeof(T);\n      #pragma unroll\n      for(int g=0; g < WordPerThread/2;
      g++) {\n        int ix = g*WARP_SIZE - 4*(g/2) + wid - (g%2)*(wid/8);\n        if(!flagThread
      || g%2==0) {\n          if(ix*EltPer16B < eltN)\n            loadShmemMisaligned128(shm
      + ix*EltPer16B, regs[2*g+0], regs[2*g+1]);\n        }\n      }\n    }\n  }\n\n
      \ template<int WordPerThread>\n  __device__ __forceinline__ void loadRegsFinish(uint64_t(&regs)[WordPerThread])
      {\n    // Move data out of flag registers into the vacant registers.\n    #pragma
      unroll\n    for (int g=1; g < WordPerThread/2; g+=2) {\n      if (flagThread)
      regs[2*g] = regs[2*g-1];\n    }\n  }\n\n  template<int WordPerThread>\n  __device__
      __forceinline__ void storeRegs(T *dst, uint64_t(&regs)[WordPerThread], int eltN)
      {\n    constexpr int EltPer16B = 16/sizeof(T);\n    // Reverse Finish() register
      permuatation.\n    #pragma unroll\n    for (int g=1; g < WordPerThread/2; g+=2)
      {\n      if (flagThread) regs[2*g-1] = regs[2*g];\n    }\n    // Write to dst
      if 16-byte aligned, shmem otherwise.\n    int misalignment = reinterpret_cast<uintptr_t>(dst)%16;\n
      \   uint64_t *shm8 = shmemCvtPtr((uint64_t*)ncclScratchForWarp(warpInBlock));\n
      \   #pragma unroll\n    for(int g=0; g < WordPerThread/2; g++) {\n      int
      ix = g*WARP_SIZE - 4*(g/2) + wid - (g%2)*(wid/8);\n      if (!flagThread ||
      g%2==0) {\n        if(misalignment == 0 && (ix+1)*EltPer16B <= eltN)\n          store128((uint64_t*)(dst
      + ix*EltPer16B), regs[2*g+0], regs[2*g+1]);\n        else\n          storeShmem128(shm8+2*ix,
      regs[2*g+0], regs[2*g+1]);\n      }\n    }\n    __syncwarp();\n    // Write
      rest from shmem to dst. No need to coalesce stores to 16-bytes,\n    // the
      hardware keeps up fine.\n    T *shm = (T*)ncclScratchForWarp(warpInBlock);\n
      \   int skip = misalignment == 0 ? eltN & -EltPer16B : 0;\n    for(int i=skip+wid;
      i < eltN; i += WARP_SIZE)\n      dst[i] = shm[i];\n  }\n\n  #define WARP_MASK
      0xffffffff\n\n  template <int ELEMS_PER_THREAD, int RECV, int SEND, int SrcBuf,
      int DstBuf>\n  __device__ __forceinline__ void recvReduceSendCopy(uint64_t(&v)[ELEMS_PER_THREAD],
      int ll128Offset, bool postOp) {\n    constexpr int SRC = SrcBuf != -1 ? 1 :
      0;\n    uint64_t vr[ELEMS_PER_THREAD];\n\n    __syncwarp();\n    /************************
      Wait first recv ********************/\n    if (RECV) {\n      uint64_t* ptr
      = recvPtr(0)+ll128Offset;\n      uint64_t flag = recvFlag(0);\n      bool needReload;\n
      \     int spins = 0;\n      do {\n        needReload = false;\n        #pragma
      unroll\n        for (int u=0; u<ELEMS_PER_THREAD; u+=2) {\n          load128(ptr+u*WARP_SIZE,
      vr[u], vr[u+1]);\n          needReload |= flagThread && (vr[u+1] != flag);\n
      \       }\n        needReload &= (0 == checkAbort(abort, 1, spins));\n      }
      while (__any_sync(WARP_MASK, needReload));\n\n      #pragma unroll\n      for
      (int u=0; u<ELEMS_PER_THREAD; u+=2)\n        load128(ptr+u*WARP_SIZE, vr[u],
      vr[u+1]);\n    }\n\n    /************* Finish register load **************/\n
      \   if (SRC) {\n      // By deferring register shuffle here we've overlapped
      spinning on first\n      // peer's data with memory loads of src data.\n      loadRegsFinish(v);\n
      \     if (SrcBuf == Input) {\n        #pragma unroll\n        for (int u=0;
      u<ELEMS_PER_THREAD; u+=2) {\n          v[u] = applyPreOp(redOp, v[u]);\n          if
      (!flagThread)\n            v[u+1] = applyPreOp(redOp, v[u+1]);\n        }\n
      \     }\n    }\n\n    /************************ Recv rest *********************/\n
      \   if (RECV) {\n      { // Consume data from first recv\n        #pragma unroll\n
      \       for (int u=0; u<ELEMS_PER_THREAD; u+=2) {\n          v[u]   = SRC ?
      applyReduce(redOp, vr[u], v[u]) : vr[u];\n          v[u+1] = SRC ? applyReduce(redOp,
      vr[u+1], v[u+1]) : vr[u+1];\n        }\n      }\n\n      // Yes, for some template
      arguments this code will be unreachable.  That's fine.\n      // coverity[dead_error_line]\n
      \     for (int i=1; i<MaxRecv && i<fan.nrecv(); i++) {\n        uint64_t flag
      = recvFlag(i);\n        uint64_t* ptr = recvPtr(i)+ll128Offset;\n        bool
      needReload;\n        int spins = 0;\n        do {\n          needReload = false;\n
      \         #pragma unroll\n          for (int u=0; u<ELEMS_PER_THREAD; u+=2)
      {\n            load128(ptr+u*WARP_SIZE, vr[u], vr[u+1]);\n            needReload
      |= flagThread && (vr[u+1] != flag);\n          }\n          needReload &= (0
      == checkAbort(abort, 1, spins));\n        } while (__any_sync(WARP_MASK, needReload));\n\n
      \       #pragma unroll\n        for (int u=0; u<ELEMS_PER_THREAD; u+=2)\n          load128(ptr+u*WARP_SIZE,
      vr[u], vr[u+1]);\n\n        #pragma unroll\n        for (int u=0; u<ELEMS_PER_THREAD;
      u+=2) {\n          v[u]   = applyReduce(redOp, vr[u], v[u]);\n          v[u+1]
      = applyReduce(redOp, vr[u+1], v[u+1]);\n        }\n      }\n    }\n    /**********************
      End Recv ************************/\n\n    if (postOp) {\n      #pragma unroll\n
      \     for (int u=0; u<ELEMS_PER_THREAD; u+=2) {\n        v[u]   = applyPostOp(redOp,
      v[u]);\n        v[u+1] = applyPostOp(redOp, v[u+1]);\n      }\n    }\n\n    /************************
      Send **************************/\n    if (SEND) {\n      // Yes, for some template
      arguments this code will be unreachable.  That's fine.\n      // coverity[dead_error_line]\n
      \     for (int i=1; i<MaxSend && i<fan.nsend(); i++) {\n        uint64_t flag
      = sendFlag(i);\n        uint64_t* ptr = sendPtr(i)+ll128Offset;\n        #pragma
      unroll\n        for (int u=0; u<ELEMS_PER_THREAD; u+=2) {\n          store128(ptr+u*WARP_SIZE,
      v[u], flagThread ? flag : v[u+1]);\n        }\n      }\n      uint64_t flag
      = sendFlag(0);\n      uint64_t* ptr = sendPtr(0)+ll128Offset;\n      #pragma
      unroll\n      for (int u=0; u<ELEMS_PER_THREAD; u+=2) {\n        store128(ptr+u*WARP_SIZE,
      v[u], flagThread ? flag : v[u+1]);\n      }\n    }\n    /**********************
      End Send ************************/\n  }\n\n  static constexpr int WireWordPerSlice
      = WARP_SIZE*NCCL_LL128_SHMEM_ELEMS_PER_THREAD;\n  static constexpr int DataEltPerSlice
      = (WireWordPerSlice - WireWordPerSlice/NCCL_LL128_LINEELEMS)*(sizeof(uint64_t)/sizeof(T));\n\n
      \ template <int RECV, int SEND, int SrcBuf, int DstBuf>\n  __device__ __forceinline__
      void GenericOp(intptr_t srcIx, intptr_t dstIx, int nelem, bool postOp) {\n    constexpr
      int SRC = SrcBuf != -1 ? 1 : 0;\n    constexpr int DST = DstBuf != -1 ? 1 :
      0;\n    T const *srcPtr = SrcBuf == -1 ? nullptr : userBufs[SrcBuf] + srcIx;\n
      \   T       *dstPtr = DstBuf == -1 ? nullptr : userBufs[DstBuf] + dstIx;\n    int
      wireOffset = WireWordPerSlice*warp + 2*wid;\n    const int nwarps = nthreads/WARP_SIZE;\n
      \   nelem = nelem < 0 ? 0 : nelem;\n\n    if (SEND) waitSend(divUp(nelem, DataEltPerSlice)*WireWordPerSlice*sizeof(uint64_t));\n
      \   barrier();\n    nelem -= DataEltPerSlice*warp;\n    srcPtr += DataEltPerSlice*warp;\n
      \   dstPtr += DataEltPerSlice*warp;\n    while (nelem > 0) {\n      const int
      eltInSlice = min(nelem, DataEltPerSlice);\n      uint64_t regs[NCCL_LL128_SHMEM_ELEMS_PER_THREAD];\n
      \     if (SRC) loadRegsBegin(regs, srcPtr, eltInSlice);\n      recvReduceSendCopy<NCCL_LL128_SHMEM_ELEMS_PER_THREAD,
      RECV, SEND, SrcBuf, DstBuf>(regs, wireOffset, postOp);\n      if (DST) storeRegs(dstPtr,
      regs, eltInSlice);\n\n      wireOffset += WireWordPerSlice*nwarps;\n      srcPtr
      += DataEltPerSlice*nwarps;\n      dstPtr += DataEltPerSlice*nwarps;\n      nelem
      -= DataEltPerSlice*nwarps;\n    }\n\n    barrier();\n    if (SEND) for (int
      i=0; i < MaxSend; i++) sendStep[i] += 1;\n    if (SEND) postSend();\n    if
      (RECV) for (int i=0; i < MaxRecv; i++) recvStep[i] += 1;\n    if (RECV) postRecv();\n
      \ }\n\n  __device__ __forceinline__ void loadRecvConn(struct ncclConnInfo* conn,
      int i) {\n    recvBuff[i] = (uint64_t*)conn->buffs[NCCL_PROTO_LL128];\n    recvStep[i]
      = conn->step;\n    if (wid == i) recvConn = conn;\n  }\n  __device__ __forceinline__
      void loadRecvSync() {\n    if (tid >= nthreads-WARP_SIZE && wid < fan.nrecv())
      {\n      recvConnHeadPtr = recvConn->head;\n      recvConnHead = recvConn->step;\n
      \   }\n  }\n\n  __device__ __forceinline__ void loadSendConn(struct ncclConnInfo*
      conn, int i) {\n    sendBuff[i] = (uint64_t*)conn->buffs[NCCL_PROTO_LL128];\n
      \   sendStep[i] = conn->step;\n    if (wid == i) sendConn = conn;\n  }\n  __device__
      __forceinline__ void loadSendSync() {\n    if (tid < fan.nsend()) {\n      sendConnHeadPtr
      = sendConn->head;\n      sendConnHeadCache = *sendConnHeadPtr;\n      sendConnHead
      = sendConn->step;\n      sendConnFifo = sendConn->connFifo;\n    }\n    if (tid
      >= nthreads-WARP_SIZE && wid<fan.nsend()) {\n      if (sendConn->connFifo) {\n
      \       sendConnTailPtr = sendConn->tail;\n        sendConnTail = sendConn->step;\n
      \     }\n    }\n  }\n\npublic:\n  __device__ Primitives(\n      const int tid,
      const int nthreads, int const *recvPeers, int const *sendPeers,\n      void
      const *inputBuf, void *outputBuf, uint64_t redOpArg, uint8_t group=0,\n      uint8_t
      connIndexRecv=0, uint8_t connIndexSend=0, struct ncclDevWorkColl* e = nullptr,\n
      \     bool ipcReg = false, bool netReg = false, int stepSize_ = 0\n    ):\n
      \   redOp(redOpArg),\n    tid(tid), nthreads(nthreads), wid(tid%WARP_SIZE),
      warp(tid/WARP_SIZE),\n    warpInBlock(threadIdx.x/WARP_SIZE),\n    flagThread((tid%8)==7),
      group(group),\n    stepSize(ncclShmem.comm.buffSizes[NCCL_PROTO_LL128]/NCCL_STEPS/sizeof(uint64_t))
      {\n    auto *channel = &ncclShmem.channel;\n    int nrecv=0, nsend=0;\n    while
      (nrecv < MaxRecv && recvPeers[nrecv] >= 0) {\n      loadRecvConn(&channel->peers[recvPeers[nrecv]]->recv[connIndexRecv],
      nrecv);\n      nrecv++;\n    }\n    while (nsend < MaxSend && sendPeers[nsend]
      >= 0) {\n      loadSendConn(&channel->peers[sendPeers[nsend]]->send[connIndexSend],
      nsend);\n      nsend++;\n    }\n    this->fan = Fan(nrecv, nsend);\n    // Coverity
      reports recvConn and sendConn being possibly NULL at this point but that won't
      actually\n    // happen given the two \"while\" loops just above.\n    // coverity[var_deref_model:FALSE]\n
      \   loadRecvSync();\n    // coverity[var_deref_model:FALSE]\n    loadSendSync();\n
      \   setDataPtrs(inputBuf, outputBuf);\n  } ~Primitives()"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::recvOffset
    functionSourceFile: /src/nccl/src/device/prims_ll128.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __device__
    signature: __device__ recvOffset(int i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 46
    functionName: Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::sendOffset
    functionSourceFile: /src/nccl/src/device/prims_ll128.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __device__
    signature: __device__ sendOffset(int i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::recvOffset
      Src: /src/nccl/src/device/prims_ll128.h:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::recvPtr
    functionSourceFile: /src/nccl/src/device/prims_ll128.h
    functionUses: 0
    functionsReached:
    - Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::recvOffset
    linkageType: ''
    returnType: __device__
    signature: __device__ * recvPtr(int i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::sendOffset
      Src: /src/nccl/src/device/prims_ll128.h:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 48
    functionName: Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::sendPtr
    functionSourceFile: /src/nccl/src/device/prims_ll128.h
    functionUses: 0
    functionsReached:
    - Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::sendOffset
    linkageType: ''
    returnType: __device__
    signature: __device__ * sendPtr(int i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 49
    functionName: Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::recvFlag
    functionSourceFile: /src/nccl/src/device/prims_ll128.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __device__
    signature: __device__ recvFlag(int i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    functionName: Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::sendFlag
    functionSourceFile: /src/nccl/src/device/prims_ll128.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __device__
    signature: __device__ sendFlag(int i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: barrier_sync
      Src: /src/nccl/src/device/prims_ll128.h:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::barrier
    functionSourceFile: /src/nccl/src/device/prims_ll128.h
    functionUses: 0
    functionsReached:
    - barrier_sync
    linkageType: ''
    returnType: __device__
    signature: __device__ barrier()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: checkAbort
      Src: /src/nccl/src/device/prims_ll128.h:63,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - nbytes
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 70
    functionName: Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::waitSend
    functionSourceFile: /src/nccl/src/device/prims_ll128.h
    functionUses: 0
    functionsReached:
    - checkAbort
    linkageType: ''
    returnType: __device__
    signature: __device__ waitSend(int nbytes)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 74
    functionName: Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::postRecv
    functionSourceFile: /src/nccl/src/device/prims_ll128.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __device__
    signature: __device__ postRecv()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __threadfence_system
      Src: /src/nccl/src/device/prims_ll128.h:78,1
    - Dst: __threadfence
      Src: /src/nccl/src/device/prims_ll128.h:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 84
    functionName: Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::postSend
    functionSourceFile: /src/nccl/src/device/prims_ll128.h
    functionUses: 0
    functionsReached:
    - __threadfence_system
    - __threadfence
    linkageType: ''
    returnType: __device__
    signature: __device__ postSend()
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/device/prims_ll128.h:89,1
    - Dst: load128
      Src: /src/nccl/src/device/prims_ll128.h:101,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/device/prims_ll128.h:108,1
    - Dst: reinterpret_cast<uint64_t*>
      Src: /src/nccl/src/device/prims_ll128.h:109,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/device/prims_ll128.h:109,1
    - Dst: shmemCvtPtr
      Src: /src/nccl/src/device/prims_ll128.h:110,1
    - Dst: ncclScratchForWarp
      Src: /src/nccl/src/device/prims_ll128.h:110,1
    - Dst: load128
      Src: /src/nccl/src/device/prims_ll128.h:114,1
    - Dst: storeShmem128
      Src: /src/nccl/src/device/prims_ll128.h:117,1
    - Dst: __syncwarp
      Src: /src/nccl/src/device/prims_ll128.h:119,1
    - Dst: loadShmemMisaligned128
      Src: /src/nccl/src/device/prims_ll128.h:129,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 22
    argCount: 3
    argNames:
    - (regs)
    - src
    - eltN
    argTypes:
    - uint64_t[]
    - T*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 87
    functionDepth: 2
    functionLinenumber: 87
    functionLinenumberEnd: 133
    functionName: Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::loadRegsBegin
    functionSourceFile: /src/nccl/src/device/prims_ll128.h
    functionUses: 0
    functionsReached:
    - __syncwarp
    - reinterpret_cast<uintptr_t>
    - storeShmem128
    - load128
    - ncclScratchForWarp
    - shmemCvtPtr
    - reinterpret_cast<uint64_t*>
    - loadShmemMisaligned128
    linkageType: ''
    returnType: __device__
    signature: __device__ loadRegsBegin(uint64_t(&regs)[WordPerThread], T const *src,
      int eltN)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - (regs)
    argTypes:
    - uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 142
    functionName: Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::loadRegsFinish
    functionSourceFile: /src/nccl/src/device/prims_ll128.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __device__
    signature: __device__ loadRegsFinish(uint64_t(&regs)[WordPerThread])
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/device/prims_ll128.h:153,1
    - Dst: shmemCvtPtr
      Src: /src/nccl/src/device/prims_ll128.h:154,1
    - Dst: ncclScratchForWarp
      Src: /src/nccl/src/device/prims_ll128.h:154,1
    - Dst: store128
      Src: /src/nccl/src/device/prims_ll128.h:160,1
    - Dst: storeShmem128
      Src: /src/nccl/src/device/prims_ll128.h:162,1
    - Dst: __syncwarp
      Src: /src/nccl/src/device/prims_ll128.h:165,1
    - Dst: ncclScratchForWarp
      Src: /src/nccl/src/device/prims_ll128.h:168,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 3
    argNames:
    - dst
    - (regs)
    - eltN
    argTypes:
    - T*
    - uint64_t[]
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 145
    functionDepth: 2
    functionLinenumber: 145
    functionLinenumberEnd: 172
    functionName: Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::storeRegs
    functionSourceFile: /src/nccl/src/device/prims_ll128.h
    functionUses: 0
    functionsReached:
    - store128
    - __syncwarp
    - storeShmem128
    - reinterpret_cast<uintptr_t>
    - ncclScratchForWarp
    - shmemCvtPtr
    linkageType: ''
    returnType: __device__
    signature: __device__ storeRegs(T *dst, uint64_t(&regs)[WordPerThread], int eltN)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: __syncwarp
      Src: /src/nccl/src/device/prims_ll128.h:181,1
    - Dst: Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::recvPtr
      Src: /src/nccl/src/device/prims_ll128.h:184,1
    - Dst: Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::recvFlag
      Src: /src/nccl/src/device/prims_ll128.h:185,1
    - Dst: load128
      Src: /src/nccl/src/device/prims_ll128.h:192,1
    - Dst: checkAbort
      Src: /src/nccl/src/device/prims_ll128.h:195,1
    - Dst: __any_sync
      Src: /src/nccl/src/device/prims_ll128.h:196,1
    - Dst: load128
      Src: /src/nccl/src/device/prims_ll128.h:200,1
    - Dst: Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::loadRegsFinish
      Src: /src/nccl/src/device/prims_ll128.h:207,1
    - Dst: applyPreOp
      Src: /src/nccl/src/device/prims_ll128.h:211,1
    - Dst: applyPreOp
      Src: /src/nccl/src/device/prims_ll128.h:213,1
    - Dst: applyReduce
      Src: /src/nccl/src/device/prims_ll128.h:223,1
    - Dst: applyReduce
      Src: /src/nccl/src/device/prims_ll128.h:224,1
    - Dst: nrecv
      Src: /src/nccl/src/device/prims_ll128.h:230,1
    - Dst: Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::recvFlag
      Src: /src/nccl/src/device/prims_ll128.h:231,1
    - Dst: Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::recvPtr
      Src: /src/nccl/src/device/prims_ll128.h:232,1
    - Dst: load128
      Src: /src/nccl/src/device/prims_ll128.h:239,1
    - Dst: checkAbort
      Src: /src/nccl/src/device/prims_ll128.h:242,1
    - Dst: __any_sync
      Src: /src/nccl/src/device/prims_ll128.h:243,1
    - Dst: load128
      Src: /src/nccl/src/device/prims_ll128.h:247,1
    - Dst: applyReduce
      Src: /src/nccl/src/device/prims_ll128.h:251,1
    - Dst: applyReduce
      Src: /src/nccl/src/device/prims_ll128.h:252,1
    - Dst: applyPostOp
      Src: /src/nccl/src/device/prims_ll128.h:261,1
    - Dst: applyPostOp
      Src: /src/nccl/src/device/prims_ll128.h:262,1
    - Dst: nsend
      Src: /src/nccl/src/device/prims_ll128.h:270,1
    - Dst: Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::sendFlag
      Src: /src/nccl/src/device/prims_ll128.h:271,1
    - Dst: Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::sendPtr
      Src: /src/nccl/src/device/prims_ll128.h:272,1
    - Dst: store128
      Src: /src/nccl/src/device/prims_ll128.h:275,1
    - Dst: Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::sendFlag
      Src: /src/nccl/src/device/prims_ll128.h:278,1
    - Dst: Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::sendPtr
      Src: /src/nccl/src/device/prims_ll128.h:279,1
    - Dst: store128
      Src: /src/nccl/src/device/prims_ll128.h:282,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 63
    argCount: 3
    argNames:
    - (v)
    - ll128Offset
    - postOp
    argTypes:
    - uint64_t[]
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 177
    functionDepth: 2
    functionLinenumber: 177
    functionLinenumberEnd: 286
    functionName: Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::recvReduceSendCopy
    functionSourceFile: /src/nccl/src/device/prims_ll128.h
    functionUses: 0
    functionsReached:
    - store128
    - Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::recvPtr
    - __syncwarp
    - __any_sync
    - Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::sendPtr
    - applyReduce
    - nsend
    - nrecv
    - load128
    - Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::recvFlag
    - checkAbort
    - applyPostOp
    - Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::sendFlag
    - Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::loadRegsFinish
    - applyPreOp
    linkageType: ''
    returnType: __device__
    signature: __device__ recvReduceSendCopy(uint64_t(&v)[ELEMS_PER_THREAD], int ll128Offset,
      bool postOp)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::waitSend
      Src: /src/nccl/src/device/prims_ll128.h:301,1
    - Dst: divUp
      Src: /src/nccl/src/device/prims_ll128.h:301,1
    - Dst: Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::barrier
      Src: /src/nccl/src/device/prims_ll128.h:302,1
    - Dst: min
      Src: /src/nccl/src/device/prims_ll128.h:307,1
    - Dst: Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::loadRegsBegin
      Src: /src/nccl/src/device/prims_ll128.h:309,1
    - Dst: Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::recvReduceSendCopy
      Src: /src/nccl/src/device/prims_ll128.h:310,1
    - Dst: Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::storeRegs
      Src: /src/nccl/src/device/prims_ll128.h:311,1
    - Dst: Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::barrier
      Src: /src/nccl/src/device/prims_ll128.h:319,1
    - Dst: Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::postSend
      Src: /src/nccl/src/device/prims_ll128.h:321,1
    - Dst: Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::postRecv
      Src: /src/nccl/src/device/prims_ll128.h:323,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 4
    argNames:
    - srcIx
    - dstIx
    - nelem
    - postOp
    argTypes:
    - intptr_t
    - intptr_t
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 292
    functionDepth: 3
    functionLinenumber: 292
    functionLinenumberEnd: 324
    functionName: Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::GenericOp
    functionSourceFile: /src/nccl/src/device/prims_ll128.h
    functionUses: 0
    functionsReached:
    - Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::loadRegsBegin
    - min
    - divUp
    - Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::storeRegs
    - Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::postSend
    - Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::barrier
    - Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::waitSend
    - Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::recvReduceSendCopy
    - Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::postRecv
    linkageType: ''
    returnType: __device__
    signature: __device__ GenericOp(intptr_t srcIx, intptr_t dstIx, int nelem, bool
      postOp)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - conn
    - i
    argTypes:
    - struct ncclConnInfo*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 330
    functionName: Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::loadRecvConn
    functionSourceFile: /src/nccl/src/device/prims_ll128.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void loadRecvConn(struct ncclConnInfo* conn, int i)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nrecv
      Src: /src/nccl/src/device/prims_ll128.h:332,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 331
    functionDepth: 1
    functionLinenumber: 331
    functionLinenumberEnd: 336
    functionName: Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::loadRecvSync
    functionSourceFile: /src/nccl/src/device/prims_ll128.h
    functionUses: 0
    functionsReached:
    - nrecv
    linkageType: ''
    returnType: void
    signature: void loadRecvSync()
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - conn
    - i
    argTypes:
    - struct ncclConnInfo*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 342
    functionName: Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::loadSendConn
    functionSourceFile: /src/nccl/src/device/prims_ll128.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void loadSendConn(struct ncclConnInfo* conn, int i)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: nsend
      Src: /src/nccl/src/device/prims_ll128.h:344,1
    - Dst: nsend
      Src: /src/nccl/src/device/prims_ll128.h:350,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 343
    functionDepth: 1
    functionLinenumber: 343
    functionLinenumberEnd: 356
    functionName: Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::loadSendSync
    functionSourceFile: /src/nccl/src/device/prims_ll128.h
    functionUses: 0
    functionsReached:
    - nsend
    linkageType: ''
    returnType: void
    signature: void loadSendSync()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::loadRecvConn
      Src: /src/nccl/src/device/prims_ll128.h:373,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 372
    functionDepth: 1
    functionLinenumber: 372
    functionLinenumberEnd: 375
    functionName: Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::while
    functionSourceFile: /src/nccl/src/device/prims_ll128.h
    functionUses: 0
    functionsReached:
    - Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::loadRecvConn
    linkageType: ''
    returnType: void
    signature: void while (nrecv < MaxRecv && recvPeers[nrecv] >= 0)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::loadSendConn
      Src: /src/nccl/src/device/prims_ll128.h:377,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 376
    functionDepth: 1
    functionLinenumber: 376
    functionLinenumberEnd: 379
    functionName: Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::while
    functionSourceFile: /src/nccl/src/device/prims_ll128.h
    functionUses: 0
    functionsReached:
    - Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::loadSendConn
    linkageType: ''
    returnType: void
    signature: void while (nsend < MaxSend && sendPeers[nsend] >= 0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - inputBuf
    - outputBuf
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 400
    functionDepth: 0
    functionLinenumber: 400
    functionLinenumberEnd: 403
    functionName: setDataPtrs
    functionSourceFile: /src/nccl/src/device/prims_ll128.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: __device__
    signature: __device__ setDataPtrs(void const *inputBuf, void *outputBuf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - delta
    argTypes:
    - intptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 408
    functionName: moveDataPtrs
    functionSourceFile: /src/nccl/src/device/prims_ll128.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __device__
    signature: __device__ moveDataPtrs(intptr_t delta)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GenericOp<0, 1, Input, -1>
      Src: /src/nccl/src/device/prims_ll128.h:411,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inpIx
    - eltN
    argTypes:
    - intptr_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 412
    functionName: send
    functionSourceFile: /src/nccl/src/device/prims_ll128.h
    functionUses: 17
    functionsReached:
    - GenericOp<0, 1, Input, -1>
    linkageType: ''
    returnType: __device__
    signature: __device__ send(intptr_t inpIx, int eltN)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GenericOp<0, 1, Output, -1>
      Src: /src/nccl/src/device/prims_ll128.h:414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - outIx
    - eltN
    argTypes:
    - intptr_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 413
    functionDepth: 0
    functionLinenumber: 413
    functionLinenumberEnd: 415
    functionName: sendFromOutput
    functionSourceFile: /src/nccl/src/device/prims_ll128.h
    functionUses: 0
    functionsReached:
    - GenericOp<0, 1, Output, -1>
    linkageType: ''
    returnType: __device__
    signature: __device__ sendFromOutput(intptr_t outIx, int eltN)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GenericOp<1, 0, -1, Output>
      Src: /src/nccl/src/device/prims_ll128.h:417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - outIx
    - eltN
    argTypes:
    - intptr_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 416
    functionDepth: 0
    functionLinenumber: 416
    functionLinenumberEnd: 418
    functionName: recv
    functionSourceFile: /src/nccl/src/device/prims_ll128.h
    functionUses: 15
    functionsReached:
    - GenericOp<1, 0, -1, Output>
    linkageType: ''
    returnType: __device__
    signature: __device__ recv(intptr_t outIx, int eltN, bool postOp=false)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GenericOp<1, 1, Input, -1>
      Src: /src/nccl/src/device/prims_ll128.h:420,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - inpIx
    - eltN
    argTypes:
    - intptr_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 419
    functionDepth: 0
    functionLinenumber: 419
    functionLinenumberEnd: 421
    functionName: recvReduceSend
    functionSourceFile: /src/nccl/src/device/prims_ll128.h
    functionUses: 2
    functionsReached:
    - GenericOp<1, 1, Input, -1>
    linkageType: ''
    returnType: __device__
    signature: __device__ recvReduceSend(intptr_t inpIx, int eltN)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GenericOp<1, 0, Input, Output>
      Src: /src/nccl/src/device/prims_ll128.h:423,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - inpIx
    - outIx
    - eltN
    argTypes:
    - intptr_t
    - intptr_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 424
    functionName: recvReduceCopy
    functionSourceFile: /src/nccl/src/device/prims_ll128.h
    functionUses: 2
    functionsReached:
    - GenericOp<1, 0, Input, Output>
    linkageType: ''
    returnType: __device__
    signature: __device__ recvReduceCopy(intptr_t inpIx, intptr_t outIx, int eltN,
      bool postOp=false)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GenericOp<0, 1, Input, Output>
      Src: /src/nccl/src/device/prims_ll128.h:426,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - inpIx
    - outIx
    - eltN
    argTypes:
    - intptr_t
    - intptr_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 427
    functionName: copySend
    functionSourceFile: /src/nccl/src/device/prims_ll128.h
    functionUses: 0
    functionsReached:
    - GenericOp<0, 1, Input, Output>
    linkageType: ''
    returnType: __device__
    signature: __device__ copySend(intptr_t inpIx, intptr_t outIx, int eltN, bool
      postOp=false)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GenericOp<1, 1, -1, Output>
      Src: /src/nccl/src/device/prims_ll128.h:429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - outIx
    - eltN
    argTypes:
    - intptr_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 428
    functionDepth: 0
    functionLinenumber: 428
    functionLinenumberEnd: 430
    functionName: recvCopySend
    functionSourceFile: /src/nccl/src/device/prims_ll128.h
    functionUses: 0
    functionsReached:
    - GenericOp<1, 1, -1, Output>
    linkageType: ''
    returnType: __device__
    signature: __device__ recvCopySend(intptr_t outIx, int eltN, bool postOp=false)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GenericOp<1, 1, Input, Output>
      Src: /src/nccl/src/device/prims_ll128.h:432,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - inpIx
    - outIx
    - eltN
    argTypes:
    - intptr_t
    - intptr_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 431
    functionDepth: 0
    functionLinenumber: 431
    functionLinenumberEnd: 433
    functionName: recvReduceCopySend
    functionSourceFile: /src/nccl/src/device/prims_ll128.h
    functionUses: 0
    functionsReached:
    - GenericOp<1, 1, Input, Output>
    linkageType: ''
    returnType: __device__
    signature: __device__ recvReduceCopySend(intptr_t inpIx, intptr_t outIx, int eltN,
      bool postOp=false)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclCollCbdPart
      Src: /src/nccl/src/device/reduce_scatter.h:21,1
    - Dst: min
      Src: /src/nccl/src/device/reduce_scatter.h:34,1
    - Dst: Primitives::send
      Src: /src/nccl/src/device/reduce_scatter.h:41,1
    - Dst: Primitives::recvReduceSend
      Src: /src/nccl/src/device/reduce_scatter.h:47,1
    - Dst: Primitives::recvReduceCopy
      Src: /src/nccl/src/device/reduce_scatter.h:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 3
    argNames:
    - tid
    - nthreads
    - work
    argTypes:
    - int
    - int
    - struct ncclDevWorkColl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 55
    functionName: runRing
    functionSourceFile: /src/nccl/src/device/reduce_scatter.h
    functionUses: 12
    functionsReached:
    - Primitives::recvReduceCopy
    - min
    - Primitives::send
    - ncclCollCbdPart
    - Primitives::recvReduceSend
    linkageType: ''
    returnType: __device__
    signature: __device__ runRing(int tid, int nthreads, struct ncclDevWorkColl* work)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclCollCbdPart
      Src: /src/nccl/src/device/reduce_scatter.h:21,1
    - Dst: min
      Src: /src/nccl/src/device/reduce_scatter.h:34,1
    - Dst: Primitives::send
      Src: /src/nccl/src/device/reduce_scatter.h:41,1
    - Dst: Primitives::recvReduceSend
      Src: /src/nccl/src/device/reduce_scatter.h:47,1
    - Dst: Primitives::recvReduceCopy
      Src: /src/nccl/src/device/reduce_scatter.h:53,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 3
    argNames:
    - tid
    - nthreads
    - work
    argTypes:
    - int
    - int
    - struct ncclDevWorkColl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 55
    functionName: runRing
    functionSourceFile: /src/nccl/src/device/reduce_scatter.h
    functionUses: 12
    functionsReached:
    - Primitives::recvReduceCopy
    - min
    - Primitives::send
    - ncclCollCbdPart
    - Primitives::recvReduceSend
    linkageType: ''
    returnType: __device__
    signature: __device__ runRing(int tid, int nthreads, struct ncclDevWorkColl* work)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: runRing
      Src: /src/nccl/src/device/reduce_scatter.h:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - tid
    - nthreads
    - work
    argTypes:
    - int
    - int
    - struct ncclDevWorkColl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 63
    functionName: run
    functionSourceFile: /src/nccl/src/device/reduce_scatter.h
    functionUses: 0
    functionsReached:
    - runRing
    linkageType: ''
    returnType: void
    signature: void run(int tid, int nthreads, struct ncclDevWorkColl* work)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: runRing
      Src: /src/nccl/src/device/reduce_scatter.h:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - tid
    - nthreads
    - work
    argTypes:
    - int
    - int
    - struct ncclDevWorkColl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 70
    functionName: run
    functionSourceFile: /src/nccl/src/device/reduce_scatter.h
    functionUses: 0
    functionsReached:
    - runRing
    linkageType: ''
    returnType: void
    signature: void run(int tid, int nthreads, struct ncclDevWorkColl* work)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: runRing
      Src: /src/nccl/src/device/reduce_scatter.h:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - tid
    - nthreads
    - work
    argTypes:
    - int
    - int
    - struct ncclDevWorkColl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 77
    functionName: run
    functionSourceFile: /src/nccl/src/device/reduce_scatter.h
    functionUses: 0
    functionsReached:
    - runRing
    linkageType: ''
    returnType: void
    signature: void run(int tid, int nthreads, struct ncclDevWorkColl* work)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ncclCollCbdPart
      Src: /src/nccl/src/device/reduce_scatter.h:88,1
    - Dst: ncclScratchForWarp
      Src: /src/nccl/src/device/reduce_scatter.h:91,1
    - Dst: __syncthreads
      Src: /src/nccl/src/device/reduce_scatter.h:93,1
    - Dst: __syncthreads
      Src: /src/nccl/src/device/reduce_scatter.h:97,1
    - Dst: PatRSAlgorithm::getParallelFactor
      Src: /src/nccl/src/device/reduce_scatter.h:101,1
    - Dst: cuda::atomic_ref::load
      Src: /src/nccl/src/device/reduce_scatter.h:106,1
    - Dst: PatRSAlgorithm::getNextOp
      Src: /src/nccl/src/device/reduce_scatter.h:107,1
    - Dst: cuda::atomic_ref::load
      Src: /src/nccl/src/device/reduce_scatter.h:131,1
    - Dst: Primitives::patReduce
      Src: /src/nccl/src/device/reduce_scatter.h:133,1
    - Dst: cuda::atomic_ref::store
      Src: /src/nccl/src/device/reduce_scatter.h:134,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 34
    argCount: 3
    argNames:
    - tid
    - nthreads
    - work
    argTypes:
    - int
    - int
    - struct ncclDevWorkColl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 82
    functionDepth: 3
    functionLinenumber: 82
    functionLinenumberEnd: 140
    functionName: run
    functionSourceFile: /src/nccl/src/device/reduce_scatter.h
    functionUses: 0
    functionsReached:
    - Primitives::patReduce
    - ncclCollCbdPart
    - __syncthreads
    - PatRSAlgorithm::getNextOp
    - ncclScratchForWarp
    - PatRSAlgorithm::getParallelFactor
    - cuda::atomic_ref::store
    - cuda::atomic_ref::load
    linkageType: ''
    returnType: void
    signature: void run(int tid, int nthreads, struct ncclDevWorkColl* work)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/nccl/src/device/reduce_scatter.h:166,1
    - Dst: min
      Src: /src/nccl/src/device/reduce_scatter.h:167,1
    - Dst: min
      Src: /src/nccl/src/device/reduce_scatter.h:186,1
    - Dst: reduceCopy
      Src: /src/nccl/src/device/reduce_scatter.h:190,1
    - Dst: __device__
      Src: /src/nccl/src/device/reduce_scatter.h:195,1
    - Dst: __device__
      Src: /src/nccl/src/device/reduce_scatter.h:200,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 11
    argNames:
    - tid
    - tn
    - slice
    - maxSliceSize
    - nSrcs
    - srcPtrs
    - nDsts
    - dstPtrs
    - dstSizes
    - sendDirectFlag
    - recvDirectFlag
    argTypes:
    - int
    - int
    - int
    - int
    - int
    - void**
    - int
    - void**
    - int32_t*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 210
    functionName: "operator()(\n        int tid, int tn, int slice, int maxSliceSize,\n
      \       int nSrcs, void** srcPtrs, int nDsts, void** dstPtrs, int32_t* dstSizes,
      uint32_t sendDirectFlag, uint32_t recvDirectFlag\n      )"
    functionSourceFile: /src/nccl/src/device/reduce_scatter.h
    functionUses: 0
    functionsReached:
    - min
    - reduceCopy
    - __device__
    linkageType: ''
    returnType: __device__
    signature: "__device__ operator()(\n        int tid, int tn, int slice, int maxSliceSize,\n
      \       int nSrcs, void** srcPtrs, int nDsts, void** dstPtrs, int32_t* dstSizes,
      uint32_t sendDirectFlag, uint32_t recvDirectFlag\n      )"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: roundUp
      Src: /src/nccl/src/device/reduce_scatter.h:221,1
    - Dst: ncclCollCbdPart
      Src: /src/nccl/src/device/reduce_scatter.h:231,1
    - Dst: min
      Src: /src/nccl/src/device/reduce_scatter.h:241,1
    - Dst: Primitives::scatter
      Src: /src/nccl/src/device/reduce_scatter.h:242,1
    - Dst: min
      Src: /src/nccl/src/device/reduce_scatter.h:253,1
    - Dst: Primitives::recv
      Src: /src/nccl/src/device/reduce_scatter.h:254,1
    - Dst: Primitives::scatter
      Src: /src/nccl/src/device/reduce_scatter.h:265,1
    - Dst: Primitives::gather
      Src: /src/nccl/src/device/reduce_scatter.h:269,1
    - Dst: min
      Src: /src/nccl/src/device/reduce_scatter.h:279,1
    - Dst: Primitives::directRecvCopy
      Src: /src/nccl/src/device/reduce_scatter.h:283,1
    - Dst: Primitives::send
      Src: /src/nccl/src/device/reduce_scatter.h:287,1
    - Dst: divUp
      Src: /src/nccl/src/device/reduce_scatter.h:301,1
    - Dst: "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk, StepPerSlice,
        Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::recvPeerNotify"
      Src: /src/nccl/src/device/reduce_scatter.h:302,1
    - Dst: __syncwarp
      Src: /src/nccl/src/device/reduce_scatter.h:304,1
    - Dst: min
      Src: /src/nccl/src/device/reduce_scatter.h:311,1
    - Dst: max
      Src: /src/nccl/src/device/reduce_scatter.h:314,1
    - Dst: min
      Src: /src/nccl/src/device/reduce_scatter.h:315,1
    - Dst: Primitives::recv
      Src: /src/nccl/src/device/reduce_scatter.h:316,1
    - Dst: max
      Src: /src/nccl/src/device/reduce_scatter.h:316,1
    - Dst: Primitives::template process</*Recv=*/0, /*Send=*/1>
      Src: /src/nccl/src/device/reduce_scatter.h:330,1
    - Dst: Primitives::template process</*Recv=*/1, /*Send=*/1>
      Src: /src/nccl/src/device/reduce_scatter.h:342,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 64
    argCount: 2
    argNames:
    - tid
    - work
    argTypes:
    - int
    - struct ncclDevWorkColl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 213
    functionDepth: 3
    functionLinenumber: 213
    functionLinenumberEnd: 347
    functionName: run
    functionSourceFile: /src/nccl/src/device/reduce_scatter.h
    functionUses: 0
    functionsReached:
    - "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk, StepPerSlice,
      Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::recvPeerNotify"
    - Primitives::gather
    - min
    - Primitives::send
    - __syncwarp
    - Primitives::scatter
    - ncclCollCbdPart
    - divUp
    - Primitives::template process</*Recv=*/0, /*Send=*/1>
    - roundUp
    - Primitives::template process</*Recv=*/1, /*Send=*/1>
    - Primitives::directRecvCopy
    - max
    - Primitives::recv
    linkageType: ''
    returnType: void
    signature: void run(int tid, int/*nthreads*/, struct ncclDevWorkColl* work)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/nccl/src/device/reduce_scatter.h:373,1
    - Dst: min
      Src: /src/nccl/src/device/reduce_scatter.h:374,1
    - Dst: min
      Src: /src/nccl/src/device/reduce_scatter.h:393,1
    - Dst: reduceCopy
      Src: /src/nccl/src/device/reduce_scatter.h:397,1
    - Dst: __device__
      Src: /src/nccl/src/device/reduce_scatter.h:402,1
    - Dst: __device__
      Src: /src/nccl/src/device/reduce_scatter.h:408,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 11
    argNames:
    - tid
    - tn
    - slice
    - maxSliceSize
    - nSrcs
    - srcPtrs
    - nDsts
    - dstPtrs
    - dstSizes
    - sendDirectFlag
    - recvDirectFlag
    argTypes:
    - int
    - int
    - int
    - int
    - int
    - void**
    - int
    - void**
    - int32_t*
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 359
    functionDepth: 1
    functionLinenumber: 359
    functionLinenumberEnd: 420
    functionName: "operator()(\n        int tid, int tn, int slice, int maxSliceSize,\n
      \       int nSrcs, void** srcPtrs, int nDsts, void** dstPtrs, int32_t* dstSizes,
      uint32_t sendDirectFlag, uint32_t recvDirectFlag\n      )"
    functionSourceFile: /src/nccl/src/device/reduce_scatter.h
    functionUses: 0
    functionsReached:
    - min
    - reduceCopy
    - __device__
    linkageType: ''
    returnType: __device__
    signature: "__device__ operator()(\n        int tid, int tn, int slice, int maxSliceSize,\n
      \       int nSrcs, void** srcPtrs, int nDsts, void** dstPtrs, int32_t* dstSizes,
      uint32_t sendDirectFlag, uint32_t recvDirectFlag\n      )"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: __trap
      Src: /src/nccl/src/device/reduce_scatter.h:432,1
    - Dst: Primitives::template process</*Recv=*/0, /*Send=*/1>
      Src: /src/nccl/src/device/reduce_scatter.h:455,1
    - Dst: "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk, StepPerSlice,
        Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::sendPeerNotify"
      Src: /src/nccl/src/device/reduce_scatter.h:465,1
    - Dst: __syncwarp
      Src: /src/nccl/src/device/reduce_scatter.h:467,1
    - Dst: Primitives::template process</*Recv=*/1, /*Send=*/1>
      Src: /src/nccl/src/device/reduce_scatter.h:478,1
    - Dst: divUp
      Src: /src/nccl/src/device/reduce_scatter.h:489,1
    - Dst: "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk, StepPerSlice,
        Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::recvPeerNotify"
      Src: /src/nccl/src/device/reduce_scatter.h:490,1
    - Dst: __syncwarp
      Src: /src/nccl/src/device/reduce_scatter.h:492,1
    - Dst: min
      Src: /src/nccl/src/device/reduce_scatter.h:500,1
    - Dst: max
      Src: /src/nccl/src/device/reduce_scatter.h:503,1
    - Dst: min
      Src: /src/nccl/src/device/reduce_scatter.h:504,1
    - Dst: Primitives::recv
      Src: /src/nccl/src/device/reduce_scatter.h:505,1
    - Dst: max
      Src: /src/nccl/src/device/reduce_scatter.h:505,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 48
    argCount: 3
    argNames:
    - tid
    - nthreads
    - work
    argTypes:
    - int
    - int
    - struct ncclDevWorkColl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 423
    functionDepth: 3
    functionLinenumber: 423
    functionLinenumberEnd: 510
    functionName: run
    functionSourceFile: /src/nccl/src/device/reduce_scatter.h
    functionUses: 0
    functionsReached:
    - "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk, StepPerSlice,
      Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::recvPeerNotify"
    - min
    - __syncwarp
    - divUp
    - Primitives::template process</*Recv=*/0, /*Send=*/1>
    - Primitives::template process</*Recv=*/1, /*Send=*/1>
    - __trap
    - max
    - "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk, StepPerSlice,
      Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::sendPeerNotify"
    - Primitives::recv
    linkageType: ''
    returnType: void
    signature: void run(int tid, int nthreads, struct ncclDevWorkColl* work)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: u32fp8Decode
      Src: /src/nccl/src/device/sendrecv.h:19,1
    - Dst: min
      Src: /src/nccl/src/device/sendrecv.h:26,1
    - Dst: Primitives::directSend
      Src: /src/nccl/src/device/sendrecv.h:27,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 4
    argNames:
    - tid
    - tn
    - group
    - work
    argTypes:
    - int
    - int
    - int
    - struct ncclDevWorkP2p*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 30
    functionName: runSend
    functionSourceFile: /src/nccl/src/device/sendrecv.h
    functionUses: 0
    functionsReached:
    - u32fp8Decode
    - min
    - Primitives::directSend
    linkageType: ''
    returnType: __device__
    signature: __device__ runSend(int tid, int tn, int group, struct ncclDevWorkP2p*
      work)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: u32fp8Decode
      Src: /src/nccl/src/device/sendrecv.h:36,1
    - Dst: min
      Src: /src/nccl/src/device/sendrecv.h:43,1
    - Dst: Primitives::directRecv
      Src: /src/nccl/src/device/sendrecv.h:44,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 4
    argNames:
    - tid
    - tn
    - group
    - work
    argTypes:
    - int
    - int
    - int
    - struct ncclDevWorkP2p*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 47
    functionName: runRecv
    functionSourceFile: /src/nccl/src/device/sendrecv.h
    functionUses: 0
    functionsReached:
    - u32fp8Decode
    - min
    - Primitives::directRecv
    linkageType: ''
    returnType: __device__
    signature: __device__ runRecv(int tid, int tn, int group, struct ncclDevWorkP2p*
      work)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: ncclScratchForWarp
      Src: /src/nccl/src/device/sendrecv.h:60,1
    - Dst: ncclP2pChannelToPart
      Src: /src/nccl/src/device/sendrecv.h:76,1
    - Dst: ncclP2pPartBounds
      Src: /src/nccl/src/device/sendrecv.h:80,1
    - Dst: __ballot_sync
      Src: /src/nccl/src/device/sendrecv.h:88,1
    - Dst: __popc
      Src: /src/nccl/src/device/sendrecv.h:104,1
    - Dst: __ballot_sync
      Src: /src/nccl/src/device/sendrecv.h:104,1
    - Dst: __popc
      Src: /src/nccl/src/device/sendrecv.h:112,1
    - Dst: __ballot_sync
      Src: /src/nccl/src/device/sendrecv.h:112,1
    - Dst: __syncthreads
      Src: /src/nccl/src/device/sendrecv.h:114,1
    - Dst: __syncthreads
      Src: /src/nccl/src/device/sendrecv.h:119,1
    - Dst: __popc
      Src: /src/nccl/src/device/sendrecv.h:131,1
    - Dst: __popc
      Src: /src/nccl/src/device/sendrecv.h:134,1
    - Dst: __popc
      Src: /src/nccl/src/device/sendrecv.h:137,1
    - Dst: reduceCopy
      Src: /src/nccl/src/device/sendrecv.h:157,1
    - Dst: runSend
      Src: /src/nccl/src/device/sendrecv.h:161,1
    - Dst: runSend
      Src: /src/nccl/src/device/sendrecv.h:163,1
    - Dst: runRecv
      Src: /src/nccl/src/device/sendrecv.h:167,1
    - Dst: runRecv
      Src: /src/nccl/src/device/sendrecv.h:169,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 50
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 49
    functionDepth: 2
    functionLinenumber: 49
    functionLinenumberEnd: 172
    functionName: run
    functionSourceFile: /src/nccl/src/device/sendrecv.h
    functionUses: 0
    functionsReached:
    - __popc
    - __ballot_sync
    - ncclP2pChannelToPart
    - __syncthreads
    - runRecv
    - ncclScratchForWarp
    - reduceCopy
    - ncclP2pPartBounds
    - runSend
    linkageType: ''
    returnType: void
    signature: void run()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 41
    functionName: FuncCopy
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FuncCopy(uint64_t opArg=0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: FuncSum
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FuncSum(uint64_t opArg=0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 45
    functionName: FuncProd
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FuncProd(uint64_t opArg=0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 55
    functionName: FuncMinMax
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FuncMinMax(uint64_t opArg=0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 67
    functionName: loadArg
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t loadArg(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 78
    functionName: loadArg
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t loadArg(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - BytePack<0>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 125
    functionName: cast
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void cast(BytePack<0> a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fn
    - a
    - b
    argTypes:
    - Fn
    - BytePack<0>
    - BytePack<0>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 132
    functionName: reduce
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void reduce(Fn fn, BytePack<0> a, BytePack<0> b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fn
    - a
    argTypes:
    - Fn
    - BytePack<0>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 140
    functionName: preOp
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void preOp(Fn fn, BytePack<0> a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fn
    - a
    argTypes:
    - Fn
    - BytePack<0>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 148
    functionName: postOp
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void postOp(Fn fn, BytePack<0> a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fn
    - addr
    argTypes:
    - Fn
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 155
    functionName: load
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void load(Fn fn, uintptr_t addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclBroadcast
      Src: /src/nccl/src/device/reduce_kernel.h:166,1
    - Dst: toPack
      Src: /src/nccl/src/device/reduce_kernel.h:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - PackA
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 165
    functionDepth: 2
    functionLinenumber: 165
    functionLinenumberEnd: 167
    functionName: __forceinline__ BytePack<BytePackOf<PackA>::Size*sizeof(B)/sizeof(A)>::applyCast
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 0
    functionsReached:
    - ncclBroadcast
    - toPack
    linkageType: ''
    returnType: __device__
    signature: __device__ __forceinline__ BytePack<BytePackOf<PackA>::Size*sizeof(B)/sizeof(A)>
      applyCast(PackA a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fromPack
      Src: /src/nccl/src/device/reduce_kernel.h:171,1
    - Dst: reduce
      Src: /src/nccl/src/device/reduce_kernel.h:172,1
    - Dst: toPack
      Src: /src/nccl/src/device/reduce_kernel.h:173,1
    - Dst: toPack
      Src: /src/nccl/src/device/reduce_kernel.h:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fn
    - a
    - b
    argTypes:
    - Fn
    - Pack
    - Pack
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 175
    functionName: applyReduce
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 4
    functionsReached:
    - fromPack
    - toPack
    - reduce
    linkageType: ''
    returnType: __device__
    signature: __device__ applyReduce(Fn fn, Pack a, Pack b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fromPack
      Src: /src/nccl/src/device/reduce_kernel.h:179,1
    - Dst: preOp
      Src: /src/nccl/src/device/reduce_kernel.h:180,1
    - Dst: toPack
      Src: /src/nccl/src/device/reduce_kernel.h:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fn
    - a
    argTypes:
    - Fn
    - Pack
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 183
    functionName: applyPreOp
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 4
    functionsReached:
    - fromPack
    - preOp
    - toPack
    linkageType: ''
    returnType: __device__
    signature: __device__ applyPreOp(Fn fn, Pack a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fromPack
      Src: /src/nccl/src/device/reduce_kernel.h:187,1
    - Dst: postOp
      Src: /src/nccl/src/device/reduce_kernel.h:188,1
    - Dst: toPack
      Src: /src/nccl/src/device/reduce_kernel.h:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fn
    - a
    argTypes:
    - Fn
    - Pack
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 186
    functionDepth: 1
    functionLinenumber: 186
    functionLinenumberEnd: 191
    functionName: applyPostOp
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 4
    functionsReached:
    - fromPack
    - postOp
    - toPack
    linkageType: ''
    returnType: __device__
    signature: __device__ applyPostOp(Fn fn, Pack a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::load
      Src: /src/nccl/src/device/reduce_kernel.h:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fn
    - addr
    argTypes:
    - Fn
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 196
    functionName: __forceinline__ BytePack<BytePerPack>::applyLoadMultimem
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 0
    functionsReached:
    - Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::load
    linkageType: ''
    returnType: __device__
    signature: __device__ __forceinline__ BytePack<BytePerPack> applyLoadMultimem(Fn
      fn, uintptr_t addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclBroadcast
      Src: /src/nccl/src/device/reduce_kernel.h:205,1
    - Dst: ncclBroadcast
      Src: /src/nccl/src/device/reduce_kernel.h:206,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - a
    argTypes:
    - BytePack<EltPerPack*sizeof(A)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 203
    functionDepth: 2
    functionLinenumber: 203
    functionLinenumberEnd: 208
    functionName: cast
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 5
    functionsReached:
    - ncclBroadcast
    linkageType: ''
    returnType: BytePack<EltPerPack*sizeof(B)>
    signature: BytePack<EltPerPack*sizeof(B)> cast(BytePack<EltPerPack*sizeof(A)>
      a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: toPack
      Src: /src/nccl/src/device/reduce_kernel.h:214,1
    - Dst: B
      Src: /src/nccl/src/device/reduce_kernel.h:214,1
    - Dst: fromPack
      Src: /src/nccl/src/device/reduce_kernel.h:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - BytePack<sizeof(A)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 215
    functionName: cast
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 5
    functionsReached:
    - B
    - toPack
    - fromPack
    linkageType: ''
    returnType: BytePack<sizeof(B)>
    signature: BytePack<sizeof(B)> cast(BytePack<sizeof(A)> a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: toPack
      Src: /src/nccl/src/device/reduce_kernel.h:221,1
    - Dst: __half2float
      Src: /src/nccl/src/device/reduce_kernel.h:221,1
    - Dst: fromPack
      Src: /src/nccl/src/device/reduce_kernel.h:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - BytePack<sizeof(__half)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 222
    functionName: cast
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 5
    functionsReached:
    - __half2float
    - toPack
    - fromPack
    linkageType: ''
    returnType: BytePack<sizeof(float)>
    signature: BytePack<sizeof(float)> cast(BytePack<sizeof(__half)> a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: toPack
      Src: /src/nccl/src/device/reduce_kernel.h:227,1
    - Dst: __float2half_rn
      Src: /src/nccl/src/device/reduce_kernel.h:227,1
    - Dst: fromPack
      Src: /src/nccl/src/device/reduce_kernel.h:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - BytePack<sizeof(float)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 226
    functionDepth: 1
    functionLinenumber: 226
    functionLinenumberEnd: 228
    functionName: cast
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 5
    functionsReached:
    - __float2half_rn
    - toPack
    - fromPack
    linkageType: ''
    returnType: BytePack<sizeof(__half)>
    signature: BytePack<sizeof(__half)> cast(BytePack<sizeof(float)> a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: toPack
      Src: /src/nccl/src/device/reduce_kernel.h:234,1
    - Dst: __half22float2
      Src: /src/nccl/src/device/reduce_kernel.h:234,1
    - Dst: fromPack
      Src: /src/nccl/src/device/reduce_kernel.h:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - BytePack<2*2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 235
    functionName: cast
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 5
    functionsReached:
    - fromPack
    - __half22float2
    - toPack
    linkageType: ''
    returnType: BytePack<4*2>
    signature: BytePack<4*2> cast(BytePack<2*2> a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: toPack
      Src: /src/nccl/src/device/reduce_kernel.h:240,1
    - Dst: __float22half2_rn
      Src: /src/nccl/src/device/reduce_kernel.h:240,1
    - Dst: fromPack
      Src: /src/nccl/src/device/reduce_kernel.h:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - BytePack<4*2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 241
    functionName: cast
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 5
    functionsReached:
    - fromPack
    - toPack
    - __float22half2_rn
    linkageType: ''
    returnType: BytePack<2*2>
    signature: BytePack<2*2> cast(BytePack<4*2> a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: toPack
      Src: /src/nccl/src/device/reduce_kernel.h:248,1
    - Dst: __bfloat1622float2
      Src: /src/nccl/src/device/reduce_kernel.h:248,1
    - Dst: fromPack
      Src: /src/nccl/src/device/reduce_kernel.h:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - BytePack<2*2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 249
    functionName: cast
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 5
    functionsReached:
    - fromPack
    - toPack
    - __bfloat1622float2
    linkageType: ''
    returnType: BytePack<4*2>
    signature: BytePack<4*2> cast(BytePack<2*2> a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: toPack
      Src: /src/nccl/src/device/reduce_kernel.h:254,1
    - Dst: __float22bfloat162_rn
      Src: /src/nccl/src/device/reduce_kernel.h:254,1
    - Dst: fromPack
      Src: /src/nccl/src/device/reduce_kernel.h:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - BytePack<4*2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 255
    functionName: cast
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 5
    functionsReached:
    - __float22bfloat162_rn
    - fromPack
    - toPack
    linkageType: ''
    returnType: BytePack<2*2>
    signature: BytePack<2*2> cast(BytePack<4*2> a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - A
    - ','
    - B
    - ','
    - EltPerPack
    - ','
    - VecA
    - ','
    - VecB
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 272
    functionName: EASY_CAST
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EASY_CAST(A, B, EltPerPack, VecA, VecB)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fn
    - a
    - b
    argTypes:
    - Fn
    - BytePack<0>
    - BytePack<0>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 290
    functionName: reduce
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: BytePack<0>
    signature: BytePack<0> reduce(Fn fn, BytePack<0> a, BytePack<0> b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __forceinline__ static BytePack<Size>::reduce
      Src: /src/nccl/src/device/reduce_kernel.h:301,1
    - Dst: __forceinline__ static BytePack<Size>::reduce
      Src: /src/nccl/src/device/reduce_kernel.h:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - fn
    - a
    - b
    argTypes:
    - Fn
    - BytePack<Size>
    - BytePack<Size>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 304
    functionName: __forceinline__ static BytePack<Size>::reduce
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 1
    functionsReached:
    - __forceinline__ static BytePack<Size>::reduce
    linkageType: ''
    returnType: __device__
    signature: __device__ __forceinline__ static BytePack<Size> reduce(Fn fn, BytePack<Size>
      a, BytePack<Size> b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fn
    - a
    - b
    argTypes:
    - FuncCopy<T>
    - BytePack<sizeof(T)>
    - BytePack<sizeof(T)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 312
    functionName: reduce
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: BytePack<sizeof(T)>
    signature: BytePack<sizeof(T)> reduce(FuncCopy<T> fn, BytePack<sizeof(T)> a, BytePack<sizeof(T)>
      b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: toPack<T>
      Src: /src/nccl/src/device/reduce_kernel.h:317,1
    - Dst: fromPack
      Src: /src/nccl/src/device/reduce_kernel.h:317,1
    - Dst: fromPack
      Src: /src/nccl/src/device/reduce_kernel.h:317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fn
    - a
    - b
    argTypes:
    - FuncSum<T>
    - BytePack<sizeof(T)>
    - BytePack<sizeof(T)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 316
    functionDepth: 1
    functionLinenumber: 316
    functionLinenumberEnd: 318
    functionName: reduce
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 2
    functionsReached:
    - fromPack
    - toPack<T>
    linkageType: ''
    returnType: BytePack<sizeof(T)>
    signature: BytePack<sizeof(T)> reduce(FuncSum<T> fn, BytePack<sizeof(T)> a, BytePack<sizeof(T)>
      b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: toPack<T>
      Src: /src/nccl/src/device/reduce_kernel.h:323,1
    - Dst: fromPack
      Src: /src/nccl/src/device/reduce_kernel.h:323,1
    - Dst: fromPack
      Src: /src/nccl/src/device/reduce_kernel.h:323,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fn
    - a
    - b
    argTypes:
    - FuncProd<T>
    - BytePack<sizeof(T)>
    - BytePack<sizeof(T)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 322
    functionDepth: 1
    functionLinenumber: 322
    functionLinenumberEnd: 324
    functionName: reduce
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 2
    functionsReached:
    - fromPack
    - toPack<T>
    linkageType: ''
    returnType: BytePack<sizeof(T)>
    signature: BytePack<sizeof(T)> reduce(FuncProd<T> fn, BytePack<sizeof(T)> a, BytePack<sizeof(T)>
      b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fn
    - a
    - b
    argTypes:
    - FuncMinMax<T>
    - BytePack<sizeof(T)>
    - BytePack<sizeof(T)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 330
    functionName: reduce
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: BytePack<sizeof(T)>
    signature: BytePack<sizeof(T)> reduce(FuncMinMax<T> fn, BytePack<sizeof(T)> a,
      BytePack<sizeof(T)> b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __byte_perm
      Src: /src/nccl/src/device/reduce_kernel.h:341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - fn
    - a
    - b
    argTypes:
    - FuncSum<uint8_t>
    - BytePack<4>
    - BytePack<4>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 343
    functionName: reduce
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 2
    functionsReached:
    - __byte_perm
    linkageType: ''
    returnType: BytePack<4>
    signature: BytePack<4> reduce(FuncSum<uint8_t> fn, BytePack<4> a, BytePack<4>
      b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __byte_perm
      Src: /src/nccl/src/device/reduce_kernel.h:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - fn
    - a
    - b
    argTypes:
    - FuncMinMax<uint8_t>
    - BytePack<4>
    - BytePack<4>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 367
    functionName: reduce
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 2
    functionsReached:
    - __byte_perm
    linkageType: ''
    returnType: void
    signature: void reduce(FuncMinMax<uint8_t> fn, BytePack<4> a, BytePack<4> b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __byte_perm
      Src: /src/nccl/src/device/reduce_kernel.h:380,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - fn
    - apack
    - bpack
    argTypes:
    - FuncProd<uint8_t>
    - BytePack<4>
    - BytePack<4>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 382
    functionName: reduce
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 2
    functionsReached:
    - __byte_perm
    linkageType: ''
    returnType: BytePack<4>
    signature: BytePack<4> reduce(FuncProd<uint8_t> fn, BytePack<4> apack, BytePack<4>
      bpack)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - Fn
    - ','
    - T
    - ','
    - EltPerPack
    - ','
    - Vec
    - ','
    - expr_of_fn_x_y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 396
    functionName: SPECIALIZE_REDUCE
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SPECIALIZE_REDUCE(Fn, T, EltPerPack, Vec, expr_of_fn_x_y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fn
    - a
    argTypes:
    - Fn
    - BytePack<Size>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 488
    functionDepth: 0
    functionLinenumber: 488
    functionLinenumberEnd: 490
    functionName: __forceinline__ static BytePack<Size>::preOp
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __device__
    signature: __device__ __forceinline__ static BytePack<Size> preOp(Fn fn, BytePack<Size>
      a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fn
    - a
    argTypes:
    - Fn
    - BytePack<0>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 496
    functionDepth: 0
    functionLinenumber: 496
    functionLinenumberEnd: 498
    functionName: preOp
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: BytePack<0>
    signature: BytePack<0> preOp(Fn fn, BytePack<0> a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fn
    - a
    argTypes:
    - Fn
    - BytePack<Size>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 529
    functionDepth: 0
    functionLinenumber: 529
    functionLinenumberEnd: 531
    functionName: __forceinline__ static BytePack<Size>::postOp
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __device__
    signature: __device__ __forceinline__ static BytePack<Size> postOp(Fn fn, BytePack<Size>
      a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fn
    - a
    argTypes:
    - Fn
    - BytePack<0>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 537
    functionDepth: 0
    functionLinenumber: 537
    functionLinenumberEnd: 539
    functionName: postOp
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: BytePack<0>
    signature: BytePack<0> postOp(Fn fn, BytePack<0> a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 549
    functionDepth: 0
    functionLinenumber: 549
    functionLinenumberEnd: 554
    functionName: loadArg
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t loadArg(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 562
    functionDepth: 0
    functionLinenumber: 562
    functionLinenumberEnd: 566
    functionName: FuncPreMulSum
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FuncPreMulSum(uint64_t opArg=0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 577
    functionDepth: 0
    functionLinenumber: 577
    functionLinenumberEnd: 582
    functionName: FuncPreMulSum
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FuncPreMulSum(uint64_t opArg=0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 585
    functionDepth: 0
    functionLinenumber: 585
    functionLinenumberEnd: 589
    functionName: FuncPreMulSum
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FuncPreMulSum(uint64_t opArg=0)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 602
    functionDepth: 0
    functionLinenumber: 602
    functionLinenumberEnd: 607
    functionName: FuncPreMulSum
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FuncPreMulSum(uint64_t opArg=0)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __bfloat162float
      Src: /src/nccl/src/device/reduce_kernel.h:613,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 610
    functionDepth: 0
    functionLinenumber: 610
    functionLinenumberEnd: 614
    functionName: FuncPreMulSum
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 0
    functionsReached:
    - __bfloat162float
    linkageType: ''
    returnType: void
    signature: void FuncPreMulSum(uint64_t opArg=0)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __half
      Src: /src/nccl/src/device/reduce_kernel.h:628,1
    - Dst: __nv_cvt_fp8_to_halfraw
      Src: /src/nccl/src/device/reduce_kernel.h:628,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - opArg
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 625
    functionDepth: 0
    functionLinenumber: 625
    functionLinenumberEnd: 630
    functionName: FuncPreMulSum
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 0
    functionsReached:
    - __nv_cvt_fp8_to_halfraw
    - __half
    linkageType: ''
    returnType: void
    signature: void FuncPreMulSum(uint64_t opArg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __half
      Src: /src/nccl/src/device/reduce_kernel.h:640,1
    - Dst: __nv_cvt_fp8_to_halfraw
      Src: /src/nccl/src/device/reduce_kernel.h:640,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - opArg
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 637
    functionDepth: 0
    functionLinenumber: 637
    functionLinenumberEnd: 642
    functionName: FuncPreMulSum
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 0
    functionsReached:
    - __nv_cvt_fp8_to_halfraw
    - __half
    linkageType: ''
    returnType: void
    signature: void FuncPreMulSum(uint64_t opArg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reduce
      Src: /src/nccl/src/device/reduce_kernel.h:651,1
    - Dst: FuncSum
      Src: /src/nccl/src/device/reduce_kernel.h:651,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fn
    - a
    - b
    argTypes:
    - FuncPreMulSum<T>
    - BytePack<EltPerPack*sizeof(T)>
    - BytePack<EltPerPack*sizeof(T)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 652
      start: 649
    functionDepth: 1
    functionLinenumber: 649
    functionLinenumberEnd: 652
    functionName: reduce
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 3
    functionsReached:
    - FuncSum
    - reduce
    linkageType: ''
    returnType: BytePack<EltPerPack*sizeof(T)>
    signature: BytePack<EltPerPack*sizeof(T)> reduce(FuncPreMulSum<T> fn, BytePack<EltPerPack*sizeof(T)>
      a, BytePack<EltPerPack*sizeof(T)> b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: toPack<T>
      Src: /src/nccl/src/device/reduce_kernel.h:660,1
    - Dst: fromPack
      Src: /src/nccl/src/device/reduce_kernel.h:660,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fn
    - a
    argTypes:
    - FuncPreMulSum<T>
    - BytePack<sizeof(T)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 661
      start: 659
    functionDepth: 1
    functionLinenumber: 659
    functionLinenumberEnd: 661
    functionName: preOp
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 1
    functionsReached:
    - fromPack
    - toPack<T>
    linkageType: ''
    returnType: BytePack<sizeof(T)>
    signature: BytePack<sizeof(T)> preOp(FuncPreMulSum<T> fn, BytePack<sizeof(T)>
      a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: toPack<half>
      Src: /src/nccl/src/device/reduce_kernel.h:672,1
    - Dst: __hmul
      Src: /src/nccl/src/device/reduce_kernel.h:672,1
    - Dst: fromPack
      Src: /src/nccl/src/device/reduce_kernel.h:672,1
    - Dst: toPack<half>
      Src: /src/nccl/src/device/reduce_kernel.h:674,1
    - Dst: __float2half
      Src: /src/nccl/src/device/reduce_kernel.h:674,1
    - Dst: __half2float
      Src: /src/nccl/src/device/reduce_kernel.h:674,1
    - Dst: fromPack
      Src: /src/nccl/src/device/reduce_kernel.h:674,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - fn
    - a
    argTypes:
    - FuncPreMulSum<half>
    - BytePack<sizeof(half)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 670
    functionDepth: 1
    functionLinenumber: 670
    functionLinenumberEnd: 676
    functionName: preOp
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 1
    functionsReached:
    - toPack<half>
    - __float2half
    - __half2float
    - fromPack
    - __hmul
    linkageType: ''
    returnType: BytePack<sizeof(half)>
    signature: BytePack<sizeof(half)> preOp(FuncPreMulSum<half> fn, BytePack<sizeof(half)>
      a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: toPack<half2>
      Src: /src/nccl/src/device/reduce_kernel.h:683,1
    - Dst: __hmul2
      Src: /src/nccl/src/device/reduce_kernel.h:683,1
    - Dst: fromPack
      Src: /src/nccl/src/device/reduce_kernel.h:683,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fn
    - a
    argTypes:
    - FuncPreMulSum<half>
    - BytePack<sizeof(half2)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 682
    functionDepth: 1
    functionLinenumber: 682
    functionLinenumberEnd: 684
    functionName: preOp
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 1
    functionsReached:
    - toPack<half2>
    - __hmul2
    - fromPack
    linkageType: ''
    returnType: BytePack<sizeof(half2)>
    signature: BytePack<sizeof(half2)> preOp(FuncPreMulSum<half> fn, BytePack<sizeof(half2)>
      a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: toPack<__nv_bfloat16>
      Src: /src/nccl/src/device/reduce_kernel.h:699,1
    - Dst: __hmul
      Src: /src/nccl/src/device/reduce_kernel.h:699,1
    - Dst: fromPack
      Src: /src/nccl/src/device/reduce_kernel.h:699,1
    - Dst: toPack<__nv_bfloat16>
      Src: /src/nccl/src/device/reduce_kernel.h:701,1
    - Dst: __float2bfloat16
      Src: /src/nccl/src/device/reduce_kernel.h:701,1
    - Dst: __bfloat162float
      Src: /src/nccl/src/device/reduce_kernel.h:701,1
    - Dst: fromPack
      Src: /src/nccl/src/device/reduce_kernel.h:701,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - fn
    - a
    argTypes:
    - FuncPreMulSum<__nv_bfloat16>
    - BytePack<sizeof(__nv_bfloat16)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 695
    functionDepth: 1
    functionLinenumber: 695
    functionLinenumberEnd: 703
    functionName: preOp
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 1
    functionsReached:
    - fromPack
    - __hmul
    - __float2bfloat16
    - toPack<__nv_bfloat16>
    - __bfloat162float
    linkageType: ''
    returnType: BytePack<sizeof(__nv_bfloat16)>
    signature: "BytePack<sizeof(__nv_bfloat16)> preOp(\n        FuncPreMulSum<__nv_bfloat16>
      fn, BytePack<sizeof(__nv_bfloat16)> a\n      )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: toPack<__nv_bfloat162>
      Src: /src/nccl/src/device/reduce_kernel.h:712,1
    - Dst: __hmul2
      Src: /src/nccl/src/device/reduce_kernel.h:712,1
    - Dst: fromPack
      Src: /src/nccl/src/device/reduce_kernel.h:712,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fn
    - a
    argTypes:
    - FuncPreMulSum<__nv_bfloat16>
    - BytePack<sizeof(__nv_bfloat162)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 709
    functionDepth: 1
    functionLinenumber: 709
    functionLinenumberEnd: 713
    functionName: preOp
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 1
    functionsReached:
    - toPack<__nv_bfloat162>
    - __hmul2
    - fromPack
    linkageType: ''
    returnType: BytePack<sizeof(__nv_bfloat162)>
    signature: "BytePack<sizeof(__nv_bfloat162)> preOp(\n          FuncPreMulSum<__nv_bfloat16>
      fn, BytePack<sizeof(__nv_bfloat162)> a\n        )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: toPack<__nv_fp8_e4m3>
      Src: /src/nccl/src/device/reduce_kernel.h:729,1
    - Dst: __nv_fp8_e4m3
      Src: /src/nccl/src/device/reduce_kernel.h:729,1
    - Dst: __hmul
      Src: /src/nccl/src/device/reduce_kernel.h:729,1
    - Dst: __half
      Src: /src/nccl/src/device/reduce_kernel.h:729,1
    - Dst: fromPack
      Src: /src/nccl/src/device/reduce_kernel.h:729,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fn
    - a
    argTypes:
    - FuncPreMulSum<__nv_fp8_e4m3>
    - BytePack<sizeof(__nv_fp8_e4m3)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 730
      start: 726
    functionDepth: 1
    functionLinenumber: 726
    functionLinenumberEnd: 730
    functionName: preOp
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 1
    functionsReached:
    - toPack<__nv_fp8_e4m3>
    - fromPack
    - __hmul
    - __half
    - __nv_fp8_e4m3
    linkageType: ''
    returnType: BytePack<sizeof(__nv_fp8_e4m3)>
    signature: "BytePack<sizeof(__nv_fp8_e4m3)> preOp(\n        FuncPreMulSum<__nv_fp8_e4m3>
      fn, BytePack<sizeof(__nv_fp8_e4m3)> a\n      )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: toPack<__nv_fp8x2_e4m3>
      Src: /src/nccl/src/device/reduce_kernel.h:738,1
    - Dst: __nv_fp8x2_e4m3
      Src: /src/nccl/src/device/reduce_kernel.h:738,1
    - Dst: __hmul2
      Src: /src/nccl/src/device/reduce_kernel.h:738,1
    - Dst: __half2
      Src: /src/nccl/src/device/reduce_kernel.h:738,1
    - Dst: fromPack
      Src: /src/nccl/src/device/reduce_kernel.h:738,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fn
    - a
    argTypes:
    - FuncPreMulSum<__nv_fp8_e4m3>
    - BytePack<sizeof(__nv_fp8x2_e4m3)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 739
      start: 735
    functionDepth: 1
    functionLinenumber: 735
    functionLinenumberEnd: 739
    functionName: preOp
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 1
    functionsReached:
    - __half2
    - __hmul2
    - fromPack
    - toPack<__nv_fp8x2_e4m3>
    - __nv_fp8x2_e4m3
    linkageType: ''
    returnType: BytePack<sizeof(__nv_fp8x2_e4m3)>
    signature: "BytePack<sizeof(__nv_fp8x2_e4m3)> preOp(\n        FuncPreMulSum<__nv_fp8_e4m3>
      fn, BytePack<sizeof(__nv_fp8x2_e4m3)> a\n      )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: toPack<__nv_fp8_e5m2>
      Src: /src/nccl/src/device/reduce_kernel.h:748,1
    - Dst: __nv_fp8_e5m2
      Src: /src/nccl/src/device/reduce_kernel.h:748,1
    - Dst: __hmul
      Src: /src/nccl/src/device/reduce_kernel.h:748,1
    - Dst: __half
      Src: /src/nccl/src/device/reduce_kernel.h:748,1
    - Dst: fromPack
      Src: /src/nccl/src/device/reduce_kernel.h:748,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fn
    - a
    argTypes:
    - FuncPreMulSum<__nv_fp8_e5m2>
    - BytePack<sizeof(__nv_fp8_e5m2)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 749
      start: 745
    functionDepth: 1
    functionLinenumber: 745
    functionLinenumberEnd: 749
    functionName: preOp
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 1
    functionsReached:
    - __nv_fp8_e5m2
    - fromPack
    - __hmul
    - __half
    - toPack<__nv_fp8_e5m2>
    linkageType: ''
    returnType: BytePack<sizeof(__nv_fp8_e5m2)>
    signature: "BytePack<sizeof(__nv_fp8_e5m2)> preOp(\n        FuncPreMulSum<__nv_fp8_e5m2>
      fn, BytePack<sizeof(__nv_fp8_e5m2)> a\n      )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: toPack<__nv_fp8x2_e5m2>
      Src: /src/nccl/src/device/reduce_kernel.h:757,1
    - Dst: __nv_fp8x2_e5m2
      Src: /src/nccl/src/device/reduce_kernel.h:757,1
    - Dst: __hmul2
      Src: /src/nccl/src/device/reduce_kernel.h:757,1
    - Dst: __half2
      Src: /src/nccl/src/device/reduce_kernel.h:757,1
    - Dst: fromPack
      Src: /src/nccl/src/device/reduce_kernel.h:757,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fn
    - a
    argTypes:
    - FuncPreMulSum<__nv_fp8_e5m2>
    - BytePack<sizeof(__nv_fp8x2_e5m2)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 758
      start: 754
    functionDepth: 1
    functionLinenumber: 754
    functionLinenumberEnd: 758
    functionName: preOp
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 1
    functionsReached:
    - __half2
    - __hmul2
    - fromPack
    - __nv_fp8x2_e5m2
    - toPack<__nv_fp8x2_e5m2>
    linkageType: ''
    returnType: BytePack<sizeof(__nv_fp8x2_e5m2)>
    signature: "BytePack<sizeof(__nv_fp8x2_e5m2)> preOp(\n        FuncPreMulSum<__nv_fp8_e5m2>
      fn, BytePack<sizeof(__nv_fp8x2_e5m2)> a\n      )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 769
    functionDepth: 0
    functionLinenumber: 769
    functionLinenumberEnd: 771
    functionName: loadArg
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t loadArg(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: UintType
      Src: /src/nccl/src/device/reduce_kernel.h:785,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 782
    functionDepth: 0
    functionLinenumber: 782
    functionLinenumberEnd: 786
    functionName: FuncSumPostDiv
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 0
    functionsReached:
    - UintType
    linkageType: ''
    returnType: void
    signature: void FuncSumPostDiv(uint64_t opArg=0)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: T
      Src: /src/nccl/src/device/reduce_kernel.h:789,1
    - Dst: T
      Src: /src/nccl/src/device/reduce_kernel.h:795,1
    - Dst: __umul64hi
      Src: /src/nccl/src/device/reduce_kernel.h:797,1
    - Dst: __umulhi
      Src: /src/nccl/src/device/reduce_kernel.h:797,1
    - Dst: T
      Src: /src/nccl/src/device/reduce_kernel.h:802,1
    - Dst: T
      Src: /src/nccl/src/device/reduce_kernel.h:802,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - x
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 803
      start: 787
    functionDepth: 0
    functionLinenumber: 787
    functionLinenumberEnd: 803
    functionName: divide
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 0
    functionsReached:
    - __umul64hi
    - __umulhi
    - T
    linkageType: ''
    returnType: T
    signature: T divide(T x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reduce
      Src: /src/nccl/src/device/reduce_kernel.h:811,1
    - Dst: FuncSum
      Src: /src/nccl/src/device/reduce_kernel.h:811,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - fn
    - a
    - b
    argTypes:
    - FuncSumPostDiv<T>
    - BytePack<EltPerPack*sizeof(T)>
    - BytePack<EltPerPack*sizeof(T)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 812
      start: 809
    functionDepth: 1
    functionLinenumber: 809
    functionLinenumberEnd: 812
    functionName: reduce
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 4
    functionsReached:
    - FuncSum
    - reduce
    linkageType: ''
    returnType: BytePack<EltPerPack*sizeof(T)>
    signature: BytePack<EltPerPack*sizeof(T)> reduce(FuncSumPostDiv<T> fn, BytePack<EltPerPack*sizeof(T)>
      a, BytePack<EltPerPack*sizeof(T)> b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: toPack<T>
      Src: /src/nccl/src/device/reduce_kernel.h:819,1
    - Dst: FuncSumPostDiv<T>::divide
      Src: /src/nccl/src/device/reduce_kernel.h:819,1
    - Dst: fromPack
      Src: /src/nccl/src/device/reduce_kernel.h:819,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fn
    - a
    argTypes:
    - FuncSumPostDiv<T>
    - BytePack<sizeof(T)>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 820
      start: 818
    functionDepth: 1
    functionLinenumber: 818
    functionLinenumberEnd: 820
    functionName: postOp
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 1
    functionsReached:
    - FuncSumPostDiv<T>::divide
    - toPack<T>
    - fromPack
    linkageType: ''
    returnType: BytePack<sizeof(T)>
    signature: BytePack<sizeof(T)> postOp(FuncSumPostDiv<T> fn, BytePack<sizeof(T)>
      a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - T
    - ','
    - ptx_ty
    - ','
    - PackSize
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 871
      start: 858
    functionDepth: 0
    functionLinenumber: 858
    functionLinenumberEnd: 871
    functionName: DEFINE_Apply_LoadMultimem_sum
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_Apply_LoadMultimem_sum(T, ptx_ty, PackSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - T
    - ','
    - ptx_ty
    - ','
    - PackSize
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 890
      start: 871
    functionDepth: 0
    functionLinenumber: 871
    functionLinenumberEnd: 890
    functionName: DEFINE_Apply_LoadMultimem_minmax
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_Apply_LoadMultimem_minmax(T, ptx_ty, PackSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - T
    - ','
    - ptx_ty
    - ','
    - VecEltSize
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 906
      start: 891
    functionDepth: 0
    functionLinenumber: 891
    functionLinenumberEnd: 906
    functionName: DEFINE_Apply_LoadMultimem_sum_v4
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_Apply_LoadMultimem_sum_v4(T, ptx_ty, VecEltSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - T
    - ','
    - ptx_ty
    - ','
    - VecEltSize
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 930
      start: 906
    functionDepth: 0
    functionLinenumber: 906
    functionLinenumberEnd: 930
    functionName: DEFINE_Apply_LoadMultimem_minmax_v4
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_Apply_LoadMultimem_minmax_v4(T, ptx_ty, VecEltSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - T
    - ','
    - ptx_ty
    - ','
    - VecEltSize
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 943
      start: 931
    functionDepth: 0
    functionLinenumber: 931
    functionLinenumberEnd: 943
    functionName: DEFINE_Apply_LoadMultimem_sum_v4_and_xparts
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_Apply_LoadMultimem_sum_v4_and_xparts(T, ptx_ty, VecEltSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - T
    - ','
    - ptx_ty
    - ','
    - VecEltSize
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 961
      start: 943
    functionDepth: 0
    functionLinenumber: 943
    functionLinenumberEnd: 961
    functionName: DEFINE_Apply_LoadMultimem_minmax_v4_and_xparts
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DEFINE_Apply_LoadMultimem_minmax_v4_and_xparts(T, ptx_ty, VecEltSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __trap
      Src: /src/nccl/src/device/reduce_kernel.h:965,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - fn
    - addr
    argTypes:
    - Fn
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 967
      start: 964
    functionDepth: 0
    functionLinenumber: 964
    functionLinenumberEnd: 967
    functionName: load
    functionSourceFile: /src/nccl/src/device/reduce_kernel.h
    functionUses: 6
    functionsReached:
    - __trap
    linkageType: ''
    returnType: BytePack<BytePerPack>
    signature: BytePack<BytePerPack> load(Fn fn, uintptr_t addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - int
    - ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 19
    functionName: min
    functionSourceFile: /src/nccl/src/device/common_kernel.h
    functionUses: 44
    functionsReached: []
    linkageType: ''
    returnType: __device__
    signature: __device__ min(int a, ssize_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 26
    functionName: loadInt
    functionSourceFile: /src/nccl/src/device/common_kernel.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: __device__
    signature: __device__ loadInt(int* ptr)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: __trap
      Src: /src/nccl/src/device/common_kernel.h:39,1
    - Dst: cvta_to_global
      Src: /src/nccl/src/device/common_kernel.h:69,1
    - Dst: srcPtrFn
      Src: /src/nccl/src/device/common_kernel.h:69,1
    - Dst: cvta_to_global
      Src: /src/nccl/src/device/common_kernel.h:76,1
    - Dst: dstPtrFn
      Src: /src/nccl/src/device/common_kernel.h:76,1
    - Dst: applyLoadMultimem<RedFn, BytePerPack>
      Src: /src/nccl/src/device/common_kernel.h:90,1
    - Dst: ld_volatile_global
      Src: /src/nccl/src/device/common_kernel.h:93,1
    - Dst: applyPreOp
      Src: /src/nccl/src/device/common_kernel.h:94,1
    - Dst: applyLoadMultimem<RedFn, BytePerPack>
      Src: /src/nccl/src/device/common_kernel.h:112,1
    - Dst: ld_volatile_global
      Src: /src/nccl/src/device/common_kernel.h:115,1
    - Dst: applyPreOp
      Src: /src/nccl/src/device/common_kernel.h:122,1
    - Dst: applyReduce
      Src: /src/nccl/src/device/common_kernel.h:123,1
    - Dst: cvta_to_global
      Src: /src/nccl/src/device/common_kernel.h:128,1
    - Dst: srcPtrFn
      Src: /src/nccl/src/device/common_kernel.h:128,1
    - Dst: ld_volatile_global
      Src: /src/nccl/src/device/common_kernel.h:136,1
    - Dst: applyPreOp
      Src: /src/nccl/src/device/common_kernel.h:143,1
    - Dst: applyReduce
      Src: /src/nccl/src/device/common_kernel.h:144,1
    - Dst: applyPostOp
      Src: /src/nccl/src/device/common_kernel.h:151,1
    - Dst: multimem_st_global
      Src: /src/nccl/src/device/common_kernel.h:162,1
    - Dst: st_global<BytePerPack>
      Src: /src/nccl/src/device/common_kernel.h:164,1
    - Dst: cvta_to_global
      Src: /src/nccl/src/device/common_kernel.h:170,1
    - Dst: dstPtrFn
      Src: /src/nccl/src/device/common_kernel.h:170,1
    - Dst: st_global<BytePerPack>
      Src: /src/nccl/src/device/common_kernel.h:174,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 93
    argCount: 11
    argNames:
    - nThreads
    - thread
    - redArg
    - preOpArgs
    - postOp
    - nSrcs
    - srcPtrFn
    - nDsts
    - dstPtrFn
    - nBytesBehind
    - nBytesAhead
    argTypes:
    - int
    - int
    - uint64_t
    - uint64_t*
    - bool
    - int
    - SrcPtrFn
    - int
    - DstPtrFn
    - IntBytes
    - IntBytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 32
    functionDepth: 2
    functionLinenumber: 32
    functionLinenumberEnd: 206
    functionName: reduceCopyPacks
    functionSourceFile: /src/nccl/src/device/common_kernel.h
    functionUses: 0
    functionsReached:
    - applyLoadMultimem<RedFn, BytePerPack>
    - dstPtrFn
    - multimem_st_global
    - applyReduce
    - cvta_to_global
    - __trap
    - srcPtrFn
    - st_global<BytePerPack>
    - ld_volatile_global
    - applyPostOp
    - applyPreOp
    linkageType: ''
    returnType: __device__
    signature: "__device__ reduceCopyPacks(\n    int nThreads, int &thread,\n    uint64_t
      redArg, uint64_t *preOpArgs, bool postOp,\n    int nSrcs, SrcPtrFn const &srcPtrFn,
      int nDsts, DstPtrFn const &dstPtrFn,\n    IntBytes &nBytesBehind, IntBytes &nBytesAhead\n
      \ )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reduceCopy
      Src: /src/nccl/src/device/common_kernel.h:279,1
    - Dst: __device__
      Src: /src/nccl/src/device/common_kernel.h:283,1
    - Dst: __device__
      Src: /src/nccl/src/device/common_kernel.h:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 10
    argNames:
    - thread
    - nThreads
    - redArg
    - preOpArgs
    - postOp
    - nSrcs
    - srcPtrs
    - nDsts
    - dstPtrs
    - nElts
    argTypes:
    - int
    - int
    - uint64_t
    - uint64_t*
    - bool
    - int
    - void**
    - int
    - void**
    - IntBytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 273
    functionDepth: 1
    functionLinenumber: 273
    functionLinenumberEnd: 285
    functionName: reduceCopy
    functionSourceFile: /src/nccl/src/device/common_kernel.h
    functionUses: 15
    functionsReached:
    - reduceCopy
    - __device__
    linkageType: ''
    returnType: __device__
    signature: "__device__ reduceCopy(\n    int thread, int nThreads,\n    uint64_t
      redArg, uint64_t *preOpArgs, bool postOp,\n    int nSrcs, void** srcPtrs, int
      nDsts, void** dstPtrs,\n    IntBytes nElts\n  )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ptr
    - v
    argTypes:
    - uint64_t*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 27
    functionName: load64gpu
    functionSourceFile: /src/nccl/src/device/network/unpack/unpack.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __device__
    signature: __device__ load64gpu(const uint64_t* ptr, uint64_t &v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - ohandle
    - group
    - index
    argTypes:
    - void*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 41
    functionName: ncclNetDeviceUnpackSetup
    functionSourceFile: /src/nccl/src/device/network/unpack/unpack.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: __device__
    signature: __device__ ncclNetDeviceUnpackSetup(void* ohandle, const int group,
      const int index)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - group
    - index
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 46
    functionName: ncclNetDeviceIncrementHead
    functionSourceFile: /src/nccl/src/device/network/unpack/unpack.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: __device__
    signature: __device__ ncclNetDeviceIncrementHead(const int group, const int index)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ohandle
    - group
    - index
    argTypes:
    - void*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 52
    functionName: ncclNetDeviceSaveHead
    functionSourceFile: /src/nccl/src/device/network/unpack/unpack.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: __device__
    signature: __device__ ncclNetDeviceSaveHead(void* ohandle, const int group, const
      int index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bulkLoad
      Src: /src/nccl/src/device/network/unpack/unpack.h:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 10
    argNames:
    - t
    - len
    - cpy_src
    - cpy_dst
    - reg
    - w
    - g_meta
    - s_meta
    - src_off
    - dst_off
    argTypes:
    - int
    - uint32_t
    - char*
    - char*
    - BytePack<sz>*
    - int
    - loadMeta*
    - loadMeta*
    - uint32_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 57
    functionName: bulkLoad
    functionSourceFile: /src/nccl/src/device/network/unpack/unpack.h
    functionUses: 1
    functionsReached:
    - bulkLoad
    linkageType: ''
    returnType: __device__
    signature: __device__ bulkLoad(const int t, const uint32_t len, char* cpy_src,
      char* cpy_dst, BytePack<sz> *reg, const int w, loadMeta* g_meta, loadMeta* s_meta,
      uint32_t src_off, uint64_t dst_off)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load128
      Src: /src/nccl/src/device/network/unpack/unpack.h:65,1
    - Dst: ld_volatile_global
      Src: /src/nccl/src/device/network/unpack/unpack.h:69,1
    - Dst: st_global<1>
      Src: /src/nccl/src/device/network/unpack/unpack.h:75,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 10
    argNames:
    - t
    - len
    - cpy_src
    - cpy_dst
    - reg
    - w
    - g_meta
    - s_meta
    - src_off
    - dst_off
    argTypes:
    - int
    - uint32_t
    - char*
    - char*
    - BytePack<1>[]
    - int
    - loadMeta*
    - loadMeta*
    - uint32_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 60
    functionDepth: 2
    functionLinenumber: 60
    functionLinenumberEnd: 78
    functionName: bulkLoad
    functionSourceFile: /src/nccl/src/device/network/unpack/unpack.h
    functionUses: 1
    functionsReached:
    - st_global<1>
    - load128
    - ld_volatile_global
    linkageType: ''
    returnType: __device__
    signature: __device__ bulkLoad<1>(const int t, const uint32_t len, char* cpy_src,
      char* cpy_dst, BytePack<1> reg[16], const int w, loadMeta* g_meta, loadMeta*
      s_meta, uint32_t src_off, uint64_t dst_off)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load128
      Src: /src/nccl/src/device/network/unpack/unpack.h:85,1
    - Dst: ld_volatile_global
      Src: /src/nccl/src/device/network/unpack/unpack.h:89,1
    - Dst: st_global<2>
      Src: /src/nccl/src/device/network/unpack/unpack.h:96,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 10
    argNames:
    - t
    - len
    - cpy_src
    - cpy_dst
    - reg
    - w
    - g_meta
    - s_meta
    - src_off
    - dst_off
    argTypes:
    - int
    - uint32_t
    - char*
    - char*
    - BytePack<2>[]
    - int
    - loadMeta*
    - loadMeta*
    - uint32_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 81
    functionDepth: 2
    functionLinenumber: 81
    functionLinenumberEnd: 99
    functionName: bulkLoad
    functionSourceFile: /src/nccl/src/device/network/unpack/unpack.h
    functionUses: 1
    functionsReached:
    - load128
    - st_global<2>
    - ld_volatile_global
    linkageType: ''
    returnType: __device__
    signature: __device__ bulkLoad<2>(const int t, const uint32_t len, char* cpy_src,
      char* cpy_dst, BytePack<2> reg[8], const int w, loadMeta* g_meta, loadMeta*
      s_meta, uint32_t src_off, uint64_t dst_off)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load128
      Src: /src/nccl/src/device/network/unpack/unpack.h:106,1
    - Dst: ld_volatile_global
      Src: /src/nccl/src/device/network/unpack/unpack.h:110,1
    - Dst: st_global<4>
      Src: /src/nccl/src/device/network/unpack/unpack.h:116,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 10
    argNames:
    - t
    - len
    - cpy_src
    - cpy_dst
    - reg
    - w
    - g_meta
    - s_meta
    - src_off
    - dst_off
    argTypes:
    - int
    - uint32_t
    - char*
    - char*
    - BytePack<4>[]
    - int
    - loadMeta*
    - loadMeta*
    - uint32_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 102
    functionDepth: 2
    functionLinenumber: 102
    functionLinenumberEnd: 119
    functionName: bulkLoad
    functionSourceFile: /src/nccl/src/device/network/unpack/unpack.h
    functionUses: 1
    functionsReached:
    - load128
    - st_global<4>
    - ld_volatile_global
    linkageType: ''
    returnType: __device__
    signature: __device__ bulkLoad<4>(const int t, const uint32_t len, char* cpy_src,
      char* cpy_dst, BytePack<4> reg[4], const int w, loadMeta* g_meta, loadMeta*
      s_meta, uint32_t src_off, uint64_t dst_off)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load128
      Src: /src/nccl/src/device/network/unpack/unpack.h:126,1
    - Dst: ld_volatile_global
      Src: /src/nccl/src/device/network/unpack/unpack.h:130,1
    - Dst: st_global<8>
      Src: /src/nccl/src/device/network/unpack/unpack.h:136,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 10
    argNames:
    - t
    - len
    - cpy_src
    - cpy_dst
    - reg
    - w
    - g_meta
    - s_meta
    - src_off
    - dst_off
    argTypes:
    - int
    - uint32_t
    - char*
    - char*
    - BytePack<8>[]
    - int
    - loadMeta*
    - loadMeta*
    - uint32_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 122
    functionDepth: 2
    functionLinenumber: 122
    functionLinenumberEnd: 139
    functionName: bulkLoad
    functionSourceFile: /src/nccl/src/device/network/unpack/unpack.h
    functionUses: 1
    functionsReached:
    - st_global<8>
    - load128
    - ld_volatile_global
    linkageType: ''
    returnType: __device__
    signature: __device__ bulkLoad<8>(const int t, const uint32_t len, char* cpy_src,
      char* cpy_dst, BytePack<8> reg[2], const int w, loadMeta* g_meta, loadMeta*
      s_meta, uint32_t src_off, uint64_t dst_off)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ld_volatile_global
      Src: /src/nccl/src/device/network/unpack/unpack.h:145,1
    - Dst: st_global<16>
      Src: /src/nccl/src/device/network/unpack/unpack.h:146,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 10
    argNames:
    - t
    - len
    - cpy_src
    - cpy_dst
    - reg
    - w
    - g_meta
    - s_meta
    - src_off
    - dst_off
    argTypes:
    - int
    - uint32_t
    - char*
    - char*
    - BytePack<16>[]
    - int
    - loadMeta*
    - loadMeta*
    - uint32_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 142
    functionDepth: 2
    functionLinenumber: 142
    functionLinenumberEnd: 148
    functionName: bulkLoad
    functionSourceFile: /src/nccl/src/device/network/unpack/unpack.h
    functionUses: 1
    functionsReached:
    - st_global<16>
    - ld_volatile_global
    linkageType: ''
    returnType: __device__
    signature: __device__ bulkLoad<16>(const int t, const uint32_t len, char* cpy_src,
      char* cpy_dst, BytePack<16> reg[1], const int w, loadMeta* g_meta, loadMeta*
      s_meta, uint32_t src_off, uint64_t dst_off)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DIVUP
      Src: /src/nccl/src/device/network/unpack/unpack.h:154,1
    - Dst: DIVUP
      Src: /src/nccl/src/device/network/unpack/unpack.h:155,1
    - Dst: DIVUP
      Src: /src/nccl/src/device/network/unpack/unpack.h:157,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - nbytes
    - nw
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 160
    functionName: ppw
    functionSourceFile: /src/nccl/src/device/network/unpack/unpack.h
    functionUses: 0
    functionsReached:
    - DIVUP
    linkageType: ''
    returnType: __device__
    signature: __device__ ppw(const int nbytes, int nw)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 7
    argNames:
    - tid
    - tidInBlock
    - nworkers
    - group
    - mask
    - Src
    - workSize
    argTypes:
    - int
    - int
    - int
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 173
    functionName: ncclNetDeviceUnpack
    functionSourceFile: /src/nccl/src/device/network/unpack/unpack.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: __device__
    signature: "__device__ ncclNetDeviceUnpack</*Recv=*/0>(\n    const int tid, const
      int tidInBlock, const int nworkers, const int group, int mask, int Src, int
      workSize)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __ffs
      Src: /src/nccl/src/device/network/unpack/unpack.h:184,1
    - Dst: ncclNetDeviceUnpackInner
      Src: /src/nccl/src/device/network/unpack/unpack.h:189,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 7
    argNames:
    - tid
    - tidInBlock
    - nworkers
    - group
    - mask
    - Src
    - workSize
    argTypes:
    - int
    - int
    - int
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 192
    functionName: ncclNetDeviceUnpack
    functionSourceFile: /src/nccl/src/device/network/unpack/unpack.h
    functionUses: 2
    functionsReached:
    - __ffs
    - ncclNetDeviceUnpackInner
    linkageType: ''
    returnType: __device__
    signature: "__device__ ncclNetDeviceUnpack</*Recv=*/1>(\n    const int tid, const
      int tidInBlock, const int nworkers, const int group, int mask, int Src, int
      workSize)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: __syncwarp
      Src: /src/nccl/src/device/network/unpack/unpack.h:218,1
    - Dst: ncclShmemScratchWarpSize
      Src: /src/nccl/src/device/network/unpack/unpack.h:226,1
    - Dst: ncclScratchForWarp
      Src: /src/nccl/src/device/network/unpack/unpack.h:227,1
    - Dst: load64gpu
      Src: /src/nccl/src/device/network/unpack/unpack.h:229,1
    - Dst: ppw
      Src: /src/nccl/src/device/network/unpack/unpack.h:231,1
    - Dst: load128
      Src: /src/nccl/src/device/network/unpack/unpack.h:242,1
    - Dst: storeShmem128
      Src: /src/nccl/src/device/network/unpack/unpack.h:244,1
    - Dst: shmemCvtPtr
      Src: /src/nccl/src/device/network/unpack/unpack.h:244,1
    - Dst: __syncwarp
      Src: /src/nccl/src/device/network/unpack/unpack.h:247,1
    - Dst: loadShmem128
      Src: /src/nccl/src/device/network/unpack/unpack.h:253,1
    - Dst: shmemCvtPtr
      Src: /src/nccl/src/device/network/unpack/unpack.h:253,1
    - Dst: bulkLoad
      Src: /src/nccl/src/device/network/unpack/unpack.h:262,1
    - Dst: bulkLoad
      Src: /src/nccl/src/device/network/unpack/unpack.h:264,1
    - Dst: bulkLoad
      Src: /src/nccl/src/device/network/unpack/unpack.h:266,1
    - Dst: bulkLoad
      Src: /src/nccl/src/device/network/unpack/unpack.h:268,1
    - Dst: bulkLoad
      Src: /src/nccl/src/device/network/unpack/unpack.h:270,1
    - Dst: __syncwarp
      Src: /src/nccl/src/device/network/unpack/unpack.h:282,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 8
    argNames:
    - tid
    - tidInBlock
    - nworkers
    - group
    - index
    - src
    - nbytes
    - step
    argTypes:
    - int
    - int
    - int
    - int
    - int
    - void*
    - int
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 194
    functionDepth: 2
    functionLinenumber: 194
    functionLinenumberEnd: 284
    functionName: ncclNetDeviceUnpackInner
    functionSourceFile: /src/nccl/src/device/network/unpack/unpack.h
    functionUses: 1
    functionsReached:
    - __syncwarp
    - bulkLoad
    - ppw
    - storeShmem128
    - ncclScratchForWarp
    - load128
    - shmemCvtPtr
    - ncclShmemScratchWarpSize
    - load64gpu
    - loadShmem128
    linkageType: ''
    returnType: __device__
    signature: "__device__ ncclNetDeviceUnpackInner(\n    const int tid, const int
      tidInBlock, const int nworkers, const int group, const int index,\n    void
      *src, const int nbytes, const uint64_t step)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 7
    argNames:
    - connection
    - proxyState
    - reqBuff
    - reqSize
    - respBuff
    - respSize
    - done
    argTypes:
    - struct ncclProxyConnection*
    - struct ncclProxyState*
    - void*
    - int
    - void*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 15
    functionName: profilerProxyConnect
    functionSourceFile: /src/nccl/src/transport/profiler.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t profilerProxyConnect(struct ncclProxyConnection* connection,
      struct ncclProxyState* proxyState, void* reqBuff, int reqSize, void* respBuff,
      int respSize, int* done)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ncclProfilerStartKernelChEvent
      Src: /src/nccl/src/transport/profiler.cc:36,1
    - Dst: ncclProfilerStopKernelChEvent
      Src: /src/nccl/src/transport/profiler.cc:41,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 2
    argNames:
    - proxyState
    - args
    argTypes:
    - struct ncclProxyState*
    - struct ncclProxyArgs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 49
    functionName: profilerProxyProgress
    functionSourceFile: /src/nccl/src/transport/profiler.cc
    functionUses: 0
    functionsReached:
    - ncclProfilerStartKernelChEvent
    - ncclProfilerStopKernelChEvent
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t profilerProxyProgress(struct ncclProxyState* proxyState,
      struct ncclProxyArgs* args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - ret
    - comm
    - graph
    - info1
    - info2
    argTypes:
    - int*
    - struct ncclComm*
    - struct ncclTopoGraph*
    - struct ncclPeerInfo*
    - struct ncclPeerInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 34
    functionName: nvlsCanConnect
    functionSourceFile: /src/nccl/src/transport/nvls.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t nvlsCanConnect(int* ret, struct ncclComm* comm, struct
      ncclTopoGraph* graph, struct ncclPeerInfo* info1, struct ncclPeerInfo* info2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - send
    argTypes:
    - struct ncclConnector*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 38
    functionName: nvlsSendFree
    functionSourceFile: /src/nccl/src/transport/nvls.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t nvlsSendFree(struct ncclConnector* send)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - recv
    argTypes:
    - struct ncclConnector*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 42
    functionName: nvlsRecvFree
    functionSourceFile: /src/nccl/src/transport/nvls.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t nvlsRecvFree(struct ncclConnector* recv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INFO
      Src: /src/nccl/src/transport/nvls.cc:57,1
    - Dst: CUCHECK
      Src: /src/nccl/src/transport/nvls.cc:58,1
    - Dst: cuMulticastCreate
      Src: /src/nccl/src/transport/nvls.cc:58,1
    - Dst: CUCHECK
      Src: /src/nccl/src/transport/nvls.cc:62,1
    - Dst: cuMemExportToShareableHandle
      Src: /src/nccl/src/transport/nvls.cc:62,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/nvls.cc:65,1
    - Dst: INFO
      Src: /src/nccl/src/transport/nvls.cc:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 6
    argNames:
    - comm
    - prop
    - rank
    - nranks
    - mcHandle
    - shareableHandle
    argTypes:
    - struct ncclComm*
    - CUmulticastObjectProp*
    - int
    - unsigned int
    - CUmemGenericAllocationHandle*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 71
    functionName: nvlsGroupCreate
    functionSourceFile: /src/nccl/src/transport/nvls.cc
    functionUses: 0
    functionsReached:
    - INFO
    - cuMemExportToShareableHandle
    - memcpy
    - cuMulticastCreate
    - CUCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t nvlsGroupCreate(struct ncclComm *comm, CUmulticastObjectProp
      *prop, int rank, unsigned int nranks, CUmemGenericAllocationHandle *mcHandle,
      char *shareableHandle)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: INFO
      Src: /src/nccl/src/transport/nvls.cc:77,1
    - Dst: TRACE
      Src: /src/nccl/src/transport/nvls.cc:82,1
    - Dst: TRACE
      Src: /src/nccl/src/transport/nvls.cc:83,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:84,1
    - Dst: ncclProxyClientGetFdBlocking
      Src: /src/nccl/src/transport/nvls.cc:84,1
    - Dst: TRACE
      Src: /src/nccl/src/transport/nvls.cc:85,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:86,1
    - Dst: cuMemImportFromShareableHandle
      Src: /src/nccl/src/transport/nvls.cc:86,1
    - Dst: SYSCHECK
      Src: /src/nccl/src/transport/nvls.cc:87,1
    - Dst: close
      Src: /src/nccl/src/transport/nvls.cc:87,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:90,1
    - Dst: cuMemImportFromShareableHandle
      Src: /src/nccl/src/transport/nvls.cc:90,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/nvls.cc:92,1
    - Dst: close
      Src: /src/nccl/src/transport/nvls.cc:98,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 4
    argNames:
    - comm
    - shareableHandle
    - rank
    - mcHandle
    argTypes:
    - struct ncclComm*
    - char*
    - int
    - CUmemGenericAllocationHandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 73
    functionDepth: 3
    functionLinenumber: 73
    functionLinenumberEnd: 100
    functionName: nvlsGroupConnect
    functionSourceFile: /src/nccl/src/transport/nvls.cc
    functionUses: 0
    functionsReached:
    - INFO
    - TRACE
    - NCCLCHECKGOTO
    - memcpy
    - SYSCHECK
    - close
    - CUCHECKGOTO
    - cuMemImportFromShareableHandle
    - ncclProxyClientGetFdBlocking
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t nvlsGroupConnect(struct ncclComm *comm, char *shareableHandle,
      int rank, CUmemGenericAllocationHandle *mcHandle)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INFO
      Src: /src/nccl/src/transport/nvls.cc:104,1
    - Dst: CUCHECK
      Src: /src/nccl/src/transport/nvls.cc:107,1
    - Dst: cuMulticastUnbind
      Src: /src/nccl/src/transport/nvls.cc:107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - comm
    - size
    - mcHandle
    argTypes:
    - struct ncclComm*
    - size_t
    - CUmemGenericAllocationHandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 110
    functionName: nvlsGroupUnbind
    functionSourceFile: /src/nccl/src/transport/nvls.cc
    functionUses: 0
    functionsReached:
    - INFO
    - CUCHECK
    - cuMulticastUnbind
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t nvlsGroupUnbind(struct ncclComm *comm, size_t size, CUmemGenericAllocationHandle*
      mcHandle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CUCALL
      Src: /src/nccl/src/transport/nvls.cc:115,1
    - Dst: cuMulticastUnbind
      Src: /src/nccl/src/transport/nvls.cc:115,1
    - Dst: CUCHECK
      Src: /src/nccl/src/transport/nvls.cc:116,1
    - Dst: cuMemUnmap
      Src: /src/nccl/src/transport/nvls.cc:116,1
    - Dst: CUCHECK
      Src: /src/nccl/src/transport/nvls.cc:117,1
    - Dst: cuMemAddressFree
      Src: /src/nccl/src/transport/nvls.cc:117,1
    - Dst: CUCHECK
      Src: /src/nccl/src/transport/nvls.cc:118,1
    - Dst: cuMemRelease
      Src: /src/nccl/src/transport/nvls.cc:118,1
    - Dst: INFO
      Src: /src/nccl/src/transport/nvls.cc:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 6
    argNames:
    - comm
    - mcHandler
    - ptr
    - dev
    - ucsize
    - mcsize
    argTypes:
    - struct ncclComm*
    - CUmemGenericAllocationHandle*
    - CUdeviceptr
    - int
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 121
    functionName: ncclNvlsDeregBuffer
    functionSourceFile: /src/nccl/src/transport/nvls.cc
    functionUses: 0
    functionsReached:
    - INFO
    - cuMemAddressFree
    - cuMulticastUnbind
    - CUCALL
    - cuMemUnmap
    - cuMemRelease
    - CUCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNvlsDeregBuffer(struct ncclComm* comm, CUmemGenericAllocationHandle
      *mcHandler, CUdeviceptr ptr, int dev, size_t ucsize, size_t mcsize)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INFO
      Src: /src/nccl/src/transport/nvls.cc:124,1
    - Dst: CUCHECK
      Src: /src/nccl/src/transport/nvls.cc:128,1
    - Dst: cuMemUnmap
      Src: /src/nccl/src/transport/nvls.cc:128,1
    - Dst: CUCHECK
      Src: /src/nccl/src/transport/nvls.cc:129,1
    - Dst: cuMemAddressFree
      Src: /src/nccl/src/transport/nvls.cc:129,1
    - Dst: CUCHECK
      Src: /src/nccl/src/transport/nvls.cc:130,1
    - Dst: cuMemRelease
      Src: /src/nccl/src/transport/nvls.cc:130,1
    - Dst: CUCHECK
      Src: /src/nccl/src/transport/nvls.cc:135,1
    - Dst: cuMemUnmap
      Src: /src/nccl/src/transport/nvls.cc:135,1
    - Dst: CUCHECK
      Src: /src/nccl/src/transport/nvls.cc:136,1
    - Dst: cuMemAddressFree
      Src: /src/nccl/src/transport/nvls.cc:136,1
    - Dst: CUCHECK
      Src: /src/nccl/src/transport/nvls.cc:137,1
    - Dst: cuMemRelease
      Src: /src/nccl/src/transport/nvls.cc:137,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 7
    argNames:
    - comm
    - ucsize
    - ucptr
    - ucHandle
    - mcsize
    - mcptr
    - mcHandle
    argTypes:
    - struct ncclComm*
    - size_t
    - void*
    - CUmemGenericAllocationHandle*
    - size_t
    - void*
    - CUmemGenericAllocationHandle*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 141
    functionName: nvlsGroupUnmapMem
    functionSourceFile: /src/nccl/src/transport/nvls.cc
    functionUses: 0
    functionsReached:
    - INFO
    - cuMemAddressFree
    - cuMemRelease
    - cuMemUnmap
    - CUCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t nvlsGroupUnmapMem(struct ncclComm *comm, size_t ucsize,
      void* ucptr, CUmemGenericAllocationHandle* ucHandle, size_t mcsize, void* mcptr,
      CUmemGenericAllocationHandle* mcHandle)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/nvls.cc:159,1
    - Dst: ncclTopoGetGpuCount
      Src: /src/nccl/src/transport/nvls.cc:159,1
    - Dst: ncclParamNvlsEnable
      Src: /src/nccl/src/transport/nvls.cc:160,1
    - Dst: CUPFN
      Src: /src/nccl/src/transport/nvls.cc:165,1
    - Dst: CUCHECK
      Src: /src/nccl/src/transport/nvls.cc:166,1
    - Dst: cuCtxGetDevice
      Src: /src/nccl/src/transport/nvls.cc:166,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/transport/nvls.cc:167,1
    - Dst: cudaDriverGetVersion
      Src: /src/nccl/src/transport/nvls.cc:167,1
    - Dst: ncclParamNvlsEnable
      Src: /src/nccl/src/transport/nvls.cc:168,1
    - Dst: CUPFN
      Src: /src/nccl/src/transport/nvls.cc:170,1
    - Dst: CUCHECK
      Src: /src/nccl/src/transport/nvls.cc:171,1
    - Dst: cuDeviceGetAttribute
      Src: /src/nccl/src/transport/nvls.cc:171,1
    - Dst: std::max
      Src: /src/nccl/src/transport/nvls.cc:198,1
    - Dst: min
      Src: /src/nccl/src/transport/nvls.cc:198,1
    - Dst: INFO
      Src: /src/nccl/src/transport/nvls.cc:200,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 203
    functionName: ncclNvlsInit
    functionSourceFile: /src/nccl/src/transport/nvls.cc
    functionUses: 1
    functionsReached:
    - INFO
    - min
    - cudaDriverGetVersion
    - CUDACHECK
    - cuDeviceGetAttribute
    - std::max
    - CUPFN
    - cuCtxGetDevice
    - ncclTopoGetGpuCount
    - CUCHECK
    - ncclParamNvlsEnable
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNvlsInit(struct ncclComm* comm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:210,1
    - Dst: ncclTransportP2pConnect
      Src: /src/nccl/src/transport/nvls.cc:210,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:211,1
    - Dst: ncclTransportP2pConnect
      Src: /src/nccl/src/transport/nvls.cc:211,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:213,1
    - Dst: ncclTransportP2pSetup
      Src: /src/nccl/src/transport/nvls.cc:213,1
    - Dst: INFO
      Src: /src/nccl/src/transport/nvls.cc:214,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 205
    functionDepth: 5
    functionLinenumber: 205
    functionLinenumberEnd: 220
    functionName: ncclNvlsTreeConnect
    functionSourceFile: /src/nccl/src/transport/nvls.cc
    functionUses: 2
    functionsReached:
    - ncclTransportP2pSetup
    - INFO
    - NCCLCHECKGOTO
    - ncclTransportP2pConnect
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNvlsTreeConnect(struct ncclComm* comm)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nccl/src/transport/nvls.cc:234,1
    - Dst: memset
      Src: /src/nccl/src/transport/nvls.cc:235,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:240,1
    - Dst: cuMulticastGetGranularity
      Src: /src/nccl/src/transport/nvls.cc:240,1
    - Dst: ALIGN_SIZE
      Src: /src/nccl/src/transport/nvls.cc:241,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:245,1
    - Dst: nvlsGroupCreate
      Src: /src/nccl/src/transport/nvls.cc:245,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:247,1
    - Dst: bootstrapIntraNodeBroadcast
      Src: /src/nccl/src/transport/nvls.cc:247,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:249,1
    - Dst: bootstrapIntraNodeBroadcast
      Src: /src/nccl/src/transport/nvls.cc:249,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:250,1
    - Dst: nvlsGroupConnect
      Src: /src/nccl/src/transport/nvls.cc:250,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:254,1
    - Dst: cuMulticastAddDevice
      Src: /src/nccl/src/transport/nvls.cc:254,1
    - Dst: memset
      Src: /src/nccl/src/transport/nvls.cc:256,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:261,1
    - Dst: cuMemGetAllocationGranularity
      Src: /src/nccl/src/transport/nvls.cc:261,1
    - Dst: ALIGN_SIZE
      Src: /src/nccl/src/transport/nvls.cc:262,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:264,1
    - Dst: cuMemAddressReserve
      Src: /src/nccl/src/transport/nvls.cc:264,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:267,1
    - Dst: cuMemCreate
      Src: /src/nccl/src/transport/nvls.cc:267,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:268,1
    - Dst: cuMemMap
      Src: /src/nccl/src/transport/nvls.cc:268,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:269,1
    - Dst: cuMemSetAccess
      Src: /src/nccl/src/transport/nvls.cc:269,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:270,1
    - Dst: cudaMemset
      Src: /src/nccl/src/transport/nvls.cc:270,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:273,1
    - Dst: bootstrapIntraNodeBarrier
      Src: /src/nccl/src/transport/nvls.cc:273,1
    - Dst: CUPFN
      Src: /src/nccl/src/transport/nvls.cc:278,1
    - Dst: cuMulticastBindMem
      Src: /src/nccl/src/transport/nvls.cc:278,1
    - Dst: pfn_cuGetErrorString
      Src: /src/nccl/src/transport/nvls.cc:281,1
    - Dst: ncclParamNvlsEnable
      Src: /src/nccl/src/transport/nvls.cc:282,1
    - Dst: WARN
      Src: /src/nccl/src/transport/nvls.cc:284,1
    - Dst: INFO
      Src: /src/nccl/src/transport/nvls.cc:288,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:296,1
    - Dst: cuMemAddressReserve
      Src: /src/nccl/src/transport/nvls.cc:296,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:297,1
    - Dst: cuMemMap
      Src: /src/nccl/src/transport/nvls.cc:297,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:298,1
    - Dst: cuMemSetAccess
      Src: /src/nccl/src/transport/nvls.cc:298,1
    - Dst: INFO
      Src: /src/nccl/src/transport/nvls.cc:301,1
    - Dst: CUCHECK
      Src: /src/nccl/src/transport/nvls.cc:306,1
    - Dst: cuMemUnmap
      Src: /src/nccl/src/transport/nvls.cc:306,1
    - Dst: CUCHECK
      Src: /src/nccl/src/transport/nvls.cc:308,1
    - Dst: cuMemRelease
      Src: /src/nccl/src/transport/nvls.cc:308,1
    - Dst: CUCHECK
      Src: /src/nccl/src/transport/nvls.cc:310,1
    - Dst: cuMemAddressFree
      Src: /src/nccl/src/transport/nvls.cc:310,1
    - Dst: CUCHECK
      Src: /src/nccl/src/transport/nvls.cc:312,1
    - Dst: cuMemRelease
      Src: /src/nccl/src/transport/nvls.cc:312,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 72
    argCount: 9
    argNames:
    - comm
    - desc
    - size
    - ucHandle
    - mcHandle
    - ucptr
    - mcptr
    - ucsizePtr
    - mcsizePtr
    argTypes:
    - struct ncclComm*
    - CUmemAccessDesc*
    - size_t
    - CUmemGenericAllocationHandle*
    - CUmemGenericAllocationHandle*
    - void**
    - void**
    - size_t*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 222
    functionDepth: 6
    functionLinenumber: 222
    functionLinenumberEnd: 314
    functionName: nvlsAllocateMem
    functionSourceFile: /src/nccl/src/transport/nvls.cc
    functionUses: 0
    functionsReached:
    - WARN
    - pfn_cuGetErrorString
    - cuMulticastAddDevice
    - CUPFN
    - cuMemRelease
    - cuMemSetAccess
    - cuMemAddressReserve
    - INFO
    - cuMemAddressFree
    - cuMemUnmap
    - cuMemMap
    - cuMemCreate
    - nvlsGroupCreate
    - memset
    - cuMulticastBindMem
    - CUDACHECKGOTO
    - ALIGN_SIZE
    - cuMemGetAllocationGranularity
    - ncclParamNvlsEnable
    - bootstrapIntraNodeBarrier
    - cuMulticastGetGranularity
    - NCCLCHECKGOTO
    - cudaMemset
    - nvlsGroupConnect
    - CUCHECK
    - CUCHECKGOTO
    - bootstrapIntraNodeBroadcast
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t nvlsAllocateMem(struct ncclComm* comm, const CUmemAccessDesc*
      desc, size_t size, CUmemGenericAllocationHandle* ucHandle, CUmemGenericAllocationHandle*
      mcHandle, void** ucptr, void** mcptr, size_t* ucsizePtr, size_t* mcsizePtr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INFO
      Src: /src/nccl/src/transport/nvls.cc:339,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:342,1
    - Dst: nvlsAllocateMem
      Src: /src/nccl/src/transport/nvls.cc:342,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:344,1
    - Dst: ncclStrongStreamAcquire
      Src: /src/nccl/src/transport/nvls.cc:344,1
    - Dst: ncclCudaGraphNone
      Src: /src/nccl/src/transport/nvls.cc:344,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:345,1
    - Dst: ncclStrongStreamAcquire
      Src: /src/nccl/src/transport/nvls.cc:345,1
    - Dst: ncclCudaGraphNone
      Src: /src/nccl/src/transport/nvls.cc:345,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:360,1
    - Dst: cudaMemcpyAsync
      Src: /src/nccl/src/transport/nvls.cc:360,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:361,1
    - Dst: cudaMemcpyAsync
      Src: /src/nccl/src/transport/nvls.cc:361,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:362,1
    - Dst: cudaMemcpyAsync
      Src: /src/nccl/src/transport/nvls.cc:362,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:363,1
    - Dst: cudaMemcpyAsync
      Src: /src/nccl/src/transport/nvls.cc:363,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:367,1
    - Dst: ncclStreamWaitStream
      Src: /src/nccl/src/transport/nvls.cc:367,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:368,1
    - Dst: ncclStrongStreamRelease
      Src: /src/nccl/src/transport/nvls.cc:368,1
    - Dst: ncclCudaGraphNone
      Src: /src/nccl/src/transport/nvls.cc:368,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:369,1
    - Dst: ncclStrongStreamRelease
      Src: /src/nccl/src/transport/nvls.cc:369,1
    - Dst: ncclCudaGraphNone
      Src: /src/nccl/src/transport/nvls.cc:369,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:371,1
    - Dst: bootstrapIntraNodeBarrier
      Src: /src/nccl/src/transport/nvls.cc:371,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 40
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 316
    functionDepth: 7
    functionLinenumber: 316
    functionLinenumberEnd: 379
    functionName: ncclNvlsBufferSetup
    functionSourceFile: /src/nccl/src/transport/nvls.cc
    functionUses: 2
    functionsReached:
    - INFO
    - NCCLCHECKGOTO
    - CUDACHECKGOTO
    - nvlsAllocateMem
    - ncclStreamWaitStream
    - ncclCudaGraphNone
    - cudaMemcpyAsync
    - ncclStrongStreamRelease
    - bootstrapIntraNodeBarrier
    - ncclStrongStreamAcquire
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNvlsBufferSetup(struct ncclComm* comm)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ncclParamNvlsChunkSize
      Src: /src/nccl/src/transport/nvls.cc:390,1
    - Dst: min
      Src: /src/nccl/src/transport/nvls.cc:393,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:395,1
    - Dst: initNvlsChannel
      Src: /src/nccl/src/transport/nvls.cc:395,1
    - Dst: ncclAtomicRefCountIncrement
      Src: /src/nccl/src/transport/nvls.cc:399,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:409,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/nvls.cc:409,1
    - Dst: min
      Src: /src/nccl/src/transport/nvls.cc:419,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:424,1
    - Dst: initNvlsChannel
      Src: /src/nccl/src/transport/nvls.cc:424,1
    - Dst: memset
      Src: /src/nccl/src/transport/nvls.cc:427,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:433,1
    - Dst: nvlsAllocateMem
      Src: /src/nccl/src/transport/nvls.cc:433,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:436,1
    - Dst: ncclStrongStreamAcquire
      Src: /src/nccl/src/transport/nvls.cc:436,1
    - Dst: ncclCudaGraphNone
      Src: /src/nccl/src/transport/nvls.cc:436,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:437,1
    - Dst: ncclStrongStreamAcquire
      Src: /src/nccl/src/transport/nvls.cc:437,1
    - Dst: ncclCudaGraphNone
      Src: /src/nccl/src/transport/nvls.cc:437,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:475,1
    - Dst: cudaMemcpyAsync
      Src: /src/nccl/src/transport/nvls.cc:475,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:476,1
    - Dst: cudaMemcpyAsync
      Src: /src/nccl/src/transport/nvls.cc:476,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:477,1
    - Dst: cudaMemcpyAsync
      Src: /src/nccl/src/transport/nvls.cc:477,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:478,1
    - Dst: cudaMemcpyAsync
      Src: /src/nccl/src/transport/nvls.cc:478,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:481,1
    - Dst: ncclStreamWaitStream
      Src: /src/nccl/src/transport/nvls.cc:481,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:482,1
    - Dst: ncclStrongStreamRelease
      Src: /src/nccl/src/transport/nvls.cc:482,1
    - Dst: ncclCudaGraphNone
      Src: /src/nccl/src/transport/nvls.cc:482,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:483,1
    - Dst: ncclStrongStreamRelease
      Src: /src/nccl/src/transport/nvls.cc:483,1
    - Dst: ncclCudaGraphNone
      Src: /src/nccl/src/transport/nvls.cc:483,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:493,1
    - Dst: ncclShmOpen
      Src: /src/nccl/src/transport/nvls.cc:493,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:494,1
    - Dst: bootstrapIntraNodeBroadcast
      Src: /src/nccl/src/transport/nvls.cc:494,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:496,1
    - Dst: bootstrapIntraNodeBroadcast
      Src: /src/nccl/src/transport/nvls.cc:496,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:497,1
    - Dst: ncclShmOpen
      Src: /src/nccl/src/transport/nvls.cc:497,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 96
    argCount: 2
    argNames:
    - comm
    - parent
    argTypes:
    - struct ncclComm*
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 381
    functionDepth: 7
    functionLinenumber: 381
    functionLinenumberEnd: 513
    functionName: ncclNvlsSetup
    functionSourceFile: /src/nccl/src/transport/nvls.cc
    functionUses: 1
    functionsReached:
    - min
    - NCCLCHECKGOTO
    - ncclAtomicRefCountIncrement
    - CUDACHECKGOTO
    - ncclShmOpen
    - ncclParamNvlsChunkSize
    - nvlsAllocateMem
    - ncclStreamWaitStream
    - ncclCudaGraphNone
    - cudaMemcpyAsync
    - ncclCalloc
    - ncclStrongStreamAcquire
    - initNvlsChannel
    - ncclStrongStreamRelease
    - bootstrapIntraNodeBroadcast
    - memset
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNvlsSetup(struct ncclComm* comm, struct ncclComm*
      parent)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ncclAtomicRefCountDecrement
      Src: /src/nccl/src/transport/nvls.cc:519,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/nvls.cc:521,1
    - Dst: ncclShmClose
      Src: /src/nccl/src/transport/nvls.cc:521,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/nvls.cc:524,1
    - Dst: nvlsGroupUnbind
      Src: /src/nccl/src/transport/nvls.cc:524,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/nvls.cc:525,1
    - Dst: nvlsGroupUnmapMem
      Src: /src/nccl/src/transport/nvls.cc:525,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/nvls.cc:529,1
    - Dst: nvlsGroupUnbind
      Src: /src/nccl/src/transport/nvls.cc:529,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/nvls.cc:530,1
    - Dst: nvlsGroupUnmapMem
      Src: /src/nccl/src/transport/nvls.cc:530,1
    - Dst: free
      Src: /src/nccl/src/transport/nvls.cc:532,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 515
    functionDepth: 2
    functionLinenumber: 515
    functionLinenumberEnd: 536
    functionName: ncclNvlsFree
    functionSourceFile: /src/nccl/src/transport/nvls.cc
    functionUses: 1
    functionsReached:
    - ncclAtomicRefCountDecrement
    - free
    - nvlsGroupUnmapMem
    - ncclShmClose
    - nvlsGroupUnbind
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNvlsFree(struct ncclComm* comm)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:551,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/nvls.cc:551,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:554,1
    - Dst: ncclRegFind
      Src: /src/nccl/src/transport/nvls.cc:554,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:556,1
    - Dst: cudaPointerGetAttributes
      Src: /src/nccl/src/transport/nvls.cc:556,1
    - Dst: memset
      Src: /src/nccl/src/transport/nvls.cc:559,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:564,1
    - Dst: cuMulticastGetGranularity
      Src: /src/nccl/src/transport/nvls.cc:564,1
    - Dst: memset
      Src: /src/nccl/src/transport/nvls.cc:566,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:571,1
    - Dst: cuMemGetAllocationGranularity
      Src: /src/nccl/src/transport/nvls.cc:571,1
    - Dst: ALIGN_SIZE
      Src: /src/nccl/src/transport/nvls.cc:575,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/nvls.cc:580,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:591,1
    - Dst: ncclShmemAllgather
      Src: /src/nccl/src/transport/nvls.cc:591,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:605,1
    - Dst: cuMulticastGetGranularity
      Src: /src/nccl/src/transport/nvls.cc:605,1
    - Dst: ALIGN_SIZE
      Src: /src/nccl/src/transport/nvls.cc:606,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:610,1
    - Dst: nvlsGroupCreate
      Src: /src/nccl/src/transport/nvls.cc:610,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:611,1
    - Dst: bootstrapIntraNodeBroadcast
      Src: /src/nccl/src/transport/nvls.cc:611,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:613,1
    - Dst: bootstrapIntraNodeBroadcast
      Src: /src/nccl/src/transport/nvls.cc:613,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:614,1
    - Dst: nvlsGroupConnect
      Src: /src/nccl/src/transport/nvls.cc:614,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:617,1
    - Dst: cuMulticastAddDevice
      Src: /src/nccl/src/transport/nvls.cc:617,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:621,1
    - Dst: cuMulticastBindAddr
      Src: /src/nccl/src/transport/nvls.cc:621,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:624,1
    - Dst: cuMemAddressReserve
      Src: /src/nccl/src/transport/nvls.cc:624,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:626,1
    - Dst: cuMemMap
      Src: /src/nccl/src/transport/nvls.cc:626,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:627,1
    - Dst: cuMemSetAccess
      Src: /src/nccl/src/transport/nvls.cc:627,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:637,1
    - Dst: ncclShmemAllgather
      Src: /src/nccl/src/transport/nvls.cc:637,1
    - Dst: free
      Src: /src/nccl/src/transport/nvls.cc:649,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 86
    argCount: 5
    argNames:
    - comm
    - userBuff
    - buffSize
    - regAddr
    - regUsed
    argTypes:
    - struct ncclComm*
    - uintptr_t
    - size_t
    - CUdeviceptr*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 654
      start: 538
    functionDepth: 6
    functionLinenumber: 538
    functionLinenumberEnd: 654
    functionName: tryRegisterBuffer
    functionSourceFile: /src/nccl/src/transport/nvls.cc
    functionUses: 0
    functionsReached:
    - cuMulticastAddDevice
    - cuMemSetAccess
    - cuMemAddressReserve
    - ncclShmemAllgather
    - cuMemMap
    - memset
    - nvlsGroupCreate
    - cudaPointerGetAttributes
    - CUDACHECKGOTO
    - ALIGN_SIZE
    - ncclRegFind
    - cuMemGetAllocationGranularity
    - cuMulticastBindAddr
    - cuMulticastGetGranularity
    - NCCLCHECKGOTO
    - memcpy
    - free
    - nvlsGroupConnect
    - ncclCalloc
    - CUCHECKGOTO
    - bootstrapIntraNodeBroadcast
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t tryRegisterBuffer(struct ncclComm *comm, uintptr_t userBuff,
      size_t buffSize, CUdeviceptr *regAddr, int *regUsed)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:664,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/nvls.cc:664,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/nvls.cc:667,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/nvls.cc:672,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:676,1
    - Dst: ncclShmemAllgather
      Src: /src/nccl/src/transport/nvls.cc:676,1
    - Dst: INFO
      Src: /src/nccl/src/transport/nvls.cc:719,1
    - Dst: tryRegisterBuffer
      Src: /src/nccl/src/transport/nvls.cc:726,1
    - Dst: tryRegisterBuffer
      Src: /src/nccl/src/transport/nvls.cc:731,1
    - Dst: INFO
      Src: /src/nccl/src/transport/nvls.cc:735,1
    - Dst: free
      Src: /src/nccl/src/transport/nvls.cc:741,1
    - Dst: INFO
      Src: /src/nccl/src/transport/nvls.cc:745,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 75
    argCount: 10
    argNames:
    - comm
    - sendbuff
    - recvbuff
    - sendbuffSize
    - recvbuffSize
    - sendRegRecord
    - recvRegRecord
    - outRegBufUsed
    - outRegBufSend
    - outRegBufRecv
    argTypes:
    - struct ncclComm*
    - void*
    - void*
    - size_t
    - size_t
    - struct ncclReg*
    - struct ncclReg*
    - int*
    - void**
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 656
    functionDepth: 7
    functionLinenumber: 656
    functionLinenumberEnd: 747
    functionName: nvlsRegisterBuffer
    functionSourceFile: /src/nccl/src/transport/nvls.cc
    functionUses: 0
    functionsReached:
    - INFO
    - NCCLCHECKGOTO
    - memcpy
    - free
    - ncclCalloc
    - ncclShmemAllgather
    - tryRegisterBuffer
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t nvlsRegisterBuffer(struct ncclComm *comm, const void *sendbuff,
      void *recvbuff, size_t sendbuffSize, size_t recvbuffSize, struct ncclReg *sendRegRecord,
      struct ncclReg *recvRegRecord, int *outRegBufUsed, void **outRegBufSend, void
      **outRegBufRecv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/nvls.cc:757,1
    - Dst: ncclRegFind
      Src: /src/nccl/src/transport/nvls.cc:757,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/nvls.cc:758,1
    - Dst: ncclRegLocalIsValid
      Src: /src/nccl/src/transport/nvls.cc:758,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/nvls.cc:763,1
    - Dst: ncclRegFind
      Src: /src/nccl/src/transport/nvls.cc:763,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/nvls.cc:764,1
    - Dst: ncclRegLocalIsValid
      Src: /src/nccl/src/transport/nvls.cc:764,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/nvls.cc:770,1
    - Dst: nvlsRegisterBuffer
      Src: /src/nccl/src/transport/nvls.cc:770,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 8
    argNames:
    - comm
    - sendbuff
    - recvbuff
    - sendbuffSize
    - recvbuffSize
    - outRegBufUsed
    - outRegBufSend
    - outRegBufRecv
    argTypes:
    - struct ncclComm*
    - void*
    - void*
    - size_t
    - size_t
    - int*
    - void**
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 773
      start: 749
    functionDepth: 8
    functionLinenumber: 749
    functionLinenumberEnd: 773
    functionName: ncclNvlsLocalRegisterBuffer
    functionSourceFile: /src/nccl/src/transport/nvls.cc
    functionUses: 0
    functionsReached:
    - ncclRegLocalIsValid
    - nvlsRegisterBuffer
    - ncclRegFind
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNvlsLocalRegisterBuffer(struct ncclComm *comm, const
      void *sendbuff, void *recvbuff, size_t sendbuffSize, size_t recvbuffSize, int
      *outRegBufUsed, void **outRegBufSend, void **outRegBufRecv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/nvls.cc:783,1
    - Dst: ncclCommGraphDeregister
      Src: /src/nccl/src/transport/nvls.cc:783,1
    - Dst: free
      Src: /src/nccl/src/transport/nvls.cc:784,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - comm
    - cb
    argTypes:
    - struct ncclComm*
    - struct ncclCommCallback*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 781
    functionDepth: 1
    functionLinenumber: 781
    functionLinenumberEnd: 786
    functionName: cleanupNvls
    functionSourceFile: /src/nccl/src/transport/nvls.cc
    functionUses: 0
    functionsReached:
    - ncclCommGraphDeregister
    - NCCLCHECK
    - free
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t cleanupNvls(struct ncclComm* comm, struct ncclCommCallback*
      cb)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: CUCHECK
      Src: /src/nccl/src/transport/nvls.cc:804,1
    - Dst: cuMemGetAddressRange
      Src: /src/nccl/src/transport/nvls.cc:804,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/nvls.cc:805,1
    - Dst: ncclCommGraphRegister
      Src: /src/nccl/src/transport/nvls.cc:805,1
    - Dst: CUCHECK
      Src: /src/nccl/src/transport/nvls.cc:809,1
    - Dst: cuMemGetAddressRange
      Src: /src/nccl/src/transport/nvls.cc:809,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/nvls.cc:810,1
    - Dst: ncclCommGraphRegister
      Src: /src/nccl/src/transport/nvls.cc:810,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/nvls.cc:813,1
    - Dst: nvlsRegisterBuffer
      Src: /src/nccl/src/transport/nvls.cc:813,1
    - Dst: malloc
      Src: /src/nccl/src/transport/nvls.cc:817,1
    - Dst: ncclIntruQueueEnqueue
      Src: /src/nccl/src/transport/nvls.cc:821,1
    - Dst: malloc
      Src: /src/nccl/src/transport/nvls.cc:826,1
    - Dst: ncclIntruQueueEnqueue
      Src: /src/nccl/src/transport/nvls.cc:830,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/nvls.cc:834,1
    - Dst: ncclCommGraphDeregister
      Src: /src/nccl/src/transport/nvls.cc:834,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/nvls.cc:835,1
    - Dst: ncclCommGraphDeregister
      Src: /src/nccl/src/transport/nvls.cc:835,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 35
    argCount: 10
    argNames:
    - comm
    - sendbuff
    - recvbuff
    - sendbuffSize
    - recvbuffSize
    - outRegBufUsed
    - outRegBufSend
    - outRegBufRecv
    - cleanupQueue
    - nCleanupQueueEltsAdded
    argTypes:
    - struct ncclComm*
    - void*
    - void*
    - size_t
    - size_t
    - int*
    - void**
    - void**
    - struct ncclIntruQueue<struct ncclCommCallback, &ncclCommCallback::next>*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 839
      start: 788
    functionDepth: 8
    functionLinenumber: 788
    functionLinenumberEnd: 839
    functionName: ncclNvlsGraphRegisterBuffer
    functionSourceFile: /src/nccl/src/transport/nvls.cc
    functionUses: 0
    functionsReached:
    - cuMemGetAddressRange
    - malloc
    - ncclCommGraphDeregister
    - ncclCommGraphRegister
    - CUCHECK
    - nvlsRegisterBuffer
    - ncclIntruQueueEnqueue
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclNvlsGraphRegisterBuffer(\n    struct ncclComm *comm,
      const void *sendbuff, void *recvbuff, size_t sendbuffSize, size_t recvbuffSize,\n
      \   int *outRegBufUsed, void **outRegBufSend, void **outRegBufRecv,\n    struct
      ncclIntruQueue<struct ncclCommCallback, &ncclCommCallback::next>* cleanupQueue,
      int* nCleanupQueueEltsAdded\n  )"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:855,1
    - Dst: nvlsGroupCreate
      Src: /src/nccl/src/transport/nvls.cc:855,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:856,1
    - Dst: bootstrapIntraNodeBroadcast
      Src: /src/nccl/src/transport/nvls.cc:856,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:858,1
    - Dst: bootstrapIntraNodeBroadcast
      Src: /src/nccl/src/transport/nvls.cc:858,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:859,1
    - Dst: nvlsGroupConnect
      Src: /src/nccl/src/transport/nvls.cc:859,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:862,1
    - Dst: cuMulticastAddDevice
      Src: /src/nccl/src/transport/nvls.cc:862,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:863,1
    - Dst: cuMemAddressReserve
      Src: /src/nccl/src/transport/nvls.cc:863,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:864,1
    - Dst: cuMemMap
      Src: /src/nccl/src/transport/nvls.cc:864,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:868,1
    - Dst: cuMemSetAccess
      Src: /src/nccl/src/transport/nvls.cc:868,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 29
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 875
      start: 841
    functionDepth: 6
    functionLinenumber: 841
    functionLinenumberEnd: 875
    functionName: ncclNvlsSymmetricInit
    functionSourceFile: /src/nccl/src/transport/nvls.cc
    functionUses: 1
    functionsReached:
    - NCCLCHECKGOTO
    - cuMulticastAddDevice
    - nvlsGroupConnect
    - cuMemMap
    - cuMemSetAccess
    - CUCHECKGOTO
    - bootstrapIntraNodeBroadcast
    - cuMemAddressReserve
    - nvlsGroupCreate
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNvlsSymmetricInit(struct ncclComm* comm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:880,1
    - Dst: cuMemUnmap
      Src: /src/nccl/src/transport/nvls.cc:880,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:881,1
    - Dst: cuMemAddressFree
      Src: /src/nccl/src/transport/nvls.cc:881,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:882,1
    - Dst: cuMemRelease
      Src: /src/nccl/src/transport/nvls.cc:882,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 888
      start: 877
    functionDepth: 1
    functionLinenumber: 877
    functionLinenumberEnd: 888
    functionName: ncclNvlsSymmetricFinalize
    functionSourceFile: /src/nccl/src/transport/nvls.cc
    functionUses: 1
    functionsReached:
    - CUCHECKGOTO
    - cuMemUnmap
    - cuMemAddressFree
    - cuMemRelease
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNvlsSymmetricFinalize(struct ncclComm* comm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/src/transport/nvls.cc:892,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:894,1
    - Dst: cuMulticastBindAddr
      Src: /src/nccl/src/transport/nvls.cc:894,1
    - Dst: INFO
      Src: /src/nccl/src/transport/nvls.cc:895,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 4
    argNames:
    - comm
    - offset
    - ucsize
    - ucaddr
    argTypes:
    - struct ncclComm*
    - size_t
    - size_t
    - void*
    assertStmts:
    - condition: ((uintptr_t)ucaddr % NCCL_REC_PAGE_SIZE == 0 && ucsize % NCCL_REC_PAGE_SIZE
        == 0)
      pos:
        line_end: 891
        line_start: 891
        source_file: /src/nccl/src/transport/nvls.cc
    constantsTouched: []
    func_position:
      end: 902
      start: 890
    functionDepth: 1
    functionLinenumber: 890
    functionLinenumberEnd: 902
    functionName: ncclNvlsSymmetricMap
    functionSourceFile: /src/nccl/src/transport/nvls.cc
    functionUses: 1
    functionsReached:
    - CUCHECKGOTO
    - assert
    - INFO
    - cuMulticastBindAddr
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNvlsSymmetricMap(struct ncclComm* comm, size_t offset,
      size_t ucsize, void* ucaddr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/transport/nvls.cc:908,1
    - Dst: cuMulticastUnbind
      Src: /src/nccl/src/transport/nvls.cc:908,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 3
    argNames:
    - comm
    - ucsize
    - ucaddr
    argTypes:
    - struct ncclComm*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 914
      start: 904
    functionDepth: 1
    functionLinenumber: 904
    functionLinenumberEnd: 914
    functionName: ncclNvlsSymmetricFree
    functionSourceFile: /src/nccl/src/transport/nvls.cc
    functionUses: 1
    functionsReached:
    - CUCHECKGOTO
    - cuMulticastUnbind
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNvlsSymmetricFree(struct ncclComm* comm, size_t ucsize,
      void* ucaddr)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: std::max
      Src: /src/nccl/src/transport/nvls.cc:922,1
    - Dst: min
      Src: /src/nccl/src/transport/nvls.cc:922,1
    - Dst: DIVUP
      Src: /src/nccl/src/transport/nvls.cc:922,1
    - Dst: std::max
      Src: /src/nccl/src/transport/nvls.cc:925,1
    - Dst: min
      Src: /src/nccl/src/transport/nvls.cc:925,1
    - Dst: DIVUP
      Src: /src/nccl/src/transport/nvls.cc:925,1
    - Dst: std::max
      Src: /src/nccl/src/transport/nvls.cc:932,1
    - Dst: min
      Src: /src/nccl/src/transport/nvls.cc:932,1
    - Dst: DIVUP
      Src: /src/nccl/src/transport/nvls.cc:932,1
    - Dst: std::max
      Src: /src/nccl/src/transport/nvls.cc:940,1
    - Dst: min
      Src: /src/nccl/src/transport/nvls.cc:940,1
    - Dst: DIVUP
      Src: /src/nccl/src/transport/nvls.cc:940,1
    - Dst: std::max
      Src: /src/nccl/src/transport/nvls.cc:943,1
    - Dst: min
      Src: /src/nccl/src/transport/nvls.cc:943,1
    - Dst: DIVUP
      Src: /src/nccl/src/transport/nvls.cc:943,1
    - Dst: std::max
      Src: /src/nccl/src/transport/nvls.cc:946,1
    - Dst: min
      Src: /src/nccl/src/transport/nvls.cc:946,1
    - Dst: DIVUP
      Src: /src/nccl/src/transport/nvls.cc:946,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 46
    argCount: 3
    argNames:
    - comm
    - info
    - recChannels
    argTypes:
    - struct ncclComm*
    - struct ncclTaskColl*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 957
      start: 916
    functionDepth: 1
    functionLinenumber: 916
    functionLinenumberEnd: 957
    functionName: ncclNvlsRegResourcesQuery
    functionSourceFile: /src/nccl/src/transport/nvls.cc
    functionUses: 1
    functionsReached:
    - min
    - std::max
    - DIVUP
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNvlsRegResourcesQuery(struct ncclComm* comm, struct
      ncclTaskColl* info, int* recChannels)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 968
      start: 965
    functionDepth: 0
    functionLinenumber: 965
    functionLinenumberEnd: 968
    functionName: ncclNvlsInit
    functionSourceFile: /src/nccl/src/transport/nvls.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNvlsInit(struct ncclComm* comm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 972
      start: 970
    functionDepth: 0
    functionLinenumber: 970
    functionLinenumberEnd: 972
    functionName: ncclNvlsBufferSetup
    functionSourceFile: /src/nccl/src/transport/nvls.cc
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNvlsBufferSetup(struct ncclComm* comm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - comm
    - parent
    argTypes:
    - struct ncclComm*
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 976
      start: 974
    functionDepth: 0
    functionLinenumber: 974
    functionLinenumberEnd: 976
    functionName: ncclNvlsSetup
    functionSourceFile: /src/nccl/src/transport/nvls.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNvlsSetup(struct ncclComm* comm, struct ncclComm*
      parent)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 980
      start: 978
    functionDepth: 0
    functionLinenumber: 978
    functionLinenumberEnd: 980
    functionName: ncclNvlsFree
    functionSourceFile: /src/nccl/src/transport/nvls.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNvlsFree(struct ncclComm* comm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 984
      start: 982
    functionDepth: 0
    functionLinenumber: 982
    functionLinenumberEnd: 984
    functionName: ncclNvlsTreeConnect
    functionSourceFile: /src/nccl/src/transport/nvls.cc
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNvlsTreeConnect(struct ncclComm* comm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 10
    argNames:
    - comm
    - sendbuff
    - recvbuff
    - sendbuffSize
    - recvbuffSize
    - outRegBufUsed
    - outRegBufSend
    - outRegBufRecv
    - cleanupQueue
    - nCleanupQueueEltsAdded
    argTypes:
    - struct ncclComm*
    - void*
    - void*
    - size_t
    - size_t
    - int*
    - void**
    - void**
    - struct ncclIntruQueue<struct ncclCommCallback, &ncclCommCallback::next>*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 993
      start: 986
    functionDepth: 0
    functionLinenumber: 986
    functionLinenumberEnd: 993
    functionName: ncclNvlsGraphRegisterBuffer
    functionSourceFile: /src/nccl/src/transport/nvls.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclNvlsGraphRegisterBuffer(\n    struct ncclComm *comm,
      const void *sendbuff, void *recvbuff, size_t sendbuffSize, size_t recvbuffSize,\n
      \   int *outRegBufUsed, void **outRegBufSend, void **outRegBufRecv,\n    struct
      ncclIntruQueue<struct ncclCommCallback, &ncclCommCallback::next>* cleanupQueue,
      int* nCleanupQueueEltsAdded\n  )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 8
    argNames:
    - comm
    - sendbuff
    - recvbuff
    - sendbuffSize
    - recvbuffSize
    - outRegBufUsed
    - outRegBufSend
    - outRegBufRecv
    argTypes:
    - struct ncclComm*
    - void*
    - void*
    - size_t
    - size_t
    - int*
    - void**
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 998
      start: 995
    functionDepth: 0
    functionLinenumber: 995
    functionLinenumberEnd: 998
    functionName: ncclNvlsLocalRegisterBuffer
    functionSourceFile: /src/nccl/src/transport/nvls.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNvlsLocalRegisterBuffer(struct ncclComm *comm, const
      void *sendbuff, void *recvbuff, size_t sendbuffSize, size_t recvbuffSize, int
      *outRegBufUsed, void **outRegBufSend, void **outRegBufRecv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - comm
    - mcHandler
    - ptr
    - dev
    - ucsize
    - mcsize
    argTypes:
    - struct ncclComm*
    - CUmemGenericAllocationHandle*
    - CUdeviceptr
    - int
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1002
      start: 1000
    functionDepth: 0
    functionLinenumber: 1000
    functionLinenumberEnd: 1002
    functionName: ncclNvlsDeregBuffer
    functionSourceFile: /src/nccl/src/transport/nvls.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNvlsDeregBuffer(struct ncclComm* comm, CUmemGenericAllocationHandle
      *mcHandler, CUdeviceptr ptr, int dev, size_t ucsize, size_t mcsize)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1006
      start: 1004
    functionDepth: 0
    functionLinenumber: 1004
    functionLinenumberEnd: 1006
    functionName: ncclNvlsSymmetricInit
    functionSourceFile: /src/nccl/src/transport/nvls.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNvlsSymmetricInit(struct ncclComm* comm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - comm
    - offset
    - ucsize
    - ucaddr
    argTypes:
    - struct ncclComm*
    - size_t
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1010
      start: 1008
    functionDepth: 0
    functionLinenumber: 1008
    functionLinenumberEnd: 1010
    functionName: ncclNvlsSymmetricMap
    functionSourceFile: /src/nccl/src/transport/nvls.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNvlsSymmetricMap(struct ncclComm* comm, size_t offset,
      size_t ucsize, void* ucaddr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - comm
    - ucsize
    - ucaddr
    argTypes:
    - struct ncclComm*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1014
      start: 1012
    functionDepth: 0
    functionLinenumber: 1012
    functionLinenumberEnd: 1014
    functionName: ncclNvlsSymmetricFree
    functionSourceFile: /src/nccl/src/transport/nvls.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNvlsSymmetricFree(struct ncclComm* comm, size_t ucsize,
      void* ucaddr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1018
      start: 1016
    functionDepth: 0
    functionLinenumber: 1016
    functionLinenumberEnd: 1018
    functionName: ncclNvlsSymmetricFinalize
    functionSourceFile: /src/nccl/src/transport/nvls.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNvlsSymmetricFinalize(struct ncclComm* comm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - comm
    - info
    - recChannels
    argTypes:
    - struct ncclComm*
    - struct ncclTaskColl*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1023
      start: 1020
    functionDepth: 0
    functionLinenumber: 1020
    functionLinenumberEnd: 1023
    functionName: ncclNvlsRegResourcesQuery
    functionSourceFile: /src/nccl/src/transport/nvls.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNvlsRegResourcesQuery(struct ncclComm* comm, struct
      ncclTaskColl* info, int* recChannels)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - mapStruct
    - ','
    - offsetName
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 49
    functionName: NCCL_NET_MAP_OFFSET_BANK
    functionSourceFile: /src/nccl/src/transport/coll_net.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NCCL_NET_MAP_OFFSET_BANK(mapStruct, offsetName)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - mapStruct
    - ','
    - offsetName
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 52
    functionName: NCCL_NET_MAP_OFFSET_NULL
    functionSourceFile: /src/nccl/src/transport/coll_net.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NCCL_NET_MAP_OFFSET_NULL(mapStruct, offsetName)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - mapStruct
    - ','
    - cpuOrGpu
    - ','
    - offsetName
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: NCCL_NET_MAP_GET_POINTER
    functionSourceFile: /src/nccl/src/transport/coll_net.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NCCL_NET_MAP_GET_POINTER(mapStruct, cpuOrGpu, offsetName)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - mapStruct
    - ','
    - offsetName
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 59
    functionName: NCCL_NET_MAP_DEV_MEM
    functionSourceFile: /src/nccl/src/transport/coll_net.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NCCL_NET_MAP_DEV_MEM(mapStruct, offsetName)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - mapStruct
    - ','
    - shared
    - ','
    - dev
    - ','
    - memSize
    - ','
    - offsetName
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 74
    functionName: NCCL_NET_MAP_ADD_POINTER
    functionSourceFile: /src/nccl/src/transport/coll_net.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NCCL_NET_MAP_ADD_POINTER(mapStruct, shared, dev, memSize, offsetName)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - ret
    - comm
    - graph
    - info1
    - info2
    argTypes:
    - int*
    - struct ncclComm*
    - struct ncclTopoGraph*
    - struct ncclPeerInfo*
    - struct ncclPeerInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 145
    functionName: canConnect
    functionSourceFile: /src/nccl/src/transport/coll_net.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t canConnect(int* ret, struct ncclComm* comm, struct ncclTopoGraph*
      graph, struct ncclPeerInfo* info1, struct ncclPeerInfo* info2)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - useGdr
    argTypes:
    - ncclTopoGdrMode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 155
    functionName: getHandleForAddressRangeFlags
    functionSourceFile: /src/nccl/src/transport/coll_net.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int getHandleForAddressRangeFlags(ncclTopoGdrMode useGdr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:172,1
    - Dst: ncclTopoGetNetDev
      Src: /src/nccl/src/transport/coll_net.cc:172,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:173,1
    - Dst: ncclTopoCheckGdr
      Src: /src/nccl/src/transport/coll_net.cc:173,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:177,1
    - Dst: ncclProxyConnect
      Src: /src/nccl/src/transport/coll_net.cc:177,1
    - Dst: ncclAtomicRefCountIncrement
      Src: /src/nccl/src/transport/coll_net.cc:178,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:180,1
    - Dst: ncclProxyCallBlocking
      Src: /src/nccl/src/transport/coll_net.cc:180,1
    - Dst: INFO
      Src: /src/nccl/src/transport/coll_net.cc:182,1
    - Dst: collNetName
      Src: /src/nccl/src/transport/coll_net.cc:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 8
    argNames:
    - comm
    - graph
    - myInfo
    - peerInfo
    - connectInfo
    - send
    - channelId
    - connIndex
    argTypes:
    - struct ncclComm*
    - struct ncclTopoGraph*
    - struct ncclPeerInfo*
    - struct ncclPeerInfo*
    - struct ncclConnect*
    - struct ncclConnector*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 167
    functionDepth: 4
    functionLinenumber: 167
    functionLinenumberEnd: 185
    functionName: sendSetup
    functionSourceFile: /src/nccl/src/transport/coll_net.cc
    functionUses: 0
    functionsReached:
    - ncclProxyCallBlocking
    - INFO
    - ncclAtomicRefCountIncrement
    - ncclProxyConnect
    - ncclTopoGetNetDev
    - collNetName
    - NCCLCHECK
    - ncclTopoCheckGdr
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t sendSetup(struct ncclComm* comm, struct ncclTopoGraph*
      graph, struct ncclPeerInfo* myInfo, struct ncclPeerInfo* peerInfo, struct ncclConnect*
      connectInfo, struct ncclConnector* send, int channelId, int connIndex)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:192,1
    - Dst: ncclTopoGetNetDev
      Src: /src/nccl/src/transport/coll_net.cc:192,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:193,1
    - Dst: ncclTopoCheckGdr
      Src: /src/nccl/src/transport/coll_net.cc:193,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:196,1
    - Dst: ncclTopoNeedFlush
      Src: /src/nccl/src/transport/coll_net.cc:196,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:199,1
    - Dst: ncclProxyConnect
      Src: /src/nccl/src/transport/coll_net.cc:199,1
    - Dst: ncclAtomicRefCountIncrement
      Src: /src/nccl/src/transport/coll_net.cc:202,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:204,1
    - Dst: ncclProxyCallBlocking
      Src: /src/nccl/src/transport/coll_net.cc:204,1
    - Dst: INFO
      Src: /src/nccl/src/transport/coll_net.cc:206,1
    - Dst: collNetName
      Src: /src/nccl/src/transport/coll_net.cc:206,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 8
    argNames:
    - comm
    - graph
    - myInfo
    - peerInfo
    - connectInfo
    - recv
    - channelId
    - connIndex
    argTypes:
    - struct ncclComm*
    - struct ncclTopoGraph*
    - struct ncclPeerInfo*
    - struct ncclPeerInfo*
    - struct ncclConnect*
    - struct ncclConnector*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 187
    functionDepth: 4
    functionLinenumber: 187
    functionLinenumberEnd: 209
    functionName: recvSetup
    functionSourceFile: /src/nccl/src/transport/coll_net.cc
    functionUses: 0
    functionsReached:
    - ncclProxyCallBlocking
    - INFO
    - ncclAtomicRefCountIncrement
    - ncclProxyConnect
    - ncclTopoNeedFlush
    - ncclTopoGetNetDev
    - collNetName
    - NCCLCHECK
    - ncclTopoCheckGdr
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t recvSetup(struct ncclComm* comm, struct ncclTopoGraph*
      graph, struct ncclPeerInfo* myInfo, struct ncclPeerInfo* peerInfo, struct ncclConnect*
      connectInfo, struct ncclConnector* recv, int channelId, int connIndex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nccl/src/transport/coll_net.cc:212,1
    - Dst: printf
      Src: /src/nccl/src/transport/coll_net.cc:214,1
    - Dst: printf
      Src: /src/nccl/src/transport/coll_net.cc:216,1
    - Dst: printf
      Src: /src/nccl/src/transport/coll_net.cc:218,1
    - Dst: printf
      Src: /src/nccl/src/transport/coll_net.cc:220,1
    - Dst: printf
      Src: /src/nccl/src/transport/coll_net.cc:221,1
    - Dst: NCCL_NET_MAP_OFFSET_BANK
      Src: /src/nccl/src/transport/coll_net.cc:223,1
    - Dst: NCCL_NET_MAP_GET_POINTER
      Src: /src/nccl/src/transport/coll_net.cc:224,1
    - Dst: NCCL_NET_MAP_GET_POINTER
      Src: /src/nccl/src/transport/coll_net.cc:224,1
    - Dst: printf
      Src: /src/nccl/src/transport/coll_net.cc:225,1
    - Dst: NCCL_NET_MAP_OFFSET_BANK
      Src: /src/nccl/src/transport/coll_net.cc:227,1
    - Dst: NCCL_NET_MAP_GET_POINTER
      Src: /src/nccl/src/transport/coll_net.cc:228,1
    - Dst: NCCL_NET_MAP_GET_POINTER
      Src: /src/nccl/src/transport/coll_net.cc:228,1
    - Dst: printf
      Src: /src/nccl/src/transport/coll_net.cc:230,1
    - Dst: NCCL_NET_MAP_OFFSET_BANK
      Src: /src/nccl/src/transport/coll_net.cc:232,1
    - Dst: NCCL_NET_MAP_GET_POINTER
      Src: /src/nccl/src/transport/coll_net.cc:233,1
    - Dst: NCCL_NET_MAP_GET_POINTER
      Src: /src/nccl/src/transport/coll_net.cc:233,1
    - Dst: printf
      Src: /src/nccl/src/transport/coll_net.cc:235,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - map
    argTypes:
    - struct connectMap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 237
    functionName: collNetDumpMap
    functionSourceFile: /src/nccl/src/transport/coll_net.cc
    functionUses: 0
    functionsReached:
    - NCCL_NET_MAP_OFFSET_BANK
    - printf
    - NCCL_NET_MAP_GET_POINTER
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t collNetDumpMap(struct connectMap* map)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:251,1
    - Dst: ncclProxyCallBlocking
      Src: /src/nccl/src/transport/coll_net.cc:251,1
    - Dst: NCCL_NET_MAP_GET_POINTER
      Src: /src/nccl/src/transport/coll_net.cc:258,1
    - Dst: NCCL_NET_MAP_GET_POINTER
      Src: /src/nccl/src/transport/coll_net.cc:262,1
    - Dst: NCCL_NET_MAP_GET_POINTER
      Src: /src/nccl/src/transport/coll_net.cc:271,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 5
    argNames:
    - comm
    - connectInfos
    - nranks
    - rank
    - send
    argTypes:
    - struct ncclComm*
    - struct ncclConnect*
    - int
    - int
    - struct ncclConnector*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 247
    functionDepth: 4
    functionLinenumber: 247
    functionLinenumberEnd: 276
    functionName: sendConnect
    functionSourceFile: /src/nccl/src/transport/coll_net.cc
    functionUses: 0
    functionsReached:
    - ncclProxyCallBlocking
    - NCCLCHECK
    - NCCL_NET_MAP_GET_POINTER
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t sendConnect(struct ncclComm* comm, struct ncclConnect*
      connectInfos, int nranks, int rank, struct ncclConnector* send)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:284,1
    - Dst: ncclProxyCallBlocking
      Src: /src/nccl/src/transport/coll_net.cc:284,1
    - Dst: NCCL_NET_MAP_GET_POINTER
      Src: /src/nccl/src/transport/coll_net.cc:291,1
    - Dst: NCCL_NET_MAP_GET_POINTER
      Src: /src/nccl/src/transport/coll_net.cc:294,1
    - Dst: NCCL_NET_MAP_GET_POINTER
      Src: /src/nccl/src/transport/coll_net.cc:303,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 5
    argNames:
    - comm
    - connectInfos
    - nranks
    - rank
    - recv
    argTypes:
    - struct ncclComm*
    - struct ncclConnect*
    - int
    - int
    - struct ncclConnector*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 280
    functionDepth: 4
    functionLinenumber: 280
    functionLinenumberEnd: 309
    functionName: recvConnect
    functionSourceFile: /src/nccl/src/transport/coll_net.cc
    functionUses: 0
    functionsReached:
    - ncclProxyCallBlocking
    - NCCLCHECK
    - NCCL_NET_MAP_GET_POINTER
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t recvConnect(struct ncclComm* comm, struct ncclConnect*
      connectInfos, int nranks, int rank, struct ncclConnector* recv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - send
    argTypes:
    - struct ncclConnector*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 313
    functionName: sendFree
    functionSourceFile: /src/nccl/src/transport/coll_net.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t sendFree(struct ncclConnector* send)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - recv
    argTypes:
    - struct ncclConnector*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 317
    functionName: recvFree
    functionSourceFile: /src/nccl/src/transport/coll_net.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t recvFree(struct ncclConnector* recv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:324,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/coll_net.cc:324,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:331,1
    - Dst: struct ncclProxyState*::ncclCollNet::getProperties
      Src: /src/nccl/src/transport/coll_net.cc:331,1
    - Dst: WARN
      Src: /src/nccl/src/transport/coll_net.cc:338,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 7
    argNames:
    - connection
    - proxyState
    - reqBuff
    - reqSize
    - respBuff
    - respSize
    - done
    argTypes:
    - struct ncclProxyConnection*
    - struct ncclProxyState*
    - void*
    - int
    - void*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 319
    functionDepth: 1
    functionLinenumber: 319
    functionLinenumberEnd: 343
    functionName: sendProxySetup
    functionSourceFile: /src/nccl/src/transport/coll_net.cc
    functionUses: 0
    functionsReached:
    - WARN
    - ncclCalloc
    - NCCLCHECK
    - struct ncclProxyState*::ncclCollNet::getProperties
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t sendProxySetup(struct ncclProxyConnection* connection,
      struct ncclProxyState* proxyState, void* reqBuff, int reqSize, void* respBuff,
      int respSize, int* done)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:354,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/coll_net.cc:354,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:358,1
    - Dst: struct ncclProxyState*::ncclCollNet::listen
      Src: /src/nccl/src/transport/coll_net.cc:358,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - proxyState
    - netDev
    - collNet
    - collNetHandle
    argTypes:
    - struct ncclProxyState*
    - int
    - struct ncclCollNetSharedRes*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 360
    functionName: sharedListen
    functionSourceFile: /src/nccl/src/transport/coll_net.cc
    functionUses: 0
    functionsReached:
    - ncclCalloc
    - struct ncclProxyState*::ncclCollNet::listen
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t sharedListen(struct ncclProxyState* proxyState, int netDev,
      struct ncclCollNetSharedRes* collNet, void* collNetHandle)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:367,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/coll_net.cc:367,1
    - Dst: struct ncclProxyState*::ncclCollNet::connect
      Src: /src/nccl/src/transport/coll_net.cc:372,1
    - Dst: free
      Src: /src/nccl/src/transport/coll_net.cc:375,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:378,1
    - Dst: struct ncclProxyState*::ncclCollNet::closeListen
      Src: /src/nccl/src/transport/coll_net.cc:378,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 7
    argNames:
    - proxyState
    - netDev
    - connectInfos
    - nranks
    - rank
    - collNet
    - collNetComm
    argTypes:
    - struct ncclProxyState*
    - int
    - struct ncclConnect*
    - int
    - int
    - struct ncclCollNetSharedRes*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 362
    functionDepth: 1
    functionLinenumber: 362
    functionLinenumberEnd: 386
    functionName: sharedConnect
    functionSourceFile: /src/nccl/src/transport/coll_net.cc
    functionUses: 0
    functionsReached:
    - free
    - struct ncclProxyState*::ncclCollNet::connect
    - struct ncclProxyState*::ncclCollNet::closeListen
    - ncclCalloc
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t sharedConnect(struct ncclProxyState* proxyState, int netDev,
      struct ncclConnect* connectInfos, int nranks, int rank, struct ncclCollNetSharedRes*
      collNet, void** collNetComm)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:392,1
    - Dst: struct ncclProxyState*::ncclCollNet::closeColl
      Src: /src/nccl/src/transport/coll_net.cc:392,1
    - Dst: free
      Src: /src/nccl/src/transport/coll_net.cc:396,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - proxyState
    - collNet
    - netDev
    argTypes:
    - struct ncclProxyState*
    - struct ncclCollNetSharedRes*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 398
    functionName: sharedFree
    functionSourceFile: /src/nccl/src/transport/coll_net.cc
    functionUses: 0
    functionsReached:
    - struct ncclProxyState*::ncclCollNet::closeColl
    - NCCLCHECK
    - free
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t sharedFree(struct ncclProxyState* proxyState, struct ncclCollNetSharedRes*
      collNet, int netDev)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:408,1
    - Dst: ncclCudaCalloc
      Src: /src/nccl/src/transport/coll_net.cc:408,1
    - Dst: cudaMemset
      Src: /src/nccl/src/transport/coll_net.cc:409,1
    - Dst: cudaMemset
      Src: /src/nccl/src/transport/coll_net.cc:410,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:413,1
    - Dst: ncclCudaHostCalloc
      Src: /src/nccl/src/transport/coll_net.cc:413,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 5
    argNames:
    - collNet
    - cuda
    - gpuPtr
    - cpuPtr
    - size
    argTypes:
    - struct ncclCollNetSharedRes*
    - int
    - char**
    - char**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 400
    functionDepth: 1
    functionLinenumber: 400
    functionLinenumberEnd: 417
    functionName: sharedBuffersInit
    functionSourceFile: /src/nccl/src/transport/coll_net.cc
    functionUses: 0
    functionsReached:
    - cudaMemset
    - ncclCudaHostCalloc
    - ncclCudaCalloc
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t sharedBuffersInit(struct ncclCollNetSharedRes* collNet,
      int cuda, char** gpuPtr, char** cpuPtr, int* size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - collNet
    - type
    - slot
    - channel
    - offset
    argTypes:
    - struct ncclCollNetSharedRes*
    - int
    - int
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 419
    functionDepth: 0
    functionLinenumber: 419
    functionLinenumberEnd: 425
    functionName: sharedBuffersGet
    functionSourceFile: /src/nccl/src/transport/coll_net.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t sharedBuffersGet(struct ncclCollNetSharedRes* collNet,
      int type, int slot, int channel, int* offset)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:429,1
    - Dst: ncclCudaFree
      Src: /src/nccl/src/transport/coll_net.cc:429,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:430,1
    - Dst: ncclCudaHostFree
      Src: /src/nccl/src/transport/coll_net.cc:430,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - collNet
    argTypes:
    - struct ncclCollNetSharedRes*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 427
    functionDepth: 1
    functionLinenumber: 427
    functionLinenumberEnd: 434
    functionName: sharedBuffersDestroy
    functionSourceFile: /src/nccl/src/transport/coll_net.cc
    functionUses: 0
    functionsReached:
    - ncclCudaHostFree
    - NCCLCHECK
    - ncclCudaFree
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t sharedBuffersDestroy(struct ncclCollNetSharedRes* collNet)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:441,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/coll_net.cc:441,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:449,1
    - Dst: struct ncclProxyState*::ncclCollNet::getProperties
      Src: /src/nccl/src/transport/coll_net.cc:449,1
    - Dst: WARN
      Src: /src/nccl/src/transport/coll_net.cc:455,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:463,1
    - Dst: sharedListen
      Src: /src/nccl/src/transport/coll_net.cc:463,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 7
    argNames:
    - connection
    - proxyState
    - reqBuff
    - reqSize
    - respBuff
    - respSize
    - done
    argTypes:
    - struct ncclProxyConnection*
    - struct ncclProxyState*
    - void*
    - int
    - void*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 436
    functionDepth: 2
    functionLinenumber: 436
    functionLinenumberEnd: 465
    functionName: recvProxySetup
    functionSourceFile: /src/nccl/src/transport/coll_net.cc
    functionUses: 0
    functionsReached:
    - WARN
    - ncclCalloc
    - sharedListen
    - struct ncclProxyState*::ncclCollNet::getProperties
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t recvProxySetup(struct ncclProxyConnection* connection,
      struct ncclProxyState* proxyState, void* reqBuff, int reqSize, void* respBuff,
      int respSize, int* done)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/transport/coll_net.cc:469,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:483,1
    - Dst: sharedConnect
      Src: /src/nccl/src/transport/coll_net.cc:483,1
    - Dst: WARN
      Src: /src/nccl/src/transport/coll_net.cc:486,1
    - Dst: NCCL_NET_MAP_ADD_POINTER
      Src: /src/nccl/src/transport/coll_net.cc:495,1
    - Dst: NCCL_NET_MAP_ADD_POINTER
      Src: /src/nccl/src/transport/coll_net.cc:496,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:498,1
    - Dst: ncclCudaHostCalloc
      Src: /src/nccl/src/transport/coll_net.cc:498,1
    - Dst: ncclParamGdrCopySyncEnable
      Src: /src/nccl/src/transport/coll_net.cc:500,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:502,1
    - Dst: ncclGdrCudaCalloc
      Src: /src/nccl/src/transport/coll_net.cc:502,1
    - Dst: NCCL_NET_MAP_GET_POINTER
      Src: /src/nccl/src/transport/coll_net.cc:511,1
    - Dst: NCCL_NET_MAP_GET_POINTER
      Src: /src/nccl/src/transport/coll_net.cc:512,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:519,1
    - Dst: sharedBuffersInit
      Src: /src/nccl/src/transport/coll_net.cc:519,1
    - Dst: NCCL_NET_MAP_ADD_POINTER
      Src: /src/nccl/src/transport/coll_net.cc:520,1
    - Dst: CUCHECK
      Src: /src/nccl/src/transport/coll_net.cc:526,1
    - Dst: cuMemGetHandleForAddressRange
      Src: /src/nccl/src/transport/coll_net.cc:526,1
    - Dst: getHandleForAddressRangeFlags
      Src: /src/nccl/src/transport/coll_net.cc:526,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/coll_net.cc:527,1
    - Dst: struct ncclProxyState*::ncclCollNet::regMrDmaBuf
      Src: /src/nccl/src/transport/coll_net.cc:527,1
    - Dst: close
      Src: /src/nccl/src/transport/coll_net.cc:531,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:535,1
    - Dst: struct ncclProxyState*::ncclCollNet::regMr
      Src: /src/nccl/src/transport/coll_net.cc:535,1
    - Dst: close
      Src: /src/nccl/src/transport/coll_net.cc:546,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 53
    argCount: 7
    argNames:
    - connection
    - proxyState
    - reqBuff
    - reqSize
    - respBuff
    - respSize
    - done
    argTypes:
    - struct ncclProxyConnection*
    - struct ncclProxyState*
    - void*
    - int
    - void*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 467
    functionDepth: 2
    functionLinenumber: 467
    functionLinenumberEnd: 549
    functionName: sendProxyConnect
    functionSourceFile: /src/nccl/src/transport/coll_net.cc
    functionUses: 0
    functionsReached:
    - WARN
    - ncclCudaHostCalloc
    - NCCL_NET_MAP_ADD_POINTER
    - NCCLCHECKGOTO
    - cuMemGetHandleForAddressRange
    - sharedBuffersInit
    - struct ncclProxyState*::ncclCollNet::regMrDmaBuf
    - close
    - ncclGdrCudaCalloc
    - CUCHECK
    - getHandleForAddressRangeFlags
    - NCCL_NET_MAP_GET_POINTER
    - sharedConnect
    - ncclParamGdrCopySyncEnable
    - struct ncclProxyState*::ncclCollNet::regMr
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t sendProxyConnect(struct ncclProxyConnection* connection,
      struct ncclProxyState* proxyState, void* reqBuff, int reqSize, void* respBuff,
      int respSize, int* done)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/transport/coll_net.cc:553,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:560,1
    - Dst: sharedConnect
      Src: /src/nccl/src/transport/coll_net.cc:560,1
    - Dst: WARN
      Src: /src/nccl/src/transport/coll_net.cc:563,1
    - Dst: NCCL_NET_MAP_ADD_POINTER
      Src: /src/nccl/src/transport/coll_net.cc:572,1
    - Dst: NCCL_NET_MAP_ADD_POINTER
      Src: /src/nccl/src/transport/coll_net.cc:573,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:575,1
    - Dst: ncclCudaHostCalloc
      Src: /src/nccl/src/transport/coll_net.cc:575,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:579,1
    - Dst: ncclGdrCudaCalloc
      Src: /src/nccl/src/transport/coll_net.cc:579,1
    - Dst: ncclParamGdrCopySyncEnable
      Src: /src/nccl/src/transport/coll_net.cc:581,1
    - Dst: ncclParamGdrCopyFlushEnable
      Src: /src/nccl/src/transport/coll_net.cc:588,1
    - Dst: NCCL_NET_MAP_GET_POINTER
      Src: /src/nccl/src/transport/coll_net.cc:591,1
    - Dst: NCCL_NET_MAP_GET_POINTER
      Src: /src/nccl/src/transport/coll_net.cc:592,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:597,1
    - Dst: sharedBuffersInit
      Src: /src/nccl/src/transport/coll_net.cc:597,1
    - Dst: NCCL_NET_MAP_ADD_POINTER
      Src: /src/nccl/src/transport/coll_net.cc:598,1
    - Dst: CUCHECK
      Src: /src/nccl/src/transport/coll_net.cc:604,1
    - Dst: cuMemGetHandleForAddressRange
      Src: /src/nccl/src/transport/coll_net.cc:604,1
    - Dst: getHandleForAddressRangeFlags
      Src: /src/nccl/src/transport/coll_net.cc:604,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/coll_net.cc:605,1
    - Dst: struct ncclProxyState*::ncclCollNet::regMrDmaBuf
      Src: /src/nccl/src/transport/coll_net.cc:605,1
    - Dst: close
      Src: /src/nccl/src/transport/coll_net.cc:609,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:613,1
    - Dst: struct ncclProxyState*::ncclCollNet::regMr
      Src: /src/nccl/src/transport/coll_net.cc:613,1
    - Dst: WARN
      Src: /src/nccl/src/transport/coll_net.cc:623,1
    - Dst: close
      Src: /src/nccl/src/transport/coll_net.cc:630,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 60
    argCount: 7
    argNames:
    - connection
    - proxyState
    - reqBuff
    - reqSize
    - respBuff
    - respSize
    - done
    argTypes:
    - struct ncclProxyConnection*
    - struct ncclProxyState*
    - void*
    - int
    - void*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 551
    functionDepth: 2
    functionLinenumber: 551
    functionLinenumberEnd: 633
    functionName: recvProxyConnect
    functionSourceFile: /src/nccl/src/transport/coll_net.cc
    functionUses: 0
    functionsReached:
    - WARN
    - ncclCudaHostCalloc
    - NCCL_NET_MAP_ADD_POINTER
    - NCCLCHECKGOTO
    - cuMemGetHandleForAddressRange
    - sharedBuffersInit
    - struct ncclProxyState*::ncclCollNet::regMrDmaBuf
    - close
    - struct ncclProxyState*::ncclCollNet::regMr
    - CUCHECK
    - getHandleForAddressRangeFlags
    - NCCL_NET_MAP_GET_POINTER
    - sharedConnect
    - ncclGdrCudaCalloc
    - ncclParamGdrCopySyncEnable
    - ncclParamGdrCopyFlushEnable
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t recvProxyConnect(struct ncclProxyConnection* connection,
      struct ncclProxyState* proxyState, void* reqBuff, int reqSize, void* respBuff,
      int respSize, int* done)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:641,1
    - Dst: struct ncclProxyState*::ncclCollNet::deregMr
      Src: /src/nccl/src/transport/coll_net.cc:641,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:645,1
    - Dst: ncclCudaHostFree
      Src: /src/nccl/src/transport/coll_net.cc:645,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:646,1
    - Dst: ncclCudaFree
      Src: /src/nccl/src/transport/coll_net.cc:646,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:647,1
    - Dst: ncclGdrCudaFree
      Src: /src/nccl/src/transport/coll_net.cc:647,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:648,1
    - Dst: sharedBuffersDestroy
      Src: /src/nccl/src/transport/coll_net.cc:648,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:649,1
    - Dst: sharedFree
      Src: /src/nccl/src/transport/coll_net.cc:649,1
    - Dst: ncclAtomicRefCountDecrement
      Src: /src/nccl/src/transport/coll_net.cc:650,1
    - Dst: free
      Src: /src/nccl/src/transport/coll_net.cc:650,1
    - Dst: free
      Src: /src/nccl/src/transport/coll_net.cc:651,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - connection
    - proxyState
    argTypes:
    - struct ncclProxyConnection*
    - struct ncclProxyState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 654
      start: 635
    functionDepth: 2
    functionLinenumber: 635
    functionLinenumberEnd: 654
    functionName: sendProxyFree
    functionSourceFile: /src/nccl/src/transport/coll_net.cc
    functionUses: 0
    functionsReached:
    - ncclAtomicRefCountDecrement
    - ncclGdrCudaFree
    - sharedFree
    - free
    - struct ncclProxyState*::ncclCollNet::deregMr
    - ncclCudaFree
    - ncclCudaHostFree
    - NCCLCHECK
    - sharedBuffersDestroy
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t sendProxyFree(struct ncclProxyConnection* connection,
      struct ncclProxyState* proxyState)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:662,1
    - Dst: struct ncclProxyState*::ncclCollNet::deregMr
      Src: /src/nccl/src/transport/coll_net.cc:662,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:666,1
    - Dst: ncclCudaHostFree
      Src: /src/nccl/src/transport/coll_net.cc:666,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:667,1
    - Dst: ncclCudaFree
      Src: /src/nccl/src/transport/coll_net.cc:667,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:668,1
    - Dst: ncclGdrCudaFree
      Src: /src/nccl/src/transport/coll_net.cc:668,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:669,1
    - Dst: sharedBuffersDestroy
      Src: /src/nccl/src/transport/coll_net.cc:669,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:670,1
    - Dst: sharedFree
      Src: /src/nccl/src/transport/coll_net.cc:670,1
    - Dst: ncclAtomicRefCountDecrement
      Src: /src/nccl/src/transport/coll_net.cc:671,1
    - Dst: free
      Src: /src/nccl/src/transport/coll_net.cc:671,1
    - Dst: free
      Src: /src/nccl/src/transport/coll_net.cc:672,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - connection
    - proxyState
    argTypes:
    - struct ncclProxyConnection*
    - struct ncclProxyState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 675
      start: 656
    functionDepth: 2
    functionLinenumber: 656
    functionLinenumberEnd: 675
    functionName: recvProxyFree
    functionSourceFile: /src/nccl/src/transport/coll_net.cc
    functionUses: 0
    functionsReached:
    - ncclAtomicRefCountDecrement
    - ncclGdrCudaFree
    - sharedFree
    - free
    - struct ncclProxyState*::ncclCollNet::deregMr
    - ncclCudaFree
    - ncclCudaHostFree
    - NCCLCHECK
    - sharedBuffersDestroy
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t recvProxyFree(struct ncclProxyConnection* connection,
      struct ncclProxyState* proxyState)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::min<size_t>
      Src: /src/nccl/src/transport/coll_net.cc:684,1
    - Dst: std::max<size_t>
      Src: /src/nccl/src/transport/coll_net.cc:686,1
    - Dst: std::min<size_t>
      Src: /src/nccl/src/transport/coll_net.cc:687,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - args
    - isAllNotOne
    - sub
    - step
    argTypes:
    - struct ncclProxyArgs*
    - int
    - int
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 677
    functionDepth: 0
    functionLinenumber: 677
    functionLinenumberEnd: 690
    functionName: calcAlgoOffset
    functionSourceFile: /src/nccl/src/transport/coll_net.cc
    functionUses: 0
    functionsReached:
    - std::max<size_t>
    - std::min<size_t>
    linkageType: ''
    returnType: size_t
    signature: size_t calcAlgoOffset(struct ncclProxyArgs* args, int isAllNotOne,
      int sub, uint64_t step)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calcAlgoOffset
      Src: /src/nccl/src/transport/coll_net.cc:707,1
    - Dst: calcAlgoOffset
      Src: /src/nccl/src/transport/coll_net.cc:708,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 5
    argNames:
    - args
    - isRecvNotSend
    - sub
    - step
    - side
    argTypes:
    - struct ncclProxyArgs*
    - int
    - int
    - uint64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 711
      start: 692
    functionDepth: 1
    functionLinenumber: 692
    functionLinenumberEnd: 711
    functionName: calcRegionOffset
    functionSourceFile: /src/nccl/src/transport/coll_net.cc
    functionUses: 0
    functionsReached:
    - calcAlgoOffset
    linkageType: ''
    returnType: ssize_t
    signature: "ssize_t calcRegionOffset(\n    struct ncclProxyArgs* args, int isRecvNotSend,
      int sub, uint64_t step,\n    int side // 0=begin, 1=end\n  )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - args
    - ','
    - s
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 713
    functionDepth: 0
    functionLinenumber: 713
    functionLinenumberEnd: 715
    functionName: LAST_OF_GROUP
    functionSourceFile: /src/nccl/src/transport/coll_net.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LAST_OF_GROUP(args, s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nGroups
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 719
      start: 716
    functionDepth: 0
    functionLinenumber: 716
    functionLinenumberEnd: 719
    functionName: calcStepsPerGroup
    functionSourceFile: /src/nccl/src/transport/coll_net.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int calcStepsPerGroup(int nGroups)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ncclTypeSize
      Src: /src/nccl/src/transport/coll_net.cc:723,1
    - Dst: min
      Src: /src/nccl/src/transport/coll_net.cc:733,1
    - Dst: min
      Src: /src/nccl/src/transport/coll_net.cc:737,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:742,1
    - Dst: struct ncclProxyState*::ncclCollNet::iallreduce
      Src: /src/nccl/src/transport/coll_net.cc:742,1
    - Dst: TRACE
      Src: /src/nccl/src/transport/coll_net.cc:748,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 7
    argNames:
    - proxyState
    - resources
    - args
    - sub
    - groupStart
    - nBytesInOut
    - request
    argTypes:
    - struct ncclProxyState*
    - struct sendResources*
    - struct ncclProxyArgs*
    - struct ncclProxySubArgs*
    - int
    - ssize_t*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 753
      start: 721
    functionDepth: 1
    functionLinenumber: 721
    functionLinenumberEnd: 753
    functionName: collNetRegIallreduce
    functionSourceFile: /src/nccl/src/transport/coll_net.cc
    functionUses: 0
    functionsReached:
    - TRACE
    - min
    - struct ncclProxyState*::ncclCollNet::iallreduce
    - ncclTypeSize
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t collNetRegIallreduce(struct ncclProxyState* proxyState,
      struct sendResources *resources, struct ncclProxyArgs *args, struct ncclProxySubArgs
      *sub, int groupStart, ssize_t *nBytesInOut, void **request)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCL_NET_MAP_GET_POINTER
      Src: /src/nccl/src/transport/coll_net.cc:758,1
    - Dst: ncclTypeSize
      Src: /src/nccl/src/transport/coll_net.cc:759,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:762,1
    - Dst: struct ncclProxyState*::ncclCollNet::iallreduce
      Src: /src/nccl/src/transport/coll_net.cc:762,1
    - Dst: TRACE
      Src: /src/nccl/src/transport/coll_net.cc:764,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 8
    argNames:
    - proxyState
    - resources
    - args
    - sub
    - nBytes
    - sendBeg
    - recvBeg
    - request
    argTypes:
    - struct ncclProxyState*
    - struct sendResources*
    - struct ncclProxyArgs*
    - struct ncclProxySubArgs*
    - ssize_t
    - ssize_t
    - ssize_t
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 755
    functionDepth: 1
    functionLinenumber: 755
    functionLinenumberEnd: 766
    functionName: collNetIallreduce
    functionSourceFile: /src/nccl/src/transport/coll_net.cc
    functionUses: 0
    functionsReached:
    - TRACE
    - struct ncclProxyState*::ncclCollNet::iallreduce
    - ncclTypeSize
    - NCCL_NET_MAP_GET_POINTER
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t collNetIallreduce(struct ncclProxyState* proxyState, struct
      sendResources *resources, struct ncclProxyArgs *args, struct ncclProxySubArgs
      *sub, ssize_t nBytes, ssize_t sendBeg, ssize_t recvBeg, void **request)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: NCCL_NET_MAP_GET_POINTER
      Src: /src/nccl/src/transport/coll_net.cc:771,1
    - Dst: min
      Src: /src/nccl/src/transport/coll_net.cc:782,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:798,1
    - Dst: struct ncclProxyState*::ncclCollNet::iallgather
      Src: /src/nccl/src/transport/coll_net.cc:798,1
    - Dst: TRACE
      Src: /src/nccl/src/transport/coll_net.cc:805,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 9
    argNames:
    - proxyState
    - resources
    - args
    - sub
    - nBytesIn
    - allBeg
    - recvBeg
    - recvMhandle
    - request
    argTypes:
    - struct ncclProxyState*
    - struct sendResources*
    - struct ncclProxyArgs*
    - struct ncclProxySubArgs*
    - ssize_t
    - ssize_t
    - ssize_t
    - void*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 808
      start: 768
    functionDepth: 1
    functionLinenumber: 768
    functionLinenumberEnd: 808
    functionName: collNetRegIallgather
    functionSourceFile: /src/nccl/src/transport/coll_net.cc
    functionUses: 0
    functionsReached:
    - struct ncclProxyState*::ncclCollNet::iallgather
    - min
    - TRACE
    - NCCL_NET_MAP_GET_POINTER
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t collNetRegIallgather(struct ncclProxyState* proxyState,
      struct sendResources *resources, struct ncclProxyArgs *args, struct ncclProxySubArgs
      *sub, ssize_t nBytesIn, ssize_t allBeg, ssize_t recvBeg, void *recvMhandle,
      void **request)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCL_NET_MAP_GET_POINTER
      Src: /src/nccl/src/transport/coll_net.cc:813,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:821,1
    - Dst: struct ncclProxyState*::ncclCollNet::iallgather
      Src: /src/nccl/src/transport/coll_net.cc:821,1
    - Dst: TRACE
      Src: /src/nccl/src/transport/coll_net.cc:823,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 11
    argNames:
    - proxyState
    - resources
    - args
    - sub
    - nBytes
    - allBeg
    - sendBeg
    - recvBeg
    - sendMhandle
    - recvMhandle
    - request
    argTypes:
    - struct ncclProxyState*
    - struct sendResources*
    - struct ncclProxyArgs*
    - struct ncclProxySubArgs*
    - ssize_t
    - ssize_t
    - ssize_t
    - ssize_t
    - void*
    - void*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 825
      start: 810
    functionDepth: 1
    functionLinenumber: 810
    functionLinenumberEnd: 825
    functionName: collNetIallgather
    functionSourceFile: /src/nccl/src/transport/coll_net.cc
    functionUses: 0
    functionsReached:
    - struct ncclProxyState*::ncclCollNet::iallgather
    - TRACE
    - NCCLCHECK
    - NCCL_NET_MAP_GET_POINTER
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t collNetIallgather(struct ncclProxyState* proxyState, struct
      sendResources *resources, struct ncclProxyArgs *args, struct ncclProxySubArgs
      *sub, ssize_t nBytes, ssize_t allBeg, ssize_t sendBeg, ssize_t recvBeg, void
      *sendMhandle, void *recvMhandle, void **request)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: NCCL_NET_MAP_GET_POINTER
      Src: /src/nccl/src/transport/coll_net.cc:830,1
    - Dst: min
      Src: /src/nccl/src/transport/coll_net.cc:838,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:854,1
    - Dst: struct ncclProxyState*::ncclCollNet::ireducescatter
      Src: /src/nccl/src/transport/coll_net.cc:854,1
    - Dst: TRACE
      Src: /src/nccl/src/transport/coll_net.cc:861,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 9
    argNames:
    - proxyState
    - resources
    - args
    - sub
    - nBytesIn
    - allBeg
    - sendBeg
    - sendMhandle
    - request
    argTypes:
    - struct ncclProxyState*
    - struct sendResources*
    - struct ncclProxyArgs*
    - struct ncclProxySubArgs*
    - ssize_t
    - ssize_t
    - ssize_t
    - void*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 864
      start: 827
    functionDepth: 1
    functionLinenumber: 827
    functionLinenumberEnd: 864
    functionName: collNetRegIreducescatter
    functionSourceFile: /src/nccl/src/transport/coll_net.cc
    functionUses: 0
    functionsReached:
    - TRACE
    - min
    - NCCL_NET_MAP_GET_POINTER
    - struct ncclProxyState*::ncclCollNet::ireducescatter
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t collNetRegIreducescatter(struct ncclProxyState* proxyState,
      struct sendResources *resources, struct ncclProxyArgs *args, struct ncclProxySubArgs
      *sub, ssize_t nBytesIn, ssize_t allBeg, ssize_t sendBeg, void *sendMhandle,
      void **request)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCL_NET_MAP_GET_POINTER
      Src: /src/nccl/src/transport/coll_net.cc:869,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:874,1
    - Dst: struct ncclProxyState*::ncclCollNet::ireducescatter
      Src: /src/nccl/src/transport/coll_net.cc:874,1
    - Dst: TRACE
      Src: /src/nccl/src/transport/coll_net.cc:876,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 11
    argNames:
    - proxyState
    - resources
    - args
    - sub
    - nBytes
    - allBeg
    - sendBeg
    - recvBeg
    - sendMhandle
    - recvMhandle
    - request
    argTypes:
    - struct ncclProxyState*
    - struct sendResources*
    - struct ncclProxyArgs*
    - struct ncclProxySubArgs*
    - ssize_t
    - ssize_t
    - ssize_t
    - ssize_t
    - void*
    - void*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 878
      start: 866
    functionDepth: 1
    functionLinenumber: 866
    functionLinenumberEnd: 878
    functionName: collNetIreducescatter
    functionSourceFile: /src/nccl/src/transport/coll_net.cc
    functionUses: 0
    functionsReached:
    - TRACE
    - struct ncclProxyState*::ncclCollNet::ireducescatter
    - NCCLCHECK
    - NCCL_NET_MAP_GET_POINTER
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t collNetIreducescatter(struct ncclProxyState* proxyState,
      struct sendResources *resources, struct ncclProxyArgs *args, struct ncclProxySubArgs
      *sub, ssize_t nBytes, ssize_t allBeg, ssize_t sendBeg, ssize_t recvBeg, void
      *sendMhandle, void *recvMhandle, void **request)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: ROUNDUP
      Src: /src/nccl/src/transport/coll_net.cc:886,1
    - Dst: DIVUP
      Src: /src/nccl/src/transport/coll_net.cc:890,1
    - Dst: DIVUP
      Src: /src/nccl/src/transport/coll_net.cc:897,1
    - Dst: calcRegionOffset
      Src: /src/nccl/src/transport/coll_net.cc:910,1
    - Dst: __sync_synchronize
      Src: /src/nccl/src/transport/coll_net.cc:911,1
    - Dst: TRACE
      Src: /src/nccl/src/transport/coll_net.cc:914,1
    - Dst: long
      Src: /src/nccl/src/transport/coll_net.cc:914,1
    - Dst: long
      Src: /src/nccl/src/transport/coll_net.cc:914,1
    - Dst: long
      Src: /src/nccl/src/transport/coll_net.cc:914,1
    - Dst: wc_store_fence
      Src: /src/nccl/src/transport/coll_net.cc:918,1
    - Dst: calcStepsPerGroup
      Src: /src/nccl/src/transport/coll_net.cc:920,1
    - Dst: calcRegionOffset
      Src: /src/nccl/src/transport/coll_net.cc:928,1
    - Dst: calcRegionOffset
      Src: /src/nccl/src/transport/coll_net.cc:929,1
    - Dst: WARN
      Src: /src/nccl/src/transport/coll_net.cc:931,1
    - Dst: LAST_OF_GROUP
      Src: /src/nccl/src/transport/coll_net.cc:944,1
    - Dst: calcAlgoOffset
      Src: /src/nccl/src/transport/coll_net.cc:948,1
    - Dst: calcAlgoOffset
      Src: /src/nccl/src/transport/coll_net.cc:949,1
    - Dst: calcRegionOffset
      Src: /src/nccl/src/transport/coll_net.cc:950,1
    - Dst: calcRegionOffset
      Src: /src/nccl/src/transport/coll_net.cc:951,1
    - Dst: calcRegionOffset
      Src: /src/nccl/src/transport/coll_net.cc:952,1
    - Dst: calcRegionOffset
      Src: /src/nccl/src/transport/coll_net.cc:953,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:963,1
    - Dst: collNetRegIallreduce
      Src: /src/nccl/src/transport/coll_net.cc:963,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:965,1
    - Dst: collNetIallreduce
      Src: /src/nccl/src/transport/coll_net.cc:965,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:970,1
    - Dst: collNetRegIallgather
      Src: /src/nccl/src/transport/coll_net.cc:970,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:972,1
    - Dst: collNetIallgather
      Src: /src/nccl/src/transport/coll_net.cc:972,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:978,1
    - Dst: collNetRegIreducescatter
      Src: /src/nccl/src/transport/coll_net.cc:978,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:980,1
    - Dst: collNetIreducescatter
      Src: /src/nccl/src/transport/coll_net.cc:980,1
    - Dst: LAST_OF_GROUP
      Src: /src/nccl/src/transport/coll_net.cc:991,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:995,1
    - Dst: struct ncclProxyState*::ncclCollNet::test
      Src: /src/nccl/src/transport/coll_net.cc:995,1
    - Dst: TRACE
      Src: /src/nccl/src/transport/coll_net.cc:997,1
    - Dst: TRACE
      Src: /src/nccl/src/transport/coll_net.cc:1008,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 104
    argCount: 2
    argNames:
    - proxyState
    - args
    argTypes:
    - struct ncclProxyState*
    - struct ncclProxyArgs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1015
      start: 880
    functionDepth: 2
    functionLinenumber: 880
    functionLinenumberEnd: 1015
    functionName: sendProxyProgress
    functionSourceFile: /src/nccl/src/transport/coll_net.cc
    functionUses: 0
    functionsReached:
    - WARN
    - collNetIallgather
    - struct ncclProxyState*::ncclCollNet::test
    - DIVUP
    - calcRegionOffset
    - calcStepsPerGroup
    - TRACE
    - __sync_synchronize
    - long
    - ROUNDUP
    - LAST_OF_GROUP
    - collNetRegIallreduce
    - wc_store_fence
    - calcAlgoOffset
    - collNetIreducescatter
    - collNetIallreduce
    - collNetRegIallgather
    - collNetRegIreducescatter
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t sendProxyProgress(struct ncclProxyState* proxyState, struct
      ncclProxyArgs* args)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: NCCL_NET_MAP_GET_POINTER
      Src: /src/nccl/src/transport/coll_net.cc:1018,1
    - Dst: min
      Src: /src/nccl/src/transport/coll_net.cc:1023,1
    - Dst: min
      Src: /src/nccl/src/transport/coll_net.cc:1026,1
    - Dst: min
      Src: /src/nccl/src/transport/coll_net.cc:1039,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:1051,1
    - Dst: struct ncclProxyState*::ncclCollNet::iflush
      Src: /src/nccl/src/transport/coll_net.cc:1051,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:1058,1
    - Dst: struct ncclProxyState*::ncclCollNet::iflush
      Src: /src/nccl/src/transport/coll_net.cc:1058,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 8
    argNames:
    - proxyState
    - resources
    - args
    - sub
    - groupStart
    - nBytesIn
    - recvBeg
    - request
    argTypes:
    - struct ncclProxyState*
    - struct recvResources*
    - struct ncclProxyArgs*
    - struct ncclProxySubArgs*
    - int
    - ssize_t
    - ssize_t
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1061
      start: 1017
    functionDepth: 1
    functionLinenumber: 1017
    functionLinenumberEnd: 1061
    functionName: collNetRecvFlush
    functionSourceFile: /src/nccl/src/transport/coll_net.cc
    functionUses: 0
    functionsReached:
    - struct ncclProxyState*::ncclCollNet::iflush
    - min
    - NCCLCHECK
    - NCCL_NET_MAP_GET_POINTER
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t collNetRecvFlush(struct ncclProxyState* proxyState, struct
      recvResources *resources, struct ncclProxyArgs *args, struct ncclProxySubArgs
      *sub, int groupStart, ssize_t nBytesIn, ssize_t recvBeg, void **request)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: ROUNDUP
      Src: /src/nccl/src/transport/coll_net.cc:1069,1
    - Dst: DIVUP
      Src: /src/nccl/src/transport/coll_net.cc:1073,1
    - Dst: memset
      Src: /src/nccl/src/transport/coll_net.cc:1074,1
    - Dst: DIVUP
      Src: /src/nccl/src/transport/coll_net.cc:1080,1
    - Dst: LAST_OF_GROUP
      Src: /src/nccl/src/transport/coll_net.cc:1089,1
    - Dst: calcStepsPerGroup
      Src: /src/nccl/src/transport/coll_net.cc:1089,1
    - Dst: TRACE
      Src: /src/nccl/src/transport/coll_net.cc:1092,1
    - Dst: LAST_OF_GROUP
      Src: /src/nccl/src/transport/coll_net.cc:1097,1
    - Dst: calcRegionOffset
      Src: /src/nccl/src/transport/coll_net.cc:1100,1
    - Dst: calcRegionOffset
      Src: /src/nccl/src/transport/coll_net.cc:1101,1
    - Dst: TRACE
      Src: /src/nccl/src/transport/coll_net.cc:1103,1
    - Dst: WARN
      Src: /src/nccl/src/transport/coll_net.cc:1112,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:1116,1
    - Dst: collNetRecvFlush
      Src: /src/nccl/src/transport/coll_net.cc:1116,1
    - Dst: LAST_OF_GROUP
      Src: /src/nccl/src/transport/coll_net.cc:1123,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:1127,1
    - Dst: struct ncclProxyState*::ncclCollNet::test
      Src: /src/nccl/src/transport/coll_net.cc:1127,1
    - Dst: TRACE
      Src: /src/nccl/src/transport/coll_net.cc:1130,1
    - Dst: calcRegionOffset
      Src: /src/nccl/src/transport/coll_net.cc:1140,1
    - Dst: __sync_synchronize
      Src: /src/nccl/src/transport/coll_net.cc:1141,1
    - Dst: wc_store_fence
      Src: /src/nccl/src/transport/coll_net.cc:1150,1
    - Dst: TRACE
      Src: /src/nccl/src/transport/coll_net.cc:1167,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 78
    argCount: 2
    argNames:
    - proxyState
    - args
    argTypes:
    - struct ncclProxyState*
    - struct ncclProxyArgs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1173
      start: 1063
    functionDepth: 2
    functionLinenumber: 1063
    functionLinenumberEnd: 1173
    functionName: recvProxyProgress
    functionSourceFile: /src/nccl/src/transport/coll_net.cc
    functionUses: 0
    functionsReached:
    - WARN
    - TRACE
    - ROUNDUP
    - struct ncclProxyState*::ncclCollNet::test
    - LAST_OF_GROUP
    - wc_store_fence
    - DIVUP
    - calcRegionOffset
    - calcStepsPerGroup
    - __sync_synchronize
    - collNetRecvFlush
    - NCCLCHECK
    - memset
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t recvProxyProgress(struct ncclProxyState* proxyState, struct
      ncclProxyArgs* args)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: INFO
      Src: /src/nccl/src/transport/coll_net.cc:1188,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/coll_net.cc:1199,1
    - Dst: ncclProxyCallBlocking
      Src: /src/nccl/src/transport/coll_net.cc:1199,1
    - Dst: INFO
      Src: /src/nccl/src/transport/coll_net.cc:1205,1
    - Dst: INFO
      Src: /src/nccl/src/transport/coll_net.cc:1218,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 36
    argCount: 7
    argNames:
    - comm
    - userbuff
    - buffSize
    - type
    - regRecord
    - outRegBufFlag
    - outHandle
    argTypes:
    - struct ncclComm*
    - void*
    - size_t
    - int
    - struct ncclReg*
    - int*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1220
      start: 1180
    functionDepth: 4
    functionLinenumber: 1180
    functionLinenumberEnd: 1220
    functionName: collnetRegisterBuffer
    functionSourceFile: /src/nccl/src/transport/coll_net.cc
    functionUses: 0
    functionsReached:
    - INFO
    - NCCLCHECKGOTO
    - ncclProxyCallBlocking
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t collnetRegisterBuffer(struct ncclComm* comm, const void*
      userbuff, size_t buffSize, int type, struct ncclReg* regRecord, int* outRegBufFlag,
      void** outHandle)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/coll_net.cc:1230,1
    - Dst: ncclRegFind
      Src: /src/nccl/src/transport/coll_net.cc:1230,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/coll_net.cc:1231,1
    - Dst: ncclRegLocalIsValid
      Src: /src/nccl/src/transport/coll_net.cc:1231,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/coll_net.cc:1233,1
    - Dst: collnetRegisterBuffer
      Src: /src/nccl/src/transport/coll_net.cc:1233,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 6
    argNames:
    - comm
    - userbuff
    - buffSize
    - type
    - outRegBufFlag
    - outHandle
    argTypes:
    - struct ncclComm*
    - void*
    - size_t
    - int
    - int*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1240
      start: 1222
    functionDepth: 5
    functionLinenumber: 1222
    functionLinenumberEnd: 1240
    functionName: ncclCollnetLocalRegisterBuffer
    functionSourceFile: /src/nccl/src/transport/coll_net.cc
    functionUses: 0
    functionsReached:
    - collnetRegisterBuffer
    - NCCLCHECKGOTO
    - ncclRegFind
    - ncclRegLocalIsValid
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCollnetLocalRegisterBuffer(struct ncclComm* comm,
      const void* userbuff, size_t buffSize, int type, int* outRegBufFlag, void**
      outHandle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:1250,1
    - Dst: ncclCommGraphDeregister
      Src: /src/nccl/src/transport/coll_net.cc:1250,1
    - Dst: free
      Src: /src/nccl/src/transport/coll_net.cc:1251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - comm
    - cb
    argTypes:
    - struct ncclComm*
    - struct ncclCommCallback*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1253
      start: 1248
    functionDepth: 1
    functionLinenumber: 1248
    functionLinenumberEnd: 1253
    functionName: cleanupCollnet
    functionSourceFile: /src/nccl/src/transport/coll_net.cc
    functionUses: 0
    functionsReached:
    - ncclCommGraphDeregister
    - NCCLCHECK
    - free
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t cleanupCollnet(struct ncclComm* comm, struct ncclCommCallback*
      cb)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/transport/coll_net.cc:1264,1
    - Dst: cuMemGetAddressRange
      Src: /src/nccl/src/transport/coll_net.cc:1264,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/coll_net.cc:1265,1
    - Dst: ncclCommGraphRegister
      Src: /src/nccl/src/transport/coll_net.cc:1265,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/coll_net.cc:1266,1
    - Dst: collnetRegisterBuffer
      Src: /src/nccl/src/transport/coll_net.cc:1266,1
    - Dst: malloc
      Src: /src/nccl/src/transport/coll_net.cc:1269,1
    - Dst: ncclIntruQueueEnqueue
      Src: /src/nccl/src/transport/coll_net.cc:1273,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/coll_net.cc:1276,1
    - Dst: ncclCommGraphDeregister
      Src: /src/nccl/src/transport/coll_net.cc:1276,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 8
    argNames:
    - comm
    - userbuff
    - buffSize
    - type
    - outRegBufFlag
    - outHandle
    - cleanupQueue
    - nCleanupQueueElts
    argTypes:
    - struct ncclComm*
    - void*
    - size_t
    - int
    - int*
    - void**
    - struct ncclIntruQueue<struct ncclCommCallback, &ncclCommCallback::next>*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1286
      start: 1255
    functionDepth: 5
    functionLinenumber: 1255
    functionLinenumberEnd: 1286
    functionName: ncclCollnetGraphRegisterBuffer
    functionSourceFile: /src/nccl/src/transport/coll_net.cc
    functionUses: 0
    functionsReached:
    - cuMemGetAddressRange
    - malloc
    - NCCLCHECKGOTO
    - ncclCommGraphDeregister
    - ncclCommGraphRegister
    - CUCHECKGOTO
    - collnetRegisterBuffer
    - ncclIntruQueueEnqueue
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCollnetGraphRegisterBuffer(struct ncclComm* comm,
      const void* userbuff, size_t buffSize, int type, int* outRegBufFlag, void**
      outHandle, struct ncclIntruQueue<struct ncclCommCallback, &ncclCommCallback::next>*
      cleanupQueue, int* nCleanupQueueElts)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:1289,1
    - Dst: ncclProxyCallBlocking
      Src: /src/nccl/src/transport/coll_net.cc:1289,1
    - Dst: INFO
      Src: /src/nccl/src/transport/coll_net.cc:1290,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - comm
    - proxyconn
    - handle
    argTypes:
    - struct ncclComm*
    - struct ncclProxyConnector*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1292
      start: 1288
    functionDepth: 4
    functionLinenumber: 1288
    functionLinenumberEnd: 1292
    functionName: ncclCollnetDeregBuffer
    functionSourceFile: /src/nccl/src/transport/coll_net.cc
    functionUses: 0
    functionsReached:
    - ncclProxyCallBlocking
    - INFO
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCollnetDeregBuffer(struct ncclComm* comm, struct ncclProxyConnector*
      proxyconn, void* handle)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/src/transport/coll_net.cc:1301,1
    - Dst: assert
      Src: /src/nccl/src/transport/coll_net.cc:1302,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/transport/coll_net.cc:1308,1
    - Dst: cuMemGetHandleForAddressRange
      Src: /src/nccl/src/transport/coll_net.cc:1308,1
    - Dst: getHandleForAddressRangeFlags
      Src: /src/nccl/src/transport/coll_net.cc:1308,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/coll_net.cc:1309,1
    - Dst: struct ncclProxyState*::ncclCollNet::regMrDmaBuf
      Src: /src/nccl/src/transport/coll_net.cc:1309,1
    - Dst: close
      Src: /src/nccl/src/transport/coll_net.cc:1315,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/coll_net.cc:1319,1
    - Dst: struct ncclProxyState*::ncclCollNet::regMr
      Src: /src/nccl/src/transport/coll_net.cc:1319,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/coll_net.cc:1323,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 7
    argNames:
    - connection
    - proxyState
    - reqBuff
    - reqSize
    - respBuff
    - respSize
    - done
    argTypes:
    - struct ncclProxyConnection*
    - struct ncclProxyState*
    - void*
    - int
    - void*
    - int
    - int*
    assertStmts:
    - condition: (reqSize == sizeof(struct collnetRegInfo))
      pos:
        line_end: 1300
        line_start: 1300
        source_file: /src/nccl/src/transport/coll_net.cc
    - condition: (respSize == sizeof(void*))
      pos:
        line_end: 1301
        line_start: 1301
        source_file: /src/nccl/src/transport/coll_net.cc
    constantsTouched: []
    func_position:
      end: 1329
      start: 1294
    functionDepth: 1
    functionLinenumber: 1294
    functionLinenumberEnd: 1329
    functionName: sendProxyRegBuffer
    functionSourceFile: /src/nccl/src/transport/coll_net.cc
    functionUses: 0
    functionsReached:
    - NCCLCHECKGOTO
    - memcpy
    - cuMemGetHandleForAddressRange
    - struct ncclProxyState*::ncclCollNet::regMrDmaBuf
    - assert
    - close
    - getHandleForAddressRangeFlags
    - CUCHECKGOTO
    - struct ncclProxyState*::ncclCollNet::regMr
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t sendProxyRegBuffer(struct ncclProxyConnection* connection,
      struct ncclProxyState* proxyState, void* reqBuff, int reqSize, void* respBuff,
      int respSize, int* done)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/src/transport/coll_net.cc:1338,1
    - Dst: assert
      Src: /src/nccl/src/transport/coll_net.cc:1339,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/transport/coll_net.cc:1344,1
    - Dst: cuMemGetHandleForAddressRange
      Src: /src/nccl/src/transport/coll_net.cc:1344,1
    - Dst: getHandleForAddressRangeFlags
      Src: /src/nccl/src/transport/coll_net.cc:1344,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/coll_net.cc:1345,1
    - Dst: struct ncclProxyState*::ncclCollNet::regMrDmaBuf
      Src: /src/nccl/src/transport/coll_net.cc:1345,1
    - Dst: close
      Src: /src/nccl/src/transport/coll_net.cc:1351,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/coll_net.cc:1355,1
    - Dst: struct ncclProxyState*::ncclCollNet::regMr
      Src: /src/nccl/src/transport/coll_net.cc:1355,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/coll_net.cc:1359,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 7
    argNames:
    - connection
    - proxyState
    - reqBuff
    - reqSize
    - respBuff
    - respSize
    - done
    argTypes:
    - struct ncclProxyConnection*
    - struct ncclProxyState*
    - void*
    - int
    - void*
    - int
    - int*
    assertStmts:
    - condition: (reqSize == sizeof(struct collnetRegInfo))
      pos:
        line_end: 1337
        line_start: 1337
        source_file: /src/nccl/src/transport/coll_net.cc
    - condition: (respSize == sizeof(void*))
      pos:
        line_end: 1338
        line_start: 1338
        source_file: /src/nccl/src/transport/coll_net.cc
    constantsTouched: []
    func_position:
      end: 1365
      start: 1331
    functionDepth: 1
    functionLinenumber: 1331
    functionLinenumberEnd: 1365
    functionName: recvProxyRegBuffer
    functionSourceFile: /src/nccl/src/transport/coll_net.cc
    functionUses: 0
    functionsReached:
    - NCCLCHECKGOTO
    - memcpy
    - cuMemGetHandleForAddressRange
    - struct ncclProxyState*::ncclCollNet::regMrDmaBuf
    - assert
    - close
    - getHandleForAddressRangeFlags
    - CUCHECKGOTO
    - struct ncclProxyState*::ncclCollNet::regMr
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t recvProxyRegBuffer(struct ncclProxyConnection* connection,
      struct ncclProxyState* proxyState, void* reqBuff, int reqSize, void* respBuff,
      int respSize, int* done)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/src/transport/coll_net.cc:1371,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/coll_net.cc:1372,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:1373,1
    - Dst: struct ncclProxyState*::ncclCollNet::deregMr
      Src: /src/nccl/src/transport/coll_net.cc:1373,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 5
    argNames:
    - connection
    - proxyState
    - reqBuff
    - reqSize
    - done
    argTypes:
    - struct ncclProxyConnection*
    - struct ncclProxyState*
    - void*
    - int
    - int*
    assertStmts:
    - condition: (reqSize == sizeof(void*))
      pos:
        line_end: 1370
        line_start: 1370
        source_file: /src/nccl/src/transport/coll_net.cc
    constantsTouched: []
    func_position:
      end: 1376
      start: 1367
    functionDepth: 0
    functionLinenumber: 1367
    functionLinenumberEnd: 1376
    functionName: sendProxyDeregBuffer
    functionSourceFile: /src/nccl/src/transport/coll_net.cc
    functionUses: 0
    functionsReached:
    - struct ncclProxyState*::ncclCollNet::deregMr
    - assert
    - memcpy
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t sendProxyDeregBuffer(struct ncclProxyConnection* connection,
      struct ncclProxyState* proxyState, void* reqBuff, int reqSize, int* done)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/src/transport/coll_net.cc:1382,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/coll_net.cc:1383,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:1384,1
    - Dst: struct ncclProxyState*::ncclCollNet::deregMr
      Src: /src/nccl/src/transport/coll_net.cc:1384,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 5
    argNames:
    - connection
    - proxyState
    - reqBuff
    - reqSize
    - done
    argTypes:
    - struct ncclProxyConnection*
    - struct ncclProxyState*
    - void*
    - int
    - int*
    assertStmts:
    - condition: (reqSize == sizeof(void*))
      pos:
        line_end: 1381
        line_start: 1381
        source_file: /src/nccl/src/transport/coll_net.cc
    constantsTouched: []
    func_position:
      end: 1387
      start: 1378
    functionDepth: 0
    functionLinenumber: 1378
    functionLinenumberEnd: 1387
    functionName: recvProxyDeregBuffer
    functionSourceFile: /src/nccl/src/transport/coll_net.cc
    functionUses: 0
    functionsReached:
    - struct ncclProxyState*::ncclCollNet::deregMr
    - assert
    - memcpy
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t recvProxyDeregBuffer(struct ncclProxyConnection* connection,
      struct ncclProxyState* proxyState, void* reqBuff, int reqSize, int* done)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/coll_net.cc:1397,1
    - Dst: ncclTransportP2pConnect
      Src: /src/nccl/src/transport/coll_net.cc:1397,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/coll_net.cc:1399,1
    - Dst: ncclTransportP2pSetup
      Src: /src/nccl/src/transport/coll_net.cc:1399,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/coll_net.cc:1402,1
    - Dst: ncclTransportP2pConnect
      Src: /src/nccl/src/transport/coll_net.cc:1402,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/coll_net.cc:1404,1
    - Dst: ncclTransportP2pSetup
      Src: /src/nccl/src/transport/coll_net.cc:1404,1
    - Dst: snprintf
      Src: /src/nccl/src/transport/coll_net.cc:1409,1
    - Dst: strlen
      Src: /src/nccl/src/transport/coll_net.cc:1409,1
    - Dst: strlen
      Src: /src/nccl/src/transport/coll_net.cc:1409,1
    - Dst: INFO
      Src: /src/nccl/src/transport/coll_net.cc:1414,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 1
    argNames:
    - comm
    argTypes:
    - ncclComm_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1420
      start: 1389
    functionDepth: 5
    functionLinenumber: 1389
    functionLinenumberEnd: 1420
    functionName: ncclCollNetChainBufferSetup
    functionSourceFile: /src/nccl/src/transport/coll_net.cc
    functionUses: 2
    functionsReached:
    - ncclTransportP2pSetup
    - INFO
    - NCCLCHECKGOTO
    - strlen
    - ncclTransportP2pConnect
    - snprintf
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCollNetChainBufferSetup(ncclComm_t comm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/coll_net.cc:1430,1
    - Dst: ncclTransportP2pConnect
      Src: /src/nccl/src/transport/coll_net.cc:1430,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/coll_net.cc:1432,1
    - Dst: ncclTransportP2pSetup
      Src: /src/nccl/src/transport/coll_net.cc:1432,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/coll_net.cc:1436,1
    - Dst: ncclTransportP2pConnect
      Src: /src/nccl/src/transport/coll_net.cc:1436,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/coll_net.cc:1438,1
    - Dst: ncclTransportP2pSetup
      Src: /src/nccl/src/transport/coll_net.cc:1438,1
    - Dst: INFO
      Src: /src/nccl/src/transport/coll_net.cc:1440,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - comm
    argTypes:
    - ncclComm_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1446
      start: 1422
    functionDepth: 5
    functionLinenumber: 1422
    functionLinenumberEnd: 1446
    functionName: ncclCollNetDirectBufferSetup
    functionSourceFile: /src/nccl/src/transport/coll_net.cc
    functionUses: 2
    functionsReached:
    - ncclTransportP2pSetup
    - INFO
    - NCCLCHECKGOTO
    - ncclTransportP2pConnect
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCollNetDirectBufferSetup(ncclComm_t comm)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ncclMemoryStackAlloc
      Src: /src/nccl/src/transport/coll_net.cc:1452,1
    - Dst: ncclMemoryStackAlloc
      Src: /src/nccl/src/transport/coll_net.cc:1453,1
    - Dst: __builtin_popcountll
      Src: /src/nccl/src/transport/coll_net.cc:1461,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:1465,1
    - Dst: bootstrapAllGather
      Src: /src/nccl/src/transport/coll_net.cc:1465,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - comm
    argTypes:
    - ncclComm_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1470
      start: 1448
    functionDepth: 4
    functionLinenumber: 1448
    functionLinenumberEnd: 1470
    functionName: collNetInitRailRankMap
    functionSourceFile: /src/nccl/src/transport/coll_net.cc
    functionUses: 0
    functionsReached:
    - __builtin_popcountll
    - bootstrapAllGather
    - ncclMemoryStackAlloc
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t collNetInitRailRankMap(ncclComm_t comm)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/coll_net.cc:1488,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/coll_net.cc:1488,1
    - Dst: assert
      Src: /src/nccl/src/transport/coll_net.cc:1493,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/coll_net.cc:1507,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/coll_net.cc:1507,1
    - Dst: memset
      Src: /src/nccl/src/transport/coll_net.cc:1517,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/coll_net.cc:1529,1
    - Dst: bootstrapAllGather
      Src: /src/nccl/src/transport/coll_net.cc:1529,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/coll_net.cc:1546,1
    - Dst: initCollnetChannel
      Src: /src/nccl/src/transport/coll_net.cc:1546,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/coll_net.cc:1549,1
    - Dst: collNetInitRailRankMap
      Src: /src/nccl/src/transport/coll_net.cc:1549,1
    - Dst: WARN
      Src: /src/nccl/src/transport/coll_net.cc:1553,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/coll_net.cc:1561,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/coll_net.cc:1561,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/coll_net.cc:1565,1
    - Dst: collNetInitRailRankMap
      Src: /src/nccl/src/transport/coll_net.cc:1565,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/coll_net.cc:1569,1
    - Dst: initCollnetChannel
      Src: /src/nccl/src/transport/coll_net.cc:1569,1
    - Dst: ncclTransportCollNetSetup
      Src: /src/nccl/src/transport/coll_net.cc:1573,1
    - Dst: ncclTransportCollNetSetup
      Src: /src/nccl/src/transport/coll_net.cc:1574,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/coll_net.cc:1578,1
    - Dst: ncclTransportCollNetCheck
      Src: /src/nccl/src/transport/coll_net.cc:1578,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/coll_net.cc:1585,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/coll_net.cc:1594,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/coll_net.cc:1594,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/coll_net.cc:1600,1
    - Dst: collNetReduceSupport
      Src: /src/nccl/src/transport/coll_net.cc:1600,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/coll_net.cc:1606,1
    - Dst: bootstrapAllGather
      Src: /src/nccl/src/transport/coll_net.cc:1606,1
    - Dst: free
      Src: /src/nccl/src/transport/coll_net.cc:1616,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/coll_net.cc:1622,1
    - Dst: ncclTransportCollNetCheck
      Src: /src/nccl/src/transport/coll_net.cc:1622,1
    - Dst: TRACE
      Src: /src/nccl/src/transport/coll_net.cc:1623,1
    - Dst: free
      Src: /src/nccl/src/transport/coll_net.cc:1626,1
    - Dst: ncclTransportCollNetFree
      Src: /src/nccl/src/transport/coll_net.cc:1629,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 122
    argCount: 3
    argNames:
    - comm
    - parent
    - graphs
    argTypes:
    - ncclComm_t
    - ncclComm_t
    - struct ncclTopoGraph*[]
    assertStmts:
    - condition: (comm->rankToNode[head] == comm->node)
      pos:
        line_end: 1492
        line_start: 1492
        source_file: /src/nccl/src/transport/coll_net.cc
    constantsTouched: []
    func_position:
      end: 1632
      start: 1472
    functionDepth: 5
    functionLinenumber: 1472
    functionLinenumberEnd: 1632
    functionName: ncclCollNetSetup
    functionSourceFile: /src/nccl/src/transport/coll_net.cc
    functionUses: 1
    functionsReached:
    - WARN
    - TRACE
    - NCCLCHECKGOTO
    - collNetReduceSupport
    - memcpy
    - ncclTransportCollNetSetup
    - free
    - initCollnetChannel
    - collNetInitRailRankMap
    - ncclTransportCollNetFree
    - assert
    - ncclCalloc
    - ncclTransportCollNetCheck
    - bootstrapAllGather
    - NCCLCHECK
    - memset
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCollNetSetup(ncclComm_t comm, ncclComm_t parent, struct
      ncclTopoGraph* graphs[])
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/generic.cc:17,1
    - Dst: ncclTransportP2pConnect
      Src: /src/nccl/src/transport/generic.cc:17,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/generic.cc:19,1
    - Dst: ncclTransportP2pSetup
      Src: /src/nccl/src/transport/generic.cc:19,1
    - Dst: ncclParamLocalRegister
      Src: /src/nccl/src/transport/generic.cc:20,1
    - Dst: ncclParamGraphRegister
      Src: /src/nccl/src/transport/generic.cc:20,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/generic.cc:21,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/generic.cc:21,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/generic.cc:24,1
    - Dst: bootstrapAllGather
      Src: /src/nccl/src/transport/generic.cc:24,1
    - Dst: INFO
      Src: /src/nccl/src/transport/generic.cc:31,1
    - Dst: free
      Src: /src/nccl/src/transport/generic.cc:34,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 32
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 5
    functionDepth: 5
    functionLinenumber: 5
    functionLinenumberEnd: 38
    functionName: ncclTransportRingConnect
    functionSourceFile: /src/nccl/src/transport/generic.cc
    functionUses: 2
    functionsReached:
    - ncclTransportP2pSetup
    - ncclParamLocalRegister
    - INFO
    - NCCLCHECKGOTO
    - free
    - ncclParamGraphRegister
    - ncclCalloc
    - ncclTransportP2pConnect
    - bootstrapAllGather
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTransportRingConnect(struct ncclComm* comm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/generic.cc:46,1
    - Dst: ncclTransportP2pConnect
      Src: /src/nccl/src/transport/generic.cc:46,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/generic.cc:47,1
    - Dst: ncclTransportP2pConnect
      Src: /src/nccl/src/transport/generic.cc:47,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/generic.cc:49,1
    - Dst: ncclTransportP2pSetup
      Src: /src/nccl/src/transport/generic.cc:49,1
    - Dst: INFO
      Src: /src/nccl/src/transport/generic.cc:50,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 40
    functionDepth: 5
    functionLinenumber: 40
    functionLinenumberEnd: 56
    functionName: ncclTransportTreeConnect
    functionSourceFile: /src/nccl/src/transport/generic.cc
    functionUses: 2
    functionsReached:
    - ncclTransportP2pSetup
    - INFO
    - NCCLCHECKGOTO
    - ncclTransportP2pConnect
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTransportTreeConnect(struct ncclComm* comm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/generic.cc:65,1
    - Dst: ncclTransportP2pConnect
      Src: /src/nccl/src/transport/generic.cc:65,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/generic.cc:67,1
    - Dst: ncclTransportP2pSetup
      Src: /src/nccl/src/transport/generic.cc:67,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/generic.cc:69,1
    - Dst: ncclTransportP2pConnect
      Src: /src/nccl/src/transport/generic.cc:69,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/generic.cc:71,1
    - Dst: ncclTransportP2pSetup
      Src: /src/nccl/src/transport/generic.cc:71,1
    - Dst: INFO
      Src: /src/nccl/src/transport/generic.cc:73,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 58
    functionDepth: 5
    functionLinenumber: 58
    functionLinenumberEnd: 79
    functionName: ncclTransportPatConnect
    functionSourceFile: /src/nccl/src/transport/generic.cc
    functionUses: 2
    functionsReached:
    - ncclTransportP2pSetup
    - INFO
    - NCCLCHECKGOTO
    - ncclTransportP2pConnect
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTransportPatConnect(struct ncclComm* comm)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/nccl/src/transport/net_socket.cc:33,1
    - Dst: realpath
      Src: /src/nccl/src/transport/net_socket.cc:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - devName
    - pciPath
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 37
    functionName: ncclNetSocketGetPciPath
    functionSourceFile: /src/nccl/src/transport/net_socket.cc
    functionUses: 0
    functionsReached:
    - realpath
    - snprintf
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNetSocketGetPciPath(char* devName, char** pciPath)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/nccl/src/transport/net_socket.cc:44,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_socket.cc:48,1
    - Dst: ncclFindInterfaces
      Src: /src/nccl/src/transport/net_socket.cc:48,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_socket.cc:50,1
    - Dst: pthread_mutex_unlock
      Src: /src/nccl/src/transport/net_socket.cc:51,1
    - Dst: strcpy
      Src: /src/nccl/src/transport/net_socket.cc:60,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/net_socket.cc:61,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_socket.cc:62,1
    - Dst: ncclNetSocketGetPciPath
      Src: /src/nccl/src/transport/net_socket.cc:62,1
    - Dst: snprintf
      Src: /src/nccl/src/transport/net_socket.cc:63,1
    - Dst: strlen
      Src: /src/nccl/src/transport/net_socket.cc:63,1
    - Dst: strlen
      Src: /src/nccl/src/transport/net_socket.cc:63,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/transport/net_socket.cc:64,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_socket.cc:67,1
    - Dst: pthread_mutex_unlock
      Src: /src/nccl/src/transport/net_socket.cc:70,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 2
    argNames:
    - logFunction
    - profFunction
    argTypes:
    - ncclDebugLogger_t
    - ncclProfilerCallback_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 73
    functionName: ncclNetSocketInit
    functionSourceFile: /src/nccl/src/transport/net_socket.cc
    functionUses: 0
    functionsReached:
    - WARN
    - ncclSocketToString
    - INFO
    - memcpy
    - strlen
    - ncclFindInterfaces
    - pthread_mutex_unlock
    - pthread_mutex_lock
    - strcpy
    - ncclNetSocketGetPciPath
    - NCCLCHECK
    - snprintf
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNetSocketInit(ncclDebugLogger_t logFunction, ncclProfilerCallback_t
      profFunction)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ndev
    argTypes:
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 78
    functionName: ncclNetSocketDevices
    functionSourceFile: /src/nccl/src/transport/net_socket.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNetSocketDevices(int* ndev)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/nccl/src/transport/net_socket.cc:84,1
    - Dst: SYSCHECKSYNC
      Src: /src/nccl/src/transport/net_socket.cc:86,1
    - Dst: open
      Src: /src/nccl/src/transport/net_socket.cc:86,1
    - Dst: read
      Src: /src/nccl/src/transport/net_socket.cc:91,1
    - Dst: strtol
      Src: /src/nccl/src/transport/net_socket.cc:93,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_socket.cc:97,1
    - Dst: SYSCHECK
      Src: /src/nccl/src/transport/net_socket.cc:100,1
    - Dst: close
      Src: /src/nccl/src/transport/net_socket.cc:100,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 2
    argNames:
    - devName
    - speed
    argTypes:
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 102
    functionName: ncclNetSocketGetSpeed
    functionSourceFile: /src/nccl/src/transport/net_socket.cc
    functionUses: 0
    functionsReached:
    - INFO
    - open
    - read
    - SYSCHECK
    - close
    - SYSCHECKSYNC
    - strtol
    - snprintf
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNetSocketGetSpeed(char* devName, int* speed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_socket.cc:111,1
    - Dst: ncclNetSocketGetSpeed
      Src: /src/nccl/src/transport/net_socket.cc:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 2
    argNames:
    - dev
    - props
    argTypes:
    - int
    - ncclNetProperties_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 104
    functionDepth: 2
    functionLinenumber: 104
    functionLinenumberEnd: 120
    functionName: ncclNetSocketGetProperties
    functionSourceFile: /src/nccl/src/transport/net_socket.cc
    functionUses: 0
    functionsReached:
    - ncclNetSocketGetSpeed
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNetSocketGetProperties(int dev, ncclNetProperties_t*
      props)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ncclProfilerFunction
      Src: /src/nccl/src/transport/net_socket.cc:247,1
    - Dst: ncclSocketProgress
      Src: /src/nccl/src/transport/net_socket.cc:250,1
    - Dst: ncclProfilerFunction
      Src: /src/nccl/src/transport/net_socket.cc:253,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_socket.cc:256,1
    - Dst: ncclProfilerFunction
      Src: /src/nccl/src/transport/net_socket.cc:263,1
    - Dst: pthread_mutex_lock
      Src: /src/nccl/src/transport/net_socket.cc:272,1
    - Dst: pthread_cond_wait
      Src: /src/nccl/src/transport/net_socket.cc:274,1
    - Dst: pthread_mutex_unlock
      Src: /src/nccl/src/transport/net_socket.cc:276,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 42
    argCount: 1
    argNames:
    - args_
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 222
    functionDepth: 1
    functionLinenumber: 222
    functionLinenumberEnd: 280
    functionName: persistentSocketThread
    functionSourceFile: /src/nccl/src/transport/net_socket.cc
    functionUses: 0
    functionsReached:
    - WARN
    - pthread_cond_wait
    - pthread_mutex_unlock
    - pthread_mutex_lock
    - ncclProfilerFunction
    - ncclSocketProgress
    linkageType: ''
    returnType: void
    signature: void * persistentSocketThread(void *args_)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ncclParamSocketNsocksPerThread
      Src: /src/nccl/src/transport/net_socket.cc:284,1
    - Dst: ncclParamSocketNthreads
      Src: /src/nccl/src/transport/net_socket.cc:285,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_socket.cc:287,1
    - Dst: snprintf
      Src: /src/nccl/src/transport/net_socket.cc:296,1
    - Dst: realpath
      Src: /src/nccl/src/transport/net_socket.cc:299,1
    - Dst: open
      Src: /src/nccl/src/transport/net_socket.cc:300,1
    - Dst: free
      Src: /src/nccl/src/transport/net_socket.cc:301,1
    - Dst: TRACE
      Src: /src/nccl/src/transport/net_socket.cc:305,1
    - Dst: strerror
      Src: /src/nccl/src/transport/net_socket.cc:305,1
    - Dst: strncpy
      Src: /src/nccl/src/transport/net_socket.cc:309,1
    - Dst: SYSCHECKGOTO
      Src: /src/nccl/src/transport/net_socket.cc:310,1
    - Dst: read
      Src: /src/nccl/src/transport/net_socket.cc:310,1
    - Dst: strcmp
      Src: /src/nccl/src/transport/net_socket.cc:311,1
    - Dst: strcmp
      Src: /src/nccl/src/transport/net_socket.cc:314,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_socket.cc:325,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_socket.cc:330,1
    - Dst: close
      Src: /src/nccl/src/transport/net_socket.cc:332,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 50
    argCount: 3
    argNames:
    - dev
    - ns
    - nt
    argTypes:
    - int
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 282
    functionDepth: 1
    functionLinenumber: 282
    functionLinenumberEnd: 336
    functionName: ncclNetSocketGetNsockNthread
    functionSourceFile: /src/nccl/src/transport/net_socket.cc
    functionUses: 0
    functionsReached:
    - WARN
    - ncclParamSocketNsocksPerThread
    - ncclParamSocketNthreads
    - TRACE
    - INFO
    - open
    - strcmp
    - free
    - strncpy
    - read
    - close
    - strerror
    - SYSCHECKGOTO
    - realpath
    - snprintf
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNetSocketGetNsockNthread(int dev, int* ns, int* nt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/transport/net_socket.cc:340,1
    - Dst: memset
      Src: /src/nccl/src/transport/net_socket.cc:345,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_socket.cc:348,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/net_socket.cc:348,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_socket.cc:350,1
    - Dst: ncclSocketInit
      Src: /src/nccl/src/transport/net_socket.cc:350,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_socket.cc:351,1
    - Dst: ncclSocketListen
      Src: /src/nccl/src/transport/net_socket.cc:351,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_socket.cc:352,1
    - Dst: ncclSocketGetAddr
      Src: /src/nccl/src/transport/net_socket.cc:352,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_socket.cc:353,1
    - Dst: ncclNetSocketGetNsockNthread
      Src: /src/nccl/src/transport/net_socket.cc:353,1
    - Dst: ncclSocketClose
      Src: /src/nccl/src/transport/net_socket.cc:361,1
    - Dst: free
      Src: /src/nccl/src/transport/net_socket.cc:362,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 3
    argNames:
    - dev
    - opaqueHandle
    - listenComm
    argTypes:
    - int
    - void*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 338
    functionDepth: 2
    functionLinenumber: 338
    functionLinenumberEnd: 364
    functionName: ncclNetSocketListen
    functionSourceFile: /src/nccl/src/transport/net_socket.cc
    functionUses: 0
    functionsReached:
    - WARN
    - ncclNetSocketGetNsockNthread
    - NCCLCHECKGOTO
    - free
    - ncclSocketClose
    - ncclCalloc
    - ncclSocketGetAddr
    - ncclSocketInit
    - ncclSocketListen
    - NCCLCHECK
    - memset
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNetSocketListen(int dev, void* opaqueHandle, void**
      listenComm)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_socket.cc:383,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/net_socket.cc:383,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/transport/net_socket.cc:388,1
    - Dst: cudaGetDevice
      Src: /src/nccl/src/transport/net_socket.cc:388,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_socket.cc:391,1
    - Dst: ncclSocketInit
      Src: /src/nccl/src/transport/net_socket.cc:391,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_socket.cc:396,1
    - Dst: ncclSocketConnect
      Src: /src/nccl/src/transport/net_socket.cc:396,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_socket.cc:399,1
    - Dst: ncclSocketReady
      Src: /src/nccl/src/transport/net_socket.cc:399,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_socket.cc:405,1
    - Dst: ncclSocketProgress
      Src: /src/nccl/src/transport/net_socket.cc:405,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_socket.cc:408,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/net_socket.cc:408,1
    - Dst: ncclParamSocketInlineSize
      Src: /src/nccl/src/transport/net_socket.cc:408,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 39
    argCount: 4
    argNames:
    - dev
    - config
    - opaqueHandle
    - sendComm
    argTypes:
    - int
    - ncclNetCommConfig_t*
    - void*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 367
    functionDepth: 1
    functionLinenumber: 367
    functionLinenumberEnd: 411
    functionName: ncclNetSocketConnect
    functionSourceFile: /src/nccl/src/transport/net_socket.cc
    functionUses: 0
    functionsReached:
    - ncclSocketConnect
    - CUDACHECK
    - ncclSocketReady
    - ncclParamSocketInlineSize
    - ncclCalloc
    - ncclSocketInit
    - cudaGetDevice
    - ncclSocketProgress
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNetSocketConnect(int dev, ncclNetCommConfig_t* config,
      void* opaqueHandle, void** sendComm, ncclNetDeviceHandle_t** /*sendDevComm*/)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_socket.cc:425,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/net_socket.cc:425,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/transport/net_socket.cc:430,1
    - Dst: cudaGetDevice
      Src: /src/nccl/src/transport/net_socket.cc:430,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_socket.cc:434,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/net_socket.cc:434,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_socket.cc:435,1
    - Dst: ncclSocketInit
      Src: /src/nccl/src/transport/net_socket.cc:435,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_socket.cc:439,1
    - Dst: ncclSocketAccept
      Src: /src/nccl/src/transport/net_socket.cc:439,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_socket.cc:442,1
    - Dst: ncclSocketReady
      Src: /src/nccl/src/transport/net_socket.cc:442,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_socket.cc:448,1
    - Dst: ncclSocketProgress
      Src: /src/nccl/src/transport/net_socket.cc:448,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/net_socket.cc:452,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/net_socket.cc:454,1
    - Dst: free
      Src: /src/nccl/src/transport/net_socket.cc:455,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_socket.cc:457,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/net_socket.cc:457,1
    - Dst: ncclParamSocketInlineSize
      Src: /src/nccl/src/transport/net_socket.cc:457,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 44
    argCount: 2
    argNames:
    - listenComm
    - recvComm
    argTypes:
    - void*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 413
    functionDepth: 1
    functionLinenumber: 413
    functionLinenumberEnd: 466
    functionName: ncclNetSocketAccept
    functionSourceFile: /src/nccl/src/transport/net_socket.cc
    functionUses: 0
    functionsReached:
    - ncclSocketAccept
    - memcpy
    - free
    - CUDACHECK
    - ncclSocketReady
    - ncclParamSocketInlineSize
    - ncclCalloc
    - ncclSocketInit
    - cudaGetDevice
    - ncclSocketProgress
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNetSocketAccept(void* listenComm, void** recvComm,
      ncclNetDeviceHandle_t** /*recvDevComm*/)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncclParamSocketInlineSize
      Src: /src/nccl/src/transport/net_socket.cc:479,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_socket.cc:484,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 5
    argNames:
    - comm
    - op
    - data
    - size
    - req
    argTypes:
    - struct ncclNetSocketComm*
    - int
    - void*
    - int
    - struct ncclNetSocketRequest**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 468
    functionDepth: 1
    functionLinenumber: 468
    functionLinenumberEnd: 486
    functionName: ncclNetSocketGetRequest
    functionSourceFile: /src/nccl/src/transport/net_socket.cc
    functionUses: 0
    functionsReached:
    - WARN
    - ncclParamSocketInlineSize
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNetSocketGetRequest(struct ncclNetSocketComm* comm,
      int op, void* data, int size, struct ncclNetSocketRequest** req)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: DIVUP
      Src: /src/nccl/src/transport/net_socket.cc:497,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_socket.cc:498,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/net_socket.cc:498,1
    - Dst: pthread_mutex_init
      Src: /src/nccl/src/transport/net_socket.cc:504,1
    - Dst: pthread_cond_init
      Src: /src/nccl/src/transport/net_socket.cc:505,1
    - Dst: PTHREADCHECK
      Src: /src/nccl/src/transport/net_socket.cc:506,1
    - Dst: pthread_create
      Src: /src/nccl/src/transport/net_socket.cc:506,1
    - Dst: ncclSetThreadName
      Src: /src/nccl/src/transport/net_socket.cc:507,1
    - Dst: pthread_mutex_lock
      Src: /src/nccl/src/transport/net_socket.cc:520,1
    - Dst: pthread_cond_signal
      Src: /src/nccl/src/transport/net_socket.cc:522,1
    - Dst: pthread_mutex_unlock
      Src: /src/nccl/src/transport/net_socket.cc:523,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_socket.cc:526,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 30
    argCount: 6
    argNames:
    - comm
    - pInfo
    - op
    - data
    - size
    - req
    argTypes:
    - struct ncclNetSocketComm*
    - struct ncclProfilerInfo*
    - int
    - void*
    - int
    - struct ncclNetSocketTask**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 488
    functionDepth: 1
    functionLinenumber: 488
    functionLinenumberEnd: 528
    functionName: ncclNetSocketGetTask
    functionSourceFile: /src/nccl/src/transport/net_socket.cc
    functionUses: 0
    functionsReached:
    - WARN
    - ncclSetThreadName
    - DIVUP
    - PTHREADCHECK
    - pthread_mutex_unlock
    - pthread_mutex_lock
    - pthread_cond_signal
    - pthread_cond_init
    - pthread_mutex_init
    - ncclCalloc
    - pthread_create
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNetSocketGetTask(struct ncclNetSocketComm* comm, struct
      ncclProfilerInfo* pInfo, int op, void* data, int size, struct ncclNetSocketTask**
      req)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclParamSocketInlineSize
      Src: /src/nccl/src/transport/net_socket.cc:531,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dataSize
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 531
    functionDepth: 0
    functionLinenumber: 531
    functionLinenumberEnd: 531
    functionName: ncclNetSocketInlineSize
    functionSourceFile: /src/nccl/src/transport/net_socket.cc
    functionUses: 0
    functionsReached:
    - ncclParamSocketInlineSize
    linkageType: ''
    returnType: int
    signature: int ncclNetSocketInlineSize(int dataSize)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/transport/net_socket.cc:537,1
    - Dst: ncclNetSocketInlineSize
      Src: /src/nccl/src/transport/net_socket.cc:545,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/net_socket.cc:547,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/net_socket.cc:548,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_socket.cc:553,1
    - Dst: ncclSocketProgress
      Src: /src/nccl/src/transport/net_socket.cc:553,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/net_socket.cc:556,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_socket.cc:560,1
    - Dst: ncclSocketGetAddr
      Src: /src/nccl/src/transport/net_socket.cc:560,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_socket.cc:561,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/transport/net_socket.cc:563,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/net_socket.cc:568,1
    - Dst: ncclNetSocketInlineSize
      Src: /src/nccl/src/transport/net_socket.cc:571,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_socket.cc:576,1
    - Dst: ncclSocketProgress
      Src: /src/nccl/src/transport/net_socket.cc:576,1
    - Dst: ncclNetSocketInlineSize
      Src: /src/nccl/src/transport/net_socket.cc:581,1
    - Dst: std::max
      Src: /src/nccl/src/transport/net_socket.cc:585,1
    - Dst: ncclParamSocketMinTaskSize
      Src: /src/nccl/src/transport/net_socket.cc:585,1
    - Dst: DIVUP
      Src: /src/nccl/src/transport/net_socket.cc:585,1
    - Dst: min
      Src: /src/nccl/src/transport/net_socket.cc:587,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_socket.cc:588,1
    - Dst: ncclNetSocketGetTask
      Src: /src/nccl/src/transport/net_socket.cc:588,1
    - Dst: ncclProfilerFunction
      Src: /src/nccl/src/transport/net_socket.cc:619,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_socket.cc:623,1
    - Dst: ncclSocketProgress
      Src: /src/nccl/src/transport/net_socket.cc:623,1
    - Dst: ncclProfilerFunction
      Src: /src/nccl/src/transport/net_socket.cc:630,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 84
    argCount: 3
    argNames:
    - request
    - done
    - size
    argTypes:
    - void*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 637
      start: 533
    functionDepth: 2
    functionLinenumber: 533
    functionLinenumberEnd: 637
    functionName: ncclNetSocketTest
    functionSourceFile: /src/nccl/src/transport/net_socket.cc
    functionUses: 0
    functionsReached:
    - WARN
    - ncclSocketToString
    - min
    - memcpy
    - ncclNetSocketGetTask
    - std::max
    - DIVUP
    - ncclProfilerFunction
    - ncclSocketGetAddr
    - ncclNetSocketInlineSize
    - ncclSocketProgress
    - ncclParamSocketMinTaskSize
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNetSocketTest(void* request, int* done, int* size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - comm
    - data
    - size
    - type
    - mhandle
    argTypes:
    - void*
    - void*
    - size_t
    - int
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 641
      start: 639
    functionDepth: 0
    functionLinenumber: 639
    functionLinenumberEnd: 641
    functionName: ncclNetSocketRegMr
    functionSourceFile: /src/nccl/src/transport/net_socket.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNetSocketRegMr(void* comm, void* data, size_t size,
      int type, void** mhandle)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - comm
    - mhandle
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 642
    functionDepth: 0
    functionLinenumber: 642
    functionLinenumberEnd: 642
    functionName: ncclNetSocketDeregMr
    functionSourceFile: /src/nccl/src/transport/net_socket.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNetSocketDeregMr(void* comm, void* mhandle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_socket.cc:646,1
    - Dst: ncclNetSocketGetRequest
      Src: /src/nccl/src/transport/net_socket.cc:646,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 7
    argNames:
    - sendComm
    - data
    - size
    - tag
    - mhandle
    - phandle
    - request
    argTypes:
    - void*
    - void*
    - size_t
    - int
    - void*
    - void*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 644
    functionDepth: 2
    functionLinenumber: 644
    functionLinenumberEnd: 653
    functionName: ncclNetSocketIsend
    functionSourceFile: /src/nccl/src/transport/net_socket.cc
    functionUses: 0
    functionsReached:
    - ncclNetSocketGetRequest
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNetSocketIsend(void* sendComm, void* data, size_t
      size, int tag, void* mhandle, void* phandle, void** request)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_socket.cc:658,1
    - Dst: ncclNetSocketGetRequest
      Src: /src/nccl/src/transport/net_socket.cc:658,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 8
    argNames:
    - recvComm
    - n
    - data
    - sizes
    - tags
    - mhandles
    - phandles
    - request
    argTypes:
    - void*
    - int
    - void**
    - size_t*
    - int*
    - void**
    - void**
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 655
    functionDepth: 2
    functionLinenumber: 655
    functionLinenumberEnd: 665
    functionName: ncclNetSocketIrecv
    functionSourceFile: /src/nccl/src/transport/net_socket.cc
    functionUses: 0
    functionsReached:
    - ncclNetSocketGetRequest
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNetSocketIrecv(void* recvComm, int n, void** data,
      size_t* sizes, int* tags, void** mhandles, void** phandles, void** request)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - recvComm
    - n
    - data
    - sizes
    - mhandles
    - request
    argTypes:
    - void*
    - int
    - void**
    - int*
    - void**
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 667
    functionDepth: 0
    functionLinenumber: 667
    functionLinenumberEnd: 670
    functionName: ncclNetSocketIflush
    functionSourceFile: /src/nccl/src/transport/net_socket.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNetSocketIflush(void* recvComm, int n, void** data,
      int* sizes, void** mhandles, void** request)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_socket.cc:676,1
    - Dst: ncclSocketReady
      Src: /src/nccl/src/transport/net_socket.cc:676,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_socket.cc:677,1
    - Dst: ncclSocketClose
      Src: /src/nccl/src/transport/net_socket.cc:677,1
    - Dst: free
      Src: /src/nccl/src/transport/net_socket.cc:678,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - opaqueComm
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 681
      start: 672
    functionDepth: 1
    functionLinenumber: 672
    functionLinenumberEnd: 681
    functionName: ncclNetSocketCloseListen
    functionSourceFile: /src/nccl/src/transport/net_socket.cc
    functionUses: 0
    functionsReached:
    - ncclSocketReady
    - ncclSocketClose
    - NCCLCHECK
    - free
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNetSocketCloseListen(void* opaqueComm)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/nccl/src/transport/net_socket.cc:689,1
    - Dst: pthread_cond_signal
      Src: /src/nccl/src/transport/net_socket.cc:691,1
    - Dst: pthread_mutex_unlock
      Src: /src/nccl/src/transport/net_socket.cc:692,1
    - Dst: PTHREADCHECK
      Src: /src/nccl/src/transport/net_socket.cc:693,1
    - Dst: pthread_join
      Src: /src/nccl/src/transport/net_socket.cc:693,1
    - Dst: free
      Src: /src/nccl/src/transport/net_socket.cc:695,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_socket.cc:698,1
    - Dst: ncclSocketReady
      Src: /src/nccl/src/transport/net_socket.cc:698,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_socket.cc:699,1
    - Dst: ncclSocketClose
      Src: /src/nccl/src/transport/net_socket.cc:699,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_socket.cc:701,1
    - Dst: ncclSocketReady
      Src: /src/nccl/src/transport/net_socket.cc:701,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_socket.cc:702,1
    - Dst: ncclSocketClose
      Src: /src/nccl/src/transport/net_socket.cc:702,1
    - Dst: free
      Src: /src/nccl/src/transport/net_socket.cc:704,1
    - Dst: free
      Src: /src/nccl/src/transport/net_socket.cc:705,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 1
    argNames:
    - opaqueComm
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 708
      start: 683
    functionDepth: 1
    functionLinenumber: 683
    functionLinenumberEnd: 708
    functionName: ncclNetSocketClose
    functionSourceFile: /src/nccl/src/transport/net_socket.cc
    functionUses: 0
    functionsReached:
    - free
    - pthread_join
    - PTHREADCHECK
    - pthread_mutex_unlock
    - pthread_mutex_lock
    - ncclSocketReady
    - ncclSocketClose
    - pthread_cond_signal
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNetSocketClose(void* opaqueComm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - mapStruct
    - ','
    - offsetName
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 37
    functionName: NCCL_NET_MAP_OFFSET_BANK
    functionSourceFile: /src/nccl/src/transport/net.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NCCL_NET_MAP_OFFSET_BANK(mapStruct, offsetName)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - mapStruct
    - ','
    - offsetName
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 40
    functionName: NCCL_NET_MAP_OFFSET_NULL
    functionSourceFile: /src/nccl/src/transport/net.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NCCL_NET_MAP_OFFSET_NULL(mapStruct, offsetName)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - mapStruct
    - ','
    - cpuOrGpu
    - ','
    - offsetName
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: NCCL_NET_MAP_GET_POINTER
    functionSourceFile: /src/nccl/src/transport/net.cc
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NCCL_NET_MAP_GET_POINTER(mapStruct, cpuOrGpu, offsetName)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - mapStruct
    - ','
    - offsetName
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 47
    functionName: NCCL_NET_MAP_DEV_MEM
    functionSourceFile: /src/nccl/src/transport/net.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NCCL_NET_MAP_DEV_MEM(mapStruct, offsetName)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - mapStruct
    - ','
    - shared
    - ','
    - dev
    - ','
    - memSize
    - ','
    - offsetName
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 62
    functionName: NCCL_NET_MAP_ADD_POINTER
    functionSourceFile: /src/nccl/src/transport/net.cc
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NCCL_NET_MAP_ADD_POINTER(mapStruct, shared, dev, memSize, offsetName)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:158,1
    - Dst: ncclTopoCheckNet
      Src: /src/nccl/src/transport/net.cc:158,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - ret
    - comm
    - graph
    - info1
    - info2
    argTypes:
    - int*
    - struct ncclComm*
    - struct ncclTopoGraph*
    - struct ncclPeerInfo*
    - struct ncclPeerInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 161
    functionName: canConnect
    functionSourceFile: /src/nccl/src/transport/net.cc
    functionUses: 1
    functionsReached:
    - ncclTopoCheckNet
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t canConnect(int* ret, struct ncclComm* comm, struct ncclTopoGraph*
      graph, struct ncclPeerInfo* info1, struct ncclPeerInfo* info2)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - useGdr
    argTypes:
    - ncclTopoGdrMode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 192
    functionName: getHandleForAddressRangeFlags
    functionSourceFile: /src/nccl/src/transport/net.cc
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int getHandleForAddressRangeFlags(ncclTopoGdrMode useGdr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ncclParamNetSharedBuffers
      Src: /src/nccl/src/transport/net.cc:199,1
    - Dst: ncclParamNetSharedBuffers
      Src: /src/nccl/src/transport/net.cc:199,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:205,1
    - Dst: ncclTopoGetNetDev
      Src: /src/nccl/src/transport/net.cc:205,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:206,1
    - Dst: ncclTopoCheckGdr
      Src: /src/nccl/src/transport/net.cc:206,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:211,1
    - Dst: ncclProxyConnect
      Src: /src/nccl/src/transport/net.cc:211,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:215,1
    - Dst: ncclProxyCallBlocking
      Src: /src/nccl/src/transport/net.cc:215,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net.cc:218,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net.cc:222,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/net.cc:228,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 8
    argNames:
    - comm
    - graph
    - myInfo
    - peerInfo
    - connectInfo
    - send
    - channelId
    - connIndex
    argTypes:
    - struct ncclComm*
    - struct ncclTopoGraph*
    - struct ncclPeerInfo*
    - struct ncclPeerInfo*
    - struct ncclConnect*
    - struct ncclConnector*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 196
    functionDepth: 4
    functionLinenumber: 196
    functionLinenumberEnd: 230
    functionName: sendSetup
    functionSourceFile: /src/nccl/src/transport/net.cc
    functionUses: 0
    functionsReached:
    - ncclProxyCallBlocking
    - INFO
    - ncclParamNetSharedBuffers
    - ncclProxyConnect
    - memcpy
    - ncclTopoGetNetDev
    - NCCLCHECK
    - ncclTopoCheckGdr
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t sendSetup(struct ncclComm* comm, struct ncclTopoGraph*
      graph, struct ncclPeerInfo* myInfo, struct ncclPeerInfo* peerInfo, struct ncclConnect*
      connectInfo, struct ncclConnector* send, int channelId, int connIndex)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ncclParamNetSharedBuffers
      Src: /src/nccl/src/transport/net.cc:241,1
    - Dst: ncclParamNetSharedBuffers
      Src: /src/nccl/src/transport/net.cc:241,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:248,1
    - Dst: ncclTopoGetNetDev
      Src: /src/nccl/src/transport/net.cc:248,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:249,1
    - Dst: ncclTopoCheckGdr
      Src: /src/nccl/src/transport/net.cc:249,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:254,1
    - Dst: ncclTopoNeedFlush
      Src: /src/nccl/src/transport/net.cc:254,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:257,1
    - Dst: ncclProxyConnect
      Src: /src/nccl/src/transport/net.cc:257,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:262,1
    - Dst: ncclProxyCallBlocking
      Src: /src/nccl/src/transport/net.cc:262,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/net.cc:263,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net.cc:264,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 8
    argNames:
    - comm
    - graph
    - myInfo
    - peerInfo
    - connectInfo
    - recv
    - channelId
    - connIndex
    argTypes:
    - struct ncclComm*
    - struct ncclTopoGraph*
    - struct ncclPeerInfo*
    - struct ncclPeerInfo*
    - struct ncclConnect*
    - struct ncclConnector*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 238
    functionDepth: 4
    functionLinenumber: 238
    functionLinenumberEnd: 268
    functionName: recvSetup
    functionSourceFile: /src/nccl/src/transport/net.cc
    functionUses: 0
    functionsReached:
    - ncclProxyCallBlocking
    - INFO
    - ncclParamNetSharedBuffers
    - ncclProxyConnect
    - memcpy
    - ncclTopoNeedFlush
    - ncclTopoGetNetDev
    - NCCLCHECK
    - ncclTopoCheckGdr
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t recvSetup(struct ncclComm* comm, struct ncclTopoGraph*
      graph, struct ncclPeerInfo* myInfo, struct ncclPeerInfo* peerInfo, struct ncclConnect*
      connectInfo, struct ncclConnector* recv, int channelId, int connIndex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:271,1
    - Dst: ncclShmImportShareableBuffer
      Src: /src/nccl/src/transport/net.cc:271,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - comm
    - proxyConn
    - mem
    argTypes:
    - struct ncclComm*
    - struct ncclProxyConnector*
    - struct connectMapMem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 270
    functionDepth: 1
    functionLinenumber: 270
    functionLinenumberEnd: 273
    functionName: netMapShm
    functionSourceFile: /src/nccl/src/transport/net.cc
    functionUses: 0
    functionsReached:
    - ncclShmImportShareableBuffer
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t netMapShm(struct ncclComm *comm, struct ncclProxyConnector*
      proxyConn, struct connectMapMem* mem)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:276,1
    - Dst: ncclShmAllocateShareableBuffer
      Src: /src/nccl/src/transport/net.cc:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - proxyState
    - mem
    argTypes:
    - struct ncclProxyState*
    - struct connectMapMem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 278
    functionName: netCreateShm
    functionSourceFile: /src/nccl/src/transport/net.cc
    functionUses: 0
    functionsReached:
    - ncclShmAllocateShareableBuffer
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t netCreateShm(struct ncclProxyState* proxyState, struct
      connectMapMem* mem)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nccl/src/transport/net.cc:281,1
    - Dst: printf
      Src: /src/nccl/src/transport/net.cc:283,1
    - Dst: printf
      Src: /src/nccl/src/transport/net.cc:285,1
    - Dst: printf
      Src: /src/nccl/src/transport/net.cc:287,1
    - Dst: printf
      Src: /src/nccl/src/transport/net.cc:289,1
    - Dst: printf
      Src: /src/nccl/src/transport/net.cc:290,1
    - Dst: NCCL_NET_MAP_OFFSET_BANK
      Src: /src/nccl/src/transport/net.cc:292,1
    - Dst: NCCL_NET_MAP_GET_POINTER
      Src: /src/nccl/src/transport/net.cc:293,1
    - Dst: NCCL_NET_MAP_GET_POINTER
      Src: /src/nccl/src/transport/net.cc:293,1
    - Dst: printf
      Src: /src/nccl/src/transport/net.cc:294,1
    - Dst: NCCL_NET_MAP_OFFSET_BANK
      Src: /src/nccl/src/transport/net.cc:296,1
    - Dst: NCCL_NET_MAP_GET_POINTER
      Src: /src/nccl/src/transport/net.cc:297,1
    - Dst: NCCL_NET_MAP_GET_POINTER
      Src: /src/nccl/src/transport/net.cc:297,1
    - Dst: printf
      Src: /src/nccl/src/transport/net.cc:299,1
    - Dst: NCCL_NET_MAP_OFFSET_BANK
      Src: /src/nccl/src/transport/net.cc:301,1
    - Dst: NCCL_NET_MAP_GET_POINTER
      Src: /src/nccl/src/transport/net.cc:302,1
    - Dst: NCCL_NET_MAP_GET_POINTER
      Src: /src/nccl/src/transport/net.cc:302,1
    - Dst: printf
      Src: /src/nccl/src/transport/net.cc:304,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - map
    argTypes:
    - struct connectMap*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 306
    functionName: netDumpMap
    functionSourceFile: /src/nccl/src/transport/net.cc
    functionUses: 0
    functionsReached:
    - NCCL_NET_MAP_OFFSET_BANK
    - printf
    - NCCL_NET_MAP_GET_POINTER
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t netDumpMap(struct connectMap* map)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nccl/src/transport/net.cc:322,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:328,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/net.cc:328,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net.cc:331,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/net.cc:333,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:335,1
    - Dst: ncclProxyCallAsync
      Src: /src/nccl/src/transport/net.cc:335,1
    - Dst: ncclPollProxyResponse
      Src: /src/nccl/src/transport/net.cc:341,1
    - Dst: free
      Src: /src/nccl/src/transport/net.cc:344,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net.cc:349,1
    - Dst: ncclCuMemEnable
      Src: /src/nccl/src/transport/net.cc:351,1
    - Dst: cudaDeviceEnablePeerAccess
      Src: /src/nccl/src/transport/net.cc:354,1
    - Dst: cudaGetLastError
      Src: /src/nccl/src/transport/net.cc:356,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net.cc:358,1
    - Dst: cudaGetErrorString
      Src: /src/nccl/src/transport/net.cc:358,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:363,1
    - Dst: netMapShm
      Src: /src/nccl/src/transport/net.cc:363,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:366,1
    - Dst: ncclP2pImportShareableBuffer
      Src: /src/nccl/src/transport/net.cc:366,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:376,1
    - Dst: ncclP2pImportShareableBuffer
      Src: /src/nccl/src/transport/net.cc:376,1
    - Dst: NCCL_NET_MAP_GET_POINTER
      Src: /src/nccl/src/transport/net.cc:387,1
    - Dst: NCCL_NET_MAP_GET_POINTER
      Src: /src/nccl/src/transport/net.cc:391,1
    - Dst: NCCL_NET_MAP_GET_POINTER
      Src: /src/nccl/src/transport/net.cc:402,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 77
    argCount: 5
    argNames:
    - comm
    - connectInfo
    - nranks
    - rank
    - send
    argTypes:
    - struct ncclComm*
    - struct ncclConnect*
    - int
    - int
    - struct ncclConnector*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 317
    functionDepth: 3
    functionLinenumber: 317
    functionLinenumberEnd: 422
    functionName: sendConnect
    functionSourceFile: /src/nccl/src/transport/net.cc
    functionUses: 0
    functionsReached:
    - INFO
    - WARN
    - memcpy
    - free
    - cudaGetLastError
    - ncclPollProxyResponse
    - netMapShm
    - cudaDeviceEnablePeerAccess
    - ncclCalloc
    - ncclP2pImportShareableBuffer
    - ncclCuMemEnable
    - NCCL_NET_MAP_GET_POINTER
    - cudaGetErrorString
    - NCCLCHECK
    - ncclProxyCallAsync
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t sendConnect(struct ncclComm* comm, struct ncclConnect*
      connectInfo, int nranks, int rank, struct ncclConnector* send)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nccl/src/transport/net.cc:433,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:437,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/net.cc:437,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net.cc:441,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:445,1
    - Dst: ncclProxyCallAsync
      Src: /src/nccl/src/transport/net.cc:445,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:451,1
    - Dst: ncclPollProxyResponse
      Src: /src/nccl/src/transport/net.cc:451,1
    - Dst: free
      Src: /src/nccl/src/transport/net.cc:454,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net.cc:459,1
    - Dst: NCCL_NET_MAP_GET_POINTER
      Src: /src/nccl/src/transport/net.cc:462,1
    - Dst: NCCL_NET_MAP_GET_POINTER
      Src: /src/nccl/src/transport/net.cc:465,1
    - Dst: NCCL_NET_MAP_GET_POINTER
      Src: /src/nccl/src/transport/net.cc:476,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 47
    argCount: 5
    argNames:
    - comm
    - connectInfo
    - nranks
    - rank
    - recv
    argTypes:
    - struct ncclComm*
    - struct ncclConnect*
    - int
    - int
    - struct ncclConnector*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 428
    functionDepth: 3
    functionLinenumber: 428
    functionLinenumberEnd: 496
    functionName: recvConnect
    functionSourceFile: /src/nccl/src/transport/net.cc
    functionUses: 0
    functionsReached:
    - INFO
    - memcpy
    - free
    - ncclPollProxyResponse
    - ncclCalloc
    - NCCL_NET_MAP_GET_POINTER
    - NCCLCHECK
    - ncclProxyCallAsync
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t recvConnect(struct ncclComm* comm, struct ncclConnect*
      connectInfo, int nranks, int rank, struct ncclConnector* recv)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CUDACHECK
      Src: /src/nccl/src/transport/net.cc:502,1
    - Dst: cudaGetDevice
      Src: /src/nccl/src/transport/net.cc:502,1
    - Dst: ncclCuMemEnable
      Src: /src/nccl/src/transport/net.cc:504,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:506,1
    - Dst: ncclP2pFreeShareableBuffer
      Src: /src/nccl/src/transport/net.cc:506,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:507,1
    - Dst: ncclCuMemFree
      Src: /src/nccl/src/transport/net.cc:507,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/transport/net.cc:510,1
    - Dst: cudaIpcCloseMemHandle
      Src: /src/nccl/src/transport/net.cc:510,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:514,1
    - Dst: ncclShmIpcClose
      Src: /src/nccl/src/transport/net.cc:514,1
    - Dst: free
      Src: /src/nccl/src/transport/net.cc:516,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - send
    argTypes:
    - struct ncclConnector*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 498
    functionDepth: 1
    functionLinenumber: 498
    functionLinenumberEnd: 520
    functionName: sendFree
    functionSourceFile: /src/nccl/src/transport/net.cc
    functionUses: 0
    functionsReached:
    - ncclCuMemFree
    - free
    - CUDACHECK
    - cudaIpcCloseMemHandle
    - ncclShmIpcClose
    - ncclP2pFreeShareableBuffer
    - ncclCuMemEnable
    - cudaGetDevice
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t sendFree(struct ncclConnector* send)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/nccl/src/transport/net.cc:523,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - recv
    argTypes:
    - struct ncclConnector*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 522
    functionDepth: 0
    functionLinenumber: 522
    functionLinenumberEnd: 525
    functionName: recvFree
    functionSourceFile: /src/nccl/src/transport/net.cc
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t recvFree(struct ncclConnector* recv)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/transport/net.cc:531,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:536,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/net.cc:536,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:540,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/net.cc:540,1
    - Dst: ncclCuMemEnable
      Src: /src/nccl/src/transport/net.cc:552,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:553,1
    - Dst: ncclP2pAllocateShareableBuffer
      Src: /src/nccl/src/transport/net.cc:553,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:555,1
    - Dst: ncclCudaCalloc
      Src: /src/nccl/src/transport/net.cc:555,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:559,1
    - Dst: ncclCudaHostCalloc
      Src: /src/nccl/src/transport/net.cc:559,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/net.cc:563,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 34
    argCount: 10
    argNames:
    - proxyState
    - cuda
    - tpLocalRank
    - type
    - sameProcess
    - nChannels
    - gpuPtr
    - cpuPtr
    - size
    - ipcDesc
    argTypes:
    - struct ncclProxyState*
    - int
    - int
    - int
    - int
    - int
    - char**
    - char**
    - int*
    - ncclIpcDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 528
    functionDepth: 1
    functionLinenumber: 528
    functionLinenumberEnd: 565
    functionName: sharedNetBuffersInit
    functionSourceFile: /src/nccl/src/transport/net.cc
    functionUses: 0
    functionsReached:
    - WARN
    - ncclCudaHostCalloc
    - ncclCudaCalloc
    - memcpy
    - ncclP2pAllocateShareableBuffer
    - ncclCalloc
    - ncclCuMemEnable
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t sharedNetBuffersInit(struct ncclProxyState* proxyState,
      int cuda, int tpLocalRank, int type, int sameProcess,\n    int nChannels, char**
      gpuPtr, char** cpuPtr, int* size, ncclIpcDesc *ipcDesc)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - proxyState
    - channel
    - slot
    - offset
    - size
    argTypes:
    - struct ncclProxyState*
    - int
    - int
    - int*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 567
    functionDepth: 0
    functionLinenumber: 567
    functionLinenumberEnd: 573
    functionName: sharedBuffersGet
    functionSourceFile: /src/nccl/src/transport/net.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t sharedBuffersGet(struct ncclProxyState* proxyState, int
      channel, int slot, int* offset, size_t* size)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:576,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:578,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:580,1
    - Dst: ncclAtomicRefCountDecrement
      Src: /src/nccl/src/transport/net.cc:581,1
    - Dst: ncclCuMemEnable
      Src: /src/nccl/src/transport/net.cc:583,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:584,1
    - Dst: ncclP2pFreeShareableBuffer
      Src: /src/nccl/src/transport/net.cc:584,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:586,1
    - Dst: ncclCudaFree
      Src: /src/nccl/src/transport/net.cc:586,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:588,1
    - Dst: ncclCudaHostFree
      Src: /src/nccl/src/transport/net.cc:588,1
    - Dst: free
      Src: /src/nccl/src/transport/net.cc:593,1
    - Dst: free
      Src: /src/nccl/src/transport/net.cc:599,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 28
    argCount: 4
    argNames:
    - proxyState
    - tpLocalRank
    - type
    - connection
    argTypes:
    - struct ncclProxyState*
    - int
    - int
    - struct ncclProxyConnection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 575
    functionDepth: 1
    functionLinenumber: 575
    functionLinenumberEnd: 602
    functionName: sharedNetBuffersDestroy
    functionSourceFile: /src/nccl/src/transport/net.cc
    functionUses: 0
    functionsReached:
    - ncclAtomicRefCountDecrement
    - free
    - ncclP2pFreeShareableBuffer
    - ncclCudaFree
    - ncclCudaHostFree
    - ncclCuMemEnable
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t sharedNetBuffersDestroy(struct ncclProxyState* proxyState,
      int tpLocalRank, int type, struct ncclProxyConnection* connection)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:605,1
    - Dst: sharedNetBuffersInit
      Src: /src/nccl/src/transport/net.cc:605,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - connection
    - proxyState
    - nChannels
    argTypes:
    - struct ncclProxyConnection*
    - struct ncclProxyState*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 604
    functionDepth: 2
    functionLinenumber: 604
    functionLinenumberEnd: 607
    functionName: proxySharedInit
    functionSourceFile: /src/nccl/src/transport/net.cc
    functionUses: 1
    functionsReached:
    - sharedNetBuffersInit
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t proxySharedInit(struct ncclProxyConnection* connection,
      struct ncclProxyState* proxyState, int nChannels)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:614,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/net.cc:614,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:626,1
    - Dst: struct ncclProxyState*::ncclNet::getProperties
      Src: /src/nccl/src/transport/net.cc:626,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net.cc:636,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 7
    argNames:
    - connection
    - proxyState
    - reqBuff
    - reqSize
    - respBuff
    - respSize
    - done
    argTypes:
    - struct ncclProxyConnection*
    - struct ncclProxyState*
    - void*
    - int
    - void*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 609
    functionDepth: 1
    functionLinenumber: 609
    functionLinenumberEnd: 645
    functionName: sendProxySetup
    functionSourceFile: /src/nccl/src/transport/net.cc
    functionUses: 0
    functionsReached:
    - WARN
    - ncclCalloc
    - NCCLCHECK
    - struct ncclProxyState*::ncclNet::getProperties
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t sendProxySetup(struct ncclProxyConnection* connection,
      struct ncclProxyState* proxyState, void* reqBuff, int reqSize, void* respBuff,
      int respSize, int* done)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:652,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/net.cc:652,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:665,1
    - Dst: struct ncclProxyState*::ncclNet::getProperties
      Src: /src/nccl/src/transport/net.cc:665,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net.cc:674,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:680,1
    - Dst: struct ncclProxyState*::ncclNet::listen
      Src: /src/nccl/src/transport/net.cc:680,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 7
    argNames:
    - connection
    - proxyState
    - reqBuff
    - reqSize
    - respBuff
    - respSize
    - done
    argTypes:
    - struct ncclProxyConnection*
    - struct ncclProxyState*
    - void*
    - int
    - void*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 647
    functionDepth: 1
    functionLinenumber: 647
    functionLinenumberEnd: 684
    functionName: recvProxySetup
    functionSourceFile: /src/nccl/src/transport/net.cc
    functionUses: 0
    functionsReached:
    - WARN
    - struct ncclProxyState*::ncclNet::listen
    - struct ncclProxyState*::ncclNet::getProperties
    - ncclCalloc
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t recvProxySetup(struct ncclProxyConnection* connection,
      struct ncclProxyState* proxyState, void* reqBuff, int reqSize, void* respBuff,
      int respSize, int* done)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:698,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/net.cc:698,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 4
    argNames:
    - type
    - version
    - isRecv
    - handle
    argTypes:
    - ncclNetDeviceType
    - int
    - bool
    - ncclNetDeviceHandle_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 687
    functionDepth: 1
    functionLinenumber: 687
    functionLinenumberEnd: 706
    functionName: ncclNetGetDeviceHandle
    functionSourceFile: /src/nccl/src/transport/net.cc
    functionUses: 0
    functionsReached:
    - ncclCalloc
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNetGetDeviceHandle(ncclNetDeviceType type, int version,
      bool isRecv, ncclNetDeviceHandle_t** handle)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:715,1
    - Dst: ncclNetGetDeviceHandle
      Src: /src/nccl/src/transport/net.cc:715,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:720,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/net.cc:720,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:724,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/net.cc:724,1
    - Dst: ncclParamNetSharedComms
      Src: /src/nccl/src/transport/net.cc:728,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:731,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/net.cc:731,1
    - Dst: struct ncclProxyState*::ncclNet::connect
      Src: /src/nccl/src/transport/net.cc:739,1
    - Dst: struct ncclProxyState*::ncclNet::connect
      Src: /src/nccl/src/transport/net.cc:745,1
    - Dst: struct ncclProxyState*::ncclNet::connect
      Src: /src/nccl/src/transport/net.cc:749,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:753,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/transport/net.cc:771,1
    - Dst: cudaGetDevice
      Src: /src/nccl/src/transport/net.cc:771,1
    - Dst: NCCL_NET_MAP_ADD_POINTER
      Src: /src/nccl/src/transport/net.cc:775,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:782,1
    - Dst: sharedNetBuffersInit
      Src: /src/nccl/src/transport/net.cc:782,1
    - Dst: NCCL_NET_MAP_ADD_POINTER
      Src: /src/nccl/src/transport/net.cc:788,1
    - Dst: NCCL_NET_MAP_ADD_POINTER
      Src: /src/nccl/src/transport/net.cc:792,1
    - Dst: NCCL_NET_MAP_ADD_POINTER
      Src: /src/nccl/src/transport/net.cc:795,1
    - Dst: NCCL_NET_MAP_ADD_POINTER
      Src: /src/nccl/src/transport/net.cc:796,1
    - Dst: ncclCuMemEnable
      Src: /src/nccl/src/transport/net.cc:800,1
    - Dst: ALIGN_SIZE
      Src: /src/nccl/src/transport/net.cc:801,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:802,1
    - Dst: ncclP2pAllocateShareableBuffer
      Src: /src/nccl/src/transport/net.cc:802,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:805,1
    - Dst: ncclCudaCalloc
      Src: /src/nccl/src/transport/net.cc:805,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:811,1
    - Dst: ncclCudaHostCalloc
      Src: /src/nccl/src/transport/net.cc:811,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:814,1
    - Dst: netCreateShm
      Src: /src/nccl/src/transport/net.cc:814,1
    - Dst: NCCL_NET_MAP_GET_POINTER
      Src: /src/nccl/src/transport/net.cc:815,1
    - Dst: NCCL_NET_MAP_GET_POINTER
      Src: /src/nccl/src/transport/net.cc:816,1
    - Dst: memset
      Src: /src/nccl/src/transport/net.cc:817,1
    - Dst: memset
      Src: /src/nccl/src/transport/net.cc:818,1
    - Dst: ncclParamGdrCopySyncEnable
      Src: /src/nccl/src/transport/net.cc:820,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:822,1
    - Dst: ncclGdrCudaCalloc
      Src: /src/nccl/src/transport/net.cc:822,1
    - Dst: NCCL_NET_MAP_GET_POINTER
      Src: /src/nccl/src/transport/net.cc:831,1
    - Dst: NCCL_NET_MAP_GET_POINTER
      Src: /src/nccl/src/transport/net.cc:832,1
    - Dst: NCCL_NET_MAP_GET_POINTER
      Src: /src/nccl/src/transport/net.cc:840,1
    - Dst: NCCL_NET_MAP_DEV_MEM
      Src: /src/nccl/src/transport/net.cc:844,1
    - Dst: CUCHECK
      Src: /src/nccl/src/transport/net.cc:847,1
    - Dst: cuMemGetHandleForAddressRange
      Src: /src/nccl/src/transport/net.cc:847,1
    - Dst: getHandleForAddressRangeFlags
      Src: /src/nccl/src/transport/net.cc:847,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:848,1
    - Dst: struct ncclProxyState*::ncclNet::regMrDmaBuf
      Src: /src/nccl/src/transport/net.cc:848,1
    - Dst: close
      Src: /src/nccl/src/transport/net.cc:849,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:853,1
    - Dst: struct ncclProxyState*::ncclNet::regMr
      Src: /src/nccl/src/transport/net.cc:853,1
    - Dst: NCCL_NET_MAP_DEV_MEM
      Src: /src/nccl/src/transport/net.cc:853,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:858,1
    - Dst: struct ncclProxyState*::ncclNet::getDeviceMr
      Src: /src/nccl/src/transport/net.cc:858,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/net.cc:864,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 112
    argCount: 7
    argNames:
    - connection
    - proxyState
    - reqBuff
    - reqSize
    - respBuff
    - respSize
    - done
    argTypes:
    - struct ncclProxyConnection*
    - struct ncclProxyState*
    - void*
    - int
    - void*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 866
      start: 708
    functionDepth: 2
    functionLinenumber: 708
    functionLinenumberEnd: 866
    functionName: sendProxyConnect
    functionSourceFile: /src/nccl/src/transport/net.cc
    functionUses: 0
    functionsReached:
    - NCCL_NET_MAP_DEV_MEM
    - ncclParamGdrCopySyncEnable
    - ncclCudaCalloc
    - cuMemGetHandleForAddressRange
    - cudaGetDevice
    - ncclGdrCudaCalloc
    - memset
    - ncclCudaHostCalloc
    - struct ncclProxyState*::ncclNet::connect
    - ncclP2pAllocateShareableBuffer
    - CUDACHECK
    - ALIGN_SIZE
    - ncclNetGetDeviceHandle
    - ncclParamNetSharedComms
    - ncclCuMemEnable
    - NCCL_NET_MAP_GET_POINTER
    - NCCL_NET_MAP_ADD_POINTER
    - struct ncclProxyState*::ncclNet::regMr
    - memcpy
    - netCreateShm
    - close
    - ncclCalloc
    - CUCHECK
    - getHandleForAddressRangeFlags
    - struct ncclProxyState*::ncclNet::regMrDmaBuf
    - sharedNetBuffersInit
    - NCCLCHECK
    - struct ncclProxyState*::ncclNet::getDeviceMr
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t sendProxyConnect(struct ncclProxyConnection* connection,
      struct ncclProxyState* proxyState, void* reqBuff, int reqSize, void* respBuff,
      int respSize, int* done)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:875,1
    - Dst: ncclNetGetDeviceHandle
      Src: /src/nccl/src/transport/net.cc:875,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:881,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/net.cc:881,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:885,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/net.cc:885,1
    - Dst: ncclParamNetSharedComms
      Src: /src/nccl/src/transport/net.cc:889,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:892,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/net.cc:892,1
    - Dst: struct ncclProxyState*::ncclNet::accept
      Src: /src/nccl/src/transport/net.cc:901,1
    - Dst: struct ncclProxyState*::ncclNet::accept
      Src: /src/nccl/src/transport/net.cc:907,1
    - Dst: struct ncclProxyState*::ncclNet::accept
      Src: /src/nccl/src/transport/net.cc:911,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:915,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:929,1
    - Dst: struct ncclProxyState*::ncclNet::closeListen
      Src: /src/nccl/src/transport/net.cc:929,1
    - Dst: NCCL_NET_MAP_ADD_POINTER
      Src: /src/nccl/src/transport/net.cc:939,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:946,1
    - Dst: sharedNetBuffersInit
      Src: /src/nccl/src/transport/net.cc:946,1
    - Dst: NCCL_NET_MAP_ADD_POINTER
      Src: /src/nccl/src/transport/net.cc:950,1
    - Dst: NCCL_NET_MAP_ADD_POINTER
      Src: /src/nccl/src/transport/net.cc:953,1
    - Dst: NCCL_NET_MAP_ADD_POINTER
      Src: /src/nccl/src/transport/net.cc:954,1
    - Dst: NCCL_NET_MAP_ADD_POINTER
      Src: /src/nccl/src/transport/net.cc:957,1
    - Dst: ncclCuMemEnable
      Src: /src/nccl/src/transport/net.cc:963,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:964,1
    - Dst: ncclP2pAllocateShareableBuffer
      Src: /src/nccl/src/transport/net.cc:964,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:967,1
    - Dst: ncclCudaCalloc
      Src: /src/nccl/src/transport/net.cc:967,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:972,1
    - Dst: ncclCudaHostCalloc
      Src: /src/nccl/src/transport/net.cc:972,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:976,1
    - Dst: ncclGdrCudaCalloc
      Src: /src/nccl/src/transport/net.cc:976,1
    - Dst: ncclParamGdrCopySyncEnable
      Src: /src/nccl/src/transport/net.cc:978,1
    - Dst: ncclParamGdrCopyFlushEnable
      Src: /src/nccl/src/transport/net.cc:985,1
    - Dst: NCCL_NET_MAP_GET_POINTER
      Src: /src/nccl/src/transport/net.cc:988,1
    - Dst: NCCL_NET_MAP_GET_POINTER
      Src: /src/nccl/src/transport/net.cc:989,1
    - Dst: NCCL_NET_MAP_GET_POINTER
      Src: /src/nccl/src/transport/net.cc:992,1
    - Dst: NCCL_NET_MAP_DEV_MEM
      Src: /src/nccl/src/transport/net.cc:996,1
    - Dst: CUCHECK
      Src: /src/nccl/src/transport/net.cc:999,1
    - Dst: cuMemGetHandleForAddressRange
      Src: /src/nccl/src/transport/net.cc:999,1
    - Dst: getHandleForAddressRangeFlags
      Src: /src/nccl/src/transport/net.cc:999,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:1000,1
    - Dst: struct ncclProxyState*::ncclNet::regMrDmaBuf
      Src: /src/nccl/src/transport/net.cc:1000,1
    - Dst: close
      Src: /src/nccl/src/transport/net.cc:1001,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:1005,1
    - Dst: struct ncclProxyState*::ncclNet::regMr
      Src: /src/nccl/src/transport/net.cc:1005,1
    - Dst: NCCL_NET_MAP_DEV_MEM
      Src: /src/nccl/src/transport/net.cc:1005,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:1010,1
    - Dst: struct ncclProxyState*::ncclNet::getDeviceMr
      Src: /src/nccl/src/transport/net.cc:1010,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/net.cc:1016,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 110
    argCount: 7
    argNames:
    - connection
    - proxyState
    - reqBuff
    - reqSize
    - respBuff
    - respSize
    - done
    argTypes:
    - struct ncclProxyConnection*
    - struct ncclProxyState*
    - void*
    - int
    - void*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1018
      start: 868
    functionDepth: 2
    functionLinenumber: 868
    functionLinenumberEnd: 1018
    functionName: recvProxyConnect
    functionSourceFile: /src/nccl/src/transport/net.cc
    functionUses: 0
    functionsReached:
    - NCCL_NET_MAP_DEV_MEM
    - struct ncclProxyState*::ncclNet::accept
    - ncclParamGdrCopySyncEnable
    - ncclCudaCalloc
    - cuMemGetHandleForAddressRange
    - struct ncclProxyState*::ncclNet::closeListen
    - ncclGdrCudaCalloc
    - ncclCudaHostCalloc
    - ncclP2pAllocateShareableBuffer
    - ncclNetGetDeviceHandle
    - ncclParamNetSharedComms
    - ncclCuMemEnable
    - NCCL_NET_MAP_GET_POINTER
    - ncclParamGdrCopyFlushEnable
    - NCCL_NET_MAP_ADD_POINTER
    - struct ncclProxyState*::ncclNet::regMr
    - memcpy
    - sharedNetBuffersInit
    - close
    - ncclCalloc
    - getHandleForAddressRangeFlags
    - struct ncclProxyState*::ncclNet::regMrDmaBuf
    - CUCHECK
    - NCCLCHECK
    - struct ncclProxyState*::ncclNet::getDeviceMr
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t recvProxyConnect(struct ncclProxyConnection* connection,
      struct ncclProxyState* proxyState, void* reqBuff, int reqSize, void* respBuff,
      int respSize, int* done)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:1023,1
    - Dst: sharedNetBuffersDestroy
      Src: /src/nccl/src/transport/net.cc:1023,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:1030,1
    - Dst: struct ncclProxyState*::ncclNet::deregMr
      Src: /src/nccl/src/transport/net.cc:1030,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:1035,1
    - Dst: ncclCudaHostFree
      Src: /src/nccl/src/transport/net.cc:1035,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:1037,1
    - Dst: ncclShmIpcClose
      Src: /src/nccl/src/transport/net.cc:1037,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:1039,1
    - Dst: ncclCudaFree
      Src: /src/nccl/src/transport/net.cc:1039,1
    - Dst: ncclCuMemEnable
      Src: /src/nccl/src/transport/net.cc:1040,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:1043,1
    - Dst: ncclP2pFreeShareableBuffer
      Src: /src/nccl/src/transport/net.cc:1043,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:1046,1
    - Dst: ncclGdrCudaFree
      Src: /src/nccl/src/transport/net.cc:1046,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:1048,1
    - Dst: sharedNetBuffersDestroy
      Src: /src/nccl/src/transport/net.cc:1048,1
    - Dst: ncclParamNetSharedComms
      Src: /src/nccl/src/transport/net.cc:1049,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:1052,1
    - Dst: struct ncclProxyState*::ncclNet::closeSend
      Src: /src/nccl/src/transport/net.cc:1052,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:1054,1
    - Dst: struct ncclProxyState*::ncclNet::closeSend
      Src: /src/nccl/src/transport/net.cc:1054,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:1057,1
    - Dst: struct ncclProxyState*::ncclNet::closeSend
      Src: /src/nccl/src/transport/net.cc:1057,1
    - Dst: free
      Src: /src/nccl/src/transport/net.cc:1061,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 40
    argCount: 2
    argNames:
    - connection
    - proxyState
    argTypes:
    - struct ncclProxyConnection*
    - struct ncclProxyState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1063
      start: 1020
    functionDepth: 2
    functionLinenumber: 1020
    functionLinenumberEnd: 1063
    functionName: sendProxyFree
    functionSourceFile: /src/nccl/src/transport/net.cc
    functionUses: 0
    functionsReached:
    - ncclGdrCudaFree
    - free
    - ncclShmIpcClose
    - ncclP2pFreeShareableBuffer
    - ncclCudaFree
    - ncclCudaHostFree
    - struct ncclProxyState*::ncclNet::closeSend
    - ncclParamNetSharedComms
    - ncclCuMemEnable
    - struct ncclProxyState*::ncclNet::deregMr
    - sharedNetBuffersDestroy
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t sendProxyFree(struct ncclProxyConnection* connection,
      struct ncclProxyState* proxyState)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:1068,1
    - Dst: sharedNetBuffersDestroy
      Src: /src/nccl/src/transport/net.cc:1068,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:1075,1
    - Dst: struct ncclProxyState*::ncclNet::deregMr
      Src: /src/nccl/src/transport/net.cc:1075,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:1079,1
    - Dst: ncclCudaHostFree
      Src: /src/nccl/src/transport/net.cc:1079,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:1080,1
    - Dst: ncclCudaFree
      Src: /src/nccl/src/transport/net.cc:1080,1
    - Dst: ncclCuMemEnable
      Src: /src/nccl/src/transport/net.cc:1081,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:1084,1
    - Dst: ncclP2pFreeShareableBuffer
      Src: /src/nccl/src/transport/net.cc:1084,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:1087,1
    - Dst: ncclGdrCudaFree
      Src: /src/nccl/src/transport/net.cc:1087,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:1089,1
    - Dst: sharedNetBuffersDestroy
      Src: /src/nccl/src/transport/net.cc:1089,1
    - Dst: ncclParamNetSharedComms
      Src: /src/nccl/src/transport/net.cc:1090,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:1093,1
    - Dst: struct ncclProxyState*::ncclNet::closeRecv
      Src: /src/nccl/src/transport/net.cc:1093,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:1095,1
    - Dst: struct ncclProxyState*::ncclNet::closeRecv
      Src: /src/nccl/src/transport/net.cc:1095,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:1098,1
    - Dst: struct ncclProxyState*::ncclNet::closeRecv
      Src: /src/nccl/src/transport/net.cc:1098,1
    - Dst: free
      Src: /src/nccl/src/transport/net.cc:1102,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 36
    argCount: 2
    argNames:
    - connection
    - proxyState
    argTypes:
    - struct ncclProxyConnection*
    - struct ncclProxyState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1104
      start: 1065
    functionDepth: 2
    functionLinenumber: 1065
    functionLinenumberEnd: 1104
    functionName: recvProxyFree
    functionSourceFile: /src/nccl/src/transport/net.cc
    functionUses: 0
    functionsReached:
    - ncclGdrCudaFree
    - free
    - ncclP2pFreeShareableBuffer
    - ncclCudaFree
    - ncclCudaHostFree
    - ncclParamNetSharedComms
    - ncclCuMemEnable
    - struct ncclProxyState*::ncclNet::deregMr
    - sharedNetBuffersDestroy
    - NCCLCHECK
    - struct ncclProxyState*::ncclNet::closeRecv
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t recvProxyFree(struct ncclProxyConnection* connection,
      struct ncclProxyState* proxyState)
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: ROUNDUP
      Src: /src/nccl/src/transport/net.cc:1114,1
    - Dst: ncclProfilerRecordProxyOpEventState
      Src: /src/nccl/src/transport/net.cc:1118,1
    - Dst: min
      Src: /src/nccl/src/transport/net.cc:1127,1
    - Dst: NCCL_NET_MAP_GET_POINTER
      Src: /src/nccl/src/transport/net.cc:1137,1
    - Dst: ncclProfilerStartSendProxyStepEvent
      Src: /src/nccl/src/transport/net.cc:1140,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:1146,1
    - Dst: sharedBuffersGet
      Src: /src/nccl/src/transport/net.cc:1146,1
    - Dst: __sync_synchronize
      Src: /src/nccl/src/transport/net.cc:1148,1
    - Dst: wc_store_fence
      Src: /src/nccl/src/transport/net.cc:1153,1
    - Dst: ncclProfilerRecordProxyStepEventState
      Src: /src/nccl/src/transport/net.cc:1157,1
    - Dst: DIVUP
      Src: /src/nccl/src/transport/net.cc:1178,1
    - Dst: NCCL_LL_FLAG
      Src: /src/nccl/src/transport/net.cc:1186,1
    - Dst: DIVUP
      Src: /src/nccl/src/transport/net.cc:1187,1
    - Dst: struct ncclProxySubArgs*::ringAlgo::getNextSendAddr
      Src: /src/nccl/src/transport/net.cc:1199,1
    - Dst: assert
      Src: /src/nccl/src/transport/net.cc:1200,1
    - Dst: ncclProfilerRecordProxyStepEventState
      Src: /src/nccl/src/transport/net.cc:1204,1
    - Dst: DIVUP
      Src: /src/nccl/src/transport/net.cc:1209,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:1210,1
    - Dst: struct ncclProxyState*::ncclNet::isend
      Src: /src/nccl/src/transport/net.cc:1210,1
    - Dst: TRACE
      Src: /src/nccl/src/transport/net.cc:1212,1
    - Dst: ncclProfilerRecordProxyStepEventState
      Src: /src/nccl/src/transport/net.cc:1215,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:1227,1
    - Dst: struct ncclProxyState*::ncclNet::test
      Src: /src/nccl/src/transport/net.cc:1227,1
    - Dst: __sync_synchronize
      Src: /src/nccl/src/transport/net.cc:1231,1
    - Dst: TRACE
      Src: /src/nccl/src/transport/net.cc:1232,1
    - Dst: ncclProfilerStopProxyStepEvent
      Src: /src/nccl/src/transport/net.cc:1234,1
    - Dst: wc_store_fence
      Src: /src/nccl/src/transport/net.cc:1239,1
    - Dst: struct ncclProxySubArgs*::ringAlgo::decRefCount
      Src: /src/nccl/src/transport/net.cc:1244,1
    - Dst: ncclProfilerStopProxyOpEvent
      Src: /src/nccl/src/transport/net.cc:1252,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 112
    argCount: 2
    argNames:
    - proxyState
    - args
    argTypes:
    - struct ncclProxyState*
    - struct ncclProxyArgs*
    assertStmts:
    - condition: (sendSize == size)
      pos:
        line_end: 1199
        line_start: 1199
        source_file: /src/nccl/src/transport/net.cc
    constantsTouched: []
    func_position:
      end: 1258
      start: 1108
    functionDepth: 1
    functionLinenumber: 1108
    functionLinenumberEnd: 1258
    functionName: sendProxyProgress
    functionSourceFile: /src/nccl/src/transport/net.cc
    functionUses: 0
    functionsReached:
    - DIVUP
    - struct ncclProxyState*::ncclNet::test
    - struct ncclProxySubArgs*::ringAlgo::getNextSendAddr
    - struct ncclProxyState*::ncclNet::isend
    - TRACE
    - min
    - assert
    - struct ncclProxySubArgs*::ringAlgo::decRefCount
    - __sync_synchronize
    - ncclProfilerStartSendProxyStepEvent
    - ncclProfilerStopProxyOpEvent
    - ROUNDUP
    - ncclProfilerStopProxyStepEvent
    - NCCL_NET_MAP_GET_POINTER
    - ncclProfilerRecordProxyStepEventState
    - NCCL_LL_FLAG
    - ncclProfilerRecordProxyOpEventState
    - wc_store_fence
    - sharedBuffersGet
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t sendProxyProgress(struct ncclProxyState* proxyState, struct
      ncclProxyArgs* args)
  - BBCount: 45
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nccl/src/transport/net.cc:1280,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/net.cc:1281,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/net.cc:1282,1
    - Dst: ROUNDUP
      Src: /src/nccl/src/transport/net.cc:1290,1
    - Dst: ncclProfilerRecordProxyOpEventState
      Src: /src/nccl/src/transport/net.cc:1296,1
    - Dst: min
      Src: /src/nccl/src/transport/net.cc:1305,1
    - Dst: ncclProfilerStartRecvProxyStepEvent
      Src: /src/nccl/src/transport/net.cc:1319,1
    - Dst: NCCL_NET_MAP_GET_POINTER
      Src: /src/nccl/src/transport/net.cc:1322,1
    - Dst: min
      Src: /src/nccl/src/transport/net.cc:1332,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:1336,1
    - Dst: sharedBuffersGet
      Src: /src/nccl/src/transport/net.cc:1336,1
    - Dst: struct ncclProxySubArgs*::ringAlgo::getNextRecvAddr
      Src: /src/nccl/src/transport/net.cc:1344,1
    - Dst: DIVUP
      Src: /src/nccl/src/transport/net.cc:1357,1
    - Dst: ncclParamNetOptionalRecvCompletion
      Src: /src/nccl/src/transport/net.cc:1365,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:1367,1
    - Dst: struct ncclProxyState*::ncclNet::irecv
      Src: /src/nccl/src/transport/net.cc:1367,1
    - Dst: TRACE
      Src: /src/nccl/src/transport/net.cc:1374,1
    - Dst: ncclProfilerRecordProxyStepEventState
      Src: /src/nccl/src/transport/net.cc:1376,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:1393,1
    - Dst: struct ncclProxyState*::ncclNet::test
      Src: /src/nccl/src/transport/net.cc:1393,1
    - Dst: ncclProfilerRecordProxyStepEventState
      Src: /src/nccl/src/transport/net.cc:1407,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net.cc:1422,1
    - Dst: NCCL_NET_MAP_GET_POINTER
      Src: /src/nccl/src/transport/net.cc:1432,1
    - Dst: struct ncclProxySubArgs*::ringAlgo::getNextRecvAddr
      Src: /src/nccl/src/transport/net.cc:1438,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:1448,1
    - Dst: struct ncclProxyState*::ncclNet::iflush
      Src: /src/nccl/src/transport/net.cc:1448,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:1463,1
    - Dst: struct ncclProxyState*::ncclNet::test
      Src: /src/nccl/src/transport/net.cc:1463,1
    - Dst: ncclProfilerRecordProxyStepEventState
      Src: /src/nccl/src/transport/net.cc:1470,1
    - Dst: __sync_synchronize
      Src: /src/nccl/src/transport/net.cc:1472,1
    - Dst: wc_store_fence
      Src: /src/nccl/src/transport/net.cc:1476,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:1500,1
    - Dst: struct ncclProxyState*::ncclNet::irecvConsumed
      Src: /src/nccl/src/transport/net.cc:1500,1
    - Dst: ncclProfilerStopProxyStepEvent
      Src: /src/nccl/src/transport/net.cc:1505,1
    - Dst: struct ncclProxySubArgs*::ringAlgo::decRefCount
      Src: /src/nccl/src/transport/net.cc:1509,1
    - Dst: ncclProfilerStopProxyOpEvent
      Src: /src/nccl/src/transport/net.cc:1520,1
    CyclomaticComplexity: 76
    EdgeCount: 76
    ICount: 202
    argCount: 2
    argNames:
    - proxyState
    - args
    argTypes:
    - struct ncclProxyState*
    - struct ncclProxyArgs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1525
      start: 1260
    functionDepth: 1
    functionLinenumber: 1260
    functionLinenumberEnd: 1525
    functionName: recvProxyProgress
    functionSourceFile: /src/nccl/src/transport/net.cc
    functionUses: 0
    functionsReached:
    - WARN
    - DIVUP
    - struct ncclProxyState*::ncclNet::test
    - struct ncclProxyState*::ncclNet::iflush
    - TRACE
    - min
    - struct ncclProxyState*::ncclNet::irecv
    - ncclParamNetOptionalRecvCompletion
    - struct ncclProxySubArgs*::ringAlgo::decRefCount
    - __sync_synchronize
    - ncclProfilerStopProxyOpEvent
    - struct ncclProxyState*::ncclNet::irecvConsumed
    - ROUNDUP
    - ncclProfilerStopProxyStepEvent
    - struct ncclProxySubArgs*::ringAlgo::getNextRecvAddr
    - NCCL_NET_MAP_GET_POINTER
    - ncclProfilerRecordProxyStepEventState
    - memcpy
    - ncclProfilerRecordProxyOpEventState
    - ncclProfilerStartRecvProxyStepEvent
    - wc_store_fence
    - sharedBuffersGet
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t recvProxyProgress(struct ncclProxyState* proxyState, struct
      ncclProxyArgs* args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:1528,1
    - Dst: ncclProxyCallBlocking
      Src: /src/nccl/src/transport/net.cc:1528,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net.cc:1529,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - comm
    - proxyConn
    - handle
    argTypes:
    - struct ncclComm*
    - struct ncclProxyConnector*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1531
      start: 1527
    functionDepth: 4
    functionLinenumber: 1527
    functionLinenumberEnd: 1531
    functionName: ncclNetDeregBuffer
    functionSourceFile: /src/nccl/src/transport/net.cc
    functionUses: 0
    functionsReached:
    - ncclProxyCallBlocking
    - INFO
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNetDeregBuffer(struct ncclComm* comm, struct ncclProxyConnector*
      proxyConn, void* handle)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: INFO
      Src: /src/nccl/src/transport/net.cc:1556,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net.cc:1562,1
    - Dst: ncclProxyCallBlocking
      Src: /src/nccl/src/transport/net.cc:1562,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:1566,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/net.cc:1566,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net.cc:1573,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net.cc:1589,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 52
    argCount: 8
    argNames:
    - comm
    - userbuff
    - buffSize
    - peerConns
    - nPeers
    - regRecord
    - outRegBufFlag
    - outHandle
    argTypes:
    - ncclComm*
    - void*
    - size_t
    - struct ncclConnector**
    - int
    - struct ncclReg*
    - int*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1591
      start: 1533
    functionDepth: 4
    functionLinenumber: 1533
    functionLinenumberEnd: 1591
    functionName: netRegisterBuffer
    functionSourceFile: /src/nccl/src/transport/net.cc
    functionUses: 2
    functionsReached:
    - INFO
    - ncclProxyCallBlocking
    - NCCLCHECKGOTO
    - ncclCalloc
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t netRegisterBuffer(ncclComm* comm, const void* userbuff,
      size_t buffSize, struct ncclConnector** peerConns, int nPeers, struct ncclReg*
      regRecord, int* outRegBufFlag, void** outHandle)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net.cc:1600,1
    - Dst: ncclRegFind
      Src: /src/nccl/src/transport/net.cc:1600,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net.cc:1601,1
    - Dst: ncclRegLocalIsValid
      Src: /src/nccl/src/transport/net.cc:1601,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net.cc:1603,1
    - Dst: netRegisterBuffer
      Src: /src/nccl/src/transport/net.cc:1603,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 7
    argNames:
    - comm
    - userbuff
    - buffSize
    - peerConns
    - nPeers
    - outRegBufFlag
    - outHandle
    argTypes:
    - ncclComm*
    - void*
    - size_t
    - struct ncclConnector**
    - int
    - int*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1611
      start: 1593
    functionDepth: 5
    functionLinenumber: 1593
    functionLinenumberEnd: 1611
    functionName: ncclNetLocalRegisterBuffer
    functionSourceFile: /src/nccl/src/transport/net.cc
    functionUses: 0
    functionsReached:
    - netRegisterBuffer
    - NCCLCHECKGOTO
    - ncclRegFind
    - ncclRegLocalIsValid
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNetLocalRegisterBuffer(ncclComm* comm, const void*
      userbuff, size_t buffSize, struct ncclConnector** peerConns, int nPeers, int*
      outRegBufFlag, void** outHandle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:1621,1
    - Dst: ncclCommGraphDeregister
      Src: /src/nccl/src/transport/net.cc:1621,1
    - Dst: free
      Src: /src/nccl/src/transport/net.cc:1622,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - comm
    - cb
    argTypes:
    - struct ncclComm*
    - struct ncclCommCallback*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1624
      start: 1619
    functionDepth: 1
    functionLinenumber: 1619
    functionLinenumberEnd: 1624
    functionName: cleanupNet
    functionSourceFile: /src/nccl/src/transport/net.cc
    functionUses: 0
    functionsReached:
    - ncclCommGraphDeregister
    - NCCLCHECK
    - free
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t cleanupNet(struct ncclComm* comm, struct ncclCommCallback*
      cb)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/transport/net.cc:1635,1
    - Dst: cuMemGetAddressRange
      Src: /src/nccl/src/transport/net.cc:1635,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net.cc:1636,1
    - Dst: ncclCommGraphRegister
      Src: /src/nccl/src/transport/net.cc:1636,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net.cc:1637,1
    - Dst: netRegisterBuffer
      Src: /src/nccl/src/transport/net.cc:1637,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net.cc:1639,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/net.cc:1639,1
    - Dst: ncclIntruQueueEnqueue
      Src: /src/nccl/src/transport/net.cc:1643,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net.cc:1646,1
    - Dst: ncclCommGraphDeregister
      Src: /src/nccl/src/transport/net.cc:1646,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 9
    argNames:
    - comm
    - userbuff
    - buffSize
    - peerConns
    - nPeers
    - outRegBufFlag
    - outHandle
    - cleanupQueue
    - nCleanupQueueElts
    argTypes:
    - ncclComm*
    - void*
    - size_t
    - struct ncclConnector**
    - int
    - int*
    - void**
    - struct ncclIntruQueue<struct ncclCommCallback, &ncclCommCallback::next>*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1654
      start: 1626
    functionDepth: 5
    functionLinenumber: 1626
    functionLinenumberEnd: 1654
    functionName: ncclNetGraphRegisterBuffer
    functionSourceFile: /src/nccl/src/transport/net.cc
    functionUses: 0
    functionsReached:
    - cuMemGetAddressRange
    - NCCLCHECKGOTO
    - netRegisterBuffer
    - ncclCommGraphDeregister
    - ncclCommGraphRegister
    - ncclCalloc
    - CUCHECKGOTO
    - ncclIntruQueueEnqueue
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNetGraphRegisterBuffer(ncclComm* comm, const void*
      userbuff, size_t buffSize, struct ncclConnector** peerConns, int nPeers, int*
      outRegBufFlag, void** outHandle, struct ncclIntruQueue<struct ncclCommCallback,
      &ncclCommCallback::next>* cleanupQueue, int* nCleanupQueueElts)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/src/transport/net.cc:1663,1
    - Dst: assert
      Src: /src/nccl/src/transport/net.cc:1664,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/transport/net.cc:1670,1
    - Dst: cuMemGetHandleForAddressRange
      Src: /src/nccl/src/transport/net.cc:1670,1
    - Dst: getHandleForAddressRangeFlags
      Src: /src/nccl/src/transport/net.cc:1670,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net.cc:1671,1
    - Dst: struct ncclProxyState*::ncclNet::regMrDmaBuf
      Src: /src/nccl/src/transport/net.cc:1671,1
    - Dst: close
      Src: /src/nccl/src/transport/net.cc:1672,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net.cc:1678,1
    - Dst: struct ncclProxyState*::ncclNet::regMr
      Src: /src/nccl/src/transport/net.cc:1678,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/net.cc:1682,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 7
    argNames:
    - connection
    - proxyState
    - reqBuff
    - reqSize
    - respBuff
    - respSize
    - done
    argTypes:
    - struct ncclProxyConnection*
    - struct ncclProxyState*
    - void*
    - int
    - void*
    - int
    - int*
    assertStmts:
    - condition: (reqSize == sizeof(struct netRegInfo))
      pos:
        line_end: 1662
        line_start: 1662
        source_file: /src/nccl/src/transport/net.cc
    - condition: (respSize == sizeof(void*))
      pos:
        line_end: 1663
        line_start: 1663
        source_file: /src/nccl/src/transport/net.cc
    constantsTouched: []
    func_position:
      end: 1688
      start: 1656
    functionDepth: 1
    functionLinenumber: 1656
    functionLinenumberEnd: 1688
    functionName: sendProxyRegBuffer
    functionSourceFile: /src/nccl/src/transport/net.cc
    functionUses: 0
    functionsReached:
    - NCCLCHECKGOTO
    - struct ncclProxyState*::ncclNet::regMr
    - memcpy
    - cuMemGetHandleForAddressRange
    - assert
    - close
    - getHandleForAddressRangeFlags
    - struct ncclProxyState*::ncclNet::regMrDmaBuf
    - CUCHECKGOTO
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t sendProxyRegBuffer(struct ncclProxyConnection* connection,
      struct ncclProxyState* proxyState, void* reqBuff, int reqSize, void* respBuff,
      int respSize, int* done)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/src/transport/net.cc:1697,1
    - Dst: assert
      Src: /src/nccl/src/transport/net.cc:1698,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/transport/net.cc:1704,1
    - Dst: cuMemGetHandleForAddressRange
      Src: /src/nccl/src/transport/net.cc:1704,1
    - Dst: getHandleForAddressRangeFlags
      Src: /src/nccl/src/transport/net.cc:1704,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net.cc:1705,1
    - Dst: struct ncclProxyState*::ncclNet::regMrDmaBuf
      Src: /src/nccl/src/transport/net.cc:1705,1
    - Dst: close
      Src: /src/nccl/src/transport/net.cc:1706,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net.cc:1712,1
    - Dst: struct ncclProxyState*::ncclNet::regMr
      Src: /src/nccl/src/transport/net.cc:1712,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/net.cc:1716,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 7
    argNames:
    - connection
    - proxyState
    - reqBuff
    - reqSize
    - respBuff
    - respSize
    - done
    argTypes:
    - struct ncclProxyConnection*
    - struct ncclProxyState*
    - void*
    - int
    - void*
    - int
    - int*
    assertStmts:
    - condition: (reqSize == sizeof(struct netRegInfo))
      pos:
        line_end: 1696
        line_start: 1696
        source_file: /src/nccl/src/transport/net.cc
    - condition: (respSize == sizeof(void*))
      pos:
        line_end: 1697
        line_start: 1697
        source_file: /src/nccl/src/transport/net.cc
    constantsTouched: []
    func_position:
      end: 1722
      start: 1690
    functionDepth: 1
    functionLinenumber: 1690
    functionLinenumberEnd: 1722
    functionName: recvProxyRegBuffer
    functionSourceFile: /src/nccl/src/transport/net.cc
    functionUses: 0
    functionsReached:
    - NCCLCHECKGOTO
    - struct ncclProxyState*::ncclNet::regMr
    - memcpy
    - cuMemGetHandleForAddressRange
    - assert
    - close
    - getHandleForAddressRangeFlags
    - struct ncclProxyState*::ncclNet::regMrDmaBuf
    - CUCHECKGOTO
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t recvProxyRegBuffer(struct ncclProxyConnection* connection,
      struct ncclProxyState* proxyState, void* reqBuff, int reqSize, void* respBuff,
      int respSize, int* done)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/src/transport/net.cc:1728,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/net.cc:1729,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:1730,1
    - Dst: struct ncclProxyState*::ncclNet::deregMr
      Src: /src/nccl/src/transport/net.cc:1730,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 5
    argNames:
    - connection
    - proxyState
    - reqBuff
    - reqSize
    - done
    argTypes:
    - struct ncclProxyConnection*
    - struct ncclProxyState*
    - void*
    - int
    - int*
    assertStmts:
    - condition: (reqSize == sizeof(void*))
      pos:
        line_end: 1727
        line_start: 1727
        source_file: /src/nccl/src/transport/net.cc
    constantsTouched: []
    func_position:
      end: 1733
      start: 1724
    functionDepth: 0
    functionLinenumber: 1724
    functionLinenumberEnd: 1733
    functionName: sendProxyDeregBuffer
    functionSourceFile: /src/nccl/src/transport/net.cc
    functionUses: 0
    functionsReached:
    - struct ncclProxyState*::ncclNet::deregMr
    - assert
    - memcpy
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t sendProxyDeregBuffer(struct ncclProxyConnection* connection,
      struct ncclProxyState* proxyState, void* reqBuff, int reqSize, int* done)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/src/transport/net.cc:1739,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/net.cc:1740,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net.cc:1741,1
    - Dst: struct ncclProxyState*::ncclNet::deregMr
      Src: /src/nccl/src/transport/net.cc:1741,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 5
    argNames:
    - connection
    - proxyState
    - reqBuff
    - reqSize
    - done
    argTypes:
    - struct ncclProxyConnection*
    - struct ncclProxyState*
    - void*
    - int
    - int*
    assertStmts:
    - condition: (reqSize == sizeof(void*))
      pos:
        line_end: 1738
        line_start: 1738
        source_file: /src/nccl/src/transport/net.cc
    constantsTouched: []
    func_position:
      end: 1744
      start: 1735
    functionDepth: 0
    functionLinenumber: 1735
    functionLinenumberEnd: 1744
    functionName: recvProxyDeregBuffer
    functionSourceFile: /src/nccl/src/transport/net.cc
    functionUses: 0
    functionsReached:
    - struct ncclProxyState*::ncclNet::deregMr
    - assert
    - memcpy
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t recvProxyDeregBuffer(struct ncclProxyConnection* connection,
      struct ncclProxyState* proxyState, void* reqBuff, int reqSize, int* done)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - ll
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 109
    functionName: NCCL_IB_LLSTR
    functionSourceFile: /src/nccl/src/transport/net_ib.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NCCL_IB_LLSTR(ll)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_store_n
      Src: /src/nccl/src/transport/net_ib.cc:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - stat
    argTypes:
    - struct ncclIbStats*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 133
    functionName: ncclIbStatsInit
    functionSourceFile: /src/nccl/src/transport/net_ib.cc
    functionUses: 0
    functionsReached:
    - __atomic_store_n
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbStatsInit(struct ncclIbStats* stat)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_fetch_add
      Src: /src/nccl/src/transport/net_ib.cc:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - stat
    argTypes:
    - struct ncclIbStats*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 136
    functionName: ncclIbStatsFatalError
    functionSourceFile: /src/nccl/src/transport/net_ib.cc
    functionUses: 0
    functionsReached:
    - __atomic_fetch_add
    linkageType: ''
    returnType: void
    signature: void ncclIbStatsFatalError(struct ncclIbStats* stat)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncclParamIbAsyncEvents
      Src: /src/nccl/src/transport/net_ib.cc:138,1
    - Dst: __atomic_load_n
      Src: /src/nccl/src/transport/net_ib.cc:138,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib.cc:139,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - stat
    - funcName
    argTypes:
    - struct ncclIbStats*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 143
    functionName: ncclIbStatsCheckFatalCount
    functionSourceFile: /src/nccl/src/transport/net_ib.cc
    functionUses: 0
    functionsReached:
    - __atomic_load_n
    - WARN
    - ncclParamIbAsyncEvents
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbStatsCheckFatalCount(struct ncclIbStats* stat, const
      char* funcName)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclIbStatsFatalError
      Src: /src/nccl/src/transport/net_ib.cc:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - qp
    argTypes:
    - struct ibv_qp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 146
    functionName: ncclIbQpFatalError
    functionSourceFile: /src/nccl/src/transport/net_ib.cc
    functionUses: 0
    functionsReached:
    - ncclIbStatsFatalError
    linkageType: ''
    returnType: void
    signature: void ncclIbQpFatalError(struct ibv_qp* qp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclIbStatsFatalError
      Src: /src/nccl/src/transport/net_ib.cc:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cq
    argTypes:
    - struct ibv_cq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 149
    functionName: ncclIbCqFatalError
    functionSourceFile: /src/nccl/src/transport/net_ib.cc
    functionUses: 0
    functionsReached:
    - ncclIbStatsFatalError
    linkageType: ''
    returnType: void
    signature: void ncclIbCqFatalError(struct ibv_cq* cq)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclIbStatsFatalError
      Src: /src/nccl/src/transport/net_ib.cc:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dev
    argTypes:
    - struct ncclIbDev*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 152
    functionName: ncclIbDevFatalError
    functionSourceFile: /src/nccl/src/transport/net_ib.cc
    functionUses: 0
    functionsReached:
    - ncclIbStatsFatalError
    linkageType: ''
    returnType: void
    signature: void ncclIbDevFatalError(struct ncclIbDev* dev)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: wrap_ibv_get_async_event
      Src: /src/nccl/src/transport/net_ib.cc:159,1
    - Dst: wrap_ibv_event_type_str
      Src: /src/nccl/src/transport/net_ib.cc:164,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib.cc:168,1
    - Dst: ncclIbDevFatalError
      Src: /src/nccl/src/transport/net_ib.cc:169,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib.cc:173,1
    - Dst: ncclIbCqFatalError
      Src: /src/nccl/src/transport/net_ib.cc:174,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib.cc:180,1
    - Dst: ncclIbQpFatalError
      Src: /src/nccl/src/transport/net_ib.cc:181,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib.cc:185,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib.cc:199,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib.cc:204,1
    - Dst: wrap_ibv_ack_async_event
      Src: /src/nccl/src/transport/net_ib.cc:208,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 50
    argCount: 1
    argNames:
    - args
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 155
    functionDepth: 2
    functionLinenumber: 155
    functionLinenumberEnd: 211
    functionName: ncclIbAsyncThreadMain
    functionSourceFile: /src/nccl/src/transport/net_ib.cc
    functionUses: 0
    functionsReached:
    - WARN
    - wrap_ibv_ack_async_event
    - wrap_ibv_get_async_event
    - ncclIbDevFatalError
    - ncclIbCqFatalError
    - wrap_ibv_event_type_str
    - ncclIbQpFatalError
    linkageType: ''
    returnType: void
    signature: void * ncclIbAsyncThreadMain(void* args)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ncclGetEnv
      Src: /src/nccl/src/transport/net_ib.cc:215,1
    - Dst: strlen
      Src: /src/nccl/src/transport/net_ib.cc:216,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib.cc:220,1
    - Dst: strcmp
      Src: /src/nccl/src/transport/net_ib.cc:222,1
    - Dst: strcmp
      Src: /src/nccl/src/transport/net_ib.cc:224,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 229
    functionName: envIbAddrFamily
    functionSourceFile: /src/nccl/src/transport/net_ib.cc
    functionUses: 0
    functionsReached:
    - ncclGetEnv
    - INFO
    - strcmp
    - strlen
    linkageType: ''
    returnType: sa_family_t
    signature: sa_family_t envIbAddrFamily(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ncclGetEnv
      Src: /src/nccl/src/transport/net_ib.cc:237,1
    - Dst: strlen
      Src: /src/nccl/src/transport/net_ib.cc:238,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib.cc:242,1
    - Dst: snprintf
      Src: /src/nccl/src/transport/net_ib.cc:245,1
    - Dst: strstr
      Src: /src/nccl/src/transport/net_ib.cc:247,1
    - Dst: inet_pton
      Src: /src/nccl/src/transport/net_ib.cc:253,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib.cc:254,1
    - Dst: strtol
      Src: /src/nccl/src/transport/net_ib.cc:258,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib.cc:260,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib.cc:264,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 2
    argNames:
    - af
    - mask
    argTypes:
    - sa_family_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 270
    functionName: envIbAddrRange
    functionSourceFile: /src/nccl/src/transport/net_ib.cc
    functionUses: 0
    functionsReached:
    - INFO
    - strstr
    - strlen
    - ncclGetEnv
    - inet_pton
    - strtol
    - snprintf
    linkageType: ''
    returnType: void
    signature: void * envIbAddrRange(sa_family_t af, int* mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: htonl
      Src: /src/nccl/src/transport/net_ib.cc:274,1
    - Dst: htonl
      Src: /src/nccl/src/transport/net_ib.cc:275,1
    - Dst: htonl
      Src: /src/nccl/src/transport/net_ib.cc:275,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - gid
    argTypes:
    - union ibv_gid*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 277
    functionName: getGidAddrFamily
    functionSourceFile: /src/nccl/src/transport/net_ib.cc
    functionUses: 0
    functionsReached:
    - htonl
    linkageType: ''
    returnType: sa_family_t
    signature: sa_family_t getGidAddrFamily(union ibv_gid* gid)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: NETMASK
      Src: /src/nccl/src/transport/net_ib.cc:295,1
    - Dst: NETMASK
      Src: /src/nccl/src/transport/net_ib.cc:309,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 4
    argNames:
    - af
    - prefix
    - prefixlen
    - gid
    argTypes:
    - sa_family_t
    - void*
    - int
    - union ibv_gid*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 319
    functionName: matchGidAddrPrefix
    functionSourceFile: /src/nccl/src/transport/net_ib.cc
    functionUses: 0
    functionsReached:
    - NETMASK
    linkageType: ''
    returnType: bool
    signature: bool matchGidAddrPrefix(sa_family_t af, void* prefix, int prefixlen,
      union ibv_gid* gid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bits
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 291
    functionName: NETMASK
    functionSourceFile: /src/nccl/src/transport/net_ib.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NETMASK(bits)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: htonl
      Src: /src/nccl/src/transport/net_ib.cc:324,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - gid
    argTypes:
    - union ibv_gid*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 328
    functionName: configuredGid
    functionSourceFile: /src/nccl/src/transport/net_ib.cc
    functionUses: 0
    functionsReached:
    - htonl
    linkageType: ''
    returnType: bool
    signature: bool configuredGid(union ibv_gid* gid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: htonl
      Src: /src/nccl/src/transport/net_ib.cc:332,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - gid
    argTypes:
    - union ibv_gid*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 336
    functionName: linkLocalGid
    functionSourceFile: /src/nccl/src/transport/net_ib.cc
    functionUses: 0
    functionsReached:
    - htonl
    linkageType: ''
    returnType: bool
    signature: bool linkLocalGid(union ibv_gid* gid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: configuredGid
      Src: /src/nccl/src/transport/net_ib.cc:339,1
    - Dst: linkLocalGid
      Src: /src/nccl/src/transport/net_ib.cc:339,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - gid
    argTypes:
    - union ibv_gid*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 338
    functionDepth: 1
    functionLinenumber: 338
    functionLinenumberEnd: 340
    functionName: validGid
    functionSourceFile: /src/nccl/src/transport/net_ib.cc
    functionUses: 0
    functionsReached:
    - linkLocalGid
    - configuredGid
    linkageType: ''
    returnType: bool
    signature: bool validGid(union ibv_gid* gid)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/nccl/src/transport/net_ib.cc:345,1
    - Dst: open
      Src: /src/nccl/src/transport/net_ib.cc:347,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib.cc:349,1
    - Dst: strerror
      Src: /src/nccl/src/transport/net_ib.cc:349,1
    - Dst: read
      Src: /src/nccl/src/transport/net_ib.cc:352,1
    - Dst: close
      Src: /src/nccl/src/transport/net_ib.cc:353,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib.cc:359,1
    - Dst: strerror
      Src: /src/nccl/src/transport/net_ib.cc:359,1
    - Dst: strlen
      Src: /src/nccl/src/transport/net_ib.cc:363,1
    - Dst: strncmp
      Src: /src/nccl/src/transport/net_ib.cc:364,1
    - Dst: strlen
      Src: /src/nccl/src/transport/net_ib.cc:364,1
    - Dst: strncmp
      Src: /src/nccl/src/transport/net_ib.cc:364,1
    - Dst: strlen
      Src: /src/nccl/src/transport/net_ib.cc:364,1
    - Dst: strncmp
      Src: /src/nccl/src/transport/net_ib.cc:366,1
    - Dst: strlen
      Src: /src/nccl/src/transport/net_ib.cc:366,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 4
    argNames:
    - deviceName
    - portNum
    - gidIndex
    - version
    argTypes:
    - char*
    - int
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 342
    functionDepth: 1
    functionLinenumber: 342
    functionLinenumberEnd: 372
    functionName: ncclIbRoceGetVersionNum
    functionSourceFile: /src/nccl/src/transport/net_ib.cc
    functionUses: 0
    functionsReached:
    - WARN
    - open
    - strlen
    - read
    - close
    - strncmp
    - strerror
    - snprintf
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbRoceGetVersionNum(const char* deviceName, int portNum,
      int gidIndex, int* version)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib.cc:376,1
    - Dst: wrap_ibv_query_gid
      Src: /src/nccl/src/transport/net_ib.cc:376,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib.cc:377,1
    - Dst: wrap_ibv_query_gid
      Src: /src/nccl/src/transport/net_ib.cc:377,1
    - Dst: getGidAddrFamily
      Src: /src/nccl/src/transport/net_ib.cc:380,1
    - Dst: getGidAddrFamily
      Src: /src/nccl/src/transport/net_ib.cc:381,1
    - Dst: matchGidAddrPrefix
      Src: /src/nccl/src/transport/net_ib.cc:382,1
    - Dst: validGid
      Src: /src/nccl/src/transport/net_ib.cc:387,1
    - Dst: wrap_ibv_get_device_name
      Src: /src/nccl/src/transport/net_ib.cc:392,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib.cc:393,1
    - Dst: ncclIbRoceGetVersionNum
      Src: /src/nccl/src/transport/net_ib.cc:393,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib.cc:394,1
    - Dst: ncclIbRoceGetVersionNum
      Src: /src/nccl/src/transport/net_ib.cc:394,1
    - Dst: validGid
      Src: /src/nccl/src/transport/net_ib.cc:395,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 8
    argNames:
    - context
    - portNum
    - af
    - prefix
    - prefixlen
    - roceVer
    - gidIndexCandidate
    - gidIndex
    argTypes:
    - struct ibv_context*
    - uint8_t
    - sa_family_t
    - void*
    - int
    - int
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 374
    functionDepth: 2
    functionLinenumber: 374
    functionLinenumberEnd: 401
    functionName: ncclUpdateGidIndex
    functionSourceFile: /src/nccl/src/transport/net_ib.cc
    functionUses: 0
    functionsReached:
    - ncclIbRoceGetVersionNum
    - wrap_ibv_query_gid
    - getGidAddrFamily
    - validGid
    - matchGidAddrPrefix
    - NCCLCHECK
    - wrap_ibv_get_device_name
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclUpdateGidIndex(struct ibv_context* context, uint8_t
      portNum, sa_family_t af, void* prefix, int prefixlen, int roceVer, int gidIndexCandidate,
      int* gidIndex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: be64toh
      Src: /src/nccl/src/transport/net_ib.cc:408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - subnet_prefix
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 406
    functionDepth: 0
    functionLinenumber: 406
    functionLinenumberEnd: 409
    functionName: ncclIbExtractLocalSubnetPrefix
    functionSourceFile: /src/nccl/src/transport/net_ib.cc
    functionUses: 0
    functionsReached:
    - be64toh
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t ncclIbExtractLocalSubnetPrefix(uint64_t subnet_prefix)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ntohs
      Src: /src/nccl/src/transport/net_ib.cc:413,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - gid
    argTypes:
    - union ibv_gid*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 411
    functionDepth: 0
    functionLinenumber: 411
    functionLinenumberEnd: 414
    functionName: ncclIbExtractFlid
    functionSourceFile: /src/nccl/src/transport/net_ib.cc
    functionUses: 0
    functionsReached:
    - ntohs
    linkageType: ''
    returnType: int
    signature: int ncclIbExtractFlid (union ibv_gid *gid)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ncclParamIbRoutableFlidIbGidIndex
      Src: /src/nccl/src/transport/net_ib.cc:422,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib.cc:424,1
    - Dst: wrap_ibv_query_gid
      Src: /src/nccl/src/transport/net_ib.cc:424,1
    - Dst: ncclIbExtractFlid
      Src: /src/nccl/src/transport/net_ib.cc:425,1
    - Dst: ncclParamIbGidIndex
      Src: /src/nccl/src/transport/net_ib.cc:435,1
    - Dst: envIbAddrFamily
      Src: /src/nccl/src/transport/net_ib.cc:440,1
    - Dst: ncclParamIbRoceVersionNum
      Src: /src/nccl/src/transport/net_ib.cc:441,1
    - Dst: envIbAddrRange
      Src: /src/nccl/src/transport/net_ib.cc:443,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib.cc:447,1
    - Dst: ncclUpdateGidIndex
      Src: /src/nccl/src/transport/net_ib.cc:447,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 4
    argNames:
    - context
    - portNum
    - portAttr
    - gidIndex
    argTypes:
    - struct ibv_context*
    - uint8_t
    - struct ibv_port_attr*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 451
      start: 416
    functionDepth: 3
    functionLinenumber: 416
    functionLinenumberEnd: 451
    functionName: ncclIbGetGidIndex
    functionSourceFile: /src/nccl/src/transport/net_ib.cc
    functionUses: 0
    functionsReached:
    - ncclParamIbRoutableFlidIbGidIndex
    - envIbAddrRange
    - ncclParamIbGidIndex
    - wrap_ibv_query_gid
    - ncclParamIbRoceVersionNum
    - envIbAddrFamily
    - ncclUpdateGidIndex
    - ncclIbExtractFlid
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbGetGidIndex(struct ibv_context *context, uint8_t
      portNum, struct ibv_port_attr* portAttr, int *gidIndex)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncclParamIbMergeVfs
      Src: /src/nccl/src/transport/net_ib.cc:460,1
    - Dst: strncmp
      Src: /src/nccl/src/transport/net_ib.cc:461,1
    - Dst: strlen
      Src: /src/nccl/src/transport/net_ib.cc:461,1
    - Dst: strncmp
      Src: /src/nccl/src/transport/net_ib.cc:463,1
    - Dst: strlen
      Src: /src/nccl/src/transport/net_ib.cc:463,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - path1
    - path2
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 458
    functionDepth: 0
    functionLinenumber: 458
    functionLinenumberEnd: 465
    functionName: ncclIbMatchVfPath
    functionSourceFile: /src/nccl/src/transport/net_ib.cc
    functionUses: 0
    functionsReached:
    - strncmp
    - strlen
    - ncclParamIbMergeVfs
    linkageType: ''
    returnType: int
    signature: int ncclIbMatchVfPath(char* path1, char* path2)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/nccl/src/transport/net_ib.cc:469,1
    - Dst: realpath
      Src: /src/nccl/src/transport/net_ib.cc:470,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib.cc:472,1
    - Dst: strlen
      Src: /src/nccl/src/transport/net_ib.cc:475,1
    - Dst: ncclParamIbMergeVfs
      Src: /src/nccl/src/transport/net_ib.cc:477,1
    - Dst: strlen
      Src: /src/nccl/src/transport/net_ib.cc:477,1
    - Dst: strlen
      Src: /src/nccl/src/transport/net_ib.cc:477,1
    - Dst: ncclIbMatchVfPath
      Src: /src/nccl/src/transport/net_ib.cc:481,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - devName
    - path
    - realPort
    argTypes:
    - char*
    - char**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 467
    functionDepth: 1
    functionLinenumber: 467
    functionLinenumberEnd: 486
    functionName: ncclIbGetPciPath
    functionSourceFile: /src/nccl/src/transport/net_ib.cc
    functionUses: 0
    functionsReached:
    - WARN
    - strlen
    - ncclParamIbMergeVfs
    - ncclIbMatchVfPath
    - realpath
    - snprintf
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbGetPciPath(char* devName, char** path, int* realPort)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - val
    - max
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 501
    functionDepth: 0
    functionLinenumber: 501
    functionLinenumberEnd: 505
    functionName: firstBitSet
    functionSourceFile: /src/nccl/src/transport/net_ib.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int firstBitSet(int val, int max)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: firstBitSet
      Src: /src/nccl/src/transport/net_ib.cc:507,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - width
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 506
    functionDepth: 1
    functionLinenumber: 506
    functionLinenumberEnd: 508
    functionName: ncclIbWidth
    functionSourceFile: /src/nccl/src/transport/net_ib.cc
    functionUses: 0
    functionsReached:
    - firstBitSet
    linkageType: ''
    returnType: int
    signature: int ncclIbWidth(int width)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: firstBitSet
      Src: /src/nccl/src/transport/net_ib.cc:510,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - speed
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 509
    functionDepth: 1
    functionLinenumber: 509
    functionLinenumberEnd: 511
    functionName: ncclIbSpeed
    functionSourceFile: /src/nccl/src/transport/net_ib.cc
    functionUses: 0
    functionsReached:
    - firstBitSet
    linkageType: ''
    returnType: int
    signature: int ncclIbSpeed(int speed)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncclParamIbPciRelaxedOrdering
      Src: /src/nccl/src/transport/net_ib.cc:515,1
    - Dst: wrap_ibv_reg_mr_iova2
      Src: /src/nccl/src/transport/net_ib.cc:519,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 514
    functionDepth: 1
    functionLinenumber: 514
    functionLinenumberEnd: 522
    functionName: ncclIbRelaxedOrderingCapable
    functionSourceFile: /src/nccl/src/transport/net_ib.cc
    functionUses: 0
    functionsReached:
    - ncclParamIbPciRelaxedOrdering
    - wrap_ibv_reg_mr_iova2
    linkageType: ''
    returnType: int
    signature: int ncclIbRelaxedOrderingCapable(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib.cc:529,1
    - Dst: wrap_ibv_alloc_pd
      Src: /src/nccl/src/transport/net_ib.cc:529,1
    - Dst: wrap_direct_ibv_reg_dmabuf_mr
      Src: /src/nccl/src/transport/net_ib.cc:531,1
    - Dst: wrap_direct_mlx5dv_reg_dmabuf_mr
      Src: /src/nccl/src/transport/net_ib.cc:533,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib.cc:536,1
    - Dst: wrap_ibv_dealloc_pd
      Src: /src/nccl/src/transport/net_ib.cc:536,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - context
    argTypes:
    - ibv_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 524
    functionDepth: 1
    functionLinenumber: 524
    functionLinenumberEnd: 542
    functionName: ncclMlx5dvDmaBufCapable
    functionSourceFile: /src/nccl/src/transport/net_ib.cc
    functionUses: 0
    functionsReached:
    - NCCLCHECKGOTO
    - wrap_direct_mlx5dv_reg_dmabuf_mr
    - wrap_ibv_alloc_pd
    - wrap_direct_ibv_reg_dmabuf_mr
    - wrap_ibv_dealloc_pd
    linkageType: ''
    returnType: bool
    signature: bool ncclMlx5dvDmaBufCapable(ibv_context *context)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ncclParamIbMergeNics
      Src: /src/nccl/src/transport/net_ib.cc:545,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib.cc:546,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib.cc:551,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib.cc:556,1
    - Dst: snprintf
      Src: /src/nccl/src/transport/net_ib.cc:572,1
    - Dst: strlen
      Src: /src/nccl/src/transport/net_ib.cc:572,1
    - Dst: strlen
      Src: /src/nccl/src/transport/net_ib.cc:572,1
    - Dst: strncpy
      Src: /src/nccl/src/transport/net_ib.cc:575,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib.cc:583,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib.cc:588,1
    - Dst: NCCL_IB_LLSTR
      Src: /src/nccl/src/transport/net_ib.cc:589,1
    - Dst: NCCL_IB_LLSTR
      Src: /src/nccl/src/transport/net_ib.cc:589,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib.cc:595,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 2
    argNames:
    - d
    - props
    argTypes:
    - int*
    - ncclNetVDeviceProps_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 597
      start: 544
    functionDepth: 1
    functionLinenumber: 544
    functionLinenumberEnd: 597
    functionName: ncclIbMakeVDeviceInternal
    functionSourceFile: /src/nccl/src/transport/net_ib.cc
    functionUses: 0
    functionsReached:
    - INFO
    - WARN
    - strlen
    - strncpy
    - NCCL_IB_LLSTR
    - ncclParamIbMergeNics
    - snprintf
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbMakeVDeviceInternal(int* d, ncclNetVDeviceProps_t*
      props)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/nccl/src/transport/net_ib.cc:600,1
    - Dst: ncclIbMakeVDeviceInternal
      Src: /src/nccl/src/transport/net_ib.cc:601,1
    - Dst: pthread_mutex_unlock
      Src: /src/nccl/src/transport/net_ib.cc:602,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - d
    - props
    argTypes:
    - int*
    - ncclNetVDeviceProps_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 599
    functionDepth: 2
    functionLinenumber: 599
    functionLinenumberEnd: 604
    functionName: ncclIbMakeVDevice
    functionSourceFile: /src/nccl/src/transport/net_ib.cc
    functionUses: 0
    functionsReached:
    - ncclIbMakeVDeviceInternal
    - pthread_mutex_unlock
    - pthread_mutex_lock
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbMakeVDevice(int* d, ncclNetVDeviceProps_t* props)
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: ncclParamIbDisable
      Src: /src/nccl/src/transport/net_ib.cc:611,1
    - Dst: wrap_ibv_symbols
      Src: /src/nccl/src/transport/net_ib.cc:613,1
    - Dst: wrap_mlx5dv_symbols
      Src: /src/nccl/src/transport/net_ib.cc:614,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib.cc:614,1
    - Dst: pthread_mutex_lock
      Src: /src/nccl/src/transport/net_ib.cc:617,1
    - Dst: wrap_ibv_fork_init
      Src: /src/nccl/src/transport/net_ib.cc:618,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib.cc:623,1
    - Dst: ncclFindInterfaces
      Src: /src/nccl/src/transport/net_ib.cc:623,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib.cc:625,1
    - Dst: ncclGetEnv
      Src: /src/nccl/src/transport/net_ib.cc:635,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib.cc:636,1
    - Dst: parseStringList
      Src: /src/nccl/src/transport/net_ib.cc:642,1
    - Dst: wrap_ibv_get_device_list
      Src: /src/nccl/src/transport/net_ib.cc:644,1
    - Dst: wrap_ibv_open_device
      Src: /src/nccl/src/transport/net_ib.cc:648,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib.cc:649,1
    - Dst: wrap_mlx5dv_is_supported
      Src: /src/nccl/src/transport/net_ib.cc:656,1
    - Dst: snprintf
      Src: /src/nccl/src/transport/net_ib.cc:658,1
    - Dst: ncclMlx5dvDmaBufCapable
      Src: /src/nccl/src/transport/net_ib.cc:659,1
    - Dst: wrap_mlx5dv_get_data_direct_sysfs_path
      Src: /src/nccl/src/transport/net_ib.cc:659,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib.cc:660,1
    - Dst: ncclParamIbDataDirect
      Src: /src/nccl/src/transport/net_ib.cc:662,1
    - Dst: ncclParamIbDataDirect
      Src: /src/nccl/src/transport/net_ib.cc:663,1
    - Dst: memset
      Src: /src/nccl/src/transport/net_ib.cc:668,1
    - Dst: wrap_ibv_query_device
      Src: /src/nccl/src/transport/net_ib.cc:669,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib.cc:670,1
    - Dst: wrap_ibv_close_device
      Src: /src/nccl/src/transport/net_ib.cc:671,1
    - Dst: wrap_ibv_query_port
      Src: /src/nccl/src/transport/net_ib.cc:678,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib.cc:679,1
    - Dst: matchIfList
      Src: /src/nccl/src/transport/net_ib.cc:687,1
    - Dst: pthread_mutex_init
      Src: /src/nccl/src/transport/net_ib.cc:690,1
    - Dst: ncclIbSpeed
      Src: /src/nccl/src/transport/net_ib.cc:699,1
    - Dst: ncclIbWidth
      Src: /src/nccl/src/transport/net_ib.cc:699,1
    - Dst: ncclIbSpeed
      Src: /src/nccl/src/transport/net_ib.cc:701,1
    - Dst: ncclIbWidth
      Src: /src/nccl/src/transport/net_ib.cc:701,1
    - Dst: strncpy
      Src: /src/nccl/src/transport/net_ib.cc:706,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib.cc:707,1
    - Dst: ncclIbGetPciPath
      Src: /src/nccl/src/transport/net_ib.cc:707,1
    - Dst: snprintf
      Src: /src/nccl/src/transport/net_ib.cc:709,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib.cc:710,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/net_ib.cc:710,1
    - Dst: strncpy
      Src: /src/nccl/src/transport/net_ib.cc:711,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib.cc:718,1
    - Dst: ncclIbStatsInit
      Src: /src/nccl/src/transport/net_ib.cc:718,1
    - Dst: ncclParamIbAdaptiveRouting
      Src: /src/nccl/src/transport/net_ib.cc:723,1
    - Dst: ncclParamIbAdaptiveRouting
      Src: /src/nccl/src/transport/net_ib.cc:723,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib.cc:725,1
    - Dst: NCCL_IB_LLSTR
      Src: /src/nccl/src/transport/net_ib.cc:726,1
    - Dst: PTHREADCHECKGOTO
      Src: /src/nccl/src/transport/net_ib.cc:728,1
    - Dst: pthread_create
      Src: /src/nccl/src/transport/net_ib.cc:728,1
    - Dst: ncclSetThreadName
      Src: /src/nccl/src/transport/net_ib.cc:729,1
    - Dst: PTHREADCHECKGOTO
      Src: /src/nccl/src/transport/net_ib.cc:730,1
    - Dst: pthread_detach
      Src: /src/nccl/src/transport/net_ib.cc:730,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib.cc:737,1
    - Dst: ncclIbMakeVDeviceInternal
      Src: /src/nccl/src/transport/net_ib.cc:737,1
    - Dst: wrap_ibv_close_device
      Src: /src/nccl/src/transport/net_ib.cc:743,1
    - Dst: wrap_ibv_free_device_list
      Src: /src/nccl/src/transport/net_ib.cc:746,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib.cc:749,1
    - Dst: ncclIbRelaxedOrderingCapable
      Src: /src/nccl/src/transport/net_ib.cc:756,1
    - Dst: snprintf
      Src: /src/nccl/src/transport/net_ib.cc:758,1
    - Dst: strlen
      Src: /src/nccl/src/transport/net_ib.cc:758,1
    - Dst: strlen
      Src: /src/nccl/src/transport/net_ib.cc:758,1
    - Dst: NCCL_IB_LLSTR
      Src: /src/nccl/src/transport/net_ib.cc:759,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib.cc:762,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/transport/net_ib.cc:763,1
    - Dst: pthread_mutex_unlock
      Src: /src/nccl/src/transport/net_ib.cc:765,1
    - Dst: pthread_mutex_unlock
      Src: /src/nccl/src/transport/net_ib.cc:770,1
    CyclomaticComplexity: 52
    EdgeCount: 52
    ICount: 150
    argCount: 2
    argNames:
    - logFunction
    - profFunction
    argTypes:
    - ncclDebugLogger_t
    - ncclProfilerCallback_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 772
      start: 608
    functionDepth: 2
    functionLinenumber: 608
    functionLinenumberEnd: 772
    functionName: ncclIbInit
    functionSourceFile: /src/nccl/src/transport/net_ib.cc
    functionUses: 0
    functionsReached:
    - WARN
    - wrap_ibv_open_device
    - pthread_mutex_lock
    - INFO
    - ncclSocketToString
    - matchIfList
    - ncclIbRelaxedOrderingCapable
    - ncclFindInterfaces
    - parseStringList
    - pthread_mutex_unlock
    - wrap_ibv_symbols
    - memset
    - wrap_ibv_query_device
    - ncclSetThreadName
    - wrap_ibv_query_port
    - wrap_ibv_fork_init
    - ncclIbGetPciPath
    - ncclParamIbDataDirect
    - PTHREADCHECKGOTO
    - pthread_detach
    - pthread_mutex_init
    - wrap_ibv_get_device_list
    - ncclIbStatsInit
    - wrap_mlx5dv_get_data_direct_sysfs_path
    - ncclParamIbDisable
    - ncclIbWidth
    - NCCLCHECKGOTO
    - strlen
    - ncclGetEnv
    - strncpy
    - ncclParamIbAdaptiveRouting
    - NCCL_IB_LLSTR
    - wrap_ibv_free_device_list
    - wrap_mlx5dv_symbols
    - ncclCalloc
    - ncclMlx5dvDmaBufCapable
    - wrap_ibv_close_device
    - ncclIbMakeVDeviceInternal
    - ncclIbSpeed
    - wrap_mlx5dv_is_supported
    - pthread_create
    - NCCLCHECK
    - snprintf
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbInit(ncclDebugLogger_t logFunction, ncclProfilerCallback_t
      profFunction)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ndev
    argTypes:
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 777
      start: 774
    functionDepth: 0
    functionLinenumber: 774
    functionLinenumberEnd: 777
    functionName: ncclIbDevices
    functionSourceFile: /src/nccl/src/transport/net_ib.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbDevices(int* ndev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 784
      start: 783
    functionDepth: 0
    functionLinenumber: 783
    functionLinenumberEnd: 784
    functionName: KNL_MODULE_LOADED
    functionSourceFile: /src/nccl/src/transport/net_ib.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: KNL_MODULE_LOADED(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: KNL_MODULE_LOADED
      Src: /src/nccl/src/transport/net_ib.cc:787,1
    - Dst: KNL_MODULE_LOADED
      Src: /src/nccl/src/transport/net_ib.cc:788,1
    - Dst: KNL_MODULE_LOADED
      Src: /src/nccl/src/transport/net_ib.cc:789,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 785
    functionDepth: 1
    functionLinenumber: 785
    functionLinenumberEnd: 790
    functionName: ibGdrSupportInitOnce
    functionSourceFile: /src/nccl/src/transport/net_ib.cc
    functionUses: 0
    functionsReached:
    - KNL_MODULE_LOADED
    linkageType: ''
    returnType: void
    signature: void ibGdrSupportInitOnce()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_once
      Src: /src/nccl/src/transport/net_ib.cc:793,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 797
      start: 791
    functionDepth: 0
    functionLinenumber: 791
    functionLinenumberEnd: 797
    functionName: ncclIbGdrSupport
    functionSourceFile: /src/nccl/src/transport/net_ib.cc
    functionUses: 0
    functionsReached:
    - pthread_once
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbGdrSupport()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib.cc:809,1
    - Dst: wrap_ibv_alloc_pd
      Src: /src/nccl/src/transport/net_ib.cc:809,1
    - Dst: wrap_direct_ibv_reg_dmabuf_mr
      Src: /src/nccl/src/transport/net_ib.cc:811,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib.cc:814,1
    - Dst: wrap_ibv_dealloc_pd
      Src: /src/nccl/src/transport/net_ib.cc:814,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 822
      start: 800
    functionDepth: 1
    functionLinenumber: 800
    functionLinenumberEnd: 822
    functionName: ibDmaBufSupportInitOnce
    functionSourceFile: /src/nccl/src/transport/net_ib.cc
    functionUses: 0
    functionsReached:
    - wrap_direct_ibv_reg_dmabuf_mr
    - NCCLCHECKGOTO
    - wrap_ibv_alloc_pd
    - wrap_ibv_dealloc_pd
    linkageType: ''
    returnType: void
    signature: void ibDmaBufSupportInitOnce()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_once
      Src: /src/nccl/src/transport/net_ib.cc:834,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - dev
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 840
      start: 827
    functionDepth: 0
    functionLinenumber: 827
    functionLinenumberEnd: 840
    functionName: ncclIbDmaBufSupport
    functionSourceFile: /src/nccl/src/transport/net_ib.cc
    functionUses: 0
    functionsReached:
    - pthread_once
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbDmaBufSupport(int dev)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/nccl/src/transport/net_ib.cc:846,1
    - Dst: ncclIbGdrSupport
      Src: /src/nccl/src/transport/net_ib.cc:852,1
    - Dst: ncclIbDmaBufSupport
      Src: /src/nccl/src/transport/net_ib.cc:856,1
    - Dst: pthread_mutex_unlock
      Src: /src/nccl/src/transport/net_ib.cc:870,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 27
    argCount: 2
    argNames:
    - dev
    - props
    argTypes:
    - int
    - ncclNetProperties_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 872
      start: 844
    functionDepth: 1
    functionLinenumber: 844
    functionLinenumberEnd: 872
    functionName: ncclIbGetPhysProperties
    functionSourceFile: /src/nccl/src/transport/net_ib.cc
    functionUses: 0
    functionsReached:
    - ncclIbDmaBufSupport
    - pthread_mutex_unlock
    - ncclIbGdrSupport
    - pthread_mutex_lock
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbGetPhysProperties(int dev, ncclNetProperties_t*
      props)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib.cc:876,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib.cc:881,1
    - Dst: ncclIbGetPhysProperties
      Src: /src/nccl/src/transport/net_ib.cc:881,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/net_ib.cc:884,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - dev
    - props
    argTypes:
    - int
    - ncclNetProperties_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 886
      start: 874
    functionDepth: 2
    functionLinenumber: 874
    functionLinenumberEnd: 886
    functionName: ncclIbGetProperties
    functionSourceFile: /src/nccl/src/transport/net_ib.cc
    functionUses: 0
    functionsReached:
    - WARN
    - ncclIbGetPhysProperties
    - memcpy
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbGetProperties(int dev, ncclNetProperties_t* props)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - req
    - devIndex
    - base
    argTypes:
    - struct ncclIbRequest*
    - int
    - struct ncclIbNetCommDevBase*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1131
      start: 1128
    functionDepth: 0
    functionLinenumber: 1128
    functionLinenumberEnd: 1131
    functionName: ncclIbAddEvent
    functionSourceFile: /src/nccl/src/transport/net_ib.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ncclIbAddEvent(struct ncclIbRequest* req, int devIndex, struct
      ncclIbNetCommDevBase* base)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/nccl/src/transport/net_ib.cc:1135,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib.cc:1138,1
    - Dst: wrap_ibv_alloc_pd
      Src: /src/nccl/src/transport/net_ib.cc:1138,1
    - Dst: pthread_mutex_unlock
      Src: /src/nccl/src/transport/net_ib.cc:1141,1
    - Dst: pthread_mutex_unlock
      Src: /src/nccl/src/transport/net_ib.cc:1146,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib.cc:1149,1
    - Dst: wrap_ibv_create_cq
      Src: /src/nccl/src/transport/net_ib.cc:1149,1
    - Dst: ncclParamIbQpsPerConn
      Src: /src/nccl/src/transport/net_ib.cc:1149,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 3
    argNames:
    - ibDevN
    - base
    - cq_context
    argTypes:
    - int
    - struct ncclIbNetCommDevBase*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1152
      start: 1132
    functionDepth: 1
    functionLinenumber: 1132
    functionLinenumberEnd: 1152
    functionName: ncclIbInitCommDevBase
    functionSourceFile: /src/nccl/src/transport/net_ib.cc
    functionUses: 0
    functionsReached:
    - ncclParamIbQpsPerConn
    - NCCLCHECKGOTO
    - pthread_mutex_unlock
    - wrap_ibv_alloc_pd
    - pthread_mutex_lock
    - wrap_ibv_create_cq
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbInitCommDevBase(int ibDevN, struct ncclIbNetCommDevBase*
      base, void* cq_context)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib.cc:1156,1
    - Dst: wrap_ibv_destroy_cq
      Src: /src/nccl/src/transport/net_ib.cc:1156,1
    - Dst: pthread_mutex_lock
      Src: /src/nccl/src/transport/net_ib.cc:1158,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib.cc:1160,1
    - Dst: wrap_ibv_dealloc_pd
      Src: /src/nccl/src/transport/net_ib.cc:1160,1
    - Dst: pthread_mutex_unlock
      Src: /src/nccl/src/transport/net_ib.cc:1164,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - base
    argTypes:
    - struct ncclIbNetCommDevBase*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1166
      start: 1154
    functionDepth: 1
    functionLinenumber: 1154
    functionLinenumberEnd: 1166
    functionName: ncclIbDestroyBase
    functionSourceFile: /src/nccl/src/transport/net_ib.cc
    functionUses: 0
    functionsReached:
    - NCCLCHECKGOTO
    - wrap_ibv_destroy_cq
    - pthread_mutex_unlock
    - pthread_mutex_lock
    - wrap_ibv_dealloc_pd
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbDestroyBase(struct ncclIbNetCommDevBase* base)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nccl/src/transport/net_ib.cc:1170,1
    - Dst: ncclParamIbUseInline
      Src: /src/nccl/src/transport/net_ib.cc:1180,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib.cc:1181,1
    - Dst: wrap_ibv_create_qp
      Src: /src/nccl/src/transport/net_ib.cc:1181,1
    - Dst: memset
      Src: /src/nccl/src/transport/net_ib.cc:1183,1
    - Dst: ncclParamIbPkey
      Src: /src/nccl/src/transport/net_ib.cc:1185,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib.cc:1188,1
    - Dst: wrap_ibv_modify_qp
      Src: /src/nccl/src/transport/net_ib.cc:1188,1
    - Dst: TRACE
      Src: /src/nccl/src/transport/net_ib.cc:1189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 5
    argNames:
    - ib_port
    - base
    - access_flags
    - qp_context
    - qp
    argTypes:
    - uint8_t
    - struct ncclIbNetCommDevBase*
    - int
    - void*
    - struct ncclIbQp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1192
      start: 1168
    functionDepth: 1
    functionLinenumber: 1168
    functionLinenumberEnd: 1192
    functionName: ncclIbCreateQp
    functionSourceFile: /src/nccl/src/transport/net_ib.cc
    functionUses: 0
    functionsReached:
    - TRACE
    - wrap_ibv_modify_qp
    - wrap_ibv_create_qp
    - ncclParamIbUseInline
    - ncclParamIbPkey
    - NCCLCHECK
    - memset
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbCreateQp(uint8_t ib_port, struct ncclIbNetCommDevBase*
      base, int access_flags, void* qp_context, struct ncclIbQp* qp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nccl/src/transport/net_ib.cc:1196,1
    - Dst: ncclParamIbFifoTc
      Src: /src/nccl/src/transport/net_ib.cc:1210,1
    - Dst: ncclParamIbFifoTc
      Src: /src/nccl/src/transport/net_ib.cc:1210,1
    - Dst: ncclIbExtractLocalSubnetPrefix
      Src: /src/nccl/src/transport/net_ib.cc:1213,1
    - Dst: ncclIbExtractLocalSubnetPrefix
      Src: /src/nccl/src/transport/net_ib.cc:1214,1
    - Dst: ncclIbExtractFlid
      Src: /src/nccl/src/transport/net_ib.cc:1218,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib.cc:1220,1
    - Dst: ncclIbExtractFlid
      Src: /src/nccl/src/transport/net_ib.cc:1223,1
    - Dst: TRACE
      Src: /src/nccl/src/transport/net_ib.cc:1235,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib.cc:1236,1
    - Dst: wrap_ibv_modify_qp
      Src: /src/nccl/src/transport/net_ib.cc:1236,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 40
    argCount: 7
    argNames:
    - qp
    - sGidInfo
    - dest_qp_num
    - info
    - fifoTc
    - tc
    - sl
    argTypes:
    - struct ibv_qp*
    - struct ncclIbGidInfo*
    - uint32_t
    - struct ncclIbDevInfo*
    - bool
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1238
      start: 1194
    functionDepth: 1
    functionLinenumber: 1194
    functionLinenumberEnd: 1238
    functionName: ncclIbRtrQp
    functionSourceFile: /src/nccl/src/transport/net_ib.cc
    functionUses: 0
    functionsReached:
    - WARN
    - TRACE
    - wrap_ibv_modify_qp
    - ncclIbExtractLocalSubnetPrefix
    - ncclParamIbFifoTc
    - ncclIbExtractFlid
    - NCCLCHECK
    - memset
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbRtrQp(struct ibv_qp* qp, struct ncclIbGidInfo* sGidInfo,
      uint32_t dest_qp_num, struct ncclIbDevInfo* info, bool fifoTc, int tc, int sl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nccl/src/transport/net_ib.cc:1242,1
    - Dst: ncclParamIbTimeout
      Src: /src/nccl/src/transport/net_ib.cc:1244,1
    - Dst: ncclParamIbRetryCnt
      Src: /src/nccl/src/transport/net_ib.cc:1245,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib.cc:1249,1
    - Dst: wrap_ibv_modify_qp
      Src: /src/nccl/src/transport/net_ib.cc:1249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - qp
    argTypes:
    - struct ibv_qp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1251
      start: 1240
    functionDepth: 1
    functionLinenumber: 1240
    functionLinenumberEnd: 1251
    functionName: ncclIbRtsQp
    functionSourceFile: /src/nccl/src/transport/net_ib.cc
    functionUses: 0
    functionsReached:
    - wrap_ibv_modify_qp
    - ncclParamIbRetryCnt
    - ncclParamIbTimeout
    - NCCLCHECK
    - memset
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbRtsQp(struct ibv_qp* qp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib.cc:1256,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/net_ib.cc:1256,1
    - Dst: memset
      Src: /src/nccl/src/transport/net_ib.cc:1259,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib.cc:1262,1
    - Dst: ncclSocketInit
      Src: /src/nccl/src/transport/net_ib.cc:1262,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib.cc:1263,1
    - Dst: ncclSocketListen
      Src: /src/nccl/src/transport/net_ib.cc:1263,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib.cc:1264,1
    - Dst: ncclSocketGetAddr
      Src: /src/nccl/src/transport/net_ib.cc:1264,1
    - Dst: ncclSocketClose
      Src: /src/nccl/src/transport/net_ib.cc:1269,1
    - Dst: free
      Src: /src/nccl/src/transport/net_ib.cc:1270,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 3
    argNames:
    - dev
    - opaqueHandle
    - listenComm
    argTypes:
    - int
    - void*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1272
      start: 1253
    functionDepth: 1
    functionLinenumber: 1253
    functionLinenumberEnd: 1272
    functionName: ncclIbListen
    functionSourceFile: /src/nccl/src/transport/net_ib.cc
    functionUses: 0
    functionsReached:
    - NCCLCHECKGOTO
    - free
    - ncclSocketClose
    - ncclCalloc
    - ncclSocketGetAddr
    - ncclSocketInit
    - ncclSocketListen
    - NCCLCHECK
    - memset
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbListen(int dev, void* opaqueHandle, void** listenComm)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib.cc:1290,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib.cc:1295,1
    - Dst: ncclIbMalloc
      Src: /src/nccl/src/transport/net_ib.cc:1295,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib.cc:1296,1
    - Dst: ncclIbStatsInit
      Src: /src/nccl/src/transport/net_ib.cc:1296,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib.cc:1297,1
    - Dst: ncclSocketInit
      Src: /src/nccl/src/transport/net_ib.cc:1297,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib.cc:1300,1
    - Dst: ncclSocketConnect
      Src: /src/nccl/src/transport/net_ib.cc:1300,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib.cc:1304,1
    - Dst: ncclSocketReady
      Src: /src/nccl/src/transport/net_ib.cc:1304,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib.cc:1310,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib.cc:1320,1
    - Dst: ncclIbMalloc
      Src: /src/nccl/src/transport/net_ib.cc:1320,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/net_ib.cc:1321,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib.cc:1325,1
    - Dst: ncclSocketProgress
      Src: /src/nccl/src/transport/net_ib.cc:1325,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib.cc:1332,1
    - Dst: ncclSocketProgress
      Src: /src/nccl/src/transport/net_ib.cc:1332,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/net_ib.cc:1336,1
    - Dst: ncclParamIbQpsPerConn
      Src: /src/nccl/src/transport/net_ib.cc:1340,1
    - Dst: ncclParamIbQpsPerConn
      Src: /src/nccl/src/transport/net_ib.cc:1341,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib.cc:1348,1
    - Dst: ncclIbInitCommDevBase
      Src: /src/nccl/src/transport/net_ib.cc:1348,1
    - Dst: memset
      Src: /src/nccl/src/transport/net_ib.cc:1352,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib.cc:1361,1
    - Dst: ncclIbCreateQp
      Src: /src/nccl/src/transport/net_ib.cc:1361,1
    - Dst: ncclParamIbEceEnable
      Src: /src/nccl/src/transport/net_ib.cc:1366,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib.cc:1368,1
    - Dst: wrap_ibv_query_ece
      Src: /src/nccl/src/transport/net_ib.cc:1368,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib.cc:1386,1
    - Dst: wrap_ibv_reg_mr
      Src: /src/nccl/src/transport/net_ib.cc:1386,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib.cc:1391,1
    - Dst: ncclIbGetGidIndex
      Src: /src/nccl/src/transport/net_ib.cc:1391,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib.cc:1392,1
    - Dst: wrap_ibv_query_gid
      Src: /src/nccl/src/transport/net_ib.cc:1392,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib.cc:1401,1
    - Dst: ncclIbExtractFlid
      Src: /src/nccl/src/transport/net_ib.cc:1404,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib.cc:1406,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib.cc:1414,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib.cc:1423,1
    - Dst: NCCL_IB_LLSTR
      Src: /src/nccl/src/transport/net_ib.cc:1424,1
    - Dst: NCCL_IB_LLSTR
      Src: /src/nccl/src/transport/net_ib.cc:1424,1
    - Dst: ncclParamIbSl
      Src: /src/nccl/src/transport/net_ib.cc:1429,1
    - Dst: ncclParamIbSl
      Src: /src/nccl/src/transport/net_ib.cc:1429,1
    - Dst: ncclParamIbTc
      Src: /src/nccl/src/transport/net_ib.cc:1430,1
    - Dst: ncclParamIbTc
      Src: /src/nccl/src/transport/net_ib.cc:1430,1
    - Dst: strncpy
      Src: /src/nccl/src/transport/net_ib.cc:1431,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/net_ib.cc:1436,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib.cc:1439,1
    - Dst: ncclSocketProgress
      Src: /src/nccl/src/transport/net_ib.cc:1439,1
    - Dst: memset
      Src: /src/nccl/src/transport/net_ib.cc:1445,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib.cc:1449,1
    - Dst: ncclSocketProgress
      Src: /src/nccl/src/transport/net_ib.cc:1449,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/net_ib.cc:1452,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib.cc:1462,1
    - Dst: NCCL_IB_LLSTR
      Src: /src/nccl/src/transport/net_ib.cc:1463,1
    - Dst: NCCL_IB_LLSTR
      Src: /src/nccl/src/transport/net_ib.cc:1463,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib.cc:1481,1
    - Dst: wrap_ibv_reg_mr
      Src: /src/nccl/src/transport/net_ib.cc:1481,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib.cc:1499,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib.cc:1501,1
    - Dst: wrap_ibv_set_ece
      Src: /src/nccl/src/transport/net_ib.cc:1501,1
    - Dst: min
      Src: /src/nccl/src/transport/net_ib.cc:1505,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib.cc:1506,1
    - Dst: ncclIbRtrQp
      Src: /src/nccl/src/transport/net_ib.cc:1506,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib.cc:1507,1
    - Dst: ncclIbRtsQp
      Src: /src/nccl/src/transport/net_ib.cc:1507,1
    - Dst: std::max
      Src: /src/nccl/src/transport/net_ib.cc:1510,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib.cc:1517,1
    - Dst: ncclSocketProgress
      Src: /src/nccl/src/transport/net_ib.cc:1517,1
    - Dst: free
      Src: /src/nccl/src/transport/net_ib.cc:1522,1
    - Dst: free
      Src: /src/nccl/src/transport/net_ib.cc:1526,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 189
    argCount: 4
    argNames:
    - dev
    - config
    - opaqueHandle
    - sendComm
    argTypes:
    - int
    - ncclNetCommConfig_t*
    - void*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1528
      start: 1274
    functionDepth: 4
    functionLinenumber: 1274
    functionLinenumberEnd: 1528
    functionName: ncclIbConnect
    functionSourceFile: /src/nccl/src/transport/net_ib.cc
    functionUses: 0
    functionsReached:
    - WARN
    - ncclSocketConnect
    - std::max
    - ncclParamIbTc
    - ncclSocketInit
    - INFO
    - min
    - wrap_ibv_query_gid
    - wrap_ibv_reg_mr
    - ncclIbCreateQp
    - ncclIbRtrQp
    - ncclIbRtsQp
    - wrap_ibv_query_ece
    - memset
    - ncclParamIbQpsPerConn
    - ncclIbInitCommDevBase
    - ncclParamIbEceEnable
    - ncclIbGetGidIndex
    - ncclIbStatsInit
    - NCCLCHECKGOTO
    - wrap_ibv_set_ece
    - memcpy
    - free
    - NCCL_IB_LLSTR
    - strncpy
    - ncclSocketReady
    - ncclParamIbSl
    - ncclSocketProgress
    - ncclIbExtractFlid
    - ncclIbMalloc
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbConnect(int dev, ncclNetCommConfig_t* config, void*
      opaqueHandle, void** sendComm, ncclNetDeviceHandle_t** /*sendDevComm*/)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ncclParamIbWarnRailLocal
      Src: /src/nccl/src/transport/net_ib.cc:1553,1
    - Dst: snprintf
      Src: /src/nccl/src/transport/net_ib.cc:1556,1
    - Dst: snprintf
      Src: /src/nccl/src/transport/net_ib.cc:1558,1
    - Dst: snprintf
      Src: /src/nccl/src/transport/net_ib.cc:1562,1
    - Dst: snprintf
      Src: /src/nccl/src/transport/net_ib.cc:1565,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib.cc:1568,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 2
    argNames:
    - vProps1
    - vProps2
    argTypes:
    - ncclNetVDeviceProps_t*
    - ncclNetVDeviceProps_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1572
      start: 1532
    functionDepth: 0
    functionLinenumber: 1532
    functionLinenumberEnd: 1572
    functionName: ncclIbCheckVProps
    functionSourceFile: /src/nccl/src/transport/net_ib.cc
    functionUses: 0
    functionsReached:
    - INFO
    - ncclParamIbWarnRailLocal
    - snprintf
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbCheckVProps(ncclNetVDeviceProps_t* vProps1, ncclNetVDeviceProps_t*
      vProps2)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib.cc:1592,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib.cc:1596,1
    - Dst: ncclIbMalloc
      Src: /src/nccl/src/transport/net_ib.cc:1596,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib.cc:1597,1
    - Dst: ncclIbStatsInit
      Src: /src/nccl/src/transport/net_ib.cc:1597,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib.cc:1600,1
    - Dst: ncclSocketInit
      Src: /src/nccl/src/transport/net_ib.cc:1600,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib.cc:1601,1
    - Dst: ncclSocketAccept
      Src: /src/nccl/src/transport/net_ib.cc:1601,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib.cc:1606,1
    - Dst: ncclIbMalloc
      Src: /src/nccl/src/transport/net_ib.cc:1606,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib.cc:1609,1
    - Dst: ncclSocketReady
      Src: /src/nccl/src/transport/net_ib.cc:1609,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib.cc:1616,1
    - Dst: ncclSocketProgress
      Src: /src/nccl/src/transport/net_ib.cc:1616,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/net_ib.cc:1619,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib.cc:1621,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib.cc:1628,1
    - Dst: ncclIbCheckVProps
      Src: /src/nccl/src/transport/net_ib.cc:1628,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/net_ib.cc:1630,1
    - Dst: ncclParamIbQpsPerConn
      Src: /src/nccl/src/transport/net_ib.cc:1633,1
    - Dst: ncclParamIbQpsPerConn
      Src: /src/nccl/src/transport/net_ib.cc:1634,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib.cc:1641,1
    - Dst: ncclSocketProgress
      Src: /src/nccl/src/transport/net_ib.cc:1641,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib.cc:1648,1
    - Dst: ncclSocketProgress
      Src: /src/nccl/src/transport/net_ib.cc:1648,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/net_ib.cc:1652,1
    - Dst: INFO
      Src: /src/nccl/src/transport/net_ib.cc:1665,1
    - Dst: memset
      Src: /src/nccl/src/transport/net_ib.cc:1671,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib.cc:1675,1
    - Dst: ncclIbInitCommDevBase
      Src: /src/nccl/src/transport/net_ib.cc:1675,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib.cc:1677,1
    - Dst: ncclIbGetGidIndex
      Src: /src/nccl/src/transport/net_ib.cc:1677,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib.cc:1678,1
    - Dst: wrap_ibv_query_gid
      Src: /src/nccl/src/transport/net_ib.cc:1678,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib.cc:1682,1
    - Dst: NCCL_IB_LLSTR
      Src: /src/nccl/src/transport/net_ib.cc:1683,1
    - Dst: NCCL_IB_LLSTR
      Src: /src/nccl/src/transport/net_ib.cc:1683,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib.cc:1695,1
    - Dst: NCCL_IB_LLSTR
      Src: /src/nccl/src/transport/net_ib.cc:1696,1
    - Dst: NCCL_IB_LLSTR
      Src: /src/nccl/src/transport/net_ib.cc:1696,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib.cc:1716,1
    - Dst: ncclIbCreateQp
      Src: /src/nccl/src/transport/net_ib.cc:1716,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib.cc:1725,1
    - Dst: wrap_ibv_set_ece
      Src: /src/nccl/src/transport/net_ib.cc:1725,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib.cc:1730,1
    - Dst: ncclIbRtrQp
      Src: /src/nccl/src/transport/net_ib.cc:1730,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib.cc:1731,1
    - Dst: ncclIbRtsQp
      Src: /src/nccl/src/transport/net_ib.cc:1731,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib.cc:1736,1
    - Dst: wrap_ibv_query_ece
      Src: /src/nccl/src/transport/net_ib.cc:1736,1
    - Dst: ncclIbGdrSupport
      Src: /src/nccl/src/transport/net_ib.cc:1740,1
    - Dst: ncclIbDmaBufSupport
      Src: /src/nccl/src/transport/net_ib.cc:1740,1
    - Dst: ncclParamIbGdrFlushDisable
      Src: /src/nccl/src/transport/net_ib.cc:1741,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib.cc:1749,1
    - Dst: wrap_ibv_reg_mr
      Src: /src/nccl/src/transport/net_ib.cc:1749,1
    - Dst: ncclParamIbUseInline
      Src: /src/nccl/src/transport/net_ib.cc:1751,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib.cc:1755,1
    - Dst: wrap_ibv_reg_mr
      Src: /src/nccl/src/transport/net_ib.cc:1755,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib.cc:1759,1
    - Dst: ncclIbCreateQp
      Src: /src/nccl/src/transport/net_ib.cc:1759,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib.cc:1767,1
    - Dst: ncclIbRtrQp
      Src: /src/nccl/src/transport/net_ib.cc:1767,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib.cc:1768,1
    - Dst: ncclIbRtsQp
      Src: /src/nccl/src/transport/net_ib.cc:1768,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib.cc:1780,1
    - Dst: wrap_ibv_reg_mr
      Src: /src/nccl/src/transport/net_ib.cc:1780,1
    - Dst: strncpy
      Src: /src/nccl/src/transport/net_ib.cc:1792,1
    - Dst: std::max
      Src: /src/nccl/src/transport/net_ib.cc:1793,1
    - Dst: free
      Src: /src/nccl/src/transport/net_ib.cc:1798,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib.cc:1801,1
    - Dst: ncclIbMalloc
      Src: /src/nccl/src/transport/net_ib.cc:1801,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/net_ib.cc:1802,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib.cc:1805,1
    - Dst: ncclSocketProgress
      Src: /src/nccl/src/transport/net_ib.cc:1805,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib.cc:1812,1
    - Dst: ncclSocketProgress
      Src: /src/nccl/src/transport/net_ib.cc:1812,1
    - Dst: free
      Src: /src/nccl/src/transport/net_ib.cc:1818,1
    - Dst: free
      Src: /src/nccl/src/transport/net_ib.cc:1825,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 202
    argCount: 2
    argNames:
    - listenComm
    - recvComm
    argTypes:
    - void*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1827
      start: 1576
    functionDepth: 4
    functionLinenumber: 1576
    functionLinenumberEnd: 1827
    functionName: ncclIbAccept
    functionSourceFile: /src/nccl/src/transport/net_ib.cc
    functionUses: 0
    functionsReached:
    - WARN
    - ncclIbCheckVProps
    - std::max
    - ncclIbGdrSupport
    - ncclIbDmaBufSupport
    - ncclSocketInit
    - INFO
    - wrap_ibv_query_gid
    - wrap_ibv_reg_mr
    - ncclIbCreateQp
    - ncclIbRtrQp
    - ncclParamIbUseInline
    - ncclIbRtsQp
    - wrap_ibv_query_ece
    - memset
    - ncclParamIbQpsPerConn
    - ncclIbInitCommDevBase
    - ncclParamIbGdrFlushDisable
    - ncclIbGetGidIndex
    - ncclIbStatsInit
    - NCCLCHECKGOTO
    - wrap_ibv_set_ece
    - ncclSocketAccept
    - memcpy
    - free
    - NCCL_IB_LLSTR
    - strncpy
    - ncclSocketReady
    - ncclSocketProgress
    - ncclIbMalloc
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbAccept(void* listenComm, void** recvComm, ncclNetDeviceHandle_t**
      /*recvDevComm*/)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nccl/src/transport/net_ib.cc:1835,1
    - Dst: memset
      Src: /src/nccl/src/transport/net_ib.cc:1836,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib.cc:1841,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - base
    - req
    argTypes:
    - struct ncclIbNetCommBase*
    - struct ncclIbRequest**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1844
      start: 1829
    functionDepth: 1
    functionLinenumber: 1829
    functionLinenumberEnd: 1844
    functionName: ncclIbGetRequest
    functionSourceFile: /src/nccl/src/transport/net_ib.cc
    functionUses: 0
    functionsReached:
    - WARN
    - memset
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbGetRequest(struct ncclIbNetCommBase* base, struct
      ncclIbRequest** req)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - r
    argTypes:
    - struct ncclIbRequest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1849
      start: 1846
    functionDepth: 0
    functionLinenumber: 1846
    functionLinenumberEnd: 1849
    functionName: ncclIbFreeRequest
    functionSourceFile: /src/nccl/src/transport/net_ib.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbFreeRequest(struct ncclIbRequest* r)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: sysconf
      Src: /src/nccl/src/transport/net_ib.cc:1855,1
    - Dst: pthread_mutex_lock
      Src: /src/nccl/src/transport/net_ib.cc:1860,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib.cc:1865,1
    - Dst: ncclRealloc
      Src: /src/nccl/src/transport/net_ib.cc:1865,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib.cc:1874,1
    - Dst: wrap_ibv_reg_dmabuf_mr
      Src: /src/nccl/src/transport/net_ib.cc:1874,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib.cc:1876,1
    - Dst: wrap_mlx5dv_reg_dmabuf_mr
      Src: /src/nccl/src/transport/net_ib.cc:1876,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib.cc:1881,1
    - Dst: wrap_ibv_reg_mr_iova2
      Src: /src/nccl/src/transport/net_ib.cc:1881,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib.cc:1884,1
    - Dst: wrap_ibv_reg_mr
      Src: /src/nccl/src/transport/net_ib.cc:1884,1
    - Dst: TRACE
      Src: /src/nccl/src/transport/net_ib.cc:1887,1
    - Dst: memmove
      Src: /src/nccl/src/transport/net_ib.cc:1888,1
    - Dst: pthread_mutex_unlock
      Src: /src/nccl/src/transport/net_ib.cc:1906,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 50
    argCount: 7
    argNames:
    - base
    - data
    - size
    - type
    - offset
    - fd
    - mhandle
    argTypes:
    - ncclIbNetCommDevBase*
    - void*
    - size_t
    - int
    - uint64_t
    - int
    - ibv_mr**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1908
      start: 1853
    functionDepth: 1
    functionLinenumber: 1853
    functionLinenumberEnd: 1908
    functionName: ncclIbRegMrDmaBufInternal
    functionSourceFile: /src/nccl/src/transport/net_ib.cc
    functionUses: 0
    functionsReached:
    - TRACE
    - NCCLCHECKGOTO
    - wrap_ibv_reg_dmabuf_mr
    - wrap_mlx5dv_reg_dmabuf_mr
    - wrap_ibv_reg_mr_iova2
    - memmove
    - wrap_ibv_reg_mr
    - pthread_mutex_unlock
    - pthread_mutex_lock
    - sysconf
    - ncclRealloc
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbRegMrDmaBufInternal(ncclIbNetCommDevBase* base,
      void* data, size_t size, int type, uint64_t offset, int fd, ibv_mr** mhandle)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - base
    - devIndex
    argTypes:
    - ncclIbNetCommBase*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1918
      start: 1910
    functionDepth: 0
    functionLinenumber: 1910
    functionLinenumberEnd: 1918
    functionName: ncclIbGetNetCommDevBase
    functionSourceFile: /src/nccl/src/transport/net_ib.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct ncclIbNetCommDevBase
    signature: struct ncclIbNetCommDevBase * ncclIbGetNetCommDevBase(ncclIbNetCommBase*
      base, int devIndex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/src/transport/net_ib.cc:1923,1
    - Dst: malloc
      Src: /src/nccl/src/transport/net_ib.cc:1925,1
    - Dst: ncclIbGetNetCommDevBase
      Src: /src/nccl/src/transport/net_ib.cc:1928,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib.cc:1929,1
    - Dst: ncclIbRegMrDmaBufInternal
      Src: /src/nccl/src/transport/net_ib.cc:1929,1
    - Dst: free
      Src: /src/nccl/src/transport/net_ib.cc:1935,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 7
    argNames:
    - comm
    - data
    - size
    - type
    - offset
    - fd
    - mhandle
    argTypes:
    - void*
    - void*
    - size_t
    - int
    - uint64_t
    - int
    - void**
    assertStmts:
    - condition: (size > 0)
      pos:
        line_end: 1922
        line_start: 1922
        source_file: /src/nccl/src/transport/net_ib.cc
    constantsTouched: []
    func_position:
      end: 1937
      start: 1921
    functionDepth: 2
    functionLinenumber: 1921
    functionLinenumberEnd: 1937
    functionName: ncclIbRegMrDmaBuf
    functionSourceFile: /src/nccl/src/transport/net_ib.cc
    functionUses: 0
    functionsReached:
    - malloc
    - NCCLCHECKGOTO
    - ncclIbGetNetCommDevBase
    - free
    - ncclIbRegMrDmaBufInternal
    - assert
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbRegMrDmaBuf(void* comm, void* data, size_t size,
      int type, uint64_t offset, int fd, void** mhandle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclIbRegMrDmaBuf
      Src: /src/nccl/src/transport/net_ib.cc:1940,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - comm
    - data
    - size
    - type
    - mhandle
    argTypes:
    - void*
    - void*
    - size_t
    - int
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1941
      start: 1939
    functionDepth: 3
    functionLinenumber: 1939
    functionLinenumberEnd: 1941
    functionName: ncclIbRegMr
    functionSourceFile: /src/nccl/src/transport/net_ib.cc
    functionUses: 0
    functionsReached:
    - ncclIbRegMrDmaBuf
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbRegMr(void* comm, void* data, size_t size, int type,
      void** mhandle)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/nccl/src/transport/net_ib.cc:1946,1
    - Dst: memmove
      Src: /src/nccl/src/transport/net_ib.cc:1950,1
    - Dst: free
      Src: /src/nccl/src/transport/net_ib.cc:1952,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/net_ib.cc:1956,1
    - Dst: wrap_ibv_dereg_mr
      Src: /src/nccl/src/transport/net_ib.cc:1956,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib.cc:1962,1
    - Dst: pthread_mutex_unlock
      Src: /src/nccl/src/transport/net_ib.cc:1965,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 2
    argNames:
    - base
    - mhandle
    argTypes:
    - ncclIbNetCommDevBase*
    - ibv_mr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1967
      start: 1943
    functionDepth: 1
    functionLinenumber: 1943
    functionLinenumberEnd: 1967
    functionName: ncclIbDeregMrInternal
    functionSourceFile: /src/nccl/src/transport/net_ib.cc
    functionUses: 0
    functionsReached:
    - WARN
    - NCCLCHECKGOTO
    - free
    - memmove
    - pthread_mutex_unlock
    - pthread_mutex_lock
    - wrap_ibv_dereg_mr
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbDeregMrInternal(ncclIbNetCommDevBase* base, ibv_mr*
      mhandle)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncclIbGetNetCommDevBase
      Src: /src/nccl/src/transport/net_ib.cc:1976,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib.cc:1977,1
    - Dst: ncclIbDeregMrInternal
      Src: /src/nccl/src/transport/net_ib.cc:1977,1
    - Dst: free
      Src: /src/nccl/src/transport/net_ib.cc:1979,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - comm
    - mhandle
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1981
      start: 1969
    functionDepth: 2
    functionLinenumber: 1969
    functionLinenumberEnd: 1981
    functionName: ncclIbDeregMr
    functionSourceFile: /src/nccl/src/transport/net_ib.cc
    functionUses: 0
    functionsReached:
    - ncclIbDeregMrInternal
    - ncclIbGetNetCommDevBase
    - NCCLCHECK
    - free
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbDeregMr(void* comm, void* mhandle)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nccl/src/transport/net_ib.cc:1994,1
    - Dst: ncclParamIbArThreshold
      Src: /src/nccl/src/transport/net_ib.cc:2021,1
    - Dst: memset
      Src: /src/nccl/src/transport/net_ib.cc:2026,1
    - Dst: ncclParamIbSplitDataOnQps
      Src: /src/nccl/src/transport/net_ib.cc:2042,1
    - Dst: DIVUP
      Src: /src/nccl/src/transport/net_ib.cc:2054,1
    - Dst: DIVUP
      Src: /src/nccl/src/transport/net_ib.cc:2054,1
    - Dst: min
      Src: /src/nccl/src/transport/net_ib.cc:2055,1
    - Dst: assert
      Src: /src/nccl/src/transport/net_ib.cc:2080,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib.cc:2091,1
    - Dst: ncclProfilerFunction
      Src: /src/nccl/src/transport/net_ib.cc:2091,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib.cc:2095,1
    - Dst: wrap_ibv_post_send
      Src: /src/nccl/src/transport/net_ib.cc:2095,1
    - Dst: DIVUP
      Src: /src/nccl/src/transport/net_ib.cc:2098,1
    - Dst: DIVUP
      Src: /src/nccl/src/transport/net_ib.cc:2098,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 73
    argCount: 2
    argNames:
    - comm
    - slot
    argTypes:
    - struct ncclIbSendComm*
    - int
    assertStmts:
    - condition: (nEventHandles < MAX_QPS_PER_REQ)
      pos:
        line_end: 2079
        line_start: 2079
        source_file: /src/nccl/src/transport/net_ib.cc
    constantsTouched: []
    func_position:
      end: 2109
      start: 1985
    functionDepth: 1
    functionLinenumber: 1985
    functionLinenumberEnd: 2109
    functionName: ncclIbMultiSend
    functionSourceFile: /src/nccl/src/transport/net_ib.cc
    functionUses: 0
    functionsReached:
    - min
    - ncclParamIbArThreshold
    - DIVUP
    - assert
    - ncclProfilerFunction
    - ncclParamIbSplitDataOnQps
    - wrap_ibv_post_send
    - NCCLCHECK
    - memset
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbMultiSend(struct ncclIbSendComm* comm, int slot)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib.cc:2114,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib.cc:2118,1
    - Dst: ncclIbStatsCheckFatalCount
      Src: /src/nccl/src/transport/net_ib.cc:2118,1
    - Dst: __sync_synchronize
      Src: /src/nccl/src/transport/net_ib.cc:2134,1
    - Dst: ncclSocketGetAddr
      Src: /src/nccl/src/transport/net_ib.cc:2143,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib.cc:2144,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/transport/net_ib.cc:2145,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib.cc:2150,1
    - Dst: ncclIbGetRequest
      Src: /src/nccl/src/transport/net_ib.cc:2150,1
    - Dst: ncclParamIbSplitDataOnQps
      Src: /src/nccl/src/transport/net_ib.cc:2163,1
    - Dst: ncclIbAddEvent
      Src: /src/nccl/src/transport/net_ib.cc:2169,1
    - Dst: TIME_START
      Src: /src/nccl/src/transport/net_ib.cc:2189,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib.cc:2190,1
    - Dst: ncclIbMultiSend
      Src: /src/nccl/src/transport/net_ib.cc:2190,1
    - Dst: memset
      Src: /src/nccl/src/transport/net_ib.cc:2193,1
    - Dst: memset
      Src: /src/nccl/src/transport/net_ib.cc:2194,1
    - Dst: TIME_STOP
      Src: /src/nccl/src/transport/net_ib.cc:2196,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 60
    argCount: 7
    argNames:
    - sendComm
    - data
    - size
    - tag
    - mhandle
    - phandle
    - request
    argTypes:
    - void*
    - void*
    - size_t
    - int
    - void*
    - void*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2202
      start: 2111
    functionDepth: 2
    functionLinenumber: 2111
    functionLinenumberEnd: 2202
    functionName: ncclIbIsend
    functionSourceFile: /src/nccl/src/transport/net_ib.cc
    functionUses: 0
    functionsReached:
    - WARN
    - ncclSocketToString
    - ncclIbStatsCheckFatalCount
    - ncclIbGetRequest
    - ncclSocketGetAddr
    - TIME_START
    - __sync_synchronize
    - TIME_STOP
    - ncclIbMultiSend
    - ncclIbAddEvent
    - ncclParamIbSplitDataOnQps
    - NCCLCHECK
    - memset
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbIsend(void* sendComm, void* data, size_t size, int
      tag, void* mhandle, void* phandle, void** request)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nccl/src/transport/net_ib.cc:2206,1
    - Dst: ncclIbAddEvent
      Src: /src/nccl/src/transport/net_ib.cc:2271,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib.cc:2275,1
    - Dst: wrap_ibv_post_send
      Src: /src/nccl/src/transport/net_ib.cc:2275,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 31
    argCount: 7
    argNames:
    - comm
    - n
    - data
    - sizes
    - tags
    - mhandles
    - req
    argTypes:
    - struct ncclIbRecvComm*
    - int
    - void**
    - size_t*
    - int*
    - void**
    - struct ncclIbRequest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2279
      start: 2204
    functionDepth: 1
    functionLinenumber: 2204
    functionLinenumberEnd: 2279
    functionName: ncclIbPostFifo
    functionSourceFile: /src/nccl/src/transport/net_ib.cc
    functionUses: 0
    functionsReached:
    - ncclIbAddEvent
    - wrap_ibv_post_send
    - NCCLCHECK
    - memset
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbPostFifo(struct ncclIbRecvComm* comm, int n, void**
      data, size_t* sizes, int* tags, void** mhandles, struct ncclIbRequest* req)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib.cc:2284,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib.cc:2289,1
    - Dst: ncclIbStatsCheckFatalCount
      Src: /src/nccl/src/transport/net_ib.cc:2289,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib.cc:2292,1
    - Dst: ncclIbGetRequest
      Src: /src/nccl/src/transport/net_ib.cc:2292,1
    - Dst: memset
      Src: /src/nccl/src/transport/net_ib.cc:2305,1
    - Dst: TIME_START
      Src: /src/nccl/src/transport/net_ib.cc:2310,1
    - Dst: ncclParamIbSplitDataOnQps
      Src: /src/nccl/src/transport/net_ib.cc:2312,1
    - Dst: ncclIbAddEvent
      Src: /src/nccl/src/transport/net_ib.cc:2318,1
    - Dst: assert
      Src: /src/nccl/src/transport/net_ib.cc:2323,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib.cc:2331,1
    - Dst: ncclProfilerFunction
      Src: /src/nccl/src/transport/net_ib.cc:2331,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib.cc:2335,1
    - Dst: wrap_ibv_post_recv
      Src: /src/nccl/src/transport/net_ib.cc:2335,1
    - Dst: TIME_STOP
      Src: /src/nccl/src/transport/net_ib.cc:2339,1
    - Dst: TIME_START
      Src: /src/nccl/src/transport/net_ib.cc:2342,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib.cc:2343,1
    - Dst: ncclIbPostFifo
      Src: /src/nccl/src/transport/net_ib.cc:2343,1
    - Dst: TIME_STOP
      Src: /src/nccl/src/transport/net_ib.cc:2344,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 44
    argCount: 8
    argNames:
    - recvComm
    - n
    - data
    - sizes
    - tags
    - mhandles
    - phandles
    - request
    argTypes:
    - void*
    - int
    - void**
    - size_t*
    - int*
    - void**
    - void**
    - void**
    assertStmts:
    - condition: (nEventHandles < MAX_QPS_PER_REQ)
      pos:
        line_end: 2322
        line_start: 2322
        source_file: /src/nccl/src/transport/net_ib.cc
    constantsTouched: []
    func_position:
      end: 2348
      start: 2281
    functionDepth: 2
    functionLinenumber: 2281
    functionLinenumberEnd: 2348
    functionName: ncclIbIrecv
    functionSourceFile: /src/nccl/src/transport/net_ib.cc
    functionUses: 0
    functionsReached:
    - WARN
    - ncclIbStatsCheckFatalCount
    - ncclIbGetRequest
    - wrap_ibv_post_recv
    - assert
    - ncclProfilerFunction
    - TIME_STOP
    - TIME_START
    - ncclIbPostFifo
    - ncclIbAddEvent
    - ncclParamIbSplitDataOnQps
    - NCCLCHECK
    - memset
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbIrecv(void* recvComm, int n, void** data, size_t*
      sizes, int* tags, void** mhandles, void** phandles, void** request)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib.cc:2358,1
    - Dst: ncclIbGetRequest
      Src: /src/nccl/src/transport/net_ib.cc:2358,1
    - Dst: memset
      Src: /src/nccl/src/transport/net_ib.cc:2366,1
    - Dst: TIME_START
      Src: /src/nccl/src/transport/net_ib.cc:2376,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib.cc:2378,1
    - Dst: wrap_ibv_post_send
      Src: /src/nccl/src/transport/net_ib.cc:2378,1
    - Dst: TIME_STOP
      Src: /src/nccl/src/transport/net_ib.cc:2379,1
    - Dst: ncclIbAddEvent
      Src: /src/nccl/src/transport/net_ib.cc:2381,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 6
    argNames:
    - recvComm
    - n
    - data
    - sizes
    - mhandles
    - request
    argTypes:
    - void*
    - int
    - void**
    - int*
    - void**
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2386
      start: 2350
    functionDepth: 2
    functionLinenumber: 2350
    functionLinenumberEnd: 2386
    functionName: ncclIbIflush
    functionSourceFile: /src/nccl/src/transport/net_ib.cc
    functionUses: 0
    functionsReached:
    - ncclIbGetRequest
    - TIME_STOP
    - TIME_START
    - ncclIbAddEvent
    - wrap_ibv_post_send
    - NCCLCHECK
    - memset
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbIflush(void* recvComm, int n, void** data, int*
      sizes, void** mhandles, void** request)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - req
    - ','
    - index
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2389
      start: 2388
    functionDepth: 0
    functionLinenumber: 2388
    functionLinenumberEnd: 2389
    functionName: HCA_NAME
    functionSourceFile: /src/nccl/src/transport/net_ib.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HCA_NAME(req, index)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - req
    - request
    - qpNumber
    argTypes:
    - struct ncclIbRequest*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2397
      start: 2391
    functionDepth: 0
    functionLinenumber: 2391
    functionLinenumberEnd: 2397
    functionName: getReqQpIndex
    functionSourceFile: /src/nccl/src/transport/net_ib.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int getReqQpIndex(struct ncclIbRequest* req, int request, int qpNumber)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib.cc:2404,1
    - Dst: ncclIbStatsCheckFatalCount
      Src: /src/nccl/src/transport/net_ib.cc:2404,1
    - Dst: TRACE
      Src: /src/nccl/src/transport/net_ib.cc:2406,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib.cc:2413,1
    - Dst: ncclProfilerFunction
      Src: /src/nccl/src/transport/net_ib.cc:2413,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib.cc:2422,1
    - Dst: ncclProfilerFunction
      Src: /src/nccl/src/transport/net_ib.cc:2422,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib.cc:2427,1
    - Dst: ncclIbFreeRequest
      Src: /src/nccl/src/transport/net_ib.cc:2427,1
    - Dst: TIME_START
      Src: /src/nccl/src/transport/net_ib.cc:2436,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib.cc:2439,1
    - Dst: wrap_ibv_poll_cq
      Src: /src/nccl/src/transport/net_ib.cc:2439,1
    - Dst: TIME_CANCEL
      Src: /src/nccl/src/transport/net_ib.cc:2441,1
    - Dst: TIME_STOP
      Src: /src/nccl/src/transport/net_ib.cc:2441,1
    - Dst: ncclSocketGetAddr
      Src: /src/nccl/src/transport/net_ib.cc:2447,1
    - Dst: ibvGetGidStr
      Src: /src/nccl/src/transport/net_ib.cc:2452,1
    - Dst: ibvGetGidStr
      Src: /src/nccl/src/transport/net_ib.cc:2453,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib.cc:2458,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/transport/net_ib.cc:2459,1
    - Dst: ncclSocketGetAddr
      Src: /src/nccl/src/transport/net_ib.cc:2465,1
    - Dst: TRACE
      Src: /src/nccl/src/transport/net_ib.cc:2470,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/transport/net_ib.cc:2471,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib.cc:2477,1
    - Dst: getReqQpIndex
      Src: /src/nccl/src/transport/net_ib.cc:2483,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib.cc:2484,1
    - Dst: ncclProfilerFunction
      Src: /src/nccl/src/transport/net_ib.cc:2484,1
    - Dst: WARN
      Src: /src/nccl/src/transport/net_ib.cc:2490,1
    - Dst: getReqQpIndex
      Src: /src/nccl/src/transport/net_ib.cc:2501,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib.cc:2502,1
    - Dst: ncclProfilerFunction
      Src: /src/nccl/src/transport/net_ib.cc:2502,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib.cc:2509,1
    - Dst: ncclIbStatsCheckFatalCount
      Src: /src/nccl/src/transport/net_ib.cc:2509,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 79
    argCount: 3
    argNames:
    - request
    - done
    - sizes
    argTypes:
    - void*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2516
      start: 2400
    functionDepth: 2
    functionLinenumber: 2400
    functionLinenumberEnd: 2516
    functionName: ncclIbTest
    functionSourceFile: /src/nccl/src/transport/net_ib.cc
    functionUses: 0
    functionsReached:
    - WARN
    - TRACE
    - ncclIbStatsCheckFatalCount
    - ncclSocketToString
    - ncclIbFreeRequest
    - getReqQpIndex
    - TIME_CANCEL
    - ncclProfilerFunction
    - TIME_STOP
    - TIME_START
    - ncclSocketGetAddr
    - ibvGetGidStr
    - wrap_ibv_poll_cq
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbTest(void* request, int* done, int* sizes)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib.cc:2521,1
    - Dst: ncclSocketClose
      Src: /src/nccl/src/transport/net_ib.cc:2521,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib.cc:2524,1
    - Dst: wrap_ibv_destroy_qp
      Src: /src/nccl/src/transport/net_ib.cc:2524,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib.cc:2528,1
    - Dst: wrap_ibv_dereg_mr
      Src: /src/nccl/src/transport/net_ib.cc:2528,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib.cc:2529,1
    - Dst: wrap_ibv_dereg_mr
      Src: /src/nccl/src/transport/net_ib.cc:2529,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib.cc:2530,1
    - Dst: ncclIbDestroyBase
      Src: /src/nccl/src/transport/net_ib.cc:2530,1
    - Dst: free
      Src: /src/nccl/src/transport/net_ib.cc:2532,1
    - Dst: TIME_PRINT
      Src: /src/nccl/src/transport/net_ib.cc:2534,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - sendComm
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2536
      start: 2518
    functionDepth: 2
    functionLinenumber: 2518
    functionLinenumberEnd: 2536
    functionName: ncclIbCloseSend
    functionSourceFile: /src/nccl/src/transport/net_ib.cc
    functionUses: 0
    functionsReached:
    - free
    - TIME_PRINT
    - ncclSocketClose
    - wrap_ibv_dereg_mr
    - wrap_ibv_destroy_qp
    - NCCLCHECK
    - ncclIbDestroyBase
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbCloseSend(void* sendComm)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib.cc:2541,1
    - Dst: ncclSocketClose
      Src: /src/nccl/src/transport/net_ib.cc:2541,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib.cc:2544,1
    - Dst: wrap_ibv_destroy_qp
      Src: /src/nccl/src/transport/net_ib.cc:2544,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib.cc:2549,1
    - Dst: wrap_ibv_destroy_qp
      Src: /src/nccl/src/transport/net_ib.cc:2549,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib.cc:2550,1
    - Dst: wrap_ibv_dereg_mr
      Src: /src/nccl/src/transport/net_ib.cc:2550,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib.cc:2552,1
    - Dst: wrap_ibv_dereg_mr
      Src: /src/nccl/src/transport/net_ib.cc:2552,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib.cc:2553,1
    - Dst: wrap_ibv_dereg_mr
      Src: /src/nccl/src/transport/net_ib.cc:2553,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib.cc:2554,1
    - Dst: ncclIbDestroyBase
      Src: /src/nccl/src/transport/net_ib.cc:2554,1
    - Dst: free
      Src: /src/nccl/src/transport/net_ib.cc:2556,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 22
    argCount: 1
    argNames:
    - recvComm
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2559
      start: 2538
    functionDepth: 2
    functionLinenumber: 2538
    functionLinenumberEnd: 2559
    functionName: ncclIbCloseRecv
    functionSourceFile: /src/nccl/src/transport/net_ib.cc
    functionUses: 0
    functionsReached:
    - free
    - ncclSocketClose
    - wrap_ibv_dereg_mr
    - wrap_ibv_destroy_qp
    - NCCLCHECK
    - ncclIbDestroyBase
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbCloseRecv(void* recvComm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/net_ib.cc:2564,1
    - Dst: ncclSocketClose
      Src: /src/nccl/src/transport/net_ib.cc:2564,1
    - Dst: free
      Src: /src/nccl/src/transport/net_ib.cc:2565,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - listenComm
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2568
      start: 2561
    functionDepth: 1
    functionLinenumber: 2561
    functionLinenumberEnd: 2568
    functionName: ncclIbCloseListen
    functionSourceFile: /src/nccl/src/transport/net_ib.cc
    functionUses: 0
    functionsReached:
    - ncclSocketClose
    - NCCLCHECK
    - free
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbCloseListen(void* listenComm)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cudaGetDeviceCount
      Src: /src/nccl/src/transport/p2p.cc:100,1
    - Dst: cudaDeviceGetPCIBusId
      Src: /src/nccl/src/transport/p2p.cc:104,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/p2p.cc:107,1
    - Dst: busIdToInt64
      Src: /src/nccl/src/transport/p2p.cc:107,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - busId
    argTypes:
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 112
    functionName: busIdToCudaDev
    functionSourceFile: /src/nccl/src/transport/p2p.cc
    functionUses: 0
    functionsReached:
    - busIdToInt64
    - cudaDeviceGetPCIBusId
    - cudaGetDeviceCount
    - NCCLCHECK
    linkageType: ''
    returnType: int
    signature: int busIdToCudaDev(int64_t busId)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: initCeOperation
      Src: /src/nccl/src/transport/p2p.cc:124,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/p2p.cc:128,1
    - Dst: ncclTopoCheckP2p
      Src: /src/nccl/src/transport/p2p.cc:128,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/p2p.cc:137,1
    - Dst: ncclTopoCheckNet
      Src: /src/nccl/src/transport/p2p.cc:137,1
    - Dst: busIdToCudaDev
      Src: /src/nccl/src/transport/p2p.cc:150,1
    - Dst: busIdToCudaDev
      Src: /src/nccl/src/transport/p2p.cc:151,1
    - Dst: cudaDeviceCanAccessPeer
      Src: /src/nccl/src/transport/p2p.cc:165,1
    - Dst: INFO
      Src: /src/nccl/src/transport/p2p.cc:166,1
    - Dst: ncclCuMemEnable
      Src: /src/nccl/src/transport/p2p.cc:173,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/p2p.cc:183,1
    - Dst: ncclCudaMalloc
      Src: /src/nccl/src/transport/p2p.cc:183,1
    - Dst: cudaIpcGetMemHandle
      Src: /src/nccl/src/transport/p2p.cc:184,1
    - Dst: INFO
      Src: /src/nccl/src/transport/p2p.cc:185,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/p2p.cc:188,1
    - Dst: ncclCudaFree
      Src: /src/nccl/src/transport/p2p.cc:188,1
    - Dst: INFO
      Src: /src/nccl/src/transport/p2p.cc:194,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 48
    argCount: 5
    argNames:
    - ret
    - comm
    - graph
    - info1
    - info2
    argTypes:
    - int*
    - struct ncclComm*
    - struct ncclTopoGraph*
    - struct ncclPeerInfo*
    - struct ncclPeerInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 123
    functionDepth: 2
    functionLinenumber: 123
    functionLinenumberEnd: 200
    functionName: p2pCanConnect
    functionSourceFile: /src/nccl/src/transport/p2p.cc
    functionUses: 0
    functionsReached:
    - INFO
    - ncclCudaMalloc
    - busIdToCudaDev
    - cudaIpcGetMemHandle
    - cudaDeviceCanAccessPeer
    - ncclTopoCheckNet
    - ncclCudaFree
    - ncclCuMemEnable
    - ncclTopoCheckP2p
    - initCeOperation
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t p2pCanConnect(int* ret, struct ncclComm* comm, struct
      ncclTopoGraph* graph, struct ncclPeerInfo* info1, struct ncclPeerInfo* info2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - DEVIPC
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 208
    functionName: TRACE_DUMP_IPC
    functionSourceFile: /src/nccl/src/transport/p2p.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TRACE_DUMP_IPC(DEVIPC)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ncclCuMemEnable
      Src: /src/nccl/src/transport/p2p.cc:211,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/p2p.cc:217,1
    - Dst: ncclCuMemAlloc
      Src: /src/nccl/src/transport/p2p.cc:217,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/p2p.cc:220,1
    - Dst: CUCHECK
      Src: /src/nccl/src/transport/p2p.cc:222,1
    - Dst: cuMemExportToShareableHandle
      Src: /src/nccl/src/transport/p2p.cc:222,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/p2p.cc:225,1
    - Dst: CUCHECK
      Src: /src/nccl/src/transport/p2p.cc:226,1
    - Dst: cuMemRetainAllocationHandle
      Src: /src/nccl/src/transport/p2p.cc:226,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/p2p.cc:233,1
    - Dst: ncclCudaCalloc
      Src: /src/nccl/src/transport/p2p.cc:233,1
    - Dst: cudaIpcGetMemHandle
      Src: /src/nccl/src/transport/p2p.cc:234,1
    - Dst: WARN
      Src: /src/nccl/src/transport/p2p.cc:236,1
    - Dst: cudaGetErrorString
      Src: /src/nccl/src/transport/p2p.cc:236,1
    - Dst: ncclCudaFree
      Src: /src/nccl/src/transport/p2p.cc:237,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/transport/p2p.cc:238,1
    - Dst: INFO
      Src: /src/nccl/src/transport/p2p.cc:241,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 4
    argNames:
    - size
    - refcount
    - ipcDesc
    - ptr
    argTypes:
    - size_t
    - int
    - ncclIpcDesc*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 244
    functionName: ncclP2pAllocateShareableBuffer
    functionSourceFile: /src/nccl/src/transport/p2p.cc
    functionUses: 3
    functionsReached:
    - WARN
    - ncclCuMemAlloc
    - cuMemRetainAllocationHandle
    - cudaIpcGetMemHandle
    - cuMemExportToShareableHandle
    - memcpy
    - ncclCudaCalloc
    - INFO
    - CUDACHECK
    - ncclCudaFree
    - ncclCuMemEnable
    - CUCHECK
    - cudaGetErrorString
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclP2pAllocateShareableBuffer(size_t size, int refcount,
      ncclIpcDesc *ipcDesc, void **ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ipcDesc
    argTypes:
    - ncclIpcDesc*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 248
    functionName: ncclP2pFreeShareableBuffer
    functionSourceFile: /src/nccl/src/transport/p2p.cc
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclP2pFreeShareableBuffer(ncclIpcDesc *ipcDesc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ncclCuMemEnable
      Src: /src/nccl/src/transport/p2p.cc:251,1
    - Dst: CUCHECK
      Src: /src/nccl/src/transport/p2p.cc:265,1
    - Dst: cuMemGetAllocationGranularity
      Src: /src/nccl/src/transport/p2p.cc:265,1
    - Dst: ALIGN_SIZE
      Src: /src/nccl/src/transport/p2p.cc:266,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/p2p.cc:273,1
    - Dst: ncclProxyClientGetFdBlocking
      Src: /src/nccl/src/transport/p2p.cc:273,1
    - Dst: INFO
      Src: /src/nccl/src/transport/p2p.cc:274,1
    - Dst: CUCHECK
      Src: /src/nccl/src/transport/p2p.cc:275,1
    - Dst: cuMemImportFromShareableHandle
      Src: /src/nccl/src/transport/p2p.cc:275,1
    - Dst: SYSCHECK
      Src: /src/nccl/src/transport/p2p.cc:276,1
    - Dst: close
      Src: /src/nccl/src/transport/p2p.cc:276,1
    - Dst: CUCHECK
      Src: /src/nccl/src/transport/p2p.cc:278,1
    - Dst: cuMemImportFromShareableHandle
      Src: /src/nccl/src/transport/p2p.cc:278,1
    - Dst: CUCHECK
      Src: /src/nccl/src/transport/p2p.cc:280,1
    - Dst: cuMemAddressReserve
      Src: /src/nccl/src/transport/p2p.cc:280,1
    - Dst: CUCHECK
      Src: /src/nccl/src/transport/p2p.cc:281,1
    - Dst: cuMemMap
      Src: /src/nccl/src/transport/p2p.cc:281,1
    - Dst: TRACE
      Src: /src/nccl/src/transport/p2p.cc:283,1
    - Dst: CUCHECK
      Src: /src/nccl/src/transport/p2p.cc:290,1
    - Dst: cuMemSetAccess
      Src: /src/nccl/src/transport/p2p.cc:290,1
    - Dst: TRACE
      Src: /src/nccl/src/transport/p2p.cc:291,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/transport/p2p.cc:299,1
    - Dst: cudaIpcOpenMemHandle
      Src: /src/nccl/src/transport/p2p.cc:299,1
    - Dst: INFO
      Src: /src/nccl/src/transport/p2p.cc:302,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 31
    argCount: 5
    argNames:
    - comm
    - peer
    - size
    - ipcDesc
    - devMemPtr
    argTypes:
    - struct ncclComm*
    - int
    - size_t
    - ncclIpcDesc*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 250
    functionDepth: 3
    functionLinenumber: 250
    functionLinenumberEnd: 305
    functionName: ncclP2pImportShareableBuffer
    functionSourceFile: /src/nccl/src/transport/p2p.cc
    functionUses: 1
    functionsReached:
    - INFO
    - TRACE
    - ncclProxyClientGetFdBlocking
    - CUDACHECK
    - cudaIpcOpenMemHandle
    - ALIGN_SIZE
    - cuMemGetAllocationGranularity
    - SYSCHECK
    - close
    - cuMemMap
    - ncclCuMemEnable
    - cuMemSetAccess
    - CUCHECK
    - cuMemImportFromShareableHandle
    - cuMemAddressReserve
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclP2pImportShareableBuffer(struct ncclComm *comm, int
      peer, size_t size, ncclIpcDesc *ipcDesc, void **devMemPtr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - MYINFO
    - ','
    - PEERINFO
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 312
    functionName: P2P_SAME_PID
    functionSourceFile: /src/nccl/src/transport/p2p.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: P2P_SAME_PID(MYINFO, PEERINFO)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/p2p.cc:317,1
    - Dst: ncclTopoCheckP2p
      Src: /src/nccl/src/transport/p2p.cc:317,1
    - Dst: ncclParamP2pReadEnable
      Src: /src/nccl/src/transport/p2p.cc:319,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 5
    argNames:
    - comm
    - info1
    - info2
    - read
    - intermediateRank
    argTypes:
    - struct ncclComm*
    - struct ncclPeerInfo*
    - struct ncclPeerInfo*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 313
    functionDepth: 1
    functionLinenumber: 313
    functionLinenumberEnd: 322
    functionName: p2pGetInfo
    functionSourceFile: /src/nccl/src/transport/p2p.cc
    functionUses: 0
    functionsReached:
    - ncclParamP2pReadEnable
    - ncclTopoCheckP2p
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t p2pGetInfo(struct ncclComm* comm, struct ncclPeerInfo*
      info1, struct ncclPeerInfo* info2, int* read, int* intermediateRank)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: P2P_SAME_PID
      Src: /src/nccl/src/transport/p2p.cc:325,1
    - Dst: cudaDeviceEnablePeerAccess
      Src: /src/nccl/src/transport/p2p.cc:329,1
    - Dst: cudaGetLastError
      Src: /src/nccl/src/transport/p2p.cc:331,1
    - Dst: WARN
      Src: /src/nccl/src/transport/p2p.cc:333,1
    - Dst: cudaGetErrorString
      Src: /src/nccl/src/transport/p2p.cc:334,1
    - Dst: ncclCuMemEnable
      Src: /src/nccl/src/transport/p2p.cc:337,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/p2p.cc:340,1
    - Dst: ncclCuMemAllocAddr
      Src: /src/nccl/src/transport/p2p.cc:340,1
    - Dst: CUCHECK
      Src: /src/nccl/src/transport/p2p.cc:341,1
    - Dst: cuMemRelease
      Src: /src/nccl/src/transport/p2p.cc:341,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/p2p.cc:353,1
    - Dst: ncclP2pImportShareableBuffer
      Src: /src/nccl/src/transport/p2p.cc:353,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 7
    argNames:
    - comm
    - proxyConn
    - myInfo
    - peerInfo
    - p2pBuff
    - devMem
    - ipcPtr
    argTypes:
    - struct ncclComm*
    - struct ncclProxyConnector*
    - struct ncclPeerInfo*
    - struct ncclPeerInfo*
    - struct ncclP2pBuff*
    - void**
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 324
    functionDepth: 4
    functionLinenumber: 324
    functionLinenumberEnd: 357
    functionName: p2pMap
    functionSourceFile: /src/nccl/src/transport/p2p.cc
    functionUses: 0
    functionsReached:
    - WARN
    - ncclCuMemAllocAddr
    - P2P_SAME_PID
    - cudaGetLastError
    - cuMemRelease
    - cudaDeviceEnablePeerAccess
    - ncclP2pImportShareableBuffer
    - ncclCuMemEnable
    - CUCHECK
    - cudaGetErrorString
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t p2pMap(struct ncclComm *comm, struct ncclProxyConnector*
      proxyConn, struct ncclPeerInfo* myInfo, struct ncclPeerInfo* peerInfo, struct
      ncclP2pBuff* p2pBuff, void** devMem, void** ipcPtr)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/p2p.cc:364,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/p2p.cc:364,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/p2p.cc:367,1
    - Dst: p2pGetInfo
      Src: /src/nccl/src/transport/p2p.cc:367,1
    - Dst: ALIGN_SIZE
      Src: /src/nccl/src/transport/p2p.cc:380,1
    - Dst: P2P_SAME_PID
      Src: /src/nccl/src/transport/p2p.cc:384,1
    - Dst: ncclParamP2pDirectDisable
      Src: /src/nccl/src/transport/p2p.cc:384,1
    - Dst: INFO
      Src: /src/nccl/src/transport/p2p.cc:386,1
    - Dst: ncclCuMemEnable
      Src: /src/nccl/src/transport/p2p.cc:390,1
    - Dst: INFO
      Src: /src/nccl/src/transport/p2p.cc:393,1
    - Dst: INFO
      Src: /src/nccl/src/transport/p2p.cc:398,1
    - Dst: INFO
      Src: /src/nccl/src/transport/p2p.cc:406,1
    - Dst: memset
      Src: /src/nccl/src/transport/p2p.cc:411,1
    - Dst: P2P_SAME_PID
      Src: /src/nccl/src/transport/p2p.cc:414,1
    - Dst: P2P_SAME_PID
      Src: /src/nccl/src/transport/p2p.cc:415,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/p2p.cc:416,1
    - Dst: ncclProxyConnect
      Src: /src/nccl/src/transport/p2p.cc:416,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/p2p.cc:418,1
    - Dst: ncclProxyCallBlocking
      Src: /src/nccl/src/transport/p2p.cc:418,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/p2p.cc:419,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/p2p.cc:421,1
    - Dst: ncclProxyCallBlocking
      Src: /src/nccl/src/transport/p2p.cc:421,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/p2p.cc:422,1
    - Dst: p2pMap
      Src: /src/nccl/src/transport/p2p.cc:422,1
    - Dst: P2P_SAME_PID
      Src: /src/nccl/src/transport/p2p.cc:423,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 50
    argCount: 8
    argNames:
    - comm
    - graph
    - myInfo
    - peerInfo
    - connectInfo
    - send
    - channelId
    - connIndex
    argTypes:
    - struct ncclComm*
    - struct ncclTopoGraph*
    - struct ncclPeerInfo*
    - struct ncclPeerInfo*
    - struct ncclConnect*
    - struct ncclConnector*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 360
    functionDepth: 5
    functionLinenumber: 360
    functionLinenumberEnd: 427
    functionName: p2pSendSetup
    functionSourceFile: /src/nccl/src/transport/p2p.cc
    functionUses: 0
    functionsReached:
    - p2pGetInfo
    - INFO
    - ncclParamP2pDirectDisable
    - ncclProxyCallBlocking
    - ncclProxyConnect
    - memcpy
    - P2P_SAME_PID
    - p2pMap
    - ALIGN_SIZE
    - ncclCalloc
    - ncclCuMemEnable
    - NCCLCHECK
    - memset
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t p2pSendSetup(struct ncclComm* comm, struct ncclTopoGraph*
      graph, struct ncclPeerInfo* myInfo, struct ncclPeerInfo* peerInfo,\n    struct
      ncclConnect* connectInfo, struct ncclConnector* send, int channelId, int connIndex)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/p2p.cc:434,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/p2p.cc:434,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/p2p.cc:437,1
    - Dst: p2pGetInfo
      Src: /src/nccl/src/transport/p2p.cc:437,1
    - Dst: ALIGN_SIZE
      Src: /src/nccl/src/transport/p2p.cc:448,1
    - Dst: P2P_SAME_PID
      Src: /src/nccl/src/transport/p2p.cc:452,1
    - Dst: ncclParamP2pDirectDisable
      Src: /src/nccl/src/transport/p2p.cc:452,1
    - Dst: ncclCuMemEnable
      Src: /src/nccl/src/transport/p2p.cc:455,1
    - Dst: TRACE
      Src: /src/nccl/src/transport/p2p.cc:458,1
    - Dst: memset
      Src: /src/nccl/src/transport/p2p.cc:471,1
    - Dst: P2P_SAME_PID
      Src: /src/nccl/src/transport/p2p.cc:474,1
    - Dst: P2P_SAME_PID
      Src: /src/nccl/src/transport/p2p.cc:475,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/p2p.cc:476,1
    - Dst: ncclProxyConnect
      Src: /src/nccl/src/transport/p2p.cc:476,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/p2p.cc:477,1
    - Dst: ncclProxyCallBlocking
      Src: /src/nccl/src/transport/p2p.cc:477,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/p2p.cc:479,1
    - Dst: p2pMap
      Src: /src/nccl/src/transport/p2p.cc:479,1
    - Dst: P2P_SAME_PID
      Src: /src/nccl/src/transport/p2p.cc:480,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 40
    argCount: 8
    argNames:
    - comm
    - graph
    - myInfo
    - peerInfo
    - connectInfo
    - recv
    - channelId
    - connIndex
    argTypes:
    - struct ncclComm*
    - struct ncclTopoGraph*
    - struct ncclPeerInfo*
    - struct ncclPeerInfo*
    - struct ncclConnect*
    - struct ncclConnector*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 430
    functionDepth: 5
    functionLinenumber: 430
    functionLinenumberEnd: 482
    functionName: p2pRecvSetup
    functionSourceFile: /src/nccl/src/transport/p2p.cc
    functionUses: 0
    functionsReached:
    - p2pGetInfo
    - TRACE
    - ncclParamP2pDirectDisable
    - ncclProxyCallBlocking
    - ncclProxyConnect
    - P2P_SAME_PID
    - p2pMap
    - ALIGN_SIZE
    - ncclCalloc
    - ncclCuMemEnable
    - NCCLCHECK
    - memset
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t p2pRecvSetup(struct ncclComm* comm, struct ncclTopoGraph*
      graph, struct ncclPeerInfo* myInfo, struct ncclPeerInfo* peerInfo,\n    struct
      ncclConnect* connectInfo, struct ncclConnector * recv, int channelId, int connIndex)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/p2p.cc:490,1
    - Dst: p2pMap
      Src: /src/nccl/src/transport/p2p.cc:490,1
    - Dst: P2P_SAME_PID
      Src: /src/nccl/src/transport/p2p.cc:491,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/p2p.cc:511,1
    - Dst: ncclProxyCallBlocking
      Src: /src/nccl/src/transport/p2p.cc:511,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 5
    argNames:
    - comm
    - connectInfo
    - nranks
    - rank
    - send
    argTypes:
    - struct ncclComm*
    - struct ncclConnect*
    - int
    - int
    - struct ncclConnector*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 485
    functionDepth: 5
    functionLinenumber: 485
    functionLinenumberEnd: 522
    functionName: p2pSendConnect
    functionSourceFile: /src/nccl/src/transport/p2p.cc
    functionUses: 0
    functionsReached:
    - ncclProxyCallBlocking
    - p2pMap
    - NCCLCHECK
    - P2P_SAME_PID
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t p2pSendConnect(struct ncclComm* comm, struct ncclConnect*
      connectInfo, int nranks, int rank, struct ncclConnector* send)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/p2p.cc:533,1
    - Dst: ncclShmImportShareableBuffer
      Src: /src/nccl/src/transport/p2p.cc:533,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/p2p.cc:538,1
    - Dst: p2pMap
      Src: /src/nccl/src/transport/p2p.cc:538,1
    - Dst: P2P_SAME_PID
      Src: /src/nccl/src/transport/p2p.cc:539,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 5
    argNames:
    - comm
    - connectInfo
    - nranks
    - rank
    - recv
    argTypes:
    - struct ncclComm*
    - struct ncclConnect*
    - int
    - int
    - struct ncclConnector*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 525
    functionDepth: 5
    functionLinenumber: 525
    functionLinenumberEnd: 561
    functionName: p2pRecvConnect
    functionSourceFile: /src/nccl/src/transport/p2p.cc
    functionUses: 0
    functionsReached:
    - p2pMap
    - ncclShmImportShareableBuffer
    - NCCLCHECK
    - P2P_SAME_PID
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t p2pRecvConnect(struct ncclComm* comm, struct ncclConnect*
      connectInfo, int nranks, int rank, struct ncclConnector* recv)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ncclCuMemEnable
      Src: /src/nccl/src/transport/p2p.cc:566,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/p2p.cc:570,1
    - Dst: ncclCuMemFreeAddr
      Src: /src/nccl/src/transport/p2p.cc:570,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/p2p.cc:572,1
    - Dst: ncclCudaFree
      Src: /src/nccl/src/transport/p2p.cc:572,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/p2p.cc:578,1
    - Dst: ncclCuMemFreeAddr
      Src: /src/nccl/src/transport/p2p.cc:578,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/p2p.cc:580,1
    - Dst: ncclCudaFree
      Src: /src/nccl/src/transport/p2p.cc:580,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/transport/p2p.cc:585,1
    - Dst: cudaIpcCloseMemHandle
      Src: /src/nccl/src/transport/p2p.cc:585,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/transport/p2p.cc:586,1
    - Dst: cudaIpcCloseMemHandle
      Src: /src/nccl/src/transport/p2p.cc:586,1
    - Dst: free
      Src: /src/nccl/src/transport/p2p.cc:588,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 1
    argNames:
    - send
    argTypes:
    - struct ncclConnector*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 563
    functionDepth: 1
    functionLinenumber: 563
    functionLinenumberEnd: 591
    functionName: p2pSendFree
    functionSourceFile: /src/nccl/src/transport/p2p.cc
    functionUses: 0
    functionsReached:
    - free
    - CUDACHECK
    - cudaIpcCloseMemHandle
    - ncclCudaFree
    - ncclCuMemEnable
    - ncclCuMemFreeAddr
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t p2pSendFree(struct ncclConnector* send)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ncclCuMemEnable
      Src: /src/nccl/src/transport/p2p.cc:596,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/p2p.cc:600,1
    - Dst: ncclCuMemFreeAddr
      Src: /src/nccl/src/transport/p2p.cc:600,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/p2p.cc:602,1
    - Dst: ncclCudaFree
      Src: /src/nccl/src/transport/p2p.cc:602,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/p2p.cc:608,1
    - Dst: ncclCuMemFreeAddr
      Src: /src/nccl/src/transport/p2p.cc:608,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/p2p.cc:610,1
    - Dst: ncclCudaFree
      Src: /src/nccl/src/transport/p2p.cc:610,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/transport/p2p.cc:615,1
    - Dst: cudaIpcCloseMemHandle
      Src: /src/nccl/src/transport/p2p.cc:615,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/transport/p2p.cc:616,1
    - Dst: cudaIpcCloseMemHandle
      Src: /src/nccl/src/transport/p2p.cc:616,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/p2p.cc:618,1
    - Dst: ncclShmIpcClose
      Src: /src/nccl/src/transport/p2p.cc:618,1
    - Dst: free
      Src: /src/nccl/src/transport/p2p.cc:621,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 1
    argNames:
    - recv
    argTypes:
    - struct ncclConnector*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 593
    functionDepth: 1
    functionLinenumber: 593
    functionLinenumberEnd: 624
    functionName: p2pRecvFree
    functionSourceFile: /src/nccl/src/transport/p2p.cc
    functionUses: 0
    functionsReached:
    - free
    - CUDACHECK
    - cudaIpcCloseMemHandle
    - ncclShmIpcClose
    - ncclCudaFree
    - ncclCuMemEnable
    - ncclCuMemFreeAddr
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t p2pRecvFree(struct ncclConnector* recv)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/p2p.cc:633,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/p2p.cc:633,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/p2p.cc:636,1
    - Dst: ncclCudaCalloc
      Src: /src/nccl/src/transport/p2p.cc:636,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/p2p.cc:640,1
    - Dst: ncclShmAllocateShareableBuffer
      Src: /src/nccl/src/transport/p2p.cc:640,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/p2p.cc:642,1
    - Dst: ncclCudaHostCalloc
      Src: /src/nccl/src/transport/p2p.cc:642,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/p2p.cc:643,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/p2p.cc:650,1
    - Dst: ncclP2pAllocateShareableBuffer
      Src: /src/nccl/src/transport/p2p.cc:650,1
    - Dst: ncclCuMemEnable
      Src: /src/nccl/src/transport/p2p.cc:652,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/p2p.cc:655,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/p2p.cc:655,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/p2p.cc:656,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 7
    argNames:
    - connection
    - proxyState
    - reqBuff
    - reqSize
    - respBuff
    - respSize
    - done
    argTypes:
    - struct ncclProxyConnection*
    - struct ncclProxyState*
    - void*
    - int
    - void*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 626
    functionDepth: 2
    functionLinenumber: 626
    functionLinenumberEnd: 664
    functionName: p2pSendProxySetup
    functionSourceFile: /src/nccl/src/transport/p2p.cc
    functionUses: 0
    functionsReached:
    - ncclCudaHostCalloc
    - ncclCudaCalloc
    - memcpy
    - ncclP2pAllocateShareableBuffer
    - ncclCalloc
    - ncclCuMemEnable
    - ncclShmAllocateShareableBuffer
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t p2pSendProxySetup(struct ncclProxyConnection* connection,
      struct ncclProxyState* proxyState, void* reqBuff, int reqSize, void* respBuff,
      int respSize, int* done)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/p2p.cc:672,1
    - Dst: ncclP2pAllocateShareableBuffer
      Src: /src/nccl/src/transport/p2p.cc:672,1
    - Dst: ncclCuMemEnable
      Src: /src/nccl/src/transport/p2p.cc:674,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/p2p.cc:677,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/p2p.cc:677,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/p2p.cc:678,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 7
    argNames:
    - connection
    - proxyState
    - reqBuff
    - reqSize
    - respBuff
    - respSize
    - done
    argTypes:
    - struct ncclProxyConnection*
    - struct ncclProxyState*
    - void*
    - int
    - void*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 685
      start: 666
    functionDepth: 2
    functionLinenumber: 666
    functionLinenumberEnd: 685
    functionName: p2pRecvProxySetup
    functionSourceFile: /src/nccl/src/transport/p2p.cc
    functionUses: 0
    functionsReached:
    - memcpy
    - ncclP2pAllocateShareableBuffer
    - ncclCalloc
    - ncclCuMemEnable
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t p2pRecvProxySetup(struct ncclProxyConnection* connection,
      struct ncclProxyState* proxyState, void* reqBuff, int reqSize, void* respBuff,
      int respSize, int* done)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CUDACHECK
      Src: /src/nccl/src/transport/p2p.cc:693,1
    - Dst: cudaStreamCreateWithFlags
      Src: /src/nccl/src/transport/p2p.cc:693,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/transport/p2p.cc:695,1
    - Dst: cudaEventCreate
      Src: /src/nccl/src/transport/p2p.cc:695,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 7
    argNames:
    - connection
    - proxyState
    - reqBuff
    - reqSize
    - respBuff
    - respSize
    - done
    argTypes:
    - struct ncclProxyConnection*
    - struct ncclProxyState*
    - void*
    - int
    - void*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 687
    functionDepth: 1
    functionLinenumber: 687
    functionLinenumberEnd: 699
    functionName: p2pSendProxyConnect
    functionSourceFile: /src/nccl/src/transport/p2p.cc
    functionUses: 0
    functionsReached:
    - CUDACHECK
    - cudaEventCreate
    - cudaStreamCreateWithFlags
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t p2pSendProxyConnect(struct ncclProxyConnection* connection,
      struct ncclProxyState* proxyState, void* reqBuff, int reqSize, void* respBuff,
      int respSize, int* done)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/p2p.cc:706,1
    - Dst: ncclShmIpcClose
      Src: /src/nccl/src/transport/p2p.cc:706,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/p2p.cc:707,1
    - Dst: ncclCudaHostFree
      Src: /src/nccl/src/transport/p2p.cc:707,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/p2p.cc:708,1
    - Dst: ncclCudaFree
      Src: /src/nccl/src/transport/p2p.cc:708,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/transport/p2p.cc:709,1
    - Dst: cudaStreamDestroy
      Src: /src/nccl/src/transport/p2p.cc:709,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/transport/p2p.cc:711,1
    - Dst: cudaEventDestroy
      Src: /src/nccl/src/transport/p2p.cc:711,1
    - Dst: free
      Src: /src/nccl/src/transport/p2p.cc:713,1
    - Dst: ncclCuMemEnable
      Src: /src/nccl/src/transport/p2p.cc:716,1
    - Dst: ncclP2pFreeShareableBuffer
      Src: /src/nccl/src/transport/p2p.cc:721,1
    - Dst: ncclCudaFree
      Src: /src/nccl/src/transport/p2p.cc:722,1
    - Dst: free
      Src: /src/nccl/src/transport/p2p.cc:723,1
    - Dst: ncclCudaFree
      Src: /src/nccl/src/transport/p2p.cc:727,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 2
    argNames:
    - connection
    - proxyState
    argTypes:
    - struct ncclProxyConnection*
    - struct ncclProxyState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 701
    functionDepth: 1
    functionLinenumber: 701
    functionLinenumberEnd: 731
    functionName: p2pSendProxyFree
    functionSourceFile: /src/nccl/src/transport/p2p.cc
    functionUses: 0
    functionsReached:
    - free
    - CUDACHECK
    - ncclShmIpcClose
    - ncclP2pFreeShareableBuffer
    - ncclCudaFree
    - ncclCudaHostFree
    - cudaEventDestroy
    - ncclCuMemEnable
    - cudaStreamDestroy
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t p2pSendProxyFree(struct ncclProxyConnection* connection,
      struct ncclProxyState* proxyState)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ncclCuMemEnable
      Src: /src/nccl/src/transport/p2p.cc:734,1
    - Dst: ncclP2pFreeShareableBuffer
      Src: /src/nccl/src/transport/p2p.cc:738,1
    - Dst: ncclCudaFree
      Src: /src/nccl/src/transport/p2p.cc:739,1
    - Dst: free
      Src: /src/nccl/src/transport/p2p.cc:740,1
    - Dst: ncclCudaFree
      Src: /src/nccl/src/transport/p2p.cc:744,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - connection
    - proxyState
    argTypes:
    - struct ncclProxyConnection*
    - struct ncclProxyState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 733
    functionDepth: 1
    functionLinenumber: 733
    functionLinenumberEnd: 747
    functionName: p2pRecvProxyFree
    functionSourceFile: /src/nccl/src/transport/p2p.cc
    functionUses: 0
    functionsReached:
    - ncclP2pFreeShareableBuffer
    - ncclCuMemEnable
    - free
    - ncclCudaFree
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t p2pRecvProxyFree(struct ncclProxyConnection* connection,
      struct ncclProxyState* proxyState)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ROUNDUP
      Src: /src/nccl/src/transport/p2p.cc:756,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/transport/p2p.cc:780,1
    - Dst: cudaMemcpyAsync
      Src: /src/nccl/src/transport/p2p.cc:780,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/transport/p2p.cc:781,1
    - Dst: cudaEventRecord
      Src: /src/nccl/src/transport/p2p.cc:781,1
    - Dst: cudaEventQuery
      Src: /src/nccl/src/transport/p2p.cc:787,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/transport/p2p.cc:788,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 41
    argCount: 2
    argNames:
    - proxyState
    - args
    argTypes:
    - struct ncclProxyState*
    - struct ncclProxyArgs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 805
      start: 750
    functionDepth: 1
    functionLinenumber: 750
    functionLinenumberEnd: 805
    functionName: p2pSendProxyProgress
    functionSourceFile: /src/nccl/src/transport/p2p.cc
    functionUses: 0
    functionsReached:
    - ROUNDUP
    - cudaEventRecord
    - CUDACHECK
    - cudaEventQuery
    - cudaMemcpyAsync
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t p2pSendProxyProgress(struct ncclProxyState* proxyState,
      struct ncclProxyArgs* args)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: INFO
      Src: /src/nccl/src/transport/p2p.cc:830,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/transport/p2p.cc:837,1
    - Dst: cuMemGetAddressRange
      Src: /src/nccl/src/transport/p2p.cc:837,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/transport/p2p.cc:838,1
    - Dst: cuPointerGetAttribute
      Src: /src/nccl/src/transport/p2p.cc:838,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/p2p.cc:841,1
    - Dst: ncclProxyConnect
      Src: /src/nccl/src/transport/p2p.cc:841,1
    - Dst: ncclCuMemEnable
      Src: /src/nccl/src/transport/p2p.cc:846,1
    - Dst: CUPFN
      Src: /src/nccl/src/transport/p2p.cc:848,1
    - Dst: cuMemRetainAllocationHandle
      Src: /src/nccl/src/transport/p2p.cc:848,1
    - Dst: ncclParamLegacyCudaRegister
      Src: /src/nccl/src/transport/p2p.cc:850,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/transport/p2p.cc:851,1
    - Dst: cudaIpcGetMemHandle
      Src: /src/nccl/src/transport/p2p.cc:851,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/p2p.cc:859,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/transport/p2p.cc:863,1
    - Dst: cuMemExportToShareableHandle
      Src: /src/nccl/src/transport/p2p.cc:863,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/p2p.cc:864,1
    - Dst: ncclProxyClientQueryFdBlocking
      Src: /src/nccl/src/transport/p2p.cc:864,1
    - Dst: SYSCHECKGOTO
      Src: /src/nccl/src/transport/p2p.cc:865,1
    - Dst: close
      Src: /src/nccl/src/transport/p2p.cc:865,1
    - Dst: CUPFN
      Src: /src/nccl/src/transport/p2p.cc:868,1
    - Dst: cuMemExportToShareableHandle
      Src: /src/nccl/src/transport/p2p.cc:868,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/transport/p2p.cc:869,1
    - Dst: cuMemRelease
      Src: /src/nccl/src/transport/p2p.cc:869,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/transport/p2p.cc:874,1
    - Dst: cuMemRelease
      Src: /src/nccl/src/transport/p2p.cc:874,1
    - Dst: ncclParamLegacyCudaRegister
      Src: /src/nccl/src/transport/p2p.cc:878,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/transport/p2p.cc:879,1
    - Dst: cudaIpcGetMemHandle
      Src: /src/nccl/src/transport/p2p.cc:879,1
    - Dst: INFO
      Src: /src/nccl/src/transport/p2p.cc:893,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/p2p.cc:894,1
    - Dst: ncclProxyCallBlocking
      Src: /src/nccl/src/transport/p2p.cc:894,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/p2p.cc:897,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/p2p.cc:897,1
    - Dst: assert
      Src: /src/nccl/src/transport/p2p.cc:898,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/p2p.cc:908,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/p2p.cc:908,1
    - Dst: INFO
      Src: /src/nccl/src/transport/p2p.cc:913,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/p2p.cc:923,1
    - Dst: ncclStrongStreamAcquire
      Src: /src/nccl/src/transport/p2p.cc:923,1
    - Dst: ncclCudaGraphNone
      Src: /src/nccl/src/transport/p2p.cc:923,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/p2p.cc:924,1
    - Dst: ncclStrongStreamAcquire
      Src: /src/nccl/src/transport/p2p.cc:924,1
    - Dst: ncclCudaGraphNone
      Src: /src/nccl/src/transport/p2p.cc:924,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/p2p.cc:926,1
    - Dst: ncclCudaCallocAsync
      Src: /src/nccl/src/transport/p2p.cc:926,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/p2p.cc:928,1
    - Dst: ncclCudaMemcpyAsync
      Src: /src/nccl/src/transport/p2p.cc:928,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/p2p.cc:929,1
    - Dst: ncclStreamWaitStream
      Src: /src/nccl/src/transport/p2p.cc:929,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/p2p.cc:930,1
    - Dst: ncclStrongStreamRelease
      Src: /src/nccl/src/transport/p2p.cc:930,1
    - Dst: ncclCudaGraphNone
      Src: /src/nccl/src/transport/p2p.cc:930,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/p2p.cc:931,1
    - Dst: ncclStrongStreamRelease
      Src: /src/nccl/src/transport/p2p.cc:931,1
    - Dst: ncclCudaGraphNone
      Src: /src/nccl/src/transport/p2p.cc:931,1
    - Dst: assert
      Src: /src/nccl/src/transport/p2p.cc:935,1
    - Dst: free
      Src: /src/nccl/src/transport/p2p.cc:949,1
    - Dst: INFO
      Src: /src/nccl/src/transport/p2p.cc:950,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 127
    argCount: 11
    argNames:
    - comm
    - userbuff
    - buffSize
    - peerRanks
    - nPeers
    - type
    - regRecord
    - regBufFlag
    - offsetOut
    - peerRmtAddrsOut
    - isLegacyIpc
    argTypes:
    - ncclComm*
    - void*
    - size_t
    - int*
    - int
    - ncclIpcRegType
    - struct ncclReg*
    - int*
    - uintptr_t*
    - uintptr_t**
    - bool*
    assertStmts:
    - condition: (nPeers == 1)
      pos:
        line_end: 934
        line_start: 934
        source_file: /src/nccl/src/transport/p2p.cc
    - condition: (regRecord->ipcInfos[peerLocalRank] == NULL)
      pos:
        line_end: 897
        line_start: 897
        source_file: /src/nccl/src/transport/p2p.cc
    constantsTouched: []
    func_position:
      end: 952
      start: 807
    functionDepth: 4
    functionLinenumber: 807
    functionLinenumberEnd: 952
    functionName: ipcRegisterBuffer
    functionSourceFile: /src/nccl/src/transport/p2p.cc
    functionUses: 0
    functionsReached:
    - ncclProxyCallBlocking
    - cudaIpcGetMemHandle
    - CUPFN
    - cuMemRelease
    - SYSCHECKGOTO
    - INFO
    - ncclParamLegacyCudaRegister
    - cuMemExportToShareableHandle
    - ncclCudaCallocAsync
    - ncclStreamWaitStream
    - ncclCudaGraphNone
    - assert
    - cuMemRetainAllocationHandle
    - ncclProxyConnect
    - CUDACHECKGOTO
    - ncclCuMemEnable
    - ncclStrongStreamRelease
    - ncclStrongStreamAcquire
    - cuMemGetAddressRange
    - NCCLCHECKGOTO
    - memcpy
    - free
    - cuPointerGetAttribute
    - close
    - ncclCalloc
    - ncclCudaMemcpyAsync
    - CUCHECKGOTO
    - ncclProxyClientQueryFdBlocking
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ipcRegisterBuffer(ncclComm* comm, const void* userbuff,
      size_t buffSize, int* peerRanks, int nPeers, ncclIpcRegType type, struct ncclReg*
      regRecord, int* regBufFlag, uintptr_t* offsetOut, uintptr_t** peerRmtAddrsOut,
      bool* isLegacyIpc)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/p2p.cc:963,1
    - Dst: ncclRegFind
      Src: /src/nccl/src/transport/p2p.cc:963,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/p2p.cc:964,1
    - Dst: ncclRegLocalIsValid
      Src: /src/nccl/src/transport/p2p.cc:964,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/p2p.cc:966,1
    - Dst: ipcRegisterBuffer
      Src: /src/nccl/src/transport/p2p.cc:966,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 9
    argNames:
    - comm
    - userbuff
    - buffSize
    - peerRanks
    - nPeers
    - type
    - regBufFlag
    - offsetOut
    - peerRmtAddrsOut
    argTypes:
    - ncclComm*
    - void*
    - size_t
    - int*
    - int
    - ncclIpcRegType
    - int*
    - uintptr_t*
    - uintptr_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 976
      start: 954
    functionDepth: 5
    functionLinenumber: 954
    functionLinenumberEnd: 976
    functionName: ncclIpcLocalRegisterBuffer
    functionSourceFile: /src/nccl/src/transport/p2p.cc
    functionUses: 0
    functionsReached:
    - ipcRegisterBuffer
    - NCCLCHECKGOTO
    - ncclRegFind
    - ncclRegLocalIsValid
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIpcLocalRegisterBuffer(ncclComm* comm, const void*
      userbuff, size_t buffSize, int* peerRanks, int nPeers, ncclIpcRegType type,
      int* regBufFlag, uintptr_t* offsetOut, uintptr_t** peerRmtAddrsOut)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/p2p.cc:986,1
    - Dst: ncclCommGraphDeregister
      Src: /src/nccl/src/transport/p2p.cc:986,1
    - Dst: free
      Src: /src/nccl/src/transport/p2p.cc:987,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - comm
    - cb
    argTypes:
    - struct ncclComm*
    - struct ncclCommCallback*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 989
      start: 984
    functionDepth: 1
    functionLinenumber: 984
    functionLinenumberEnd: 989
    functionName: cleanupIpc
    functionSourceFile: /src/nccl/src/transport/p2p.cc
    functionUses: 0
    functionsReached:
    - ncclCommGraphDeregister
    - NCCLCHECK
    - free
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t cleanupIpc(struct ncclComm* comm, struct ncclCommCallback*
      cb)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<struct ncclIntruQueue<struct ncclCommCallback, &ncclCommCallback::next>*>
      Src: /src/nccl/src/transport/p2p.cc:995,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/transport/p2p.cc:1003,1
    - Dst: cuMemGetAddressRange
      Src: /src/nccl/src/transport/p2p.cc:1003,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/p2p.cc:1004,1
    - Dst: ncclCommGraphRegister
      Src: /src/nccl/src/transport/p2p.cc:1004,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/p2p.cc:1005,1
    - Dst: ipcRegisterBuffer
      Src: /src/nccl/src/transport/p2p.cc:1005,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/p2p.cc:1008,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/p2p.cc:1008,1
    - Dst: ncclIntruQueueEnqueue
      Src: /src/nccl/src/transport/p2p.cc:1013,1
    - Dst: ncclIntruQueueEnqueue
      Src: /src/nccl/src/transport/p2p.cc:1015,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/p2p.cc:1019,1
    - Dst: ncclCommGraphDeregister
      Src: /src/nccl/src/transport/p2p.cc:1019,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 11
    argNames:
    - comm
    - userbuff
    - buffSize
    - peerRanks
    - nPeers
    - type
    - regBufFlag
    - offsetOut
    - peerRmtAddrsOut
    - cleanupQueuePtr
    - nCleanupQueueElts
    argTypes:
    - ncclComm*
    - void*
    - size_t
    - int*
    - int
    - ncclIpcRegType
    - int*
    - uintptr_t*
    - uintptr_t**
    - void*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1031
      start: 991
    functionDepth: 5
    functionLinenumber: 991
    functionLinenumberEnd: 1031
    functionName: ncclIpcGraphRegisterBuffer
    functionSourceFile: /src/nccl/src/transport/p2p.cc
    functionUses: 0
    functionsReached:
    - cuMemGetAddressRange
    - NCCLCHECKGOTO
    - ncclCommGraphDeregister
    - reinterpret_cast<struct ncclIntruQueue<struct ncclCommCallback, &ncclCommCallback::next>*>
    - ncclCommGraphRegister
    - ncclCalloc
    - CUCHECKGOTO
    - ncclIntruQueueEnqueue
    - ipcRegisterBuffer
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIpcGraphRegisterBuffer(ncclComm* comm, const void*
      userbuff, size_t buffSize, int* peerRanks, int nPeers, ncclIpcRegType type,
      int* regBufFlag, uintptr_t* offsetOut, uintptr_t** peerRmtAddrsOut, void* cleanupQueuePtr,
      int* nCleanupQueueElts)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/p2p.cc:1034,1
    - Dst: ncclProxyCallBlocking
      Src: /src/nccl/src/transport/p2p.cc:1034,1
    - Dst: INFO
      Src: /src/nccl/src/transport/p2p.cc:1035,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - comm
    - regInfo
    argTypes:
    - struct ncclComm*
    - struct ncclIpcRegInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1037
      start: 1033
    functionDepth: 4
    functionLinenumber: 1033
    functionLinenumberEnd: 1037
    functionName: ncclIpcDeregBuffer
    functionSourceFile: /src/nccl/src/transport/p2p.cc
    functionUses: 0
    functionsReached:
    - ncclProxyCallBlocking
    - INFO
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIpcDeregBuffer(struct ncclComm* comm, struct ncclIpcRegInfo*
      regInfo)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/src/transport/p2p.cc:1047,1
    - Dst: assert
      Src: /src/nccl/src/transport/p2p.cc:1048,1
    - Dst: INFO
      Src: /src/nccl/src/transport/p2p.cc:1050,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/transport/p2p.cc:1056,1
    - Dst: cudaIpcOpenMemHandle
      Src: /src/nccl/src/transport/p2p.cc:1056,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/p2p.cc:1062,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/transport/p2p.cc:1065,1
    - Dst: cuMemImportFromShareableHandle
      Src: /src/nccl/src/transport/p2p.cc:1065,1
    - Dst: SYSCHECKGOTO
      Src: /src/nccl/src/transport/p2p.cc:1066,1
    - Dst: close
      Src: /src/nccl/src/transport/p2p.cc:1066,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/transport/p2p.cc:1068,1
    - Dst: cuMemImportFromShareableHandle
      Src: /src/nccl/src/transport/p2p.cc:1068,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/transport/p2p.cc:1072,1
    - Dst: cuMemAddressReserve
      Src: /src/nccl/src/transport/p2p.cc:1072,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/transport/p2p.cc:1073,1
    - Dst: cuMemMap
      Src: /src/nccl/src/transport/p2p.cc:1073,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/transport/p2p.cc:1080,1
    - Dst: cuMemSetAccess
      Src: /src/nccl/src/transport/p2p.cc:1080,1
    - Dst: INFO
      Src: /src/nccl/src/transport/p2p.cc:1083,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/p2p.cc:1086,1
    - Dst: CUCHECK
      Src: /src/nccl/src/transport/p2p.cc:1091,1
    - Dst: cuMemUnmap
      Src: /src/nccl/src/transport/p2p.cc:1091,1
    - Dst: CUCHECK
      Src: /src/nccl/src/transport/p2p.cc:1092,1
    - Dst: cuMemAddressFree
      Src: /src/nccl/src/transport/p2p.cc:1092,1
    - Dst: CUCHECK
      Src: /src/nccl/src/transport/p2p.cc:1093,1
    - Dst: cuMemRelease
      Src: /src/nccl/src/transport/p2p.cc:1093,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 47
    argCount: 7
    argNames:
    - connection
    - proxyState
    - reqBuff
    - reqSize
    - respBuff
    - respSize
    - done
    argTypes:
    - struct ncclProxyConnection*
    - struct ncclProxyState*
    - void*
    - int
    - void*
    - int
    - int*
    assertStmts:
    - condition: (sizeof(void*) == respSize)
      pos:
        line_end: 1047
        line_start: 1047
        source_file: /src/nccl/src/transport/p2p.cc
    - condition: (sizeof(struct p2pIpcExpInfo) == reqSize)
      pos:
        line_end: 1046
        line_start: 1046
        source_file: /src/nccl/src/transport/p2p.cc
    constantsTouched: []
    func_position:
      end: 1097
      start: 1039
    functionDepth: 1
    functionLinenumber: 1039
    functionLinenumberEnd: 1097
    functionName: p2pProxyRegister
    functionSourceFile: /src/nccl/src/transport/p2p.cc
    functionUses: 0
    functionsReached:
    - INFO
    - memcpy
    - CUDACHECKGOTO
    - cudaIpcOpenMemHandle
    - cuMemAddressFree
    - cuMemRelease
    - assert
    - close
    - cuMemUnmap
    - cuMemMap
    - CUCHECK
    - cuMemSetAccess
    - CUCHECKGOTO
    - SYSCHECKGOTO
    - cuMemImportFromShareableHandle
    - cuMemAddressReserve
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t p2pProxyRegister(struct ncclProxyConnection* connection,
      struct ncclProxyState* proxyState, void* reqBuff, int reqSize, void* respBuff,
      int respSize, int* done)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/src/transport/p2p.cc:1102,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/transport/p2p.cc:1105,1
    - Dst: cudaIpcCloseMemHandle
      Src: /src/nccl/src/transport/p2p.cc:1105,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/p2p.cc:1108,1
    - Dst: ncclCuMemFreeAddr
      Src: /src/nccl/src/transport/p2p.cc:1108,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/p2p.cc:1110,1
    - Dst: ncclCudaFree
      Src: /src/nccl/src/transport/p2p.cc:1110,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 5
    argNames:
    - connection
    - proxyState
    - reqBuff
    - reqSize
    - done
    argTypes:
    - struct ncclProxyConnection*
    - struct ncclProxyState*
    - void*
    - int
    - int*
    assertStmts:
    - condition: (sizeof(struct ncclIpcImpInfo) == reqSize)
      pos:
        line_end: 1101
        line_start: 1101
        source_file: /src/nccl/src/transport/p2p.cc
    constantsTouched: []
    func_position:
      end: 1119
      start: 1099
    functionDepth: 1
    functionLinenumber: 1099
    functionLinenumberEnd: 1119
    functionName: p2pProxyDeregister
    functionSourceFile: /src/nccl/src/transport/p2p.cc
    functionUses: 0
    functionsReached:
    - NCCLCHECKGOTO
    - CUDACHECKGOTO
    - cudaIpcCloseMemHandle
    - ncclCudaFree
    - assert
    - ncclCuMemFreeAddr
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t p2pProxyDeregister(struct ncclProxyConnection* connection,
      struct ncclProxyState* proxyState, void* reqBuff, int reqSize, int* done)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CUCHECK
      Src: /src/nccl/src/transport/p2p.cc:1122,1
    - Dst: cuMemAddressReserve
      Src: /src/nccl/src/transport/p2p.cc:1122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1124
      start: 1121
    functionDepth: 1
    functionLinenumber: 1121
    functionLinenumberEnd: 1124
    functionName: ncclIpcSymmetricInit
    functionSourceFile: /src/nccl/src/transport/p2p.cc
    functionUses: 1
    functionsReached:
    - CUCHECK
    - cuMemAddressReserve
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIpcSymmetricInit(struct ncclComm* comm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CUCHECK
      Src: /src/nccl/src/transport/p2p.cc:1128,1
    - Dst: cuMemAddressFree
      Src: /src/nccl/src/transport/p2p.cc:1128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1131
      start: 1126
    functionDepth: 1
    functionLinenumber: 1126
    functionLinenumberEnd: 1131
    functionName: ncclIpcSymmetricFinalize
    functionSourceFile: /src/nccl/src/transport/p2p.cc
    functionUses: 1
    functionsReached:
    - CUCHECK
    - cuMemAddressFree
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIpcSymmetricFinalize(struct ncclComm* comm)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/src/transport/p2p.cc:1140,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/p2p.cc:1141,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/p2p.cc:1141,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/p2p.cc:1143,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/transport/p2p.cc:1145,1
    - Dst: cuMemExportToShareableHandle
      Src: /src/nccl/src/transport/p2p.cc:1145,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/p2p.cc:1148,1
    - Dst: bootstrapIntraNodeAllGather
      Src: /src/nccl/src/transport/p2p.cc:1148,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/p2p.cc:1161,1
    - Dst: ncclProxyClientGetFdBlocking
      Src: /src/nccl/src/transport/p2p.cc:1161,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/transport/p2p.cc:1162,1
    - Dst: cuMemImportFromShareableHandle
      Src: /src/nccl/src/transport/p2p.cc:1162,1
    - Dst: SYSCHECKGOTO
      Src: /src/nccl/src/transport/p2p.cc:1163,1
    - Dst: close
      Src: /src/nccl/src/transport/p2p.cc:1163,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/transport/p2p.cc:1165,1
    - Dst: cuMemImportFromShareableHandle
      Src: /src/nccl/src/transport/p2p.cc:1165,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/transport/p2p.cc:1169,1
    - Dst: cuMemMap
      Src: /src/nccl/src/transport/p2p.cc:1169,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/transport/p2p.cc:1170,1
    - Dst: cuMemSetAccess
      Src: /src/nccl/src/transport/p2p.cc:1170,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/transport/p2p.cc:1175,1
    - Dst: cuMemRelease
      Src: /src/nccl/src/transport/p2p.cc:1175,1
    - Dst: INFO
      Src: /src/nccl/src/transport/p2p.cc:1179,1
    - Dst: free
      Src: /src/nccl/src/transport/p2p.cc:1182,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 43
    argCount: 5
    argNames:
    - comm
    - offset
    - size
    - memHandle
    - symPtr
    argTypes:
    - struct ncclComm*
    - size_t
    - size_t
    - CUmemGenericAllocationHandle
    - void**
    assertStmts:
    - condition: (offset % NCCL_REC_PAGE_SIZE == 0 && size % NCCL_REC_PAGE_SIZE ==
        0)
      pos:
        line_end: 1139
        line_start: 1139
        source_file: /src/nccl/src/transport/p2p.cc
    constantsTouched: []
    func_position:
      end: 1186
      start: 1133
    functionDepth: 4
    functionLinenumber: 1133
    functionLinenumberEnd: 1186
    functionName: ncclIpcSymmetricMap
    functionSourceFile: /src/nccl/src/transport/p2p.cc
    functionUses: 1
    functionsReached:
    - INFO
    - NCCLCHECKGOTO
    - cuMemExportToShareableHandle
    - memcpy
    - free
    - bootstrapIntraNodeAllGather
    - cuMemRelease
    - assert
    - ncclCalloc
    - close
    - cuMemMap
    - cuMemSetAccess
    - CUCHECKGOTO
    - SYSCHECKGOTO
    - cuMemImportFromShareableHandle
    - ncclProxyClientGetFdBlocking
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIpcSymmetricMap(struct ncclComm* comm, size_t offset,
      size_t size, CUmemGenericAllocationHandle memHandle, void** symPtr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/transport/p2p.cc:1194,1
    - Dst: cuMemUnmap
      Src: /src/nccl/src/transport/p2p.cc:1194,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - comm
    - size
    - symPtr
    argTypes:
    - struct ncclComm*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1201
      start: 1188
    functionDepth: 1
    functionLinenumber: 1188
    functionLinenumberEnd: 1201
    functionName: ncclIpcSymmetricFree
    functionSourceFile: /src/nccl/src/transport/p2p.cc
    functionUses: 1
    functionsReached:
    - CUCHECKGOTO
    - cuMemUnmap
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIpcSymmetricFree(struct ncclComm* comm, size_t size,
      void* symPtr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ncclParamP2pUseCudaMemcpy
      Src: /src/nccl/src/transport/p2p.cc:1213,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1220
      start: 1210
    functionDepth: 0
    functionLinenumber: 1210
    functionLinenumberEnd: 1220
    functionName: initCeOperation
    functionSourceFile: /src/nccl/src/transport/p2p.cc
    functionUses: 1
    functionsReached:
    - ncclParamP2pUseCudaMemcpy
    linkageType: ''
    returnType: void
    signature: void initCeOperation()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: initCeOperation
      Src: /src/nccl/src/transport/shm.cc:77,1
    - Dst: ncclParamShmDisable
      Src: /src/nccl/src/transport/shm.cc:79,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/shm.cc:82,1
    - Dst: ncclTopoCheckNet
      Src: /src/nccl/src/transport/shm.cc:82,1
    - Dst: TRACE
      Src: /src/nccl/src/transport/shm.cc:86,1
    - Dst: TRACE
      Src: /src/nccl/src/transport/shm.cc:90,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 5
    argNames:
    - ret
    - comm
    - graph
    - info1
    - info2
    argTypes:
    - int*
    - struct ncclComm*
    - struct ncclTopoGraph*
    - struct ncclPeerInfo*
    - struct ncclPeerInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 96
    functionName: shmCanConnect
    functionSourceFile: /src/nccl/src/transport/shm.cc
    functionUses: 0
    functionsReached:
    - TRACE
    - ncclTopoCheckNet
    - NCCLCHECK
    - initCeOperation
    - ncclParamShmDisable
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t shmCanConnect(int* ret, struct ncclComm* comm, struct
      ncclTopoGraph* graph, struct ncclPeerInfo* info1, struct ncclPeerInfo* info2)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/shm.cc:109,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/shm.cc:109,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/shm.cc:121,1
    - Dst: ncclProxyConnect
      Src: /src/nccl/src/transport/shm.cc:121,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/shm.cc:122,1
    - Dst: ncclProxyCallBlocking
      Src: /src/nccl/src/transport/shm.cc:122,1
    - Dst: INFO
      Src: /src/nccl/src/transport/shm.cc:128,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 8
    argNames:
    - comm
    - graph
    - myInfo
    - peerInfo
    - connectInfo
    - send
    - channelId
    - connIndex
    argTypes:
    - struct ncclComm*
    - struct ncclTopoGraph*
    - struct ncclPeerInfo*
    - struct ncclPeerInfo*
    - struct ncclConnect*
    - struct ncclConnector*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 101
    functionDepth: 4
    functionLinenumber: 101
    functionLinenumberEnd: 130
    functionName: shmSendSetup
    functionSourceFile: /src/nccl/src/transport/shm.cc
    functionUses: 0
    functionsReached:
    - ncclProxyCallBlocking
    - INFO
    - ncclProxyConnect
    - ncclCalloc
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t shmSendSetup(struct ncclComm* comm, struct ncclTopoGraph*
      graph, struct ncclPeerInfo* myInfo, struct ncclPeerInfo* peerInfo, struct ncclConnect*
      connectInfo, struct ncclConnector* send, int channelId, int connIndex)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/shm.cc:138,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/shm.cc:138,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/shm.cc:152,1
    - Dst: ncclProxyConnect
      Src: /src/nccl/src/transport/shm.cc:152,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/shm.cc:153,1
    - Dst: ncclProxyCallBlocking
      Src: /src/nccl/src/transport/shm.cc:153,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 8
    argNames:
    - comm
    - graph
    - myInfo
    - peerInfo
    - connectInfo
    - recv
    - channelId
    - connIndex
    argTypes:
    - struct ncclComm*
    - struct ncclTopoGraph*
    - struct ncclPeerInfo*
    - struct ncclPeerInfo*
    - struct ncclConnect*
    - struct ncclConnector*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 132
    functionDepth: 4
    functionLinenumber: 132
    functionLinenumberEnd: 160
    functionName: shmRecvSetup
    functionSourceFile: /src/nccl/src/transport/shm.cc
    functionUses: 0
    functionsReached:
    - ncclProxyCallBlocking
    - ncclCalloc
    - ncclProxyConnect
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t shmRecvSetup(struct ncclComm* comm, struct ncclTopoGraph*
      graph, struct ncclPeerInfo* myInfo, struct ncclPeerInfo* peerInfo, struct ncclConnect*
      connectInfo, struct ncclConnector* recv, int channelId, int connIndex)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/shm.cc:169,1
    - Dst: ncclShmImportShareableBuffer
      Src: /src/nccl/src/transport/shm.cc:169,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/shm.cc:185,1
    - Dst: ncclProxyCallBlocking
      Src: /src/nccl/src/transport/shm.cc:185,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 5
    argNames:
    - comm
    - connectInfo
    - nranks
    - rank
    - send
    argTypes:
    - struct ncclComm*
    - struct ncclConnect*
    - int
    - int
    - struct ncclConnector*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 163
    functionDepth: 4
    functionLinenumber: 163
    functionLinenumberEnd: 195
    functionName: shmSendConnect
    functionSourceFile: /src/nccl/src/transport/shm.cc
    functionUses: 0
    functionsReached:
    - ncclProxyCallBlocking
    - ncclShmImportShareableBuffer
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t shmSendConnect(struct ncclComm* comm, struct ncclConnect*
      connectInfo, int nranks, int rank, struct ncclConnector* send)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/shm.cc:203,1
    - Dst: ncclShmImportShareableBuffer
      Src: /src/nccl/src/transport/shm.cc:203,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/shm.cc:216,1
    - Dst: ncclProxyCallBlocking
      Src: /src/nccl/src/transport/shm.cc:216,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 5
    argNames:
    - comm
    - connectInfo
    - nranks
    - rank
    - recv
    argTypes:
    - struct ncclComm*
    - struct ncclConnect*
    - int
    - int
    - struct ncclConnector*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 197
    functionDepth: 4
    functionLinenumber: 197
    functionLinenumberEnd: 225
    functionName: shmRecvConnect
    functionSourceFile: /src/nccl/src/transport/shm.cc
    functionUses: 0
    functionsReached:
    - ncclProxyCallBlocking
    - ncclShmImportShareableBuffer
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t shmRecvConnect(struct ncclComm* comm, struct ncclConnect*
      connectInfo, int nranks, int rank, struct ncclConnector* recv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/shm.cc:230,1
    - Dst: ncclShmIpcClose
      Src: /src/nccl/src/transport/shm.cc:230,1
    - Dst: free
      Src: /src/nccl/src/transport/shm.cc:231,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - send
    argTypes:
    - struct ncclConnector*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 235
    functionName: shmSendFree
    functionSourceFile: /src/nccl/src/transport/shm.cc
    functionUses: 0
    functionsReached:
    - ncclShmIpcClose
    - NCCLCHECK
    - free
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t shmSendFree(struct ncclConnector* send)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/shm.cc:240,1
    - Dst: ncclShmIpcClose
      Src: /src/nccl/src/transport/shm.cc:240,1
    - Dst: free
      Src: /src/nccl/src/transport/shm.cc:241,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - recv
    argTypes:
    - struct ncclConnector*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 245
    functionName: shmRecvFree
    functionSourceFile: /src/nccl/src/transport/shm.cc
    functionUses: 0
    functionsReached:
    - ncclShmIpcClose
    - NCCLCHECK
    - free
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t shmRecvFree(struct ncclConnector* recv)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/shm.cc:257,1
    - Dst: ncclCudaCalloc
      Src: /src/nccl/src/transport/shm.cc:257,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/shm.cc:258,1
    - Dst: ncclCudaHostCalloc
      Src: /src/nccl/src/transport/shm.cc:258,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/transport/shm.cc:259,1
    - Dst: cudaStreamCreateWithFlags
      Src: /src/nccl/src/transport/shm.cc:259,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/transport/shm.cc:261,1
    - Dst: cudaEventCreate
      Src: /src/nccl/src/transport/shm.cc:261,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/shm.cc:266,1
    - Dst: ncclCudaHostFree
      Src: /src/nccl/src/transport/shm.cc:271,1
    - Dst: ncclCudaFree
      Src: /src/nccl/src/transport/shm.cc:272,1
    - Dst: free
      Src: /src/nccl/src/transport/shm.cc:273,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 7
    argNames:
    - connection
    - proxyState
    - reqBuff
    - reqSize
    - respBuff
    - respSize
    - done
    argTypes:
    - struct ncclProxyConnection*
    - struct ncclProxyState*
    - void*
    - int
    - void*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 247
    functionDepth: 1
    functionLinenumber: 247
    functionLinenumberEnd: 275
    functionName: shmSendProxyConnect
    functionSourceFile: /src/nccl/src/transport/shm.cc
    functionUses: 0
    functionsReached:
    - ncclCudaHostCalloc
    - NCCLCHECKGOTO
    - ncclCudaCalloc
    - CUDACHECKGOTO
    - memcpy
    - free
    - ncclCudaFree
    - ncclCudaHostFree
    - cudaEventCreate
    - cudaStreamCreateWithFlags
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t shmSendProxyConnect(struct ncclProxyConnection* connection,
      struct ncclProxyState* proxyState, void* reqBuff, int reqSize, void* respBuff,
      int respSize, int* done)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/shm.cc:287,1
    - Dst: ncclCudaCalloc
      Src: /src/nccl/src/transport/shm.cc:287,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/shm.cc:288,1
    - Dst: ncclCudaHostCalloc
      Src: /src/nccl/src/transport/shm.cc:288,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/transport/shm.cc:289,1
    - Dst: cudaStreamCreateWithFlags
      Src: /src/nccl/src/transport/shm.cc:289,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/transport/shm.cc:291,1
    - Dst: cudaEventCreate
      Src: /src/nccl/src/transport/shm.cc:291,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/shm.cc:294,1
    - Dst: ncclCudaHostFree
      Src: /src/nccl/src/transport/shm.cc:299,1
    - Dst: ncclCudaFree
      Src: /src/nccl/src/transport/shm.cc:300,1
    - Dst: free
      Src: /src/nccl/src/transport/shm.cc:301,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 7
    argNames:
    - connection
    - proxyState
    - reqBuff
    - reqSize
    - respBuff
    - respSize
    - done
    argTypes:
    - struct ncclProxyConnection*
    - struct ncclProxyState*
    - void*
    - int
    - void*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 277
    functionDepth: 1
    functionLinenumber: 277
    functionLinenumberEnd: 303
    functionName: shmRecvProxyConnect
    functionSourceFile: /src/nccl/src/transport/shm.cc
    functionUses: 0
    functionsReached:
    - ncclCudaHostCalloc
    - NCCLCHECKGOTO
    - ncclCudaCalloc
    - CUDACHECKGOTO
    - memcpy
    - free
    - ncclCudaFree
    - ncclCudaHostFree
    - cudaEventCreate
    - cudaStreamCreateWithFlags
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t shmRecvProxyConnect(struct ncclProxyConnection* connection,
      struct ncclProxyState* proxyState, void* reqBuff, int reqSize, void* respBuff,
      int respSize, int* done)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CUDACHECK
      Src: /src/nccl/src/transport/shm.cc:310,1
    - Dst: cudaStreamDestroy
      Src: /src/nccl/src/transport/shm.cc:310,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/shm.cc:311,1
    - Dst: ncclCudaFree
      Src: /src/nccl/src/transport/shm.cc:311,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/shm.cc:312,1
    - Dst: ncclCudaHostFree
      Src: /src/nccl/src/transport/shm.cc:312,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/transport/shm.cc:314,1
    - Dst: cudaEventDestroy
      Src: /src/nccl/src/transport/shm.cc:314,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/shm.cc:317,1
    - Dst: ncclShmIpcClose
      Src: /src/nccl/src/transport/shm.cc:317,1
    - Dst: free
      Src: /src/nccl/src/transport/shm.cc:318,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - connection
    - proxyState
    argTypes:
    - struct ncclProxyConnection*
    - struct ncclProxyState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 305
    functionDepth: 1
    functionLinenumber: 305
    functionLinenumberEnd: 322
    functionName: shmSendProxyFree
    functionSourceFile: /src/nccl/src/transport/shm.cc
    functionUses: 0
    functionsReached:
    - free
    - CUDACHECK
    - ncclShmIpcClose
    - ncclCudaFree
    - ncclCudaHostFree
    - cudaEventDestroy
    - cudaStreamDestroy
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t shmSendProxyFree(struct ncclProxyConnection* connection,
      struct ncclProxyState* proxyState)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CUDACHECK
      Src: /src/nccl/src/transport/shm.cc:329,1
    - Dst: cudaStreamDestroy
      Src: /src/nccl/src/transport/shm.cc:329,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/shm.cc:330,1
    - Dst: ncclCudaFree
      Src: /src/nccl/src/transport/shm.cc:330,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/shm.cc:331,1
    - Dst: ncclCudaHostFree
      Src: /src/nccl/src/transport/shm.cc:331,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/transport/shm.cc:333,1
    - Dst: cudaEventDestroy
      Src: /src/nccl/src/transport/shm.cc:333,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/shm.cc:336,1
    - Dst: ncclShmIpcClose
      Src: /src/nccl/src/transport/shm.cc:336,1
    - Dst: free
      Src: /src/nccl/src/transport/shm.cc:337,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - connection
    - proxyState
    argTypes:
    - struct ncclProxyConnection*
    - struct ncclProxyState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 341
    functionName: shmRecvProxyFree
    functionSourceFile: /src/nccl/src/transport/shm.cc
    functionUses: 0
    functionsReached:
    - free
    - CUDACHECK
    - ncclShmIpcClose
    - ncclCudaFree
    - ncclCudaHostFree
    - cudaEventDestroy
    - cudaStreamDestroy
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t shmRecvProxyFree(struct ncclProxyConnection* connection,
      struct ncclProxyState* proxyState)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ROUNDUP
      Src: /src/nccl/src/transport/shm.cc:349,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/transport/shm.cc:373,1
    - Dst: cudaMemcpyAsync
      Src: /src/nccl/src/transport/shm.cc:373,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/transport/shm.cc:374,1
    - Dst: cudaEventRecord
      Src: /src/nccl/src/transport/shm.cc:374,1
    - Dst: __sync_synchronize
      Src: /src/nccl/src/transport/shm.cc:376,1
    - Dst: cudaEventQuery
      Src: /src/nccl/src/transport/shm.cc:382,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/transport/shm.cc:383,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 43
    argCount: 2
    argNames:
    - proxyState
    - args
    argTypes:
    - struct ncclProxyState*
    - struct ncclProxyArgs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 400
      start: 343
    functionDepth: 1
    functionLinenumber: 343
    functionLinenumberEnd: 400
    functionName: shmSendProxyProgress
    functionSourceFile: /src/nccl/src/transport/shm.cc
    functionUses: 0
    functionsReached:
    - ROUNDUP
    - cudaEventRecord
    - CUDACHECK
    - cudaEventQuery
    - cudaMemcpyAsync
    - __sync_synchronize
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t shmSendProxyProgress(struct ncclProxyState* proxyState,
      struct ncclProxyArgs* args)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: ROUNDUP
      Src: /src/nccl/src/transport/shm.cc:408,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/transport/shm.cc:432,1
    - Dst: cudaMemcpyAsync
      Src: /src/nccl/src/transport/shm.cc:432,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/transport/shm.cc:433,1
    - Dst: cudaEventRecord
      Src: /src/nccl/src/transport/shm.cc:433,1
    - Dst: cudaEventQuery
      Src: /src/nccl/src/transport/shm.cc:439,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/transport/shm.cc:440,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 41
    argCount: 2
    argNames:
    - proxyState
    - args
    argTypes:
    - struct ncclProxyState*
    - struct ncclProxyArgs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 402
    functionDepth: 1
    functionLinenumber: 402
    functionLinenumberEnd: 457
    functionName: shmRecvProxyProgress
    functionSourceFile: /src/nccl/src/transport/shm.cc
    functionUses: 0
    functionsReached:
    - ROUNDUP
    - cudaEventRecord
    - CUDACHECK
    - cudaEventQuery
    - cudaMemcpyAsync
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t shmRecvProxyProgress(struct ncclProxyState* proxyState,
      struct ncclProxyArgs* args)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/shm.cc:469,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/shm.cc:469,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/shm.cc:470,1
    - Dst: ncclShmAllocateShareableBuffer
      Src: /src/nccl/src/transport/shm.cc:470,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/shm.cc:471,1
    - Dst: free
      Src: /src/nccl/src/transport/shm.cc:476,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 7
    argNames:
    - connection
    - proxyState
    - reqBuff
    - reqSize
    - respBuff
    - respSize
    - done
    argTypes:
    - struct ncclProxyConnection*
    - struct ncclProxyState*
    - void*
    - int
    - void*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 459
    functionDepth: 1
    functionLinenumber: 459
    functionLinenumberEnd: 478
    functionName: shmSendProxySetup
    functionSourceFile: /src/nccl/src/transport/shm.cc
    functionUses: 0
    functionsReached:
    - NCCLCHECKGOTO
    - memcpy
    - free
    - ncclCalloc
    - ncclShmAllocateShareableBuffer
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t shmSendProxySetup(struct ncclProxyConnection* connection,
      struct ncclProxyState* proxyState, void* reqBuff, int reqSize, void* respBuff,
      int respSize, int* done)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/shm.cc:490,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/transport/shm.cc:490,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/transport/shm.cc:491,1
    - Dst: ncclShmAllocateShareableBuffer
      Src: /src/nccl/src/transport/shm.cc:491,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/shm.cc:492,1
    - Dst: free
      Src: /src/nccl/src/transport/shm.cc:497,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 7
    argNames:
    - connection
    - proxyState
    - reqBuff
    - reqSize
    - respBuff
    - respSize
    - done
    argTypes:
    - struct ncclProxyConnection*
    - struct ncclProxyState*
    - void*
    - int
    - void*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 480
    functionDepth: 1
    functionLinenumber: 480
    functionLinenumberEnd: 499
    functionName: shmRecvProxySetup
    functionSourceFile: /src/nccl/src/transport/shm.cc
    functionUses: 0
    functionsReached:
    - NCCLCHECKGOTO
    - memcpy
    - free
    - ncclCalloc
    - ncclShmAllocateShareableBuffer
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t shmRecvProxySetup(struct ncclProxyConnection* connection,
      struct ncclProxyState* proxyState, void* reqBuff, int reqSize, void* respBuff,
      int respSize, int* done)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ncclParamShmUseCudaMemcpy
      Src: /src/nccl/src/transport/shm.cc:504,1
    - Dst: ncclParamShmMemcpyMode
      Src: /src/nccl/src/transport/shm.cc:504,1
    - Dst: ncclParamShmUseCudaMemcpy
      Src: /src/nccl/src/transport/shm.cc:505,1
    - Dst: ncclParamShmMemcpyMode
      Src: /src/nccl/src/transport/shm.cc:505,1
    - Dst: ncclParamShmLocality
      Src: /src/nccl/src/transport/shm.cc:514,1
    - Dst: WARN
      Src: /src/nccl/src/transport/shm.cc:516,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 501
    functionDepth: 1
    functionLinenumber: 501
    functionLinenumberEnd: 521
    functionName: initCeOperation
    functionSourceFile: /src/nccl/src/transport/shm.cc
    functionUses: 2
    functionsReached:
    - ncclParamShmLocality
    - WARN
    - ncclParamShmMemcpyMode
    - ncclParamShmUseCudaMemcpy
    linkageType: ''
    returnType: void
    signature: void initCeOperation()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/transport/shm.cc:525,1
    - Dst: ncclCuMemEnable
      Src: /src/nccl/src/transport/shm.cc:529,1
    - Dst: ncclCuMemHostEnable
      Src: /src/nccl/src/transport/shm.cc:529,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/shm.cc:534,1
    - Dst: ncclCuMemHostAlloc
      Src: /src/nccl/src/transport/shm.cc:534,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/shm.cc:537,1
    - Dst: CUCHECK
      Src: /src/nccl/src/transport/shm.cc:539,1
    - Dst: cuMemExportToShareableHandle
      Src: /src/nccl/src/transport/shm.cc:539,1
    - Dst: INFO
      Src: /src/nccl/src/transport/shm.cc:545,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/shm.cc:549,1
    - Dst: ncclShmOpen
      Src: /src/nccl/src/transport/shm.cc:549,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/shm.cc:550,1
    - Dst: INFO
      Src: /src/nccl/src/transport/shm.cc:552,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/shm.cc:557,1
    - Dst: ncclShmOpen
      Src: /src/nccl/src/transport/shm.cc:557,1
    - Dst: memcpy
      Src: /src/nccl/src/transport/shm.cc:558,1
    - Dst: INFO
      Src: /src/nccl/src/transport/shm.cc:560,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 5
    argNames:
    - size
    - legacy
    - desc
    - hptr
    - dptr
    argTypes:
    - size_t
    - bool
    - ncclShmIpcDesc_t*
    - void**
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 523
    functionDepth: 1
    functionLinenumber: 523
    functionLinenumberEnd: 563
    functionName: ncclShmAllocateShareableBuffer
    functionSourceFile: /src/nccl/src/transport/shm.cc
    functionUses: 4
    functionsReached:
    - WARN
    - INFO
    - ncclShmOpen
    - cuMemExportToShareableHandle
    - memcpy
    - ncclCuMemHostEnable
    - ncclCuMemHostAlloc
    - ncclCuMemEnable
    - CUCHECK
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclShmAllocateShareableBuffer(size_t size, bool legacy,
      ncclShmIpcDesc_t *desc, void **hptr, void **dptr)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/transport/shm.cc:567,1
    - Dst: ncclCuMemEnable
      Src: /src/nccl/src/transport/shm.cc:571,1
    - Dst: ncclCuMemHostEnable
      Src: /src/nccl/src/transport/shm.cc:571,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/shm.cc:589,1
    - Dst: ncclProxyClientGetFdBlocking
      Src: /src/nccl/src/transport/shm.cc:589,1
    - Dst: CUCHECK
      Src: /src/nccl/src/transport/shm.cc:590,1
    - Dst: cuMemImportFromShareableHandle
      Src: /src/nccl/src/transport/shm.cc:590,1
    - Dst: close
      Src: /src/nccl/src/transport/shm.cc:591,1
    - Dst: CUCHECK
      Src: /src/nccl/src/transport/shm.cc:593,1
    - Dst: cuMemImportFromShareableHandle
      Src: /src/nccl/src/transport/shm.cc:593,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/transport/shm.cc:597,1
    - Dst: cudaGetDevice
      Src: /src/nccl/src/transport/shm.cc:597,1
    - Dst: CUCHECK
      Src: /src/nccl/src/transport/shm.cc:598,1
    - Dst: cuDeviceGet
      Src: /src/nccl/src/transport/shm.cc:598,1
    - Dst: CUCHECK
      Src: /src/nccl/src/transport/shm.cc:599,1
    - Dst: cuDeviceGetAttribute
      Src: /src/nccl/src/transport/shm.cc:599,1
    - Dst: CUCHECK
      Src: /src/nccl/src/transport/shm.cc:607,1
    - Dst: cuMemGetAllocationGranularity
      Src: /src/nccl/src/transport/shm.cc:607,1
    - Dst: ALIGN_SIZE
      Src: /src/nccl/src/transport/shm.cc:609,1
    - Dst: CUCHECK
      Src: /src/nccl/src/transport/shm.cc:612,1
    - Dst: cuMemAddressReserve
      Src: /src/nccl/src/transport/shm.cc:612,1
    - Dst: CUCHECK
      Src: /src/nccl/src/transport/shm.cc:613,1
    - Dst: cuMemMap
      Src: /src/nccl/src/transport/shm.cc:613,1
    - Dst: CUCHECK
      Src: /src/nccl/src/transport/shm.cc:619,1
    - Dst: cuMemSetAccess
      Src: /src/nccl/src/transport/shm.cc:619,1
    - Dst: CUCHECK
      Src: /src/nccl/src/transport/shm.cc:625,1
    - Dst: cuMemSetAccess
      Src: /src/nccl/src/transport/shm.cc:625,1
    - Dst: INFO
      Src: /src/nccl/src/transport/shm.cc:630,1
    - Dst: snprintf
      Src: /src/nccl/src/transport/shm.cc:633,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/shm.cc:634,1
    - Dst: ncclShmOpen
      Src: /src/nccl/src/transport/shm.cc:634,1
    - Dst: INFO
      Src: /src/nccl/src/transport/shm.cc:636,1
    - Dst: snprintf
      Src: /src/nccl/src/transport/shm.cc:640,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/shm.cc:641,1
    - Dst: ncclShmOpen
      Src: /src/nccl/src/transport/shm.cc:641,1
    - Dst: INFO
      Src: /src/nccl/src/transport/shm.cc:643,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 50
    argCount: 6
    argNames:
    - comm
    - proxyRank
    - desc
    - hptr
    - dptr
    - descOut
    argTypes:
    - struct ncclComm*
    - int
    - ncclShmIpcDesc_t*
    - void**
    - void**
    - ncclShmIpcDesc_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 565
    functionDepth: 3
    functionLinenumber: 565
    functionLinenumberEnd: 646
    functionName: ncclShmImportShareableBuffer
    functionSourceFile: /src/nccl/src/transport/shm.cc
    functionUses: 4
    functionsReached:
    - WARN
    - cuMemSetAccess
    - cuMemAddressReserve
    - ncclProxyClientGetFdBlocking
    - INFO
    - ncclCuMemHostEnable
    - cuMemMap
    - cudaGetDevice
    - cuMemImportFromShareableHandle
    - CUDACHECK
    - cuDeviceGetAttribute
    - ALIGN_SIZE
    - cuMemGetAllocationGranularity
    - ncclCuMemEnable
    - cuDeviceGet
    - ncclShmOpen
    - close
    - CUCHECK
    - NCCLCHECK
    - snprintf
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclShmImportShareableBuffer(struct ncclComm *comm, int
      proxyRank, ncclShmIpcDesc_t *desc, void **hptr, void **dptr, ncclShmIpcDesc_t
      *descOut)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ncclCuMemEnable
      Src: /src/nccl/src/transport/shm.cc:651,1
    - Dst: ncclCuMemHostEnable
      Src: /src/nccl/src/transport/shm.cc:651,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/shm.cc:652,1
    - Dst: ncclCuMemHostFree
      Src: /src/nccl/src/transport/shm.cc:652,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/shm.cc:654,1
    - Dst: ncclShmClose
      Src: /src/nccl/src/transport/shm.cc:654,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/transport/shm.cc:657,1
    - Dst: ncclShmClose
      Src: /src/nccl/src/transport/shm.cc:657,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - desc
    argTypes:
    - ncclShmIpcDesc_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 662
      start: 648
    functionDepth: 1
    functionLinenumber: 648
    functionLinenumberEnd: 662
    functionName: ncclShmIpcClose
    functionSourceFile: /src/nccl/src/transport/shm.cc
    functionUses: 8
    functionsReached:
    - ncclShmClose
    - ncclCuMemHostEnable
    - ncclCuMemHostFree
    - ncclCuMemEnable
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclShmIpcClose(ncclShmIpcDesc_t *desc)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/nccl/src/plugin/profiler.cc:42,1
    - Dst: ncclOpenProfilerPluginLib
      Src: /src/nccl/src/plugin/profiler.cc:48,1
    - Dst: ncclGetEnv
      Src: /src/nccl/src/plugin/profiler.cc:48,1
    - Dst: getNcclProfiler_v4
      Src: /src/nccl/src/plugin/profiler.cc:53,1
    - Dst: getNcclProfiler_v3
      Src: /src/nccl/src/plugin/profiler.cc:55,1
    - Dst: getNcclProfiler_v2
      Src: /src/nccl/src/plugin/profiler.cc:58,1
    - Dst: getNcclProfiler_v1
      Src: /src/nccl/src/plugin/profiler.cc:61,1
    - Dst: getpid
      Src: /src/nccl/src/plugin/profiler.cc:74,1
    - Dst: pthread_mutex_unlock
      Src: /src/nccl/src/plugin/profiler.cc:77,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/plugin/profiler.cc:80,1
    - Dst: ncclClosePluginLib
      Src: /src/nccl/src/plugin/profiler.cc:80,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 84
    functionName: ncclProfilerPluginLoad
    functionSourceFile: /src/nccl/src/plugin/profiler.cc
    functionUses: 0
    functionsReached:
    - ncclGetEnv
    - ncclOpenProfilerPluginLib
    - getpid
    - getNcclProfiler_v2
    - pthread_mutex_lock
    - pthread_mutex_unlock
    - getNcclProfiler_v4
    - getNcclProfiler_v3
    - getNcclProfiler_v1
    - ncclClosePluginLib
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProfilerPluginLoad(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/nccl/src/plugin/profiler.cc:87,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/profiler.cc:89,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/plugin/profiler.cc:90,1
    - Dst: ncclClosePluginLib
      Src: /src/nccl/src/plugin/profiler.cc:90,1
    - Dst: pthread_mutex_unlock
      Src: /src/nccl/src/plugin/profiler.cc:95,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 97
    functionName: ncclProfilerPluginUnload
    functionSourceFile: /src/nccl/src/plugin/profiler.cc
    functionUses: 0
    functionsReached:
    - INFO
    - pthread_mutex_unlock
    - pthread_mutex_lock
    - ncclClosePluginLib
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProfilerPluginUnload(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - event
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 130
    functionName: TIME_START_EVENT
    functionSourceFile: /src/nccl/src/plugin/profiler.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TIME_START_EVENT(event)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - event
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 135
    functionName: TIME_STOP_EVENT
    functionSourceFile: /src/nccl/src/plugin/profiler.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TIME_STOP_EVENT(event)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 156
    functionName: TIME_PRINT_EVENTS
    functionSourceFile: /src/nccl/src/plugin/profiler.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TIME_PRINT_EVENTS(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - event
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 158
    functionName: TIME_START_EVENT
    functionSourceFile: /src/nccl/src/plugin/profiler.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TIME_START_EVENT(event)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - event
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 159
    functionName: TIME_STOP_EVENT
    functionSourceFile: /src/nccl/src/plugin/profiler.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TIME_STOP_EVENT(event)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 160
    functionName: TIME_PRINT_EVENTS
    functionSourceFile: /src/nccl/src/plugin/profiler.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TIME_PRINT_EVENTS(name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TIME_START_EVENT
      Src: /src/nccl/src/plugin/profiler.cc:166,1
    - Dst: TIME_START_EVENT
      Src: /src/nccl/src/plugin/profiler.cc:167,1
    - Dst: ncclProfilerPluginLoad
      Src: /src/nccl/src/plugin/profiler.cc:168,1
    - Dst: __builtin_expect
      Src: /src/nccl/src/plugin/profiler.cc:169,1
    - Dst: init
      Src: /src/nccl/src/plugin/profiler.cc:170,1
    - Dst: WARN
      Src: /src/nccl/src/plugin/profiler.cc:172,1
    - Dst: TIME_STOP_EVENT
      Src: /src/nccl/src/plugin/profiler.cc:176,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 165
    functionDepth: 2
    functionLinenumber: 165
    functionLinenumberEnd: 178
    functionName: ncclProfilerPluginInit
    functionSourceFile: /src/nccl/src/plugin/profiler.cc
    functionUses: 1
    functionsReached:
    - WARN
    - ncclProfilerPluginLoad
    - init
    - TIME_STOP_EVENT
    - TIME_START_EVENT
    - __builtin_expect
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProfilerPluginInit(struct ncclComm* comm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TIME_START_EVENT
      Src: /src/nccl/src/plugin/profiler.cc:181,1
    - Dst: __builtin_expect
      Src: /src/nccl/src/plugin/profiler.cc:182,1
    - Dst: finalize
      Src: /src/nccl/src/plugin/profiler.cc:183,1
    - Dst: ncclProfilerPluginUnload
      Src: /src/nccl/src/plugin/profiler.cc:185,1
    - Dst: TIME_STOP_EVENT
      Src: /src/nccl/src/plugin/profiler.cc:186,1
    - Dst: TIME_STOP_EVENT
      Src: /src/nccl/src/plugin/profiler.cc:187,1
    - Dst: TIME_PRINT_EVENTS
      Src: /src/nccl/src/plugin/profiler.cc:188,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 180
    functionDepth: 2
    functionLinenumber: 180
    functionLinenumberEnd: 190
    functionName: ncclProfilerPluginFinalize
    functionSourceFile: /src/nccl/src/plugin/profiler.cc
    functionUses: 1
    functionsReached:
    - TIME_PRINT_EVENTS
    - finalize
    - ncclProfilerPluginUnload
    - TIME_STOP_EVENT
    - TIME_START_EVENT
    - __builtin_expect
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProfilerPluginFinalize(struct ncclComm* comm)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TIME_START_EVENT
      Src: /src/nccl/src/plugin/profiler.cc:193,1
    - Dst: __builtin_expect
      Src: /src/nccl/src/plugin/profiler.cc:194,1
    - Dst: ncclIntruQueueHead
      Src: /src/nccl/src/plugin/profiler.cc:196,1
    - Dst: ncclIntruQueueHead
      Src: /src/nccl/src/plugin/profiler.cc:197,1
    - Dst: startEvent
      Src: /src/nccl/src/plugin/profiler.cc:219,1
    - Dst: TIME_STOP_EVENT
      Src: /src/nccl/src/plugin/profiler.cc:222,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 1
    argNames:
    - plan
    argTypes:
    - struct ncclKernelPlan*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 224
    functionName: ncclProfilerStartGroupEvent
    functionSourceFile: /src/nccl/src/plugin/profiler.cc
    functionUses: 1
    functionsReached:
    - TIME_STOP_EVENT
    - TIME_START_EVENT
    - __builtin_expect
    - ncclIntruQueueHead
    - startEvent
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProfilerStartGroupEvent(struct ncclKernelPlan* plan)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TIME_START_EVENT
      Src: /src/nccl/src/plugin/profiler.cc:227,1
    - Dst: __builtin_expect
      Src: /src/nccl/src/plugin/profiler.cc:228,1
    - Dst: stopEvent
      Src: /src/nccl/src/plugin/profiler.cc:229,1
    - Dst: TIME_STOP_EVENT
      Src: /src/nccl/src/plugin/profiler.cc:231,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - plan
    argTypes:
    - struct ncclKernelPlan*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 226
    functionDepth: 1
    functionLinenumber: 226
    functionLinenumberEnd: 233
    functionName: ncclProfilerStopGroupEvent
    functionSourceFile: /src/nccl/src/plugin/profiler.cc
    functionUses: 1
    functionsReached:
    - __builtin_expect
    - stopEvent
    - TIME_STOP_EVENT
    - TIME_START_EVENT
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProfilerStopGroupEvent(struct ncclKernelPlan* plan)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: TIME_START_EVENT
      Src: /src/nccl/src/plugin/profiler.cc:236,1
    - Dst: ncclIntruQueueHead
      Src: /src/nccl/src/plugin/profiler.cc:237,1
    - Dst: __builtin_expect
      Src: /src/nccl/src/plugin/profiler.cc:239,1
    - Dst: ncclFuncToString
      Src: /src/nccl/src/plugin/profiler.cc:248,1
    - Dst: ncclDatatypeToString
      Src: /src/nccl/src/plugin/profiler.cc:253,1
    - Dst: ncclAlgoToString
      Src: /src/nccl/src/plugin/profiler.cc:256,1
    - Dst: ncclProtoToString
      Src: /src/nccl/src/plugin/profiler.cc:257,1
    - Dst: startEvent
      Src: /src/nccl/src/plugin/profiler.cc:258,1
    - Dst: __builtin_expect
      Src: /src/nccl/src/plugin/profiler.cc:268,1
    - Dst: __atomic_fetch_add
      Src: /src/nccl/src/plugin/profiler.cc:270,1
    - Dst: __builtin_expect
      Src: /src/nccl/src/plugin/profiler.cc:273,1
    - Dst: ncclIntruQueueHead
      Src: /src/nccl/src/plugin/profiler.cc:275,1
    - Dst: ncclFuncToString
      Src: /src/nccl/src/plugin/profiler.cc:283,1
    - Dst: ncclDatatypeToString
      Src: /src/nccl/src/plugin/profiler.cc:286,1
    - Dst: startEvent
      Src: /src/nccl/src/plugin/profiler.cc:289,1
    - Dst: TIME_STOP_EVENT
      Src: /src/nccl/src/plugin/profiler.cc:295,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 49
    argCount: 1
    argNames:
    - plan
    argTypes:
    - struct ncclKernelPlan*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 297
    functionName: ncclProfilerStartTaskEvents
    functionSourceFile: /src/nccl/src/plugin/profiler.cc
    functionUses: 1
    functionsReached:
    - ncclDatatypeToString
    - ncclAlgoToString
    - TIME_STOP_EVENT
    - TIME_START_EVENT
    - ncclIntruQueueHead
    - ncclProtoToString
    - __builtin_expect
    - ncclFuncToString
    - __atomic_fetch_add
    - startEvent
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProfilerStartTaskEvents(struct ncclKernelPlan* plan)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: TIME_START_EVENT
      Src: /src/nccl/src/plugin/profiler.cc:300,1
    - Dst: __builtin_expect
      Src: /src/nccl/src/plugin/profiler.cc:301,1
    - Dst: ncclIntruQueueHead
      Src: /src/nccl/src/plugin/profiler.cc:303,1
    - Dst: stopEvent
      Src: /src/nccl/src/plugin/profiler.cc:305,1
    - Dst: ncclIntruQueueHead
      Src: /src/nccl/src/plugin/profiler.cc:308,1
    - Dst: stopEvent
      Src: /src/nccl/src/plugin/profiler.cc:310,1
    - Dst: TIME_STOP_EVENT
      Src: /src/nccl/src/plugin/profiler.cc:315,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 1
    argNames:
    - plan
    argTypes:
    - struct ncclKernelPlan*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 299
    functionDepth: 1
    functionLinenumber: 299
    functionLinenumberEnd: 317
    functionName: ncclProfilerStopTaskEvents
    functionSourceFile: /src/nccl/src/plugin/profiler.cc
    functionUses: 1
    functionsReached:
    - stopEvent
    - TIME_STOP_EVENT
    - TIME_START_EVENT
    - __builtin_expect
    - ncclIntruQueueHead
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProfilerStopTaskEvents(struct ncclKernelPlan* plan)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TIME_START_EVENT
      Src: /src/nccl/src/plugin/profiler.cc:325,1
    - Dst: __builtin_expect
      Src: /src/nccl/src/plugin/profiler.cc:327,1
    - Dst: DIVUP
      Src: /src/nccl/src/plugin/profiler.cc:336,1
    - Dst: startEvent
      Src: /src/nccl/src/plugin/profiler.cc:339,1
    - Dst: TIME_STOP_EVENT
      Src: /src/nccl/src/plugin/profiler.cc:342,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 2
    argNames:
    - s
    - args
    argTypes:
    - int
    - struct ncclProxyArgs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 344
    functionName: ncclProfilerStartProxyOpEvent
    functionSourceFile: /src/nccl/src/plugin/profiler.cc
    functionUses: 1
    functionsReached:
    - DIVUP
    - TIME_STOP_EVENT
    - TIME_START_EVENT
    - __builtin_expect
    - startEvent
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProfilerStartProxyOpEvent(int s, struct ncclProxyArgs*
      args)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TIME_START_EVENT
      Src: /src/nccl/src/plugin/profiler.cc:347,1
    - Dst: __builtin_expect
      Src: /src/nccl/src/plugin/profiler.cc:349,1
    - Dst: stopEvent
      Src: /src/nccl/src/plugin/profiler.cc:350,1
    - Dst: TIME_STOP_EVENT
      Src: /src/nccl/src/plugin/profiler.cc:353,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - s
    - args
    argTypes:
    - int
    - struct ncclProxyArgs*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 346
    functionDepth: 1
    functionLinenumber: 346
    functionLinenumberEnd: 355
    functionName: ncclProfilerStopProxyOpEvent
    functionSourceFile: /src/nccl/src/plugin/profiler.cc
    functionUses: 2
    functionsReached:
    - __builtin_expect
    - stopEvent
    - TIME_STOP_EVENT
    - TIME_START_EVENT
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProfilerStopProxyOpEvent(int s, struct ncclProxyArgs*
      args)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TIME_START_EVENT
      Src: /src/nccl/src/plugin/profiler.cc:358,1
    - Dst: __builtin_expect
      Src: /src/nccl/src/plugin/profiler.cc:360,1
    - Dst: DIVUP
      Src: /src/nccl/src/plugin/profiler.cc:362,1
    - Dst: startEvent
      Src: /src/nccl/src/plugin/profiler.cc:368,1
    - Dst: TIME_STOP_EVENT
      Src: /src/nccl/src/plugin/profiler.cc:372,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - s
    - args
    - stepId
    argTypes:
    - int
    - struct ncclProxyArgs*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 357
    functionDepth: 1
    functionLinenumber: 357
    functionLinenumberEnd: 374
    functionName: ncclProfilerStartSendProxyStepEvent
    functionSourceFile: /src/nccl/src/plugin/profiler.cc
    functionUses: 1
    functionsReached:
    - DIVUP
    - TIME_STOP_EVENT
    - TIME_START_EVENT
    - __builtin_expect
    - startEvent
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProfilerStartSendProxyStepEvent(int s, struct ncclProxyArgs*
      args, int stepId)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TIME_START_EVENT
      Src: /src/nccl/src/plugin/profiler.cc:377,1
    - Dst: __builtin_expect
      Src: /src/nccl/src/plugin/profiler.cc:379,1
    - Dst: DIVUP
      Src: /src/nccl/src/plugin/profiler.cc:381,1
    - Dst: startEvent
      Src: /src/nccl/src/plugin/profiler.cc:387,1
    - Dst: TIME_STOP_EVENT
      Src: /src/nccl/src/plugin/profiler.cc:391,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - s
    - args
    - stepId
    argTypes:
    - int
    - struct ncclProxyArgs*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 376
    functionDepth: 1
    functionLinenumber: 376
    functionLinenumberEnd: 393
    functionName: ncclProfilerStartRecvProxyStepEvent
    functionSourceFile: /src/nccl/src/plugin/profiler.cc
    functionUses: 1
    functionsReached:
    - DIVUP
    - TIME_STOP_EVENT
    - TIME_START_EVENT
    - __builtin_expect
    - startEvent
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProfilerStartRecvProxyStepEvent(int s, struct ncclProxyArgs*
      args, int stepId)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TIME_START_EVENT
      Src: /src/nccl/src/plugin/profiler.cc:396,1
    - Dst: __builtin_expect
      Src: /src/nccl/src/plugin/profiler.cc:398,1
    - Dst: DIVUP
      Src: /src/nccl/src/plugin/profiler.cc:399,1
    - Dst: stopEvent
      Src: /src/nccl/src/plugin/profiler.cc:401,1
    - Dst: TIME_STOP_EVENT
      Src: /src/nccl/src/plugin/profiler.cc:405,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - s
    - args
    - stepId
    argTypes:
    - int
    - struct ncclProxyArgs*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 395
    functionDepth: 1
    functionLinenumber: 395
    functionLinenumberEnd: 407
    functionName: ncclProfilerStopProxyStepEvent
    functionSourceFile: /src/nccl/src/plugin/profiler.cc
    functionUses: 2
    functionsReached:
    - DIVUP
    - stopEvent
    - TIME_STOP_EVENT
    - TIME_START_EVENT
    - __builtin_expect
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProfilerStopProxyStepEvent(int s, struct ncclProxyArgs*
      args, int stepId)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TIME_START_EVENT
      Src: /src/nccl/src/plugin/profiler.cc:410,1
    - Dst: __builtin_expect
      Src: /src/nccl/src/plugin/profiler.cc:411,1
    - Dst: __atomic_load_n
      Src: /src/nccl/src/plugin/profiler.cc:413,1
    - Dst: startEvent
      Src: /src/nccl/src/plugin/profiler.cc:417,1
    - Dst: TIME_STOP_EVENT
      Src: /src/nccl/src/plugin/profiler.cc:418,1
    - Dst: TIME_STOP_EVENT
      Src: /src/nccl/src/plugin/profiler.cc:423,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - profilerContext
    - eHandle
    argTypes:
    - void*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 409
    functionDepth: 1
    functionLinenumber: 409
    functionLinenumberEnd: 425
    functionName: ncclProfilerStartProxyCtrlEvent
    functionSourceFile: /src/nccl/src/plugin/profiler.cc
    functionUses: 2
    functionsReached:
    - __atomic_load_n
    - TIME_STOP_EVENT
    - TIME_START_EVENT
    - __builtin_expect
    - startEvent
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProfilerStartProxyCtrlEvent(void* profilerContext,
      void** eHandle)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TIME_START_EVENT
      Src: /src/nccl/src/plugin/profiler.cc:428,1
    - Dst: __builtin_expect
      Src: /src/nccl/src/plugin/profiler.cc:429,1
    - Dst: stopEvent
      Src: /src/nccl/src/plugin/profiler.cc:430,1
    - Dst: TIME_STOP_EVENT
      Src: /src/nccl/src/plugin/profiler.cc:432,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - eHandle
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 427
    functionDepth: 1
    functionLinenumber: 427
    functionLinenumberEnd: 434
    functionName: ncclProfilerStopProxyCtrlEvent
    functionSourceFile: /src/nccl/src/plugin/profiler.cc
    functionUses: 2
    functionsReached:
    - __builtin_expect
    - stopEvent
    - TIME_STOP_EVENT
    - TIME_START_EVENT
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProfilerStopProxyCtrlEvent(void* eHandle)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_expect
      Src: /src/nccl/src/plugin/profiler.cc:437,1
    - Dst: startEvent
      Src: /src/nccl/src/plugin/profiler.cc:445,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - args
    - s
    - start
    argTypes:
    - struct ncclProxyArgs*
    - int
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 436
    functionDepth: 0
    functionLinenumber: 436
    functionLinenumberEnd: 449
    functionName: ncclProfilerStartKernelChEvent
    functionSourceFile: /src/nccl/src/plugin/profiler.cc
    functionUses: 1
    functionsReached:
    - __builtin_expect
    - startEvent
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProfilerStartKernelChEvent(struct ncclProxyArgs* args,
      int s, uint64_t start)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_expect
      Src: /src/nccl/src/plugin/profiler.cc:452,1
    - Dst: recordEventState
      Src: /src/nccl/src/plugin/profiler.cc:457,1
    - Dst: stopEvent
      Src: /src/nccl/src/plugin/profiler.cc:458,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - args
    - s
    - stop
    argTypes:
    - struct ncclProxyArgs*
    - int
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 451
    functionDepth: 0
    functionLinenumber: 451
    functionLinenumberEnd: 462
    functionName: ncclProfilerStopKernelChEvent
    functionSourceFile: /src/nccl/src/plugin/profiler.cc
    functionUses: 1
    functionsReached:
    - __builtin_expect
    - stopEvent
    - recordEventState
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProfilerStopKernelChEvent(struct ncclProxyArgs* args,
      int s, uint64_t stop)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TIME_START_EVENT
      Src: /src/nccl/src/plugin/profiler.cc:465,1
    - Dst: __builtin_expect
      Src: /src/nccl/src/plugin/profiler.cc:467,1
    - Dst: recordEventState
      Src: /src/nccl/src/plugin/profiler.cc:469,1
    - Dst: TIME_STOP_EVENT
      Src: /src/nccl/src/plugin/profiler.cc:471,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - s
    - args
    - eState
    argTypes:
    - int
    - struct ncclProxyArgs*
    - ncclProfilerEventState_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 464
    functionDepth: 1
    functionLinenumber: 464
    functionLinenumberEnd: 473
    functionName: ncclProfilerRecordProxyOpEventState
    functionSourceFile: /src/nccl/src/plugin/profiler.cc
    functionUses: 2
    functionsReached:
    - __builtin_expect
    - recordEventState
    - TIME_STOP_EVENT
    - TIME_START_EVENT
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProfilerRecordProxyOpEventState(int s, struct ncclProxyArgs*
      args, ncclProfilerEventState_t eState)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: TIME_START_EVENT
      Src: /src/nccl/src/plugin/profiler.cc:476,1
    - Dst: __builtin_expect
      Src: /src/nccl/src/plugin/profiler.cc:478,1
    - Dst: DIVUP
      Src: /src/nccl/src/plugin/profiler.cc:479,1
    - Dst: recordEventState
      Src: /src/nccl/src/plugin/profiler.cc:483,1
    - Dst: TIME_STOP_EVENT
      Src: /src/nccl/src/plugin/profiler.cc:486,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - s
    - args
    - stepId
    - eState
    argTypes:
    - int
    - struct ncclProxyArgs*
    - int
    - ncclProfilerEventState_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 475
    functionDepth: 1
    functionLinenumber: 475
    functionLinenumberEnd: 488
    functionName: ncclProfilerRecordProxyStepEventState
    functionSourceFile: /src/nccl/src/plugin/profiler.cc
    functionUses: 2
    functionsReached:
    - recordEventState
    - DIVUP
    - TIME_STOP_EVENT
    - TIME_START_EVENT
    - __builtin_expect
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProfilerRecordProxyStepEventState(int s, struct ncclProxyArgs*
      args, int stepId, ncclProfilerEventState_t eState)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TIME_START_EVENT
      Src: /src/nccl/src/plugin/profiler.cc:491,1
    - Dst: __builtin_expect
      Src: /src/nccl/src/plugin/profiler.cc:492,1
    - Dst: __atomic_load_n
      Src: /src/nccl/src/plugin/profiler.cc:492,1
    - Dst: recordEventState
      Src: /src/nccl/src/plugin/profiler.cc:495,1
    - Dst: TIME_STOP_EVENT
      Src: /src/nccl/src/plugin/profiler.cc:497,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - eHandle
    - appended
    - eState
    argTypes:
    - void*
    - int
    - ncclProfilerEventState_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 490
    functionDepth: 1
    functionLinenumber: 490
    functionLinenumberEnd: 499
    functionName: ncclProfilerRecordProxyCtrlEventState
    functionSourceFile: /src/nccl/src/plugin/profiler.cc
    functionUses: 2
    functionsReached:
    - __atomic_load_n
    - recordEventState
    - TIME_STOP_EVENT
    - TIME_START_EVENT
    - __builtin_expect
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProfilerRecordProxyCtrlEventState(void* eHandle, int
      appended, ncclProfilerEventState_t eState)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - op
    argTypes:
    - struct ncclProxyOp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 501
    functionDepth: 0
    functionLinenumber: 501
    functionLinenumberEnd: 504
    functionName: ncclProfilerAddPidToProxyOp
    functionSourceFile: /src/nccl/src/plugin/profiler.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProfilerAddPidToProxyOp(struct ncclProxyOp* op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/nccl/src/plugin/profiler.cc:510,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/plugin/profiler.cc:513,1
    - Dst: ncclProxyConnect
      Src: /src/nccl/src/plugin/profiler.cc:513,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/plugin/profiler.cc:514,1
    - Dst: ncclProxyCallBlocking
      Src: /src/nccl/src/plugin/profiler.cc:514,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/plugin/profiler.cc:515,1
    - Dst: ncclProxyConnect
      Src: /src/nccl/src/plugin/profiler.cc:515,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/plugin/profiler.cc:516,1
    - Dst: ncclProxyCallBlocking
      Src: /src/nccl/src/plugin/profiler.cc:516,1
    - Dst: pthread_mutex_unlock
      Src: /src/nccl/src/plugin/profiler.cc:520,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - comm
    - op
    argTypes:
    - struct ncclComm*
    - struct ncclProxyOp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 508
    functionDepth: 4
    functionLinenumber: 508
    functionLinenumberEnd: 522
    functionName: proxyProfilerConnect
    functionSourceFile: /src/nccl/src/plugin/profiler.cc
    functionUses: 0
    functionsReached:
    - ncclProxyCallBlocking
    - NCCLCHECKGOTO
    - ncclProxyConnect
    - pthread_mutex_unlock
    - pthread_mutex_lock
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t proxyProfilerConnect(struct ncclComm* comm, struct ncclProxyOp*
      op)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncclProfilerPluginLoaded
      Src: /src/nccl/src/plugin/profiler.cc:525,1
    - Dst: proxyProfilerConnect
      Src: /src/nccl/src/plugin/profiler.cc:526,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 2
    argNames:
    - comm
    - op
    argTypes:
    - struct ncclComm*
    - struct ncclProxyOp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 524
    functionDepth: 5
    functionLinenumber: 524
    functionLinenumberEnd: 528
    functionName: ncclProfilerNeedsProxy
    functionSourceFile: /src/nccl/src/plugin/profiler.cc
    functionUses: 1
    functionsReached:
    - ncclProfilerPluginLoaded
    - proxyProfilerConnect
    linkageType: ''
    returnType: bool
    signature: bool ncclProfilerNeedsProxy(struct ncclComm* comm, struct ncclProxyOp*
      op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_expect
      Src: /src/nccl/src/plugin/profiler.cc:531,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 530
    functionDepth: 0
    functionLinenumber: 530
    functionLinenumberEnd: 532
    functionName: ncclProfilerPluginLoaded
    functionSourceFile: /src/nccl/src/plugin/profiler.cc
    functionUses: 4
    functionsReached:
    - __builtin_expect
    linkageType: ''
    returnType: bool
    signature: bool ncclProfilerPluginLoaded(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_expect
      Src: /src/nccl/src/plugin/profiler.cc:535,1
    - Dst: startEvent
      Src: /src/nccl/src/plugin/profiler.cc:546,1
    - Dst: stopEvent
      Src: /src/nccl/src/plugin/profiler.cc:549,1
    - Dst: recordEventState
      Src: /src/nccl/src/plugin/profiler.cc:553,1
    - Dst: recordEventState
      Src: /src/nccl/src/plugin/profiler.cc:557,1
    - Dst: stopEvent
      Src: /src/nccl/src/plugin/profiler.cc:558,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 5
    argNames:
    - eHandle
    - type
    - pHandle
    - pluginId
    - extData
    argTypes:
    - void**
    - int
    - void*
    - int64_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 534
    functionDepth: 0
    functionLinenumber: 534
    functionLinenumberEnd: 562
    functionName: ncclProfilerCallback
    functionSourceFile: /src/nccl/src/plugin/profiler.cc
    functionUses: 0
    functionsReached:
    - __builtin_expect
    - stopEvent
    - recordEventState
    - startEvent
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProfilerCallback(void** eHandle, int type, void* pHandle,
      int64_t pluginId, void* extData)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/nccl/src/plugin/plugin_open.cc:27,1
    - Dst: strncasecmp
      Src: /src/nccl/src/plugin/plugin_open.cc:31,1
    - Dst: strlen
      Src: /src/nccl/src/plugin/plugin_open.cc:31,1
    - Dst: dlopen
      Src: /src/nccl/src/plugin/plugin_open.cc:35,1
    - Dst: strncpy
      Src: /src/nccl/src/plugin/plugin_open.cc:37,1
    - Dst: dlerror
      Src: /src/nccl/src/plugin/plugin_open.cc:37,1
    - Dst: strstr
      Src: /src/nccl/src/plugin/plugin_open.cc:41,1
    - Dst: strstr
      Src: /src/nccl/src/plugin/plugin_open.cc:41,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - name
    - err
    - errStr
    argTypes:
    - char*
    - int*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 46
    functionName: tryOpenLib
    functionSourceFile: /src/nccl/src/plugin/plugin_open.cc
    functionUses: 0
    functionsReached:
    - strncasecmp
    - dlerror
    - strstr
    - strlen
    - strncpy
    - dlopen
    linkageType: ''
    returnType: void
    signature: void * tryOpenLib(char* name, int* err, char* errStr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/nccl/src/plugin/plugin_open.cc:49,1
    - Dst: strlen
      Src: /src/nccl/src/plugin/plugin_open.cc:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - nameList
    - leftChars
    - name
    argTypes:
    - char*
    - int*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: appendNameToList
    functionSourceFile: /src/nccl/src/plugin/plugin_open.cc
    functionUses: 0
    functionsReached:
    - strlen
    - snprintf
    linkageType: ''
    returnType: void
    signature: void appendNameToList(char* nameList, int *leftChars, char* name)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/nccl/src/plugin/plugin_open.cc:59,1
    - Dst: snprintf
      Src: /src/nccl/src/plugin/plugin_open.cc:60,1
    - Dst: tryOpenLib
      Src: /src/nccl/src/plugin/plugin_open.cc:61,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/plugin_open.cc:63,1
    - Dst: strdup
      Src: /src/nccl/src/plugin/plugin_open.cc:64,1
    - Dst: appendNameToList
      Src: /src/nccl/src/plugin/plugin_open.cc:68,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/plugin_open.cc:70,1
    - Dst: strchr
      Src: /src/nccl/src/plugin/plugin_open.cc:74,1
    - Dst: strncmp
      Src: /src/nccl/src/plugin/plugin_open.cc:74,1
    - Dst: strlen
      Src: /src/nccl/src/plugin/plugin_open.cc:74,1
    - Dst: strlen
      Src: /src/nccl/src/plugin/plugin_open.cc:74,1
    - Dst: strlen
      Src: /src/nccl/src/plugin/plugin_open.cc:74,1
    - Dst: strncmp
      Src: /src/nccl/src/plugin/plugin_open.cc:74,1
    - Dst: strlen
      Src: /src/nccl/src/plugin/plugin_open.cc:74,1
    - Dst: strlen
      Src: /src/nccl/src/plugin/plugin_open.cc:74,1
    - Dst: strlen
      Src: /src/nccl/src/plugin/plugin_open.cc:74,1
    - Dst: snprintf
      Src: /src/nccl/src/plugin/plugin_open.cc:75,1
    - Dst: tryOpenLib
      Src: /src/nccl/src/plugin/plugin_open.cc:76,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/plugin_open.cc:78,1
    - Dst: strdup
      Src: /src/nccl/src/plugin/plugin_open.cc:79,1
    - Dst: appendNameToList
      Src: /src/nccl/src/plugin/plugin_open.cc:83,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/plugin_open.cc:85,1
    - Dst: snprintf
      Src: /src/nccl/src/plugin/plugin_open.cc:89,1
    - Dst: tryOpenLib
      Src: /src/nccl/src/plugin/plugin_open.cc:90,1
    - Dst: strdup
      Src: /src/nccl/src/plugin/plugin_open.cc:92,1
    - Dst: appendNameToList
      Src: /src/nccl/src/plugin/plugin_open.cc:96,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/plugin_open.cc:98,1
    - Dst: strlen
      Src: /src/nccl/src/plugin/plugin_open.cc:102,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/plugin_open.cc:103,1
    - Dst: strlen
      Src: /src/nccl/src/plugin/plugin_open.cc:104,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/plugin_open.cc:105,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 48
    argCount: 2
    argNames:
    - type
    - libName
    argTypes:
    - enum ncclPluginType
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 108
    functionName: openPluginLib
    functionSourceFile: /src/nccl/src/plugin/plugin_open.cc
    functionUses: 0
    functionsReached:
    - INFO
    - strchr
    - strdup
    - strlen
    - strncmp
    - tryOpenLib
    - appendNameToList
    - snprintf
    linkageType: ''
    returnType: void
    signature: void * openPluginLib(enum ncclPluginType type, const char* libName)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: openPluginLib
      Src: /src/nccl/src/plugin/plugin_open.cc:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 110
    functionDepth: 2
    functionLinenumber: 110
    functionLinenumberEnd: 112
    functionName: ncclOpenNetPluginLib
    functionSourceFile: /src/nccl/src/plugin/plugin_open.cc
    functionUses: 0
    functionsReached:
    - openPluginLib
    linkageType: ''
    returnType: void
    signature: void * ncclOpenNetPluginLib(const char* name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: openPluginLib
      Src: /src/nccl/src/plugin/plugin_open.cc:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 114
    functionDepth: 2
    functionLinenumber: 114
    functionLinenumberEnd: 116
    functionName: ncclOpenTunerPluginLib
    functionSourceFile: /src/nccl/src/plugin/plugin_open.cc
    functionUses: 0
    functionsReached:
    - openPluginLib
    linkageType: ''
    returnType: void
    signature: void * ncclOpenTunerPluginLib(const char* name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: openPluginLib
      Src: /src/nccl/src/plugin/plugin_open.cc:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 118
    functionDepth: 2
    functionLinenumber: 118
    functionLinenumberEnd: 120
    functionName: ncclOpenProfilerPluginLib
    functionSourceFile: /src/nccl/src/plugin/plugin_open.cc
    functionUses: 1
    functionsReached:
    - openPluginLib
    linkageType: ''
    returnType: void
    signature: void * ncclOpenProfilerPluginLib(const char* name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/nccl/src/plugin/plugin_open.cc:125,1
    - Dst: dlopen
      Src: /src/nccl/src/plugin/plugin_open.cc:126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - type
    argTypes:
    - enum ncclPluginType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 129
    functionName: ncclGetNetPluginLib
    functionSourceFile: /src/nccl/src/plugin/plugin_open.cc
    functionUses: 0
    functionsReached:
    - dlopen
    - strdup
    linkageType: ''
    returnType: void
    signature: void * ncclGetNetPluginLib(enum ncclPluginType type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dlclose
      Src: /src/nccl/src/plugin/plugin_open.cc:133,1
    - Dst: free
      Src: /src/nccl/src/plugin/plugin_open.cc:135,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - handle
    - type
    argTypes:
    - void*
    - enum ncclPluginType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 139
    functionName: ncclClosePluginLib
    functionSourceFile: /src/nccl/src/plugin/plugin_open.cc
    functionUses: 2
    functionsReached:
    - dlclose
    - free
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclClosePluginLib(void* handle, enum ncclPluginType type)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/nccl/src/plugin/tuner.cc:42,1
    - Dst: ncclOpenTunerPluginLib
      Src: /src/nccl/src/plugin/tuner.cc:53,1
    - Dst: ncclGetEnv
      Src: /src/nccl/src/plugin/tuner.cc:53,1
    - Dst: ncclGetNetPluginLib
      Src: /src/nccl/src/plugin/tuner.cc:55,1
    - Dst: getNcclTuner_v4
      Src: /src/nccl/src/plugin/tuner.cc:61,1
    - Dst: getNcclTuner_v3
      Src: /src/nccl/src/plugin/tuner.cc:63,1
    - Dst: getNcclTuner_v2
      Src: /src/nccl/src/plugin/tuner.cc:66,1
    - Dst: pthread_mutex_unlock
      Src: /src/nccl/src/plugin/tuner.cc:78,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/plugin/tuner.cc:81,1
    - Dst: ncclClosePluginLib
      Src: /src/nccl/src/plugin/tuner.cc:81,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 51
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 35
    functionDepth: 3
    functionLinenumber: 35
    functionLinenumberEnd: 85
    functionName: ncclTunerPluginLoad
    functionSourceFile: /src/nccl/src/plugin/tuner.cc
    functionUses: 1
    functionsReached:
    - ncclGetNetPluginLib
    - ncclGetEnv
    - getNcclTuner_v4
    - pthread_mutex_unlock
    - pthread_mutex_lock
    - getNcclTuner_v2
    - ncclOpenTunerPluginLib
    - ncclClosePluginLib
    - getNcclTuner_v3
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTunerPluginLoad(struct ncclComm* comm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/nccl/src/plugin/tuner.cc:88,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/tuner.cc:90,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/plugin/tuner.cc:91,1
    - Dst: ncclClosePluginLib
      Src: /src/nccl/src/plugin/tuner.cc:91,1
    - Dst: pthread_mutex_unlock
      Src: /src/nccl/src/plugin/tuner.cc:98,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 87
    functionDepth: 1
    functionLinenumber: 87
    functionLinenumberEnd: 100
    functionName: ncclTunerPluginUnload
    functionSourceFile: /src/nccl/src/plugin/tuner.cc
    functionUses: 1
    functionsReached:
    - INFO
    - pthread_mutex_unlock
    - pthread_mutex_lock
    - ncclClosePluginLib
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTunerPluginUnload(struct ncclComm* comm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INFO
      Src: /src/nccl/src/plugin/net.cc:69,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/plugin/net.cc:70,1
    - Dst: ncclClosePluginLib
      Src: /src/nccl/src/plugin/net.cc:70,1
    - Dst: memset
      Src: /src/nccl/src/plugin/net.cc:71,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - pluginLib
    argTypes:
    - netPluginLib_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 74
    functionName: ncclNetPluginUnload
    functionSourceFile: /src/nccl/src/plugin/net.cc
    functionUses: 0
    functionsReached:
    - INFO
    - ncclClosePluginLib
    - NCCLCHECK
    - memset
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNetPluginUnload(netPluginLib_t* pluginLib)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ncclOpenNetPluginLib
      Src: /src/nccl/src/plugin/net.cc:77,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/net.cc:103,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/plugin/net.cc:108,1
    - Dst: ncclClosePluginLib
      Src: /src/nccl/src/plugin/net.cc:108,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 37
    argCount: 1
    argNames:
    - pluginLib
    argTypes:
    - netPluginLib_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 76
    functionDepth: 3
    functionLinenumber: 76
    functionLinenumberEnd: 114
    functionName: ncclNetPluginLoad
    functionSourceFile: /src/nccl/src/plugin/net.cc
    functionUses: 0
    functionsReached:
    - INFO
    - ncclClosePluginLib
    - NCCLCHECK
    - ncclOpenNetPluginLib
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNetPluginLoad(netPluginLib_t* pluginLib)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/plugin/net.cc:119,1
    - Dst: ncclNet_t*::getProperties
      Src: /src/nccl/src/plugin/net.cc:119,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/net.cc:124,1
    - Dst: WARN
      Src: /src/nccl/src/plugin/net.cc:128,1
    - Dst: WARN
      Src: /src/nccl/src/plugin/net.cc:133,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - comm
    - net
    - dev
    argTypes:
    - struct ncclComm*
    - ncclNet_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 138
    functionName: ncclNetCheckDeviceVersion
    functionSourceFile: /src/nccl/src/plugin/net.cc
    functionUses: 0
    functionsReached:
    - INFO
    - WARN
    - ncclNet_t*::getProperties
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNetCheckDeviceVersion(struct ncclComm* comm, ncclNet_t*
      net, int dev)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: netPluginLib_t*::ncclNet::init
      Src: /src/nccl/src/plugin/net.cc:143,1
    - Dst: netPluginLib_t*::ncclNet::devices
      Src: /src/nccl/src/plugin/net.cc:144,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/net.cc:147,1
    - Dst: netPluginLib_t*::ncclCollNet::init
      Src: /src/nccl/src/plugin/net.cc:150,1
    - Dst: netPluginLib_t*::ncclCollNet::devices
      Src: /src/nccl/src/plugin/net.cc:151,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 28
    argCount: 1
    argNames:
    - pluginLib
    argTypes:
    - netPluginLib_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 162
    functionName: ncclNetPluginInit
    functionSourceFile: /src/nccl/src/plugin/net.cc
    functionUses: 0
    functionsReached:
    - INFO
    - netPluginLib_t*::ncclNet::devices
    - netPluginLib_t*::ncclNet::init
    - netPluginLib_t*::ncclCollNet::devices
    - netPluginLib_t*::ncclCollNet::init
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNetPluginInit(netPluginLib_t* pluginLib)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcasecmp
      Src: /src/nccl/src/plugin/net.cc:166,1
    - Dst: ncclNetCheckDeviceVersion
      Src: /src/nccl/src/plugin/net.cc:167,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/net.cc:175,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 3
    argNames:
    - comm
    - pluginIndex
    - isAssigned
    argTypes:
    - struct ncclComm*
    - int
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 164
    functionDepth: 2
    functionLinenumber: 164
    functionLinenumberEnd: 187
    functionName: ncclNetPluginAssignToComm
    functionSourceFile: /src/nccl/src/plugin/net.cc
    functionUses: 0
    functionsReached:
    - INFO
    - ncclNetCheckDeviceVersion
    - strcasecmp
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNetPluginAssignToComm(struct ncclComm* comm, int pluginIndex,
      bool* isAssigned)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/nccl/src/plugin/net.cc:196,1
    - Dst: strlen
      Src: /src/nccl/src/plugin/net.cc:196,1
    - Dst: strlen
      Src: /src/nccl/src/plugin/net.cc:196,1
    - Dst: strlen
      Src: /src/nccl/src/plugin/net.cc:196,1
    - Dst: strlen
      Src: /src/nccl/src/plugin/net.cc:200,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/net.cc:201,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - pluginIndex
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 204
    functionName: ncclNetPluginDisableOtherExternal
    functionSourceFile: /src/nccl/src/plugin/net.cc
    functionUses: 0
    functionsReached:
    - INFO
    - strlen
    - snprintf
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNetPluginDisableOtherExternal(int pluginIndex)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nccl/src/plugin/net.cc:214,1
    - Dst: ncclGetEnv
      Src: /src/nccl/src/plugin/net.cc:215,1
    - Dst: strdup
      Src: /src/nccl/src/plugin/net.cc:217,1
    - Dst: strtok_r
      Src: /src/nccl/src/plugin/net.cc:219,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/net.cc:224,1
    - Dst: strlen
      Src: /src/nccl/src/plugin/net.cc:228,1
    - Dst: ncclParamNetPluginRefCount
      Src: /src/nccl/src/plugin/net.cc:230,1
    - Dst: strcpy
      Src: /src/nccl/src/plugin/net.cc:231,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/net.cc:234,1
    - Dst: strtok_r
      Src: /src/nccl/src/plugin/net.cc:236,1
    - Dst: free
      Src: /src/nccl/src/plugin/net.cc:238,1
    - Dst: ncclParamNetPluginRefCount
      Src: /src/nccl/src/plugin/net.cc:242,1
    - Dst: strcpy
      Src: /src/nccl/src/plugin/net.cc:243,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 252
    functionName: initPluginLibsOnceFunc
    functionSourceFile: /src/nccl/src/plugin/net.cc
    functionUses: 0
    functionsReached:
    - INFO
    - strdup
    - strlen
    - free
    - ncclGetEnv
    - ncclParamNetPluginRefCount
    - strtok_r
    - strcpy
    - memset
    linkageType: ''
    returnType: void
    signature: void initPluginLibsOnceFunc()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pthread_once
      Src: /src/nccl/src/plugin/net.cc:256,1
    - Dst: pthread_mutex_lock
      Src: /src/nccl/src/plugin/net.cc:257,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/plugin/net.cc:260,1
    - Dst: ncclNetPluginLoad
      Src: /src/nccl/src/plugin/net.cc:260,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/plugin/net.cc:263,1
    - Dst: ncclNetPluginInit
      Src: /src/nccl/src/plugin/net.cc:263,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/plugin/net.cc:267,1
    - Dst: ncclNetPluginAssignToComm
      Src: /src/nccl/src/plugin/net.cc:267,1
    - Dst: ncclNetPluginDisableOtherExternal
      Src: /src/nccl/src/plugin/net.cc:270,1
    - Dst: pthread_mutex_unlock
      Src: /src/nccl/src/plugin/net.cc:276,1
    - Dst: WARN
      Src: /src/nccl/src/plugin/net.cc:278,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 254
    functionDepth: 4
    functionLinenumber: 254
    functionLinenumberEnd: 280
    functionName: ncclNetInit
    functionSourceFile: /src/nccl/src/plugin/net.cc
    functionUses: 1
    functionsReached:
    - WARN
    - ncclNetPluginDisableOtherExternal
    - pthread_once
    - ncclNetPluginInit
    - pthread_mutex_unlock
    - pthread_mutex_lock
    - ncclNetPluginAssignToComm
    - ncclNetPluginLoad
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNetInit(struct ncclComm* comm)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/nccl/src/plugin/net.cc:284,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/plugin/net.cc:287,1
    - Dst: ncclNetPluginUnload
      Src: /src/nccl/src/plugin/net.cc:287,1
    - Dst: pthread_mutex_unlock
      Src: /src/nccl/src/plugin/net.cc:289,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 282
    functionDepth: 2
    functionLinenumber: 282
    functionLinenumberEnd: 291
    functionName: ncclNetFinalize
    functionSourceFile: /src/nccl/src/plugin/net.cc
    functionUses: 1
    functionsReached:
    - pthread_mutex_unlock
    - ncclNetPluginUnload
    - NCCLCHECK
    - pthread_mutex_lock
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNetFinalize(struct ncclComm* comm)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: CUDACHECK
      Src: /src/nccl/src/plugin/net.cc:298,1
    - Dst: cudaDriverGetVersion
      Src: /src/nccl/src/plugin/net.cc:298,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/plugin/net.cc:301,1
    - Dst: cudaGetDevice
      Src: /src/nccl/src/plugin/net.cc:301,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/plugin/net.cc:302,1
    - Dst: cudaDeviceGetAttribute
      Src: /src/nccl/src/plugin/net.cc:302,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/plugin/net.cc:312,1
    - Dst: struct ncclComm*::ncclNet::devices
      Src: /src/nccl/src/plugin/net.cc:312,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/plugin/net.cc:317,1
    - Dst: struct ncclComm*::ncclNet::getProperties
      Src: /src/nccl/src/plugin/net.cc:317,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/plugin/net.cc:327,1
    - Dst: struct ncclComm*::ncclNet::listen
      Src: /src/nccl/src/plugin/net.cc:327,1
    - Dst: __atomic_load_n
      Src: /src/nccl/src/plugin/net.cc:334,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/plugin/net.cc:339,1
    - Dst: struct ncclComm*::ncclNet::connect
      Src: /src/nccl/src/plugin/net.cc:339,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/plugin/net.cc:342,1
    - Dst: struct ncclComm*::ncclNet::accept
      Src: /src/nccl/src/plugin/net.cc:342,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/plugin/net.cc:347,1
    - Dst: ncclCudaMalloc
      Src: /src/nccl/src/plugin/net.cc:347,1
    - Dst: struct ncclComm*::ncclNet::regMr
      Src: /src/nccl/src/plugin/net.cc:348,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/plugin/net.cc:349,1
    - Dst: struct ncclComm*::ncclNet::deregMr
      Src: /src/nccl/src/plugin/net.cc:349,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/plugin/net.cc:350,1
    - Dst: struct ncclComm*::ncclNet::regMr
      Src: /src/nccl/src/plugin/net.cc:350,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/plugin/net.cc:351,1
    - Dst: struct ncclComm*::ncclNet::deregMr
      Src: /src/nccl/src/plugin/net.cc:351,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/plugin/net.cc:355,1
    - Dst: ncclCudaFree
      Src: /src/nccl/src/plugin/net.cc:355,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/plugin/net.cc:358,1
    - Dst: struct ncclComm*::ncclNet::closeRecv
      Src: /src/nccl/src/plugin/net.cc:358,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/plugin/net.cc:360,1
    - Dst: struct ncclComm*::ncclNet::closeSend
      Src: /src/nccl/src/plugin/net.cc:360,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/plugin/net.cc:361,1
    - Dst: struct ncclComm*::ncclNet::closeListen
      Src: /src/nccl/src/plugin/net.cc:361,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 52
    argCount: 2
    argNames:
    - comm
    - gdrSupport
    argTypes:
    - struct ncclComm*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 293
    functionDepth: 1
    functionLinenumber: 293
    functionLinenumberEnd: 368
    functionName: ncclGpuGdrSupport
    functionSourceFile: /src/nccl/src/plugin/net.cc
    functionUses: 1
    functionsReached:
    - cudaDriverGetVersion
    - struct ncclComm*::ncclNet::regMr
    - __atomic_load_n
    - ncclCudaMalloc
    - struct ncclComm*::ncclNet::closeListen
    - cudaGetDevice
    - struct ncclComm*::ncclNet::accept
    - struct ncclComm*::ncclNet::listen
    - CUDACHECK
    - cudaDeviceGetAttribute
    - struct ncclComm*::ncclNet::closeRecv
    - ncclCudaFree
    - struct ncclComm*::ncclNet::devices
    - NCCLCHECKGOTO
    - struct ncclComm*::ncclNet::closeSend
    - struct ncclComm*::ncclNet::connect
    - struct ncclComm*::ncclNet::getProperties
    - struct ncclComm*::ncclNet::deregMr
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGpuGdrSupport(struct ncclComm* comm, int* gdrSupport)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dlsym
      Src: /src/nccl/src/plugin/net/net_v10.cc:15,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/net/net_v10.cc:17,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/net/net_v10.cc:20,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - lib
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 22
    functionName: getNcclNet_v10
    functionSourceFile: /src/nccl/src/plugin/net/net_v10.cc
    functionUses: 0
    functionsReached:
    - INFO
    - dlsym
    linkageType: ''
    returnType: ncclNet_t
    signature: ncclNet_t * getNcclNet_v10(void* lib)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dlsym
      Src: /src/nccl/src/plugin/net/net_v10.cc:25,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/net/net_v10.cc:27,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/net/net_v10.cc:30,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - lib
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 32
    functionName: getNcclCollNet_v10
    functionSourceFile: /src/nccl/src/plugin/net/net_v10.cc
    functionUses: 0
    functionsReached:
    - INFO
    - dlsym
    linkageType: ''
    returnType: ncclCollNet_t
    signature: ncclCollNet_t * getNcclCollNet_v10(void* lib)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getProperties
      Src: /src/nccl/src/plugin/net/net_v8.cc:19,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 2
    argNames:
    - dev
    - props
    argTypes:
    - int
    - ncclNetProperties_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 39
    functionName: ncclNet_getProperties
    functionSourceFile: /src/nccl/src/plugin/net/net_v8.cc
    functionUses: 0
    functionsReached:
    - getProperties
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNet_getProperties(int dev, ncclNetProperties_t* props)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: connect
      Src: /src/nccl/src/plugin/net/net_v8.cc:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - dev
    - config
    - handle
    - sendComm
    - sendDevComm
    argTypes:
    - int
    - ncclNetCommConfig_t*
    - void*
    - void**
    - ncclNetDeviceHandle_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 43
    functionName: ncclNet_connect
    functionSourceFile: /src/nccl/src/plugin/net/net_v8.cc
    functionUses: 0
    functionsReached:
    - connect
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNet_connect(int dev, ncclNetCommConfig_t* config,
      void* handle, void** sendComm, ncclNetDeviceHandle_t** sendDevComm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isend
      Src: /src/nccl/src/plugin/net/net_v8.cc:49,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 7
    argNames:
    - sendComm
    - data
    - size
    - tag
    - mhandle
    - pHandle
    - request
    argTypes:
    - void*
    - void*
    - size_t
    - int
    - void*
    - void*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 51
    functionName: ncclNet_isend
    functionSourceFile: /src/nccl/src/plugin/net/net_v8.cc
    functionUses: 0
    functionsReached:
    - isend
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNet_isend(void* sendComm, void* data, size_t size,
      int tag, void* mhandle, void* pHandle, void** request)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: irecv
      Src: /src/nccl/src/plugin/net/net_v8.cc:61,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 8
    argNames:
    - recvComm
    - n
    - data
    - sizes
    - tags
    - mhandles
    - pHandles
    - request
    argTypes:
    - void*
    - int
    - void**
    - size_t*
    - int*
    - void**
    - void**
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 63
    functionName: ncclNet_irecv
    functionSourceFile: /src/nccl/src/plugin/net/net_v8.cc
    functionUses: 0
    functionsReached:
    - irecv
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNet_irecv(void* recvComm, int n, void** data, size_t*
      sizes, int* tags, void** mhandles, void** pHandles, void** request)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getProperties
      Src: /src/nccl/src/plugin/net/net_v8.cc:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 2
    argNames:
    - dev
    - props
    argTypes:
    - int
    - ncclNetProperties_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 87
    functionName: ncclCollNet_getProperties
    functionSourceFile: /src/nccl/src/plugin/net/net_v8.cc
    functionUses: 0
    functionsReached:
    - getProperties
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCollNet_getProperties(int dev, ncclNetProperties_t*
      props)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: iallreduce
      Src: /src/nccl/src/plugin/net/net_v8.cc:94,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 9
    argNames:
    - collComm
    - sendData
    - recvData
    - count
    - dataType
    - redOp
    - sendMhandle
    - recvMhandle
    - request
    argTypes:
    - void*
    - void*
    - void*
    - size_t
    - ncclDataType_t
    - ncclRedOp_t
    - void*
    - void*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 97
    functionName: ncclCollNet_iallreduce
    functionSourceFile: /src/nccl/src/plugin/net/net_v8.cc
    functionUses: 0
    functionsReached:
    - iallreduce
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclCollNet_iallreduce(void* collComm, void* sendData,
      void* recvData, size_t count,\n      ncclDataType_t dataType, ncclRedOp_t redOp,
      void* sendMhandle, void* recvMhandle, void** request)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: iallgather
      Src: /src/nccl/src/plugin/net/net_v8.cc:108,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 9
    argNames:
    - collComm
    - sendData
    - nRecvParts
    - recvParts
    - bytesPerRank
    - windowOffset
    - windowBytes
    - sendMhandle
    - request
    argTypes:
    - void*
    - void*
    - int
    - ncclNetSGE_t*
    - size_t
    - size_t
    - size_t
    - void*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 112
    functionName: ncclCollNet_iallgather
    functionSourceFile: /src/nccl/src/plugin/net/net_v8.cc
    functionUses: 0
    functionsReached:
    - iallgather
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclCollNet_iallgather (void* collComm, void* sendData,
      int nRecvParts, ncclNetSGE_t* recvParts,\n                           size_t
      bytesPerRank, size_t windowOffset, size_t windowBytes,\n                           void*
      sendMhandle, void** request)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ireducescatter
      Src: /src/nccl/src/plugin/net/net_v8.cc:124,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 11
    argNames:
    - collComm
    - nSendParts
    - sendParts
    - recvData
    - bytesPerRank
    - windowOffset
    - windowBytes
    - dataType
    - redOp
    - recvMhandle
    - request
    argTypes:
    - void*
    - int
    - ncclNetSGE_t*
    - void*
    - size_t
    - size_t
    - size_t
    - ncclDataType_t
    - ncclRedOp_t
    - void*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 129
    functionName: ncclCollNet_ireducescatter
    functionSourceFile: /src/nccl/src/plugin/net/net_v8.cc
    functionUses: 0
    functionsReached:
    - ireducescatter
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclCollNet_ireducescatter(void* collComm, int nSendParts,
      ncclNetSGE_t* sendParts, void* recvData,\n                               size_t
      bytesPerRank, size_t windowOffset, size_t windowBytes,\n                               ncclDataType_t
      dataType, ncclRedOp_t redOp,\n                               void* recvMhandle,
      void** request)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/plugin/net/net_v8.cc:132,1
    - Dst: init
      Src: /src/nccl/src/plugin/net/net_v8.cc:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 2
    argNames:
    - logfn
    - proffn
    argTypes:
    - ncclDebugLogger_t
    - ncclProfilerCallback_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 152
    functionName: ncclNet_init
    functionSourceFile: /src/nccl/src/plugin/net/net_v8.cc
    functionUses: 0
    functionsReached:
    - init
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNet_init(ncclDebugLogger_t logfn, ncclProfilerCallback_t
      proffn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dlsym
      Src: /src/nccl/src/plugin/net/net_v8.cc:155,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/net/net_v8.cc:159,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/net/net_v8.cc:162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - lib
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 164
    functionName: getNcclNet_v8
    functionSourceFile: /src/nccl/src/plugin/net/net_v8.cc
    functionUses: 0
    functionsReached:
    - INFO
    - dlsym
    linkageType: ''
    returnType: ncclNet_t
    signature: ncclNet_t * getNcclNet_v8(void* lib)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/plugin/net/net_v8.cc:167,1
    - Dst: init
      Src: /src/nccl/src/plugin/net/net_v8.cc:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 1
    argNames:
    - logfn
    argTypes:
    - ncclDebugLogger_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 184
    functionName: ncclCollNet_init
    functionSourceFile: /src/nccl/src/plugin/net/net_v8.cc
    functionUses: 0
    functionsReached:
    - init
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCollNet_init(ncclDebugLogger_t logfn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dlsym
      Src: /src/nccl/src/plugin/net/net_v8.cc:187,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/net/net_v8.cc:191,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/net/net_v8.cc:194,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - lib
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 196
    functionName: getNcclCollNet_v8
    functionSourceFile: /src/nccl/src/plugin/net/net_v8.cc
    functionUses: 0
    functionsReached:
    - INFO
    - dlsym
    linkageType: ''
    returnType: ncclCollNet_t
    signature: ncclCollNet_t * getNcclCollNet_v8(void* lib)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getProperties
      Src: /src/nccl/src/plugin/net/net_v6.cc:19,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 2
    argNames:
    - dev
    - props
    argTypes:
    - int
    - ncclNetProperties_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 39
    functionName: ncclNet_getProperties
    functionSourceFile: /src/nccl/src/plugin/net/net_v6.cc
    functionUses: 0
    functionsReached:
    - getProperties
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNet_getProperties(int dev, ncclNetProperties_t* props)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: regMr
      Src: /src/nccl/src/plugin/net/net_v6.cc:43,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - comm
    - data
    - size
    - type
    - mhandle
    argTypes:
    - void*
    - void*
    - size_t
    - int
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: ncclNet_regMr
    functionSourceFile: /src/nccl/src/plugin/net/net_v6.cc
    functionUses: 0
    functionsReached:
    - regMr
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNet_regMr(void* comm, void* data, size_t size, int
      type, void** mhandle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: connect
      Src: /src/nccl/src/plugin/net/net_v6.cc:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - dev
    - config
    - handle
    - sendComm
    argTypes:
    - int
    - ncclNetCommConfig_t*
    - void*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 48
    functionName: ncclNet_connect
    functionSourceFile: /src/nccl/src/plugin/net/net_v6.cc
    functionUses: 0
    functionsReached:
    - connect
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNet_connect(int dev, ncclNetCommConfig_t* config,
      void* handle, void** sendComm, ncclNetDeviceHandle_t** /*sendDevComm*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: accept
      Src: /src/nccl/src/plugin/net/net_v6.cc:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - listenComm
    - recvComm
    argTypes:
    - void*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 52
    functionName: ncclNet_accept
    functionSourceFile: /src/nccl/src/plugin/net/net_v6.cc
    functionUses: 0
    functionsReached:
    - accept
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNet_accept(void* listenComm, void** recvComm, ncclNetDeviceHandle_t**
      /*recvDevComm*/)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isend
      Src: /src/nccl/src/plugin/net/net_v6.cc:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 7
    argNames:
    - sendComm
    - data
    - size
    - tag
    - mhandle
    - pHandle
    - request
    argTypes:
    - void*
    - void*
    - size_t
    - int
    - void*
    - void*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 60
    functionName: ncclNet_isend
    functionSourceFile: /src/nccl/src/plugin/net/net_v6.cc
    functionUses: 0
    functionsReached:
    - isend
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNet_isend(void* sendComm, void* data, size_t size,
      int tag, void* mhandle, void* pHandle, void** request)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: irecv
      Src: /src/nccl/src/plugin/net/net_v6.cc:70,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 8
    argNames:
    - recvComm
    - n
    - data
    - sizes
    - tags
    - mhandles
    - pHandles
    - request
    argTypes:
    - void*
    - int
    - void**
    - size_t*
    - int*
    - void**
    - void**
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 72
    functionName: ncclNet_irecv
    functionSourceFile: /src/nccl/src/plugin/net/net_v6.cc
    functionUses: 0
    functionsReached:
    - irecv
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNet_irecv(void* recvComm, int n, void** data, size_t*
      sizes, int* tags, void** mhandles, void** pHandles, void** request)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getProperties
      Src: /src/nccl/src/plugin/net/net_v6.cc:76,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 2
    argNames:
    - dev
    - props
    argTypes:
    - int
    - ncclNetProperties_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 96
    functionName: ncclCollNet_getProperties
    functionSourceFile: /src/nccl/src/plugin/net/net_v6.cc
    functionUses: 0
    functionsReached:
    - getProperties
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCollNet_getProperties(int dev, ncclNetProperties_t*
      props)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: regMr
      Src: /src/nccl/src/plugin/net/net_v6.cc:100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - comm
    - data
    - size
    - type
    - mhandle
    argTypes:
    - void*
    - void*
    - size_t
    - int
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 101
    functionName: ncclCollNet_regMr
    functionSourceFile: /src/nccl/src/plugin/net/net_v6.cc
    functionUses: 0
    functionsReached:
    - regMr
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCollNet_regMr(void* comm, void* data, size_t size,
      int type, void** mhandle)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: iallreduce
      Src: /src/nccl/src/plugin/net/net_v6.cc:108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 9
    argNames:
    - collComm
    - sendData
    - recvData
    - count
    - dataType
    - redOp
    - sendMhandle
    - recvMhandle
    - request
    argTypes:
    - void*
    - void*
    - void*
    - size_t
    - ncclDataType_t
    - ncclRedOp_t
    - void*
    - void*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 111
    functionName: ncclCollNet_iallreduce
    functionSourceFile: /src/nccl/src/plugin/net/net_v6.cc
    functionUses: 0
    functionsReached:
    - iallreduce
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclCollNet_iallreduce(void* collComm, void* sendData,
      void* recvData, size_t count,\n     ncclDataType_t dataType, ncclRedOp_t redOp,
      void* sendMhandle, void* recvMhandle, void** request)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/plugin/net/net_v6.cc:114,1
    - Dst: init
      Src: /src/nccl/src/plugin/net/net_v6.cc:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 2
    argNames:
    - logfn
    - proffn
    argTypes:
    - ncclDebugLogger_t
    - ncclProfilerCallback_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 134
    functionName: ncclNet_init
    functionSourceFile: /src/nccl/src/plugin/net/net_v6.cc
    functionUses: 0
    functionsReached:
    - init
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNet_init(ncclDebugLogger_t logfn, ncclProfilerCallback_t
      proffn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dlsym
      Src: /src/nccl/src/plugin/net/net_v6.cc:137,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/net/net_v6.cc:141,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/net/net_v6.cc:144,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - lib
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 146
    functionName: getNcclNet_v6
    functionSourceFile: /src/nccl/src/plugin/net/net_v6.cc
    functionUses: 0
    functionsReached:
    - INFO
    - dlsym
    linkageType: ''
    returnType: ncclNet_t
    signature: ncclNet_t * getNcclNet_v6(void* lib)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/plugin/net/net_v6.cc:149,1
    - Dst: init
      Src: /src/nccl/src/plugin/net/net_v6.cc:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 1
    argNames:
    - logfn
    argTypes:
    - ncclDebugLogger_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 166
    functionName: ncclCollNet_init
    functionSourceFile: /src/nccl/src/plugin/net/net_v6.cc
    functionUses: 0
    functionsReached:
    - init
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCollNet_init(ncclDebugLogger_t logfn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dlsym
      Src: /src/nccl/src/plugin/net/net_v6.cc:169,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/net/net_v6.cc:173,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/net/net_v6.cc:176,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - lib
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 178
    functionName: getNcclCollNet_v6
    functionSourceFile: /src/nccl/src/plugin/net/net_v6.cc
    functionUses: 0
    functionsReached:
    - INFO
    - dlsym
    linkageType: ''
    returnType: ncclCollNet_t
    signature: ncclCollNet_t * getNcclCollNet_v6(void* lib)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getProperties
      Src: /src/nccl/src/plugin/net/net_v7.cc:19,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 2
    argNames:
    - dev
    - props
    argTypes:
    - int
    - ncclNetProperties_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 39
    functionName: ncclNet_getProperties
    functionSourceFile: /src/nccl/src/plugin/net/net_v7.cc
    functionUses: 0
    functionsReached:
    - getProperties
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNet_getProperties(int dev, ncclNetProperties_t* props)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: connect
      Src: /src/nccl/src/plugin/net/net_v7.cc:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - dev
    - config
    - handle
    - sendComm
    - sendDevComm
    argTypes:
    - int
    - ncclNetCommConfig_t*
    - void*
    - void**
    - ncclNetDeviceHandle_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 43
    functionName: ncclNet_connect
    functionSourceFile: /src/nccl/src/plugin/net/net_v7.cc
    functionUses: 0
    functionsReached:
    - connect
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNet_connect(int dev, ncclNetCommConfig_t* config,
      void* handle, void** sendComm, ncclNetDeviceHandle_t** sendDevComm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: regMr
      Src: /src/nccl/src/plugin/net/net_v7.cc:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - comm
    - data
    - size
    - type
    - mhandle
    argTypes:
    - void*
    - void*
    - size_t
    - int
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 48
    functionName: ncclNet_regMr
    functionSourceFile: /src/nccl/src/plugin/net/net_v7.cc
    functionUses: 0
    functionsReached:
    - regMr
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNet_regMr(void* comm, void* data, size_t size, int
      type, void** mhandle)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: isend
      Src: /src/nccl/src/plugin/net/net_v7.cc:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 7
    argNames:
    - sendComm
    - data
    - size
    - tag
    - mhandle
    - pHandle
    - request
    argTypes:
    - void*
    - void*
    - size_t
    - int
    - void*
    - void*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 56
    functionName: ncclNet_isend
    functionSourceFile: /src/nccl/src/plugin/net/net_v7.cc
    functionUses: 0
    functionsReached:
    - isend
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNet_isend(void* sendComm, void* data, size_t size,
      int tag, void* mhandle, void* pHandle, void** request)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: irecv
      Src: /src/nccl/src/plugin/net/net_v7.cc:66,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 8
    argNames:
    - recvComm
    - n
    - data
    - sizes
    - tags
    - mhandles
    - pHandles
    - request
    argTypes:
    - void*
    - int
    - void**
    - size_t*
    - int*
    - void**
    - void**
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 68
    functionName: ncclNet_irecv
    functionSourceFile: /src/nccl/src/plugin/net/net_v7.cc
    functionUses: 0
    functionsReached:
    - irecv
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNet_irecv(void* recvComm, int n, void** data, size_t*
      sizes, int* tags, void** mhandles, void** pHandles, void** request)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getProperties
      Src: /src/nccl/src/plugin/net/net_v7.cc:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 2
    argNames:
    - dev
    - props
    argTypes:
    - int
    - ncclNetProperties_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 92
    functionName: ncclCollNet_getProperties
    functionSourceFile: /src/nccl/src/plugin/net/net_v7.cc
    functionUses: 0
    functionsReached:
    - getProperties
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCollNet_getProperties(int dev, ncclNetProperties_t*
      props)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: regMr
      Src: /src/nccl/src/plugin/net/net_v7.cc:96,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - comm
    - data
    - size
    - type
    - mhandle
    argTypes:
    - void*
    - void*
    - size_t
    - int
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 97
    functionName: ncclCollNet_regMr
    functionSourceFile: /src/nccl/src/plugin/net/net_v7.cc
    functionUses: 0
    functionsReached:
    - regMr
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCollNet_regMr(void* comm, void* data, size_t size,
      int type, void** mhandle)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: iallreduce
      Src: /src/nccl/src/plugin/net/net_v7.cc:104,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 9
    argNames:
    - collComm
    - sendData
    - recvData
    - count
    - dataType
    - redOp
    - sendMhandle
    - recvMhandle
    - request
    argTypes:
    - void*
    - void*
    - void*
    - size_t
    - ncclDataType_t
    - ncclRedOp_t
    - void*
    - void*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 107
    functionName: ncclCollNet_iallreduce
    functionSourceFile: /src/nccl/src/plugin/net/net_v7.cc
    functionUses: 0
    functionsReached:
    - iallreduce
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclCollNet_iallreduce(void* collComm, void* sendData,
      void* recvData, size_t count,\n      ncclDataType_t dataType, ncclRedOp_t redOp,
      void* sendMhandle, void* recvMhandle, void** request)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/plugin/net/net_v7.cc:110,1
    - Dst: init
      Src: /src/nccl/src/plugin/net/net_v7.cc:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 2
    argNames:
    - logfn
    - proffn
    argTypes:
    - ncclDebugLogger_t
    - ncclProfilerCallback_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 130
    functionName: ncclNet_init
    functionSourceFile: /src/nccl/src/plugin/net/net_v7.cc
    functionUses: 0
    functionsReached:
    - init
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNet_init(ncclDebugLogger_t logfn, ncclProfilerCallback_t
      proffn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dlsym
      Src: /src/nccl/src/plugin/net/net_v7.cc:133,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/net/net_v7.cc:137,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/net/net_v7.cc:140,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - lib
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 142
    functionName: getNcclNet_v7
    functionSourceFile: /src/nccl/src/plugin/net/net_v7.cc
    functionUses: 0
    functionsReached:
    - INFO
    - dlsym
    linkageType: ''
    returnType: ncclNet_t
    signature: ncclNet_t * getNcclNet_v7(void* lib)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/plugin/net/net_v7.cc:145,1
    - Dst: init
      Src: /src/nccl/src/plugin/net/net_v7.cc:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 1
    argNames:
    - logfn
    argTypes:
    - ncclDebugLogger_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 162
    functionName: ncclCollNet_init
    functionSourceFile: /src/nccl/src/plugin/net/net_v7.cc
    functionUses: 0
    functionsReached:
    - init
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCollNet_init(ncclDebugLogger_t logfn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dlsym
      Src: /src/nccl/src/plugin/net/net_v7.cc:165,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/net/net_v7.cc:169,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/net/net_v7.cc:172,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - lib
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 174
    functionName: getNcclCollNet_v7
    functionSourceFile: /src/nccl/src/plugin/net/net_v7.cc
    functionUses: 0
    functionsReached:
    - INFO
    - dlsym
    linkageType: ''
    returnType: ncclCollNet_t
    signature: ncclCollNet_t * getNcclCollNet_v7(void* lib)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getProperties
      Src: /src/nccl/src/plugin/net/net_v9.cc:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dev
    - props
    argTypes:
    - int
    - ncclNetProperties_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 19
    functionName: ncclNet_getProperties
    functionSourceFile: /src/nccl/src/plugin/net/net_v9.cc
    functionUses: 0
    functionsReached:
    - getProperties
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNet_getProperties(int dev, ncclNetProperties_t* props)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: isend
      Src: /src/nccl/src/plugin/net/net_v9.cc:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - sendComm
    - data
    - size
    - tag
    - mhandle
    - pHandle
    - request
    argTypes:
    - void*
    - void*
    - size_t
    - int
    - void*
    - void*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 23
    functionName: ncclNet_isend
    functionSourceFile: /src/nccl/src/plugin/net/net_v9.cc
    functionUses: 0
    functionsReached:
    - isend
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNet_isend(void* sendComm, void* data, size_t size,
      int tag, void* mhandle, void* pHandle, void** request)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: irecv
      Src: /src/nccl/src/plugin/net/net_v9.cc:26,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 8
    argNames:
    - recvComm
    - n
    - data
    - sizes
    - tags
    - mhandles
    - pHandles
    - request
    argTypes:
    - void*
    - int
    - void**
    - size_t*
    - int*
    - void**
    - void**
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 27
    functionName: ncclNet_irecv
    functionSourceFile: /src/nccl/src/plugin/net/net_v9.cc
    functionUses: 0
    functionsReached:
    - irecv
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNet_irecv(void* recvComm, int n, void** data, size_t*
      sizes, int* tags, void** mhandles, void** pHandles, void** request)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: connect
      Src: /src/nccl/src/plugin/net/net_v9.cc:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - dev
    - config
    - handle
    - sendComm
    - sendDevComm
    argTypes:
    - int
    - ncclNetCommConfig_t*
    - void*
    - void**
    - ncclNetDeviceHandle_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 31
    functionName: ncclNet_connect
    functionSourceFile: /src/nccl/src/plugin/net/net_v9.cc
    functionUses: 0
    functionsReached:
    - connect
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNet_connect(int dev, ncclNetCommConfig_t* config,
      void* handle, void** sendComm, ncclNetDeviceHandle_t** sendDevComm)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: makeVDevice
      Src: /src/nccl/src/plugin/net/net_v9.cc:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - props
    argTypes:
    - int*
    - ncclNetVDeviceProps_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 35
    functionName: ncclNet_makeVDevice
    functionSourceFile: /src/nccl/src/plugin/net/net_v9.cc
    functionUses: 0
    functionsReached:
    - makeVDevice
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNet_makeVDevice(int* d, ncclNetVDeviceProps_t* props)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getProperties
      Src: /src/nccl/src/plugin/net/net_v9.cc:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dev
    - props
    argTypes:
    - int
    - ncclNetProperties_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 39
    functionName: ncclCollNet_getProperties
    functionSourceFile: /src/nccl/src/plugin/net/net_v9.cc
    functionUses: 0
    functionsReached:
    - getProperties
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCollNet_getProperties(int dev, ncclNetProperties_t*
      props)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iallgather
      Src: /src/nccl/src/plugin/net/net_v9.cc:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 9
    argNames:
    - collComm
    - sendData
    - nRecvParts
    - recvParts
    - bytesPerRank
    - windowOffset
    - windowBytes
    - sendMhandle
    - request
    argTypes:
    - void*
    - void*
    - int
    - ncclNetSGE_t*
    - size_t
    - size_t
    - size_t
    - void*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 46
    functionName: ncclCollNet_iallgather
    functionSourceFile: /src/nccl/src/plugin/net/net_v9.cc
    functionUses: 0
    functionsReached:
    - iallgather
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclCollNet_iallgather(void* collComm, void* sendData,
      int nRecvParts, ncclNetSGE_t* recvParts,\n                             size_t
      bytesPerRank, size_t windowOffset, size_t windowBytes,\n                             void*
      sendMhandle, void** request)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ireducescatter
      Src: /src/nccl/src/plugin/net/net_v9.cc:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 11
    argNames:
    - collComm
    - nSendParts
    - sendParts
    - recvData
    - bytesPerRank
    - windowOffset
    - windowBytes
    - dataType
    - redOp
    - recvMhandle
    - request
    argTypes:
    - void*
    - int
    - ncclNetSGE_t*
    - void*
    - size_t
    - size_t
    - size_t
    - ncclDataType_t
    - ncclRedOp_t
    - void*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 54
    functionName: ncclCollNet_ireducescatter
    functionSourceFile: /src/nccl/src/plugin/net/net_v9.cc
    functionUses: 0
    functionsReached:
    - ireducescatter
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclCollNet_ireducescatter(void* collComm, int nSendParts,
      ncclNetSGE_t* sendParts, void* recvData,\n                                 size_t
      bytesPerRank, size_t windowOffset, size_t windowBytes,\n                                 ncclDataType_t
      dataType, ncclRedOp_t redOp,\n                                 void* recvMhandle,
      void** request)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/plugin/net/net_v9.cc:57,1
    - Dst: init
      Src: /src/nccl/src/plugin/net/net_v9.cc:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 2
    argNames:
    - logfn
    - proffn
    argTypes:
    - ncclDebugLogger_t
    - ncclProfilerCallback_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 77
    functionName: ncclNet_init
    functionSourceFile: /src/nccl/src/plugin/net/net_v9.cc
    functionUses: 0
    functionsReached:
    - init
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNet_init(ncclDebugLogger_t logfn, ncclProfilerCallback_t
      proffn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dlsym
      Src: /src/nccl/src/plugin/net/net_v9.cc:80,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/net/net_v9.cc:84,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/net/net_v9.cc:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - lib
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 89
    functionName: getNcclNet_v9
    functionSourceFile: /src/nccl/src/plugin/net/net_v9.cc
    functionUses: 0
    functionsReached:
    - INFO
    - dlsym
    linkageType: ''
    returnType: ncclNet_t
    signature: ncclNet_t * getNcclNet_v9(void* lib)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/plugin/net/net_v9.cc:92,1
    - Dst: init
      Src: /src/nccl/src/plugin/net/net_v9.cc:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 1
    argNames:
    - logfn
    argTypes:
    - ncclDebugLogger_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 109
    functionName: ncclCollNet_init
    functionSourceFile: /src/nccl/src/plugin/net/net_v9.cc
    functionUses: 0
    functionsReached:
    - init
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCollNet_init(ncclDebugLogger_t logfn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dlsym
      Src: /src/nccl/src/plugin/net/net_v9.cc:112,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/net/net_v9.cc:116,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/net/net_v9.cc:119,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - lib
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 121
    functionName: getNcclCollNet_v9
    functionSourceFile: /src/nccl/src/plugin/net/net_v9.cc
    functionUses: 0
    functionsReached:
    - INFO
    - dlsym
    linkageType: ''
    returnType: ncclCollNet_t
    signature: ncclCollNet_t * getNcclCollNet_v9(void* lib)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/nccl/src/plugin/profiler/profiler_v1.cc:15,1
    - Dst: strcmp
      Src: /src/nccl/src/plugin/profiler/profiler_v1.cc:16,1
    - Dst: strcmp
      Src: /src/nccl/src/plugin/profiler/profiler_v1.cc:17,1
    - Dst: strcmp
      Src: /src/nccl/src/plugin/profiler/profiler_v1.cc:18,1
    - Dst: strcmp
      Src: /src/nccl/src/plugin/profiler/profiler_v1.cc:19,1
    - Dst: strcmp
      Src: /src/nccl/src/plugin/profiler/profiler_v1.cc:20,1
    - Dst: strcmp
      Src: /src/nccl/src/plugin/profiler/profiler_v1.cc:21,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 1
    argNames:
    - func
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 23
    functionName: ncclStringToFunc
    functionSourceFile: /src/nccl/src/plugin/profiler/profiler_v1.cc
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t ncclStringToFunc(const char* func)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/nccl/src/plugin/profiler/profiler_v1.cc:26,1
    - Dst: strcmp
      Src: /src/nccl/src/plugin/profiler/profiler_v1.cc:27,1
    - Dst: strcmp
      Src: /src/nccl/src/plugin/profiler/profiler_v1.cc:28,1
    - Dst: strcmp
      Src: /src/nccl/src/plugin/profiler/profiler_v1.cc:29,1
    - Dst: strcmp
      Src: /src/nccl/src/plugin/profiler/profiler_v1.cc:30,1
    - Dst: strcmp
      Src: /src/nccl/src/plugin/profiler/profiler_v1.cc:31,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - algo
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 33
    functionName: ncclStringToAlgo
    functionSourceFile: /src/nccl/src/plugin/profiler/profiler_v1.cc
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t ncclStringToAlgo(const char* algo)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/nccl/src/plugin/profiler/profiler_v1.cc:36,1
    - Dst: strcmp
      Src: /src/nccl/src/plugin/profiler/profiler_v1.cc:37,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - proto
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 39
    functionName: ncclStringToProto
    functionSourceFile: /src/nccl/src/plugin/profiler/profiler_v1.cc
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t ncclStringToProto(const char* proto)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/nccl/src/plugin/profiler/profiler_v1.cc:42,1
    - Dst: strcmp
      Src: /src/nccl/src/plugin/profiler/profiler_v1.cc:43,1
    - Dst: strcmp
      Src: /src/nccl/src/plugin/profiler/profiler_v1.cc:44,1
    - Dst: strcmp
      Src: /src/nccl/src/plugin/profiler/profiler_v1.cc:45,1
    - Dst: strcmp
      Src: /src/nccl/src/plugin/profiler/profiler_v1.cc:46,1
    - Dst: strcmp
      Src: /src/nccl/src/plugin/profiler/profiler_v1.cc:47,1
    - Dst: strcmp
      Src: /src/nccl/src/plugin/profiler/profiler_v1.cc:48,1
    - Dst: strcmp
      Src: /src/nccl/src/plugin/profiler/profiler_v1.cc:50,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 1
    argNames:
    - dt
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 53
    functionName: ncclStringToDatatype
    functionSourceFile: /src/nccl/src/plugin/profiler/profiler_v1.cc
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t ncclStringToDatatype(const char* dt)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ncclStringToFunc
      Src: /src/nccl/src/plugin/profiler/profiler_v1.cc:67,1
    - Dst: ncclStringToDatatype
      Src: /src/nccl/src/plugin/profiler/profiler_v1.cc:72,1
    - Dst: ncclStringToAlgo
      Src: /src/nccl/src/plugin/profiler/profiler_v1.cc:77,1
    - Dst: ncclStringToProto
      Src: /src/nccl/src/plugin/profiler/profiler_v1.cc:78,1
    - Dst: ncclStringToFunc
      Src: /src/nccl/src/plugin/profiler/profiler_v1.cc:83,1
    - Dst: ncclStringToDatatype
      Src: /src/nccl/src/plugin/profiler/profiler_v1.cc:86,1
    - Dst: startEvent
      Src: /src/nccl/src/plugin/profiler/profiler_v1.cc:103,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 55
    argCount: 3
    argNames:
    - context
    - eHandle
    - eDescr
    argTypes:
    - void*
    - void**
    - ncclProfilerEventDescr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 104
    functionName: ncclProfiler_startEvent
    functionSourceFile: /src/nccl/src/plugin/profiler/profiler_v1.cc
    functionUses: 0
    functionsReached:
    - ncclStringToAlgo
    - ncclStringToDatatype
    - ncclStringToFunc
    - ncclStringToProto
    - startEvent
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProfiler_startEvent(void* context, void** eHandle,
      ncclProfilerEventDescr_t* eDescr)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: recordEventState
      Src: /src/nccl/src/plugin/profiler/profiler_v1.cc:125,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 3
    argNames:
    - eHandle
    - eState
    - eStateArgs
    argTypes:
    - void*
    - ncclProfilerEventState_t
    - ncclProfilerEventStateArgs_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 126
    functionName: ncclProfiler_recordEventState
    functionSourceFile: /src/nccl/src/plugin/profiler/profiler_v1.cc
    functionUses: 0
    functionsReached:
    - recordEventState
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProfiler_recordEventState(void* eHandle, ncclProfilerEventState_t
      eState, ncclProfilerEventStateArgs_t* eStateArgs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/plugin/profiler/profiler_v1.cc:129,1
    - Dst: init
      Src: /src/nccl/src/plugin/profiler/profiler_v1.cc:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 8
    argNames:
    - context
    - eActivationMask
    - commName
    - commHash
    - nNodes
    - nranks
    - rank
    - logfn
    argTypes:
    - void**
    - int*
    - char*
    - uint64_t
    - int
    - int
    - int
    - ncclDebugLogger_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 135
    functionName: ncclProfiler_init
    functionSourceFile: /src/nccl/src/plugin/profiler/profiler_v1.cc
    functionUses: 0
    functionsReached:
    - init
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProfiler_init(void** context, int* eActivationMask,
      const char* commName, uint64_t commHash, int nNodes, int nranks, int rank, ncclDebugLogger_t
      logfn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dlsym
      Src: /src/nccl/src/plugin/profiler/profiler_v1.cc:138,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/profiler/profiler_v1.cc:142,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/profiler/profiler_v1.cc:145,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - lib
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 147
    functionName: getNcclProfiler_v1
    functionSourceFile: /src/nccl/src/plugin/profiler/profiler_v1.cc
    functionUses: 1
    functionsReached:
    - INFO
    - dlsym
    linkageType: ''
    returnType: ncclProfiler_t
    signature: ncclProfiler_t * getNcclProfiler_v1(void* lib)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dlsym
      Src: /src/nccl/src/plugin/profiler/profiler_v4.cc:14,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/profiler/profiler_v4.cc:16,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/profiler/profiler_v4.cc:19,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - lib
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 21
    functionName: getNcclProfiler_v4
    functionSourceFile: /src/nccl/src/plugin/profiler/profiler_v4.cc
    functionUses: 1
    functionsReached:
    - INFO
    - dlsym
    linkageType: ''
    returnType: ncclProfiler_t
    signature: ncclProfiler_t * getNcclProfiler_v4(void* lib)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: startEvent
      Src: /src/nccl/src/plugin/profiler/profiler_v3.cc:67,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 62
    argCount: 3
    argNames:
    - context
    - eHandle
    - eDescr
    argTypes:
    - void*
    - void**
    - ncclProfilerEventDescr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 68
    functionName: ncclProfiler_startEvent
    functionSourceFile: /src/nccl/src/plugin/profiler/profiler_v3.cc
    functionUses: 0
    functionsReached:
    - startEvent
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProfiler_startEvent(void* context, void** eHandle,
      ncclProfilerEventDescr_t* eDescr)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: recordEventState
      Src: /src/nccl/src/plugin/profiler/profiler_v3.cc:89,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 3
    argNames:
    - eHandle
    - eState
    - eStateArgs
    argTypes:
    - void*
    - ncclProfilerEventState_t
    - ncclProfilerEventStateArgs_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 90
    functionName: ncclProfiler_recordEventState
    functionSourceFile: /src/nccl/src/plugin/profiler/profiler_v3.cc
    functionUses: 0
    functionsReached:
    - recordEventState
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProfiler_recordEventState(void* eHandle, ncclProfilerEventState_t
      eState, ncclProfilerEventStateArgs_t* eStateArgs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/plugin/profiler/profiler_v3.cc:93,1
    - Dst: init
      Src: /src/nccl/src/plugin/profiler/profiler_v3.cc:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 8
    argNames:
    - context
    - eActivationMask
    - commName
    - commHash
    - nNodes
    - nranks
    - rank
    - logfn
    argTypes:
    - void**
    - int*
    - char*
    - uint64_t
    - int
    - int
    - int
    - ncclDebugLogger_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 99
    functionName: ncclProfiler_init
    functionSourceFile: /src/nccl/src/plugin/profiler/profiler_v3.cc
    functionUses: 0
    functionsReached:
    - init
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProfiler_init(void** context, int* eActivationMask,
      const char* commName, uint64_t commHash, int nNodes, int nranks, int rank, ncclDebugLogger_t
      logfn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dlsym
      Src: /src/nccl/src/plugin/profiler/profiler_v3.cc:102,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/profiler/profiler_v3.cc:106,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/profiler/profiler_v3.cc:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - lib
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 111
    functionName: getNcclProfiler_v3
    functionSourceFile: /src/nccl/src/plugin/profiler/profiler_v3.cc
    functionUses: 1
    functionsReached:
    - INFO
    - dlsym
    linkageType: ''
    returnType: ncclProfiler_t
    signature: ncclProfiler_t * getNcclProfiler_v3(void* lib)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: startEvent
      Src: /src/nccl/src/plugin/profiler/profiler_v2.cc:61,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 54
    argCount: 3
    argNames:
    - context
    - eHandle
    - eDescr
    argTypes:
    - void*
    - void**
    - ncclProfilerEventDescr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 62
    functionName: ncclProfiler_startEvent
    functionSourceFile: /src/nccl/src/plugin/profiler/profiler_v2.cc
    functionUses: 0
    functionsReached:
    - startEvent
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProfiler_startEvent(void* context, void** eHandle,
      ncclProfilerEventDescr_t* eDescr)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: recordEventState
      Src: /src/nccl/src/plugin/profiler/profiler_v2.cc:83,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 3
    argNames:
    - eHandle
    - eState
    - eStateArgs
    argTypes:
    - void*
    - ncclProfilerEventState_t
    - ncclProfilerEventStateArgs_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 84
    functionName: ncclProfiler_recordEventState
    functionSourceFile: /src/nccl/src/plugin/profiler/profiler_v2.cc
    functionUses: 0
    functionsReached:
    - recordEventState
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProfiler_recordEventState(void* eHandle, ncclProfilerEventState_t
      eState, ncclProfilerEventStateArgs_t* eStateArgs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/plugin/profiler/profiler_v2.cc:87,1
    - Dst: init
      Src: /src/nccl/src/plugin/profiler/profiler_v2.cc:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 8
    argNames:
    - context
    - eActivationMask
    - commName
    - commHash
    - nNodes
    - nranks
    - rank
    - logfn
    argTypes:
    - void**
    - int*
    - char*
    - uint64_t
    - int
    - int
    - int
    - ncclDebugLogger_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 93
    functionName: ncclProfiler_init
    functionSourceFile: /src/nccl/src/plugin/profiler/profiler_v2.cc
    functionUses: 0
    functionsReached:
    - init
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclProfiler_init(void** context, int* eActivationMask,
      const char* commName, uint64_t commHash, int nNodes, int nranks, int rank, ncclDebugLogger_t
      logfn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dlsym
      Src: /src/nccl/src/plugin/profiler/profiler_v2.cc:96,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/profiler/profiler_v2.cc:100,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/profiler/profiler_v2.cc:103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - lib
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 105
    functionName: getNcclProfiler_v2
    functionSourceFile: /src/nccl/src/plugin/profiler/profiler_v2.cc
    functionUses: 1
    functionsReached:
    - INFO
    - dlsym
    linkageType: ''
    returnType: ncclProfiler_t
    signature: ncclProfiler_t * getNcclProfiler_v2(void* lib)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dlsym
      Src: /src/nccl/src/plugin/tuner/tuner_v4.cc:15,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/tuner/tuner_v4.cc:17,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/tuner/tuner_v4.cc:20,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - lib
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 22
    functionName: getNcclTuner_v4
    functionSourceFile: /src/nccl/src/plugin/tuner/tuner_v4.cc
    functionUses: 1
    functionsReached:
    - INFO
    - dlsym
    linkageType: ''
    returnType: ncclTuner_t
    signature: ncclTuner_t * getNcclTuner_v4(void* lib)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/plugin/tuner/tuner_v3.cc:17,1
    - Dst: getCollInfo
      Src: /src/nccl/src/plugin/tuner/tuner_v3.cc:17,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 9
    argNames:
    - context
    - collType
    - nBytes
    - numPipeOps
    - collCostTable
    - numAlgo
    - numProto
    - regBuff
    - nChannels
    argTypes:
    - void*
    - ncclFunc_t
    - size_t
    - int
    - float**
    - int
    - int
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 19
    functionName: ncclTuner_getCollInfo
    functionSourceFile: /src/nccl/src/plugin/tuner/tuner_v3.cc
    functionUses: 0
    functionsReached:
    - getCollInfo
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTuner_getCollInfo(void* context, ncclFunc_t collType,
      size_t nBytes, int numPipeOps, float** collCostTable, int numAlgo, int numProto,
      int regBuff __attribute__((unused)), int* nChannels)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/plugin/tuner/tuner_v3.cc:22,1
    - Dst: init
      Src: /src/nccl/src/plugin/tuner/tuner_v3.cc:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - nRanks
    - nNodes
    - logfn
    - context
    argTypes:
    - size_t
    - size_t
    - ncclDebugLogger_t
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 26
    functionName: ncclTuner_init
    functionSourceFile: /src/nccl/src/plugin/tuner/tuner_v3.cc
    functionUses: 0
    functionsReached:
    - init
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTuner_init(size_t nRanks, size_t nNodes, ncclDebugLogger_t
      logfn, void** context)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dlsym
      Src: /src/nccl/src/plugin/tuner/tuner_v3.cc:29,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/tuner/tuner_v3.cc:33,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/tuner/tuner_v3.cc:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - lib
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 38
    functionName: getNcclTuner_v3
    functionSourceFile: /src/nccl/src/plugin/tuner/tuner_v3.cc
    functionUses: 1
    functionsReached:
    - INFO
    - dlsym
    linkageType: ''
    returnType: ncclTuner_t
    signature: ncclTuner_t * getNcclTuner_v3(void* lib)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - collCostTable
    argTypes:
    - float**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 28
    functionName: hasNvlsSupport
    functionSourceFile: /src/nccl/src/plugin/tuner/tuner_v2.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int hasNvlsSupport(float** collCostTable)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - collCostTable
    argTypes:
    - float**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 33
    functionName: hasCollNetSupport
    functionSourceFile: /src/nccl/src/plugin/tuner/tuner_v2.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int hasCollNetSupport(float** collCostTable)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: hasNvlsSupport
      Src: /src/nccl/src/plugin/tuner/tuner_v2.cc:38,1
    - Dst: hasCollNetSupport
      Src: /src/nccl/src/plugin/tuner/tuner_v2.cc:39,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/plugin/tuner/tuner_v2.cc:40,1
    - Dst: getCollInfo
      Src: /src/nccl/src/plugin/tuner/tuner_v2.cc:40,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 9
    argNames:
    - context
    - collType
    - nBytes
    - numPipeOps
    - collCostTable
    - numAlgo
    - numProto
    - regBuff
    - nChannels
    argTypes:
    - void*
    - ncclFunc_t
    - size_t
    - int
    - float**
    - int
    - int
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 47
    functionName: ncclTuner_getCollInfo
    functionSourceFile: /src/nccl/src/plugin/tuner/tuner_v2.cc
    functionUses: 0
    functionsReached:
    - getCollInfo
    - hasCollNetSupport
    - hasNvlsSupport
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTuner_getCollInfo(void* context, ncclFunc_t collType,
      size_t nBytes, int numPipeOps, float** collCostTable, int numAlgo __attribute__((unused)),
      int numProto __attribute__((unused)), int regBuff __attribute__((unused)), int*
      nChannels)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/plugin/tuner/tuner_v2.cc:50,1
    - Dst: init
      Src: /src/nccl/src/plugin/tuner/tuner_v2.cc:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - nRanks
    - nNodes
    - logfn
    - context
    argTypes:
    - size_t
    - size_t
    - ncclDebugLogger_t
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 54
    functionName: ncclTuner_init
    functionSourceFile: /src/nccl/src/plugin/tuner/tuner_v2.cc
    functionUses: 0
    functionsReached:
    - init
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTuner_init(size_t nRanks, size_t nNodes, ncclDebugLogger_t
      logfn, void** context)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dlsym
      Src: /src/nccl/src/plugin/tuner/tuner_v2.cc:57,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/tuner/tuner_v2.cc:61,1
    - Dst: INFO
      Src: /src/nccl/src/plugin/tuner/tuner_v2.cc:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - lib
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 66
    functionName: getNcclTuner_v2
    functionSourceFile: /src/nccl/src/plugin/tuner/tuner_v2.cc
    functionUses: 1
    functionsReached:
    - INFO
    - dlsym
    linkageType: ''
    returnType: ncclTuner_t
    signature: ncclTuner_t * getNcclTuner_v2(void* lib)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 20
    functionName: GDRLOCK
    functionSourceFile: /src/nccl/src/include/gdrwrap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GDRLOCK()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 21
    functionName: GDRUNLOCK
    functionSourceFile: /src/nccl/src/include/gdrwrap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GDRUNLOCK()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - cmd
    - ','
    - ret
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 26
    functionName: GDRLOCKCALL
    functionSourceFile: /src/nccl/src/include/gdrwrap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: GDRLOCKCALL(cmd, ret)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: wc_store_fence
    functionSourceFile: /src/nccl/src/include/gdrwrap.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void wc_store_fence(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _mm_sfence
      Src: /src/nccl/src/include/gdrwrap.h:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: wc_store_fence
    functionSourceFile: /src/nccl/src/include/gdrwrap.h
    functionUses: 5
    functionsReached:
    - _mm_sfence
    linkageType: ''
    returnType: void
    signature: void wc_store_fence(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::atomic_thread_fence
      Src: /src/nccl/src/include/gdrwrap.h:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 47
    functionName: wc_store_fence
    functionSourceFile: /src/nccl/src/include/gdrwrap.h
    functionUses: 5
    functionsReached:
    - std::atomic_thread_fence
    linkageType: ''
    returnType: void
    signature: void wc_store_fence(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: atomic_thread_fence
      Src: /src/nccl/src/include/gdrwrap.h:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 50
    functionName: wc_store_fence
    functionSourceFile: /src/nccl/src/include/gdrwrap.h
    functionUses: 5
    functionsReached:
    - atomic_thread_fence
    linkageType: ''
    returnType: void
    signature: void wc_store_fence(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: wrap_gdr_symbols
    functionSourceFile: /src/nccl/src/include/gdrwrap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t wrap_gdr_symbols(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gdr_open
      Src: /src/nccl/src/include/gdrwrap.h:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: wrap_gdr_open
    functionSourceFile: /src/nccl/src/include/gdrwrap.h
    functionUses: 0
    functionsReached:
    - gdr_open
    linkageType: ''
    returnType: gdr_t
    signature: gdr_t wrap_gdr_open(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GDRCHECK
      Src: /src/nccl/src/include/gdrwrap.h:63,1
    - Dst: gdr_close
      Src: /src/nccl/src/include/gdrwrap.h:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - g
    argTypes:
    - gdr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: wrap_gdr_close
    functionSourceFile: /src/nccl/src/include/gdrwrap.h
    functionUses: 0
    functionsReached:
    - GDRCHECK
    - gdr_close
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t wrap_gdr_close(gdr_t g)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GDRCHECK
      Src: /src/nccl/src/include/gdrwrap.h:65,1
    - Dst: gdr_pin_buffer
      Src: /src/nccl/src/include/gdrwrap.h:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - g
    - addr
    - size
    - p2p_token
    - va_space
    - handle
    argTypes:
    - gdr_t
    - unsigned long
    - size_t
    - uint64_t
    - uint32_t
    - gdr_mh_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 67
    functionName: wrap_gdr_pin_buffer
    functionSourceFile: /src/nccl/src/include/gdrwrap.h
    functionUses: 0
    functionsReached:
    - gdr_pin_buffer
    - GDRCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t wrap_gdr_pin_buffer(gdr_t g, unsigned long addr, size_t
      size, uint64_t p2p_token, uint32_t va_space, gdr_mh_t *handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GDRCHECK
      Src: /src/nccl/src/include/gdrwrap.h:69,1
    - Dst: gdr_unpin_buffer
      Src: /src/nccl/src/include/gdrwrap.h:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - g
    - handle
    argTypes:
    - gdr_t
    - gdr_mh_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 71
    functionName: wrap_gdr_unpin_buffer
    functionSourceFile: /src/nccl/src/include/gdrwrap.h
    functionUses: 0
    functionsReached:
    - GDRCHECK
    - gdr_unpin_buffer
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t wrap_gdr_unpin_buffer(gdr_t g, gdr_mh_t handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GDRCHECK
      Src: /src/nccl/src/include/gdrwrap.h:73,1
    - Dst: gdr_get_info
      Src: /src/nccl/src/include/gdrwrap.h:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - g
    - handle
    - info
    argTypes:
    - gdr_t
    - gdr_mh_t
    - gdr_info_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 75
    functionName: wrap_gdr_get_info
    functionSourceFile: /src/nccl/src/include/gdrwrap.h
    functionUses: 0
    functionsReached:
    - GDRCHECK
    - gdr_get_info
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t wrap_gdr_get_info(gdr_t g, gdr_mh_t handle, gdr_info_t
      *info)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - g
    - handle
    - va
    - size
    argTypes:
    - gdr_t
    - gdr_mh_t
    - void**
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 79
    functionName: wrap_gdr_map
    functionSourceFile: /src/nccl/src/include/gdrwrap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t wrap_gdr_map(gdr_t g, gdr_mh_t handle, void **va, size_t
      size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - g
    - handle
    - va
    - size
    argTypes:
    - gdr_t
    - gdr_mh_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 83
    functionName: wrap_gdr_unmap
    functionSourceFile: /src/nccl/src/include/gdrwrap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t wrap_gdr_unmap(gdr_t g, gdr_mh_t handle, void *va, size_t
      size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gdr_runtime_get_version
      Src: /src/nccl/src/include/gdrwrap.h:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - major
    - minor
    argTypes:
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 87
    functionName: wrap_gdr_runtime_get_version
    functionSourceFile: /src/nccl/src/include/gdrwrap.h
    functionUses: 0
    functionsReached:
    - gdr_runtime_get_version
    linkageType: ''
    returnType: void
    signature: void wrap_gdr_runtime_get_version(int *major, int *minor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gdr_driver_get_version
      Src: /src/nccl/src/include/gdrwrap.h:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - g
    - major
    - minor
    argTypes:
    - gdr_t
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 91
    functionName: wrap_gdr_driver_get_version
    functionSourceFile: /src/nccl/src/include/gdrwrap.h
    functionUses: 0
    functionsReached:
    - gdr_driver_get_version
    linkageType: ''
    returnType: void
    signature: void wrap_gdr_driver_get_version(gdr_t g, int *major, int *minor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GDRCHECK
      Src: /src/nccl/src/include/gdrwrap.h:93,1
    - Dst: gdr_copy_to_mapping
      Src: /src/nccl/src/include/gdrwrap.h:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - handle
    - map_d_ptr
    - h_ptr
    - size
    argTypes:
    - gdr_mh_t
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 95
    functionName: wrap_gdr_copy_to_mapping
    functionSourceFile: /src/nccl/src/include/gdrwrap.h
    functionUses: 0
    functionsReached:
    - GDRCHECK
    - gdr_copy_to_mapping
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t wrap_gdr_copy_to_mapping(gdr_mh_t handle, void *map_d_ptr,
      const void *h_ptr, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: GDRCHECK
      Src: /src/nccl/src/include/gdrwrap.h:97,1
    - Dst: gdr_copy_from_mapping
      Src: /src/nccl/src/include/gdrwrap.h:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - handle
    - h_ptr
    - map_d_ptr
    - size
    argTypes:
    - gdr_mh_t
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 99
    functionName: wrap_gdr_copy_from_mapping
    functionSourceFile: /src/nccl/src/include/gdrwrap.h
    functionUses: 0
    functionsReached:
    - GDRCHECK
    - gdr_copy_from_mapping
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t wrap_gdr_copy_from_mapping(gdr_mh_t handle, void *h_ptr,
      const void *map_d_ptr, size_t size)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: wrap_gdr_symbols
      Src: /src/nccl/src/include/gdrwrap.h:164,1
    - Dst: wrap_gdr_open
      Src: /src/nccl/src/include/gdrwrap.h:165,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/include/gdrwrap.h:171,1
    - Dst: wrap_gdr_runtime_get_version
      Src: /src/nccl/src/include/gdrwrap.h:171,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/include/gdrwrap.h:174,1
    - Dst: wrap_gdr_driver_get_version
      Src: /src/nccl/src/include/gdrwrap.h:174,1
    - Dst: INFO
      Src: /src/nccl/src/include/gdrwrap.h:181,1
    - Dst: wrap_gdr_close
      Src: /src/nccl/src/include/gdrwrap.h:186,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 188
    functionName: ncclGdrInit
    functionSourceFile: /src/nccl/src/include/gdrwrap.h
    functionUses: 1
    functionsReached:
    - INFO
    - wrap_gdr_driver_get_version
    - NCCLCHECKGOTO
    - wrap_gdr_runtime_get_version
    - wrap_gdr_open
    - wrap_gdr_symbols
    - wrap_gdr_close
    linkageType: ''
    returnType: gdr_t
    signature: gdr_t ncclGdrInit()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncclSizeOfT
      Src: /src/nccl/src/include/gdrwrap.h:198,1
    - Dst: ALIGN_SIZE
      Src: /src/nccl/src/include/gdrwrap.h:201,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/include/gdrwrap.h:203,1
    - Dst: ncclCudaCalloc
      Src: /src/nccl/src/include/gdrwrap.h:203,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/include/gdrwrap.h:208,1
    - Dst: wrap_gdr_pin_buffer
      Src: /src/nccl/src/include/gdrwrap.h:208,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/include/gdrwrap.h:210,1
    - Dst: wrap_gdr_map
      Src: /src/nccl/src/include/gdrwrap.h:210,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/include/gdrwrap.h:213,1
    - Dst: wrap_gdr_get_info
      Src: /src/nccl/src/include/gdrwrap.h:213,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/include/gdrwrap.h:219,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/include/gdrwrap.h:219,1
    - Dst: TRACE
      Src: /src/nccl/src/include/gdrwrap.h:230,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 4
    argNames:
    - ptr
    - devPtr
    - nelem
    - gdrHandle
    argTypes:
    - T**
    - T**
    - size_t
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 234
    functionName: ncclGdrCudaCalloc
    functionSourceFile: /src/nccl/src/include/gdrwrap.h
    functionUses: 5
    functionsReached:
    - TRACE
    - ncclCudaCalloc
    - ALIGN_SIZE
    - wrap_gdr_pin_buffer
    - ncclSizeOfT
    - wrap_gdr_get_info
    - ncclCalloc
    - wrap_gdr_map
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGdrCudaCalloc(T** ptr, T** devPtr, size_t nelem, void**
      gdrHandle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/include/gdrwrap.h:239,1
    - Dst: wrap_gdr_copy_to_mapping
      Src: /src/nccl/src/include/gdrwrap.h:239,1
    - Dst: ncclSizeOfT
      Src: /src/nccl/src/include/gdrwrap.h:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - gdrHandle
    - dst
    - src
    - nelem
    argTypes:
    - void*
    - T*
    - T*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 241
    functionName: ncclGdrCudaCopy
    functionSourceFile: /src/nccl/src/include/gdrwrap.h
    functionUses: 0
    functionsReached:
    - wrap_gdr_copy_to_mapping
    - ncclSizeOfT
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGdrCudaCopy(void *gdrHandle, T* dst, T* src, size_t
      nelem)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/include/gdrwrap.h:245,1
    - Dst: wrap_gdr_unmap
      Src: /src/nccl/src/include/gdrwrap.h:245,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/include/gdrwrap.h:246,1
    - Dst: wrap_gdr_unpin_buffer
      Src: /src/nccl/src/include/gdrwrap.h:246,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/include/gdrwrap.h:247,1
    - Dst: ncclCudaFree
      Src: /src/nccl/src/include/gdrwrap.h:247,1
    - Dst: free
      Src: /src/nccl/src/include/gdrwrap.h:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - gdrHandle
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 251
    functionName: ncclGdrCudaFree
    functionSourceFile: /src/nccl/src/include/gdrwrap.h
    functionUses: 5
    functionsReached:
    - free
    - wrap_gdr_unmap
    - ncclCudaFree
    - wrap_gdr_unpin_buffer
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGdrCudaFree(void* gdrHandle)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - struct_id
    - ','
    - prefix
    - ','
    - entries
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 27
    functionName: NCCL_NVTX_DEFINE_STRUCT_WITH_SCHEMA_ENTRIES
    functionSourceFile: /src/nccl/src/include/nvtx_payload_schemas.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NCCL_NVTX_DEFINE_STRUCT_WITH_SCHEMA_ENTRIES(struct_id, prefix, entries)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - env
    - ','
    - deftVal
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 29
    functionName: NCCL_PARAM
    functionSourceFile: /src/nccl/src/include/param.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NCCL_PARAM(name, env, deftVal)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: ncclSizeOfT
    functionSourceFile: /src/nccl/src/include/alloc.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t ncclSizeOfT()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: ncclSizeOfT
    functionSourceFile: /src/nccl/src/include/alloc.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t ncclSizeOfT<void>()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CUDACHECK
      Src: /src/nccl/src/include/alloc.h:45,1
    - Dst: cudaGetDevice
      Src: /src/nccl/src/include/alloc.h:45,1
    - Dst: CUCHECK
      Src: /src/nccl/src/include/alloc.h:46,1
    - Dst: cuDeviceGet
      Src: /src/nccl/src/include/alloc.h:46,1
    - Dst: CUCHECK
      Src: /src/nccl/src/include/alloc.h:47,1
    - Dst: cuDeviceGetAttribute
      Src: /src/nccl/src/include/alloc.h:47,1
    - Dst: CUCHECK
      Src: /src/nccl/src/include/alloc.h:53,1
    - Dst: cuMemGetAllocationGranularity
      Src: /src/nccl/src/include/alloc.h:53,1
    - Dst: ALIGN_SIZE
      Src: /src/nccl/src/include/alloc.h:54,1
    - Dst: CUCHECK
      Src: /src/nccl/src/include/alloc.h:56,1
    - Dst: cuMemCreate
      Src: /src/nccl/src/include/alloc.h:56,1
    - Dst: CUCHECK
      Src: /src/nccl/src/include/alloc.h:58,1
    - Dst: cuMemAddressReserve
      Src: /src/nccl/src/include/alloc.h:58,1
    - Dst: CUCHECK
      Src: /src/nccl/src/include/alloc.h:60,1
    - Dst: cuMemMap
      Src: /src/nccl/src/include/alloc.h:60,1
    - Dst: CUCHECK
      Src: /src/nccl/src/include/alloc.h:65,1
    - Dst: cuMemSetAccess
      Src: /src/nccl/src/include/alloc.h:65,1
    - Dst: CUCHECK
      Src: /src/nccl/src/include/alloc.h:71,1
    - Dst: cuMemSetAccess
      Src: /src/nccl/src/include/alloc.h:71,1
    - Dst: INFO
      Src: /src/nccl/src/include/alloc.h:74,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 27
    argCount: 3
    argNames:
    - ptr
    - handlep
    - size
    argTypes:
    - void**
    - CUmemGenericAllocationHandle*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 76
    functionName: ncclCuMemHostAlloc
    functionSourceFile: /src/nccl/src/include/alloc.h
    functionUses: 1
    functionsReached:
    - INFO
    - CUDACHECK
    - cuDeviceGetAttribute
    - ALIGN_SIZE
    - cuMemGetAllocationGranularity
    - cuMemCreate
    - cuMemMap
    - cudaGetDevice
    - cuMemSetAccess
    - CUCHECK
    - cuDeviceGet
    - cuMemAddressReserve
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCuMemHostAlloc(void** ptr, CUmemGenericAllocationHandle
      *handlep, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CUCHECK
      Src: /src/nccl/src/include/alloc.h:83,1
    - Dst: cuMemRetainAllocationHandle
      Src: /src/nccl/src/include/alloc.h:83,1
    - Dst: CUCHECK
      Src: /src/nccl/src/include/alloc.h:84,1
    - Dst: cuMemRelease
      Src: /src/nccl/src/include/alloc.h:84,1
    - Dst: CUCHECK
      Src: /src/nccl/src/include/alloc.h:85,1
    - Dst: cuMemGetAddressRange
      Src: /src/nccl/src/include/alloc.h:85,1
    - Dst: TRACE
      Src: /src/nccl/src/include/alloc.h:86,1
    - Dst: CUCHECK
      Src: /src/nccl/src/include/alloc.h:87,1
    - Dst: cuMemUnmap
      Src: /src/nccl/src/include/alloc.h:87,1
    - Dst: CUCHECK
      Src: /src/nccl/src/include/alloc.h:88,1
    - Dst: cuMemRelease
      Src: /src/nccl/src/include/alloc.h:88,1
    - Dst: CUCHECK
      Src: /src/nccl/src/include/alloc.h:89,1
    - Dst: cuMemAddressFree
      Src: /src/nccl/src/include/alloc.h:89,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 91
    functionName: ncclCuMemHostFree
    functionSourceFile: /src/nccl/src/include/alloc.h
    functionUses: 1
    functionsReached:
    - cuMemGetAddressRange
    - TRACE
    - cuMemRetainAllocationHandle
    - cuMemAddressFree
    - cuMemRelease
    - cuMemUnmap
    - CUCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCuMemHostFree(void* ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/include/alloc.h:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ptr
    - handlep
    - size
    argTypes:
    - void**
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 98
    functionName: ncclCuMemHostAlloc
    functionSourceFile: /src/nccl/src/include/alloc.h
    functionUses: 1
    functionsReached:
    - WARN
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCuMemHostAlloc(void** ptr, void* handlep, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/include/alloc.h:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 103
    functionName: ncclCuMemHostFree
    functionSourceFile: /src/nccl/src/include/alloc.h
    functionUses: 1
    functionsReached:
    - WARN
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCuMemHostFree(void* ptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CUDACHECK
      Src: /src/nccl/src/include/alloc.h:112,1
    - Dst: cudaThreadExchangeStreamCaptureMode
      Src: /src/nccl/src/include/alloc.h:112,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/include/alloc.h:114,1
    - Dst: cudaHostAlloc
      Src: /src/nccl/src/include/alloc.h:114,1
    - Dst: ncclSizeOfT
      Src: /src/nccl/src/include/alloc.h:114,1
    - Dst: memset
      Src: /src/nccl/src/include/alloc.h:115,1
    - Dst: ncclSizeOfT
      Src: /src/nccl/src/include/alloc.h:115,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/include/alloc.h:118,1
    - Dst: cudaThreadExchangeStreamCaptureMode
      Src: /src/nccl/src/include/alloc.h:118,1
    - Dst: WARN
      Src: /src/nccl/src/include/alloc.h:119,1
    - Dst: ncclSizeOfT
      Src: /src/nccl/src/include/alloc.h:119,1
    - Dst: INFO
      Src: /src/nccl/src/include/alloc.h:120,1
    - Dst: ncclSizeOfT
      Src: /src/nccl/src/include/alloc.h:120,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 4
    argNames:
    - ptr
    - nelem
    - filefunc
    - line
    argTypes:
    - T**
    - size_t
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 122
    functionName: ncclCudaHostCallocDebug
    functionSourceFile: /src/nccl/src/include/alloc.h
    functionUses: 0
    functionsReached:
    - WARN
    - INFO
    - CUDACHECKGOTO
    - CUDACHECK
    - ncclSizeOfT
    - cudaHostAlloc
    - cudaThreadExchangeStreamCaptureMode
    - memset
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCudaHostCallocDebug(T** ptr, size_t nelem, const char
      *filefunc, int line)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CUDACHECK
      Src: /src/nccl/src/include/alloc.h:125,1
    - Dst: cudaFreeHost
      Src: /src/nccl/src/include/alloc.h:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 127
    functionName: ncclCudaHostFree
    functionSourceFile: /src/nccl/src/include/alloc.h
    functionUses: 15
    functionsReached:
    - CUDACHECK
    - cudaFreeHost
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCudaHostFree(void* ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 130
    functionName: ncclCudaHostCalloc
    functionSourceFile: /src/nccl/src/include/alloc.h
    functionUses: 12
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ncclCudaHostCalloc(...)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/nccl/src/include/alloc.h:134,1
    - Dst: ncclSizeOfT
      Src: /src/nccl/src/include/alloc.h:134,1
    - Dst: WARN
      Src: /src/nccl/src/include/alloc.h:136,1
    - Dst: ncclSizeOfT
      Src: /src/nccl/src/include/alloc.h:136,1
    - Dst: memset
      Src: /src/nccl/src/include/alloc.h:140,1
    - Dst: ncclSizeOfT
      Src: /src/nccl/src/include/alloc.h:140,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - ptr
    - nelem
    - filefunc
    - line
    argTypes:
    - T**
    - size_t
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 146
    functionName: ncclCallocDebug
    functionSourceFile: /src/nccl/src/include/alloc.h
    functionUses: 0
    functionsReached:
    - malloc
    - WARN
    - ncclSizeOfT
    - memset
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCallocDebug(T** ptr, size_t nelem, const char *filefunc,
      int line)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 148
    functionName: ncclCalloc
    functionSourceFile: /src/nccl/src/include/alloc.h
    functionUses: 72
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ncclCalloc(...)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/nccl/src/include/alloc.h:155,1
    - Dst: ncclSizeOfT
      Src: /src/nccl/src/include/alloc.h:155,1
    - Dst: WARN
      Src: /src/nccl/src/include/alloc.h:157,1
    - Dst: ncclSizeOfT
      Src: /src/nccl/src/include/alloc.h:157,1
    - Dst: memcpy
      Src: /src/nccl/src/include/alloc.h:160,1
    - Dst: ncclSizeOfT
      Src: /src/nccl/src/include/alloc.h:160,1
    - Dst: free
      Src: /src/nccl/src/include/alloc.h:161,1
    - Dst: memset
      Src: /src/nccl/src/include/alloc.h:162,1
    - Dst: ncclSizeOfT
      Src: /src/nccl/src/include/alloc.h:162,1
    - Dst: INFO
      Src: /src/nccl/src/include/alloc.h:164,1
    - Dst: ncclSizeOfT
      Src: /src/nccl/src/include/alloc.h:164,1
    - Dst: ncclSizeOfT
      Src: /src/nccl/src/include/alloc.h:164,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 3
    argNames:
    - ptr
    - oldNelem
    - nelem
    argTypes:
    - T**
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 166
    functionName: ncclRealloc
    functionSourceFile: /src/nccl/src/include/alloc.h
    functionUses: 2
    functionsReached:
    - malloc
    - WARN
    - INFO
    - memcpy
    - free
    - ncclSizeOfT
    - memset
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclRealloc(T** ptr, size_t oldNelem, size_t nelem)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CUDACHECK
      Src: /src/nccl/src/include/alloc.h:180,1
    - Dst: cudaGetDevice
      Src: /src/nccl/src/include/alloc.h:180,1
    - Dst: CUCHECK
      Src: /src/nccl/src/include/alloc.h:181,1
    - Dst: cuMemGetAllocationPropertiesFromHandle
      Src: /src/nccl/src/include/alloc.h:181,1
    - Dst: CUCHECK
      Src: /src/nccl/src/include/alloc.h:182,1
    - Dst: cuMemGetAllocationGranularity
      Src: /src/nccl/src/include/alloc.h:182,1
    - Dst: ALIGN_SIZE
      Src: /src/nccl/src/include/alloc.h:183,1
    - Dst: CUCHECK
      Src: /src/nccl/src/include/alloc.h:185,1
    - Dst: cuMemAddressReserve
      Src: /src/nccl/src/include/alloc.h:185,1
    - Dst: CUCHECK
      Src: /src/nccl/src/include/alloc.h:187,1
    - Dst: cuMemMap
      Src: /src/nccl/src/include/alloc.h:187,1
    - Dst: CUCHECK
      Src: /src/nccl/src/include/alloc.h:192,1
    - Dst: cuMemSetAccess
      Src: /src/nccl/src/include/alloc.h:192,1
    - Dst: TRACE
      Src: /src/nccl/src/include/alloc.h:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 3
    argNames:
    - ptr
    - handleIn
    - size
    argTypes:
    - void**
    - CUmemGenericAllocationHandle*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 195
    functionName: ncclCuMemAllocAddr
    functionSourceFile: /src/nccl/src/include/alloc.h
    functionUses: 1
    functionsReached:
    - TRACE
    - cuMemGetAllocationPropertiesFromHandle
    - CUDACHECK
    - ALIGN_SIZE
    - cuMemGetAllocationGranularity
    - cuMemMap
    - cudaGetDevice
    - cuMemSetAccess
    - CUCHECK
    - cuMemAddressReserve
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCuMemAllocAddr(void **ptr, CUmemGenericAllocationHandle
      *handleIn, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CUCHECK
      Src: /src/nccl/src/include/alloc.h:201,1
    - Dst: cuMemGetAddressRange
      Src: /src/nccl/src/include/alloc.h:201,1
    - Dst: CUCHECK
      Src: /src/nccl/src/include/alloc.h:202,1
    - Dst: cuMemUnmap
      Src: /src/nccl/src/include/alloc.h:202,1
    - Dst: CUCHECK
      Src: /src/nccl/src/include/alloc.h:203,1
    - Dst: cuMemAddressFree
      Src: /src/nccl/src/include/alloc.h:203,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 205
    functionName: ncclCuMemFreeAddr
    functionSourceFile: /src/nccl/src/include/alloc.h
    functionUses: 3
    functionsReached:
    - CUCHECK
    - cuMemUnmap
    - cuMemGetAddressRange
    - cuMemAddressFree
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCuMemFreeAddr(void *ptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CUDACHECK
      Src: /src/nccl/src/include/alloc.h:216,1
    - Dst: cudaGetDevice
      Src: /src/nccl/src/include/alloc.h:216,1
    - Dst: CUCHECK
      Src: /src/nccl/src/include/alloc.h:217,1
    - Dst: cuDeviceGet
      Src: /src/nccl/src/include/alloc.h:217,1
    - Dst: CUCHECK
      Src: /src/nccl/src/include/alloc.h:223,1
    - Dst: cuDeviceGetAttribute
      Src: /src/nccl/src/include/alloc.h:223,1
    - Dst: CUCHECK
      Src: /src/nccl/src/include/alloc.h:225,1
    - Dst: cuMemGetAllocationGranularity
      Src: /src/nccl/src/include/alloc.h:225,1
    - Dst: ALIGN_SIZE
      Src: /src/nccl/src/include/alloc.h:226,1
    - Dst: CUCHECK
      Src: /src/nccl/src/include/alloc.h:228,1
    - Dst: cuMemCreate
      Src: /src/nccl/src/include/alloc.h:228,1
    - Dst: CUCHECK
      Src: /src/nccl/src/include/alloc.h:230,1
    - Dst: cuMemAddressReserve
      Src: /src/nccl/src/include/alloc.h:230,1
    - Dst: CUCHECK
      Src: /src/nccl/src/include/alloc.h:232,1
    - Dst: cuMemMap
      Src: /src/nccl/src/include/alloc.h:232,1
    - Dst: CUCHECK
      Src: /src/nccl/src/include/alloc.h:237,1
    - Dst: cuMemSetAccess
      Src: /src/nccl/src/include/alloc.h:237,1
    - Dst: TRACE
      Src: /src/nccl/src/include/alloc.h:239,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 4
    argNames:
    - ptr
    - handlep
    - type
    - size
    argTypes:
    - void**
    - CUmemGenericAllocationHandle*
    - CUmemAllocationHandleType
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 241
    functionName: ncclCuMemAlloc
    functionSourceFile: /src/nccl/src/include/alloc.h
    functionUses: 2
    functionsReached:
    - TRACE
    - CUDACHECK
    - cuDeviceGetAttribute
    - ALIGN_SIZE
    - cuMemGetAllocationGranularity
    - cuMemCreate
    - cuMemMap
    - cudaGetDevice
    - cuMemSetAccess
    - CUCHECK
    - cuDeviceGet
    - cuMemAddressReserve
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCuMemAlloc(void **ptr, CUmemGenericAllocationHandle
      *handlep, CUmemAllocationHandleType type, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CUCHECK
      Src: /src/nccl/src/include/alloc.h:248,1
    - Dst: cuMemRetainAllocationHandle
      Src: /src/nccl/src/include/alloc.h:248,1
    - Dst: CUCHECK
      Src: /src/nccl/src/include/alloc.h:249,1
    - Dst: cuMemRelease
      Src: /src/nccl/src/include/alloc.h:249,1
    - Dst: CUCHECK
      Src: /src/nccl/src/include/alloc.h:250,1
    - Dst: cuMemGetAddressRange
      Src: /src/nccl/src/include/alloc.h:250,1
    - Dst: TRACE
      Src: /src/nccl/src/include/alloc.h:251,1
    - Dst: CUCHECK
      Src: /src/nccl/src/include/alloc.h:252,1
    - Dst: cuMemUnmap
      Src: /src/nccl/src/include/alloc.h:252,1
    - Dst: CUCHECK
      Src: /src/nccl/src/include/alloc.h:253,1
    - Dst: cuMemRelease
      Src: /src/nccl/src/include/alloc.h:253,1
    - Dst: CUCHECK
      Src: /src/nccl/src/include/alloc.h:254,1
    - Dst: cuMemAddressFree
      Src: /src/nccl/src/include/alloc.h:254,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 256
    functionName: ncclCuMemFree
    functionSourceFile: /src/nccl/src/include/alloc.h
    functionUses: 3
    functionsReached:
    - cuMemGetAddressRange
    - TRACE
    - cuMemRetainAllocationHandle
    - cuMemAddressFree
    - cuMemRelease
    - cuMemUnmap
    - CUCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCuMemFree(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/include/alloc.h:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ptr
    - handlep
    - type
    - size
    argTypes:
    - void**
    - void*
    - int
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 262
    functionDepth: 1
    functionLinenumber: 262
    functionLinenumberEnd: 265
    functionName: ncclCuMemAlloc
    functionSourceFile: /src/nccl/src/include/alloc.h
    functionUses: 2
    functionsReached:
    - WARN
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCuMemAlloc(void **ptr, void *handlep, int type, size_t
      size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/include/alloc.h:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 269
    functionName: ncclCuMemFree
    functionSourceFile: /src/nccl/src/include/alloc.h
    functionUses: 3
    functionsReached:
    - WARN
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCuMemFree(void *ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/include/alloc.h:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ptr
    - handleIn
    - size
    argTypes:
    - void**
    - CUmemGenericAllocationHandle*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 271
    functionDepth: 1
    functionLinenumber: 271
    functionLinenumberEnd: 274
    functionName: ncclCuMemAllocAddr
    functionSourceFile: /src/nccl/src/include/alloc.h
    functionUses: 1
    functionsReached:
    - WARN
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCuMemAllocAddr(void **ptr, CUmemGenericAllocationHandle
      *handleIn, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/include/alloc.h:277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 279
    functionName: ncclCuMemFreeAddr
    functionSourceFile: /src/nccl/src/include/alloc.h
    functionUses: 3
    functionsReached:
    - WARN
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCuMemFreeAddr(void *ptr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CUDACHECK
      Src: /src/nccl/src/include/alloc.h:287,1
    - Dst: cudaThreadExchangeStreamCaptureMode
      Src: /src/nccl/src/include/alloc.h:287,1
    - Dst: ncclCuMemEnable
      Src: /src/nccl/src/include/alloc.h:289,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/include/alloc.h:290,1
    - Dst: ncclCuMemAlloc
      Src: /src/nccl/src/include/alloc.h:290,1
    - Dst: ncclSizeOfT
      Src: /src/nccl/src/include/alloc.h:290,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/include/alloc.h:292,1
    - Dst: cudaMalloc
      Src: /src/nccl/src/include/alloc.h:292,1
    - Dst: ncclSizeOfT
      Src: /src/nccl/src/include/alloc.h:292,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/include/alloc.h:296,1
    - Dst: cudaThreadExchangeStreamCaptureMode
      Src: /src/nccl/src/include/alloc.h:296,1
    - Dst: WARN
      Src: /src/nccl/src/include/alloc.h:297,1
    - Dst: ncclSizeOfT
      Src: /src/nccl/src/include/alloc.h:297,1
    - Dst: INFO
      Src: /src/nccl/src/include/alloc.h:298,1
    - Dst: ncclSizeOfT
      Src: /src/nccl/src/include/alloc.h:298,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - ptr
    - nelem
    - filefunc
    - line
    argTypes:
    - T**
    - size_t
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 283
    functionDepth: 2
    functionLinenumber: 283
    functionLinenumberEnd: 300
    functionName: ncclCudaMallocDebug
    functionSourceFile: /src/nccl/src/include/alloc.h
    functionUses: 0
    functionsReached:
    - WARN
    - ncclCuMemAlloc
    - INFO
    - NCCLCHECKGOTO
    - CUDACHECKGOTO
    - CUDACHECK
    - cudaMalloc
    - ncclSizeOfT
    - cudaThreadExchangeStreamCaptureMode
    - ncclCuMemEnable
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCudaMallocDebug(T** ptr, size_t nelem, const char
      *filefunc, int line)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 302
    functionName: ncclCudaMalloc
    functionSourceFile: /src/nccl/src/include/alloc.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ncclCudaMalloc(...)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CUDACHECK
      Src: /src/nccl/src/include/alloc.h:308,1
    - Dst: cudaThreadExchangeStreamCaptureMode
      Src: /src/nccl/src/include/alloc.h:308,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/include/alloc.h:312,1
    - Dst: cudaStreamCreateWithFlags
      Src: /src/nccl/src/include/alloc.h:312,1
    - Dst: ncclCuMemEnable
      Src: /src/nccl/src/include/alloc.h:313,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/include/alloc.h:314,1
    - Dst: ncclCuMemAlloc
      Src: /src/nccl/src/include/alloc.h:314,1
    - Dst: ncclSizeOfT
      Src: /src/nccl/src/include/alloc.h:314,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/include/alloc.h:316,1
    - Dst: cudaMalloc
      Src: /src/nccl/src/include/alloc.h:316,1
    - Dst: ncclSizeOfT
      Src: /src/nccl/src/include/alloc.h:316,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/include/alloc.h:318,1
    - Dst: cudaMemsetAsync
      Src: /src/nccl/src/include/alloc.h:318,1
    - Dst: ncclSizeOfT
      Src: /src/nccl/src/include/alloc.h:318,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/include/alloc.h:319,1
    - Dst: cudaStreamSynchronize
      Src: /src/nccl/src/include/alloc.h:319,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/include/alloc.h:320,1
    - Dst: cudaStreamDestroy
      Src: /src/nccl/src/include/alloc.h:320,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/include/alloc.h:323,1
    - Dst: cudaThreadExchangeStreamCaptureMode
      Src: /src/nccl/src/include/alloc.h:323,1
    - Dst: WARN
      Src: /src/nccl/src/include/alloc.h:324,1
    - Dst: ncclSizeOfT
      Src: /src/nccl/src/include/alloc.h:324,1
    - Dst: INFO
      Src: /src/nccl/src/include/alloc.h:325,1
    - Dst: ncclSizeOfT
      Src: /src/nccl/src/include/alloc.h:325,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 4
    argNames:
    - ptr
    - nelem
    - filefunc
    - line
    argTypes:
    - T**
    - size_t
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 304
    functionDepth: 2
    functionLinenumber: 304
    functionLinenumberEnd: 327
    functionName: ncclCudaCallocDebug
    functionSourceFile: /src/nccl/src/include/alloc.h
    functionUses: 0
    functionsReached:
    - WARN
    - ncclCuMemAlloc
    - INFO
    - NCCLCHECKGOTO
    - CUDACHECKGOTO
    - CUDACHECK
    - cudaMalloc
    - cudaStreamSynchronize
    - ncclSizeOfT
    - cudaThreadExchangeStreamCaptureMode
    - ncclCuMemEnable
    - cudaStreamCreateWithFlags
    - cudaMemsetAsync
    - cudaStreamDestroy
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCudaCallocDebug(T** ptr, size_t nelem, const char
      *filefunc, int line)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 329
    functionName: ncclCudaCalloc
    functionSourceFile: /src/nccl/src/include/alloc.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ncclCudaCalloc(...)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CUDACHECK
      Src: /src/nccl/src/include/alloc.h:335,1
    - Dst: cudaThreadExchangeStreamCaptureMode
      Src: /src/nccl/src/include/alloc.h:335,1
    - Dst: ncclCuMemEnable
      Src: /src/nccl/src/include/alloc.h:337,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/include/alloc.h:338,1
    - Dst: ncclCuMemAlloc
      Src: /src/nccl/src/include/alloc.h:338,1
    - Dst: ncclSizeOfT
      Src: /src/nccl/src/include/alloc.h:338,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/include/alloc.h:340,1
    - Dst: cudaMalloc
      Src: /src/nccl/src/include/alloc.h:340,1
    - Dst: ncclSizeOfT
      Src: /src/nccl/src/include/alloc.h:340,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/include/alloc.h:342,1
    - Dst: cudaMemsetAsync
      Src: /src/nccl/src/include/alloc.h:342,1
    - Dst: ncclSizeOfT
      Src: /src/nccl/src/include/alloc.h:342,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/include/alloc.h:345,1
    - Dst: cudaThreadExchangeStreamCaptureMode
      Src: /src/nccl/src/include/alloc.h:345,1
    - Dst: WARN
      Src: /src/nccl/src/include/alloc.h:346,1
    - Dst: ncclSizeOfT
      Src: /src/nccl/src/include/alloc.h:346,1
    - Dst: INFO
      Src: /src/nccl/src/include/alloc.h:347,1
    - Dst: ncclSizeOfT
      Src: /src/nccl/src/include/alloc.h:347,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 5
    argNames:
    - ptr
    - nelem
    - stream
    - filefunc
    - line
    argTypes:
    - T**
    - size_t
    - cudaStream_t
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 331
    functionDepth: 2
    functionLinenumber: 331
    functionLinenumberEnd: 349
    functionName: ncclCudaCallocAsyncDebug
    functionSourceFile: /src/nccl/src/include/alloc.h
    functionUses: 0
    functionsReached:
    - WARN
    - ncclCuMemAlloc
    - INFO
    - NCCLCHECKGOTO
    - CUDACHECKGOTO
    - CUDACHECK
    - cudaMalloc
    - ncclSizeOfT
    - cudaThreadExchangeStreamCaptureMode
    - ncclCuMemEnable
    - cudaMemsetAsync
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCudaCallocAsyncDebug(T** ptr, size_t nelem, cudaStream_t
      stream, const char *filefunc, int line)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 351
    functionName: ncclCudaCallocAsync
    functionSourceFile: /src/nccl/src/include/alloc.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ncclCudaCallocAsync(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CUDACHECK
      Src: /src/nccl/src/include/alloc.h:356,1
    - Dst: cudaThreadExchangeStreamCaptureMode
      Src: /src/nccl/src/include/alloc.h:356,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/include/alloc.h:359,1
    - Dst: cudaStreamCreateWithFlags
      Src: /src/nccl/src/include/alloc.h:359,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/include/alloc.h:360,1
    - Dst: ncclCudaMemcpyAsync
      Src: /src/nccl/src/include/alloc.h:360,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/include/alloc.h:361,1
    - Dst: cudaStreamSynchronize
      Src: /src/nccl/src/include/alloc.h:361,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/include/alloc.h:362,1
    - Dst: cudaStreamDestroy
      Src: /src/nccl/src/include/alloc.h:362,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/include/alloc.h:364,1
    - Dst: cudaThreadExchangeStreamCaptureMode
      Src: /src/nccl/src/include/alloc.h:364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 3
    argNames:
    - dst
    - src
    - nelem
    argTypes:
    - T*
    - T*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 353
    functionDepth: 1
    functionLinenumber: 353
    functionLinenumberEnd: 366
    functionName: ncclCudaMemcpy
    functionSourceFile: /src/nccl/src/include/alloc.h
    functionUses: 0
    functionsReached:
    - NCCLCHECKGOTO
    - CUDACHECKGOTO
    - CUDACHECK
    - cudaStreamSynchronize
    - cudaThreadExchangeStreamCaptureMode
    - ncclCudaMemcpyAsync
    - cudaStreamCreateWithFlags
    - cudaStreamDestroy
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCudaMemcpy(T* dst, T* src, size_t nelem)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CUDACHECK
      Src: /src/nccl/src/include/alloc.h:372,1
    - Dst: cudaThreadExchangeStreamCaptureMode
      Src: /src/nccl/src/include/alloc.h:372,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/include/alloc.h:373,1
    - Dst: cudaMemcpyAsync
      Src: /src/nccl/src/include/alloc.h:373,1
    - Dst: ncclSizeOfT
      Src: /src/nccl/src/include/alloc.h:373,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/include/alloc.h:375,1
    - Dst: cudaThreadExchangeStreamCaptureMode
      Src: /src/nccl/src/include/alloc.h:375,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 4
    argNames:
    - dst
    - src
    - nelem
    - stream
    argTypes:
    - T*
    - T*
    - size_t
    - cudaStream_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 369
    functionDepth: 1
    functionLinenumber: 369
    functionLinenumberEnd: 377
    functionName: ncclCudaMemcpyAsync
    functionSourceFile: /src/nccl/src/include/alloc.h
    functionUses: 6
    functionsReached:
    - CUDACHECKGOTO
    - CUDACHECK
    - cudaMemcpyAsync
    - ncclSizeOfT
    - cudaThreadExchangeStreamCaptureMode
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCudaMemcpyAsync(T* dst, T* src, size_t nelem, cudaStream_t
      stream)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: TRACE
      Src: /src/nccl/src/include/alloc.h:383,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/include/alloc.h:384,1
    - Dst: cudaThreadExchangeStreamCaptureMode
      Src: /src/nccl/src/include/alloc.h:384,1
    - Dst: ncclCuMemEnable
      Src: /src/nccl/src/include/alloc.h:385,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/include/alloc.h:386,1
    - Dst: ncclCuMemFree
      Src: /src/nccl/src/include/alloc.h:386,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/include/alloc.h:388,1
    - Dst: cudaFree
      Src: /src/nccl/src/include/alloc.h:388,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/include/alloc.h:391,1
    - Dst: cudaThreadExchangeStreamCaptureMode
      Src: /src/nccl/src/include/alloc.h:391,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 380
    functionDepth: 2
    functionLinenumber: 380
    functionLinenumberEnd: 393
    functionName: ncclCudaFree
    functionSourceFile: /src/nccl/src/include/alloc.h
    functionUses: 22
    functionsReached:
    - ncclCuMemFree
    - TRACE
    - NCCLCHECKGOTO
    - CUDACHECKGOTO
    - CUDACHECK
    - cudaThreadExchangeStreamCaptureMode
    - cudaFree
    - ncclCuMemEnable
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCudaFree(T* ptr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sysconf
      Src: /src/nccl/src/include/alloc.h:400,1
    - Dst: ROUNDUP
      Src: /src/nccl/src/include/alloc.h:403,1
    - Dst: posix_memalign
      Src: /src/nccl/src/include/alloc.h:404,1
    - Dst: memset
      Src: /src/nccl/src/include/alloc.h:406,1
    - Dst: INFO
      Src: /src/nccl/src/include/alloc.h:411,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - ptr
    - size
    - filefunc
    - line
    argTypes:
    - void**
    - size_t
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 398
    functionDepth: 1
    functionLinenumber: 398
    functionLinenumberEnd: 413
    functionName: ncclIbMallocDebug
    functionSourceFile: /src/nccl/src/include/alloc.h
    functionUses: 0
    functionsReached:
    - INFO
    - ROUNDUP
    - posix_memalign
    - sysconf
    - memset
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIbMallocDebug(void** ptr, size_t size, const char
      *filefunc, int line)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 414
    functionDepth: 0
    functionLinenumber: 414
    functionLinenumberEnd: 415
    functionName: ncclIbMalloc
    functionSourceFile: /src/nccl/src/include/alloc.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ncclIbMalloc(...)
  - BBCount: 14
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 21
    argCount: 1
    argNames:
    - type
    argTypes:
    - ncclDataType_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 57
    functionName: ncclTypeSize
    functionSourceFile: /src/nccl/src/include/collectives.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ncclTypeSize(ncclDataType_t type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_add_fetch
      Src: /src/nccl/src/include/collectives.h:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 99
    functionName: RingAlgorithm::incRefCount
    functionSourceFile: /src/nccl/src/include/collectives.h
    functionUses: 0
    functionsReached:
    - __atomic_add_fetch
    linkageType: ''
    returnType: int
    signature: int incRefCount()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_sub_fetch
      Src: /src/nccl/src/include/collectives.h:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 102
    functionName: RingAlgorithm::decRefCount
    functionSourceFile: /src/nccl/src/include/collectives.h
    functionUses: 0
    functionsReached:
    - __atomic_sub_fetch
    linkageType: ''
    returnType: int
    signature: int decRefCount()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 103
    functionName: RingAlgorithm::RingAlgorithm
    functionSourceFile: /src/nccl/src/include/collectives.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RingAlgorithm()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 104
    functionName: ~RingAlgorithm()
    functionSourceFile: /src/nccl/src/include/collectives.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~RingAlgorithm()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: alignUp
      Src: /src/nccl/src/include/collectives.h:130,1
    - Dst: divUp
      Src: /src/nccl/src/include/collectives.h:130,1
    - Dst: min
      Src: /src/nccl/src/include/collectives.h:136,1
    - Dst: std::max
      Src: /src/nccl/src/include/collectives.h:137,1
    - Dst: divUp
      Src: /src/nccl/src/include/collectives.h:137,1
    - Dst: min
      Src: /src/nccl/src/include/collectives.h:152,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 4
    argNames:
    - curStep
    - sendbuffOut
    - sizeOut
    - mhandleOut
    argTypes:
    - int
    - uint8_t**
    - size_t*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 155
    functionName: RingARAlgorithm::getNextSendAddr
    functionSourceFile: /src/nccl/src/include/collectives.h
    functionUses: 0
    functionsReached:
    - min
    - std::max
    - alignUp
    - divUp
    linkageType: ''
    returnType: void
    signature: void getNextSendAddr(int curStep, uint8_t **sendbuffOut, size_t *sizeOut,
      void **mhandleOut)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: alignUp
      Src: /src/nccl/src/include/collectives.h:173,1
    - Dst: divUp
      Src: /src/nccl/src/include/collectives.h:173,1
    - Dst: min
      Src: /src/nccl/src/include/collectives.h:185,1
    - Dst: std::max
      Src: /src/nccl/src/include/collectives.h:186,1
    - Dst: divUp
      Src: /src/nccl/src/include/collectives.h:186,1
    - Dst: min
      Src: /src/nccl/src/include/collectives.h:194,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 4
    argNames:
    - curStep
    - recvbuffOut
    - sizeOut
    - mhandleOut
    argTypes:
    - int
    - uint8_t**
    - size_t*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 199
    functionName: RingARAlgorithm::getNextRecvAddr
    functionSourceFile: /src/nccl/src/include/collectives.h
    functionUses: 0
    functionsReached:
    - min
    - std::max
    - alignUp
    - divUp
    linkageType: ''
    returnType: void
    signature: void getNextRecvAddr(int curStep, uint8_t **recvbuffOut, size_t *sizeOut,
      void **mhandleOut)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 14
    argNames:
    - sendbuff
    - recvbuff
    - nRanks
    - ringIndex
    - chunkSteps
    - sliceSteps
    - chunkSize
    - sliceSize
    - gridOffset
    - channelSize
    - elemSize
    - sendMhandle
    - recvMhandle
    - srecvMhandle
    argTypes:
    - void*
    - void*
    - int
    - int
    - int
    - int
    - size_t
    - size_t
    - size_t
    - size_t
    - int
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 218
    functionName: RingARAlgorithm::RingARAlgorithm
    functionSourceFile: /src/nccl/src/include/collectives.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RingARAlgorithm(const void *sendbuff, void *recvbuff, int nRanks,
      int ringIndex, int chunkSteps, int sliceSteps, size_t chunkSize, size_t sliceSize,
      size_t gridOffset, size_t channelSize, int elemSize, void *sendMhandle, void
      *recvMhandle, void *srecvMhandle)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 219
    functionName: ~RingARAlgorithm()
    functionSourceFile: /src/nccl/src/include/collectives.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~RingARAlgorithm()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/nccl/src/include/collectives.h:237,1
    - Dst: std::max
      Src: /src/nccl/src/include/collectives.h:243,1
    - Dst: divUp
      Src: /src/nccl/src/include/collectives.h:243,1
    - Dst: min
      Src: /src/nccl/src/include/collectives.h:257,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 4
    argNames:
    - curStep
    - sendbuffOut
    - sizeOut
    - mhandleOut
    argTypes:
    - int
    - uint8_t**
    - size_t*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 261
    functionName: RingAGAlgorithm::getNextSendAddr
    functionSourceFile: /src/nccl/src/include/collectives.h
    functionUses: 0
    functionsReached:
    - min
    - std::max
    - divUp
    linkageType: ''
    returnType: void
    signature: void getNextSendAddr(int curStep, uint8_t **sendbuffOut, size_t *sizeOut,
      void **mhandleOut)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/nccl/src/include/collectives.h:271,1
    - Dst: std::max
      Src: /src/nccl/src/include/collectives.h:275,1
    - Dst: divUp
      Src: /src/nccl/src/include/collectives.h:275,1
    - Dst: min
      Src: /src/nccl/src/include/collectives.h:285,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 4
    argNames:
    - curStep
    - recvbuffOut
    - sizeOut
    - mhandleOut
    argTypes:
    - int
    - uint8_t**
    - size_t*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 263
    functionDepth: 1
    functionLinenumber: 263
    functionLinenumberEnd: 289
    functionName: RingAGAlgorithm::getNextRecvAddr
    functionSourceFile: /src/nccl/src/include/collectives.h
    functionUses: 0
    functionsReached:
    - min
    - std::max
    - divUp
    linkageType: ''
    returnType: void
    signature: void getNextRecvAddr(int curStep, uint8_t **recvbuffOut, size_t *sizeOut,
      void **mhandleOut)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 15
    argNames:
    - sendbuff
    - recvbuff
    - nRanks
    - ringRanks
    - chunkSteps
    - sliceSteps
    - chunkSize
    - sliceSize
    - gridOffset
    - channelSize
    - elemSize
    - sendSize
    - sendMhandle
    - recvMhandle
    - srecvMhandle
    argTypes:
    - void*
    - void*
    - int
    - int*
    - int
    - int
    - size_t
    - size_t
    - size_t
    - size_t
    - int
    - size_t
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 308
    functionName: RingAGAlgorithm::RingAGAlgorithm
    functionSourceFile: /src/nccl/src/include/collectives.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RingAGAlgorithm(const void *sendbuff, void *recvbuff, int nRanks,
      int *ringRanks, int chunkSteps, int sliceSteps, size_t chunkSize, size_t sliceSize,
      size_t gridOffset, size_t channelSize, int elemSize, size_t sendSize, void *sendMhandle,
      void *recvMhandle, void *srecvMhandle)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 309
    functionName: ~RingAGAlgorithm()
    functionSourceFile: /src/nccl/src/include/collectives.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~RingAGAlgorithm()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/nccl/src/include/collectives.h:340,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 4
    argNames:
    - curStep
    - sendbuffOut
    - sizeOut
    - mhandleOut
    argTypes:
    - int
    - uint8_t**
    - size_t*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 318
    functionDepth: 1
    functionLinenumber: 318
    functionLinenumberEnd: 344
    functionName: RingBCAlgorithm::getNextSendAddr
    functionSourceFile: /src/nccl/src/include/collectives.h
    functionUses: 0
    functionsReached:
    - min
    linkageType: ''
    returnType: void
    signature: void getNextSendAddr(int curStep, uint8_t **sendbuffOut, size_t *sizeOut,
      void **mhandleOut)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/nccl/src/include/collectives.h:360,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - curStep
    - recvbuffOut
    - sizeOut
    - mhandleOut
    argTypes:
    - int
    - uint8_t**
    - size_t*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 346
    functionDepth: 1
    functionLinenumber: 346
    functionLinenumberEnd: 365
    functionName: RingBCAlgorithm::getNextRecvAddr
    functionSourceFile: /src/nccl/src/include/collectives.h
    functionUses: 0
    functionsReached:
    - min
    linkageType: ''
    returnType: void
    signature: void getNextRecvAddr(int curStep, uint8_t **recvbuffOut, size_t *sizeOut,
      void **mhandleOut)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 15
    argNames:
    - sendbuff
    - recvbuff
    - rank
    - root
    - nRanks
    - ringRanks
    - chunkSteps
    - sliceSteps
    - chunkSize
    - sliceSize
    - gridOffset
    - channelSize
    - sendMhandle
    - recvMhandle
    - srecvMhandle
    argTypes:
    - void*
    - void*
    - int
    - int
    - int
    - int*
    - int
    - int
    - size_t
    - size_t
    - size_t
    - size_t
    - void*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 367
    functionDepth: 0
    functionLinenumber: 367
    functionLinenumberEnd: 382
    functionName: RingBCAlgorithm::RingBCAlgorithm
    functionSourceFile: /src/nccl/src/include/collectives.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RingBCAlgorithm(const void* sendbuff, void* recvbuff, int rank,
      int root, int nRanks, int *ringRanks, int chunkSteps, int sliceSteps, size_t
      chunkSize, size_t sliceSize, size_t gridOffset, size_t channelSize, void *sendMhandle,
      void *recvMhandle, void *srecvMhandle)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 383
    functionDepth: 0
    functionLinenumber: 383
    functionLinenumberEnd: 383
    functionName: ~RingBCAlgorithm()
    functionSourceFile: /src/nccl/src/include/collectives.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~RingBCAlgorithm()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - ssize_t
    - ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 444
    functionDepth: 0
    functionLinenumber: 444
    functionLinenumberEnd: 446
    functionName: PatRSAlgorithm::min
    functionSourceFile: /src/nccl/src/include/collectives.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t min(ssize_t a, ssize_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PatRSAlgorithm::min
      Src: /src/nccl/src/include/collectives.h:449,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 448
    functionDepth: 0
    functionLinenumber: 448
    functionLinenumberEnd: 450
    functionName: PatRSAlgorithm::getNelem
    functionSourceFile: /src/nccl/src/include/collectives.h
    functionUses: 0
    functionsReached:
    - PatRSAlgorithm::min
    linkageType: ''
    returnType: int
    signature: int getNelem()
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - i
    - max
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 452
    functionDepth: 0
    functionLinenumber: 452
    functionLinenumberEnd: 458
    functionName: PatRSAlgorithm::mirrorInvert
    functionSourceFile: /src/nccl/src/include/collectives.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int mirrorInvert(int i, int max)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __ffs
      Src: /src/nccl/src/include/collectives.h:463,1
    - Dst: __builtin_ffs
      Src: /src/nccl/src/include/collectives.h:465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - i
    - max
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 460
    functionDepth: 0
    functionLinenumber: 460
    functionLinenumberEnd: 468
    functionName: PatRSAlgorithm::firstBitSet
    functionSourceFile: /src/nccl/src/include/collectives.h
    functionUses: 0
    functionsReached:
    - __ffs
    - __builtin_ffs
    linkageType: ''
    returnType: int
    signature: int firstBitSet(int i, int max)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 470
    functionDepth: 0
    functionLinenumber: 470
    functionLinenumberEnd: 476
    functionName: PatRSAlgorithm::resetA
    functionSourceFile: /src/nccl/src/include/collectives.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void resetA()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PatRSAlgorithm::getNelem
      Src: /src/nccl/src/include/collectives.h:479,1
    - Dst: PatRSAlgorithm::resetA
      Src: /src/nccl/src/include/collectives.h:483,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 478
    functionDepth: 1
    functionLinenumber: 478
    functionLinenumberEnd: 484
    functionName: PatRSAlgorithm::reset
    functionSourceFile: /src/nccl/src/include/collectives.h
    functionUses: 0
    functionsReached:
    - PatRSAlgorithm::resetA
    - PatRSAlgorithm::getNelem
    linkageType: ''
    returnType: void
    signature: void reset()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __popc
      Src: /src/nccl/src/include/collectives.h:489,1
    - Dst: __builtin_popcount
      Src: /src/nccl/src/include/collectives.h:491,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - i
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 486
    functionDepth: 0
    functionLinenumber: 486
    functionLinenumberEnd: 494
    functionName: PatRSAlgorithm::nBitsSet
    functionSourceFile: /src/nccl/src/include/collectives.h
    functionUses: 0
    functionsReached:
    - __popc
    - __builtin_popcount
    linkageType: ''
    returnType: int
    signature: int nBitsSet(int i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PatRSAlgorithm::nBitsSet
      Src: /src/nccl/src/include/collectives.h:500,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - i
    - pow2
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 501
      start: 498
    functionDepth: 1
    functionLinenumber: 498
    functionLinenumberEnd: 501
    functionName: PatRSAlgorithm::newPeer
    functionSourceFile: /src/nccl/src/include/collectives.h
    functionUses: 0
    functionsReached:
    - PatRSAlgorithm::nBitsSet
    linkageType: ''
    returnType: int
    signature: int newPeer(int i, int pow2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: log2Up
      Src: /src/nccl/src/include/collectives.h:507,1
    - Dst: PatRSAlgorithm::reset
      Src: /src/nccl/src/include/collectives.h:524,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 9
    argNames:
    - stepSize
    - stepDepth
    - maxParallelFactor
    - offset
    - end
    - count
    - chunkCount
    - rank
    - nranks
    argTypes:
    - int
    - int
    - int
    - size_t
    - size_t
    - size_t
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 504
    functionDepth: 2
    functionLinenumber: 504
    functionLinenumberEnd: 525
    functionName: PatRSAlgorithm::PatRSAlgorithm
    functionSourceFile: /src/nccl/src/include/collectives.h
    functionUses: 0
    functionsReached:
    - log2Up
    - PatRSAlgorithm::reset
    linkageType: ''
    returnType: void
    signature: void PatRSAlgorithm(int stepSize, int stepDepth, int maxParallelFactor,
      size_t offset, size_t end, size_t count, int chunkCount, int rank, int nranks)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 527
    functionDepth: 0
    functionLinenumber: 527
    functionLinenumberEnd: 529
    functionName: PatRSAlgorithm::getParallelFactor
    functionSourceFile: /src/nccl/src/include/collectives.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int getParallelFactor()
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: PatRSAlgorithm::mirrorInvert
      Src: /src/nccl/src/include/collectives.h:540,1
    - Dst: PatRSAlgorithm::mirrorInvert
      Src: /src/nccl/src/include/collectives.h:556,1
    - Dst: PatRSAlgorithm::firstBitSet
      Src: /src/nccl/src/include/collectives.h:558,1
    - Dst: PatRSAlgorithm::firstBitSet
      Src: /src/nccl/src/include/collectives.h:571,1
    - Dst: PatRSAlgorithm::newPeer
      Src: /src/nccl/src/include/collectives.h:575,1
    - Dst: PatRSAlgorithm::mirrorInvert
      Src: /src/nccl/src/include/collectives.h:588,1
    - Dst: PatRSAlgorithm::firstBitSet
      Src: /src/nccl/src/include/collectives.h:605,1
    - Dst: PatRSAlgorithm::mirrorInvert
      Src: /src/nccl/src/include/collectives.h:610,1
    - Dst: PatRSAlgorithm::firstBitSet
      Src: /src/nccl/src/include/collectives.h:613,1
    - Dst: PatRSAlgorithm::firstBitSet
      Src: /src/nccl/src/include/collectives.h:621,1
    - Dst: PatRSAlgorithm::newPeer
      Src: /src/nccl/src/include/collectives.h:628,1
    - Dst: PatRSAlgorithm::reset
      Src: /src/nccl/src/include/collectives.h:657,1
    - Dst: PatRSAlgorithm::resetA
      Src: /src/nccl/src/include/collectives.h:660,1
    - Dst: cuda::atomic_ref::store
      Src: /src/nccl/src/include/collectives.h:668,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 139
    argCount: 1
    argNames:
    - ps
    argTypes:
    - struct ncclPatStep*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 531
    functionDepth: 2
    functionLinenumber: 531
    functionLinenumberEnd: 672
    functionName: PatRSAlgorithm::getNextOp
    functionSourceFile: /src/nccl/src/include/collectives.h
    functionUses: 2
    functionsReached:
    - PatRSAlgorithm::mirrorInvert
    - PatRSAlgorithm::reset
    - PatRSAlgorithm::newPeer
    - PatRSAlgorithm::resetA
    - cuda::atomic_ref::store
    - PatRSAlgorithm::firstBitSet
    linkageType: ''
    returnType: void
    signature: void getNextOp(struct ncclPatStep* ps)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - ssize_t
    - ssize_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 701
    functionDepth: 0
    functionLinenumber: 701
    functionLinenumberEnd: 703
    functionName: PatAGAlgorithm::min
    functionSourceFile: /src/nccl/src/include/collectives.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t min(ssize_t a, ssize_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PatAGAlgorithm::min
      Src: /src/nccl/src/include/collectives.h:706,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 705
    functionDepth: 0
    functionLinenumber: 705
    functionLinenumberEnd: 707
    functionName: PatAGAlgorithm::getNelem
    functionSourceFile: /src/nccl/src/include/collectives.h
    functionUses: 0
    functionsReached:
    - PatAGAlgorithm::min
    linkageType: ''
    returnType: int
    signature: int getNelem()
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - i
    - max
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 709
    functionDepth: 0
    functionLinenumber: 709
    functionLinenumberEnd: 715
    functionName: PatAGAlgorithm::mirror
    functionSourceFile: /src/nccl/src/include/collectives.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int mirror(int i, int max)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __ffs
      Src: /src/nccl/src/include/collectives.h:720,1
    - Dst: __builtin_ffs
      Src: /src/nccl/src/include/collectives.h:722,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - i
    - max
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 725
      start: 717
    functionDepth: 0
    functionLinenumber: 717
    functionLinenumberEnd: 725
    functionName: PatAGAlgorithm::firstBitSet
    functionSourceFile: /src/nccl/src/include/collectives.h
    functionUses: 0
    functionsReached:
    - __ffs
    - __builtin_ffs
    linkageType: ''
    returnType: int
    signature: int firstBitSet(int i, int max)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 727
    functionDepth: 0
    functionLinenumber: 727
    functionLinenumberEnd: 731
    functionName: PatAGAlgorithm::resetA
    functionSourceFile: /src/nccl/src/include/collectives.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void resetA()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: PatAGAlgorithm::getNelem
      Src: /src/nccl/src/include/collectives.h:734,1
    - Dst: PatAGAlgorithm::nextAs
      Src: /src/nccl/src/include/collectives.h:742,1
    - Dst: PatAGAlgorithm::resetA
      Src: /src/nccl/src/include/collectives.h:743,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 744
      start: 733
    functionDepth: 1
    functionLinenumber: 733
    functionLinenumberEnd: 744
    functionName: PatAGAlgorithm::reset
    functionSourceFile: /src/nccl/src/include/collectives.h
    functionUses: 0
    functionsReached:
    - PatAGAlgorithm::nextAs
    - PatAGAlgorithm::resetA
    - PatAGAlgorithm::getNelem
    linkageType: ''
    returnType: void
    signature: void reset()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: PatAGAlgorithm::firstBitSet
      Src: /src/nccl/src/include/collectives.h:754,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 746
    functionDepth: 0
    functionLinenumber: 746
    functionLinenumberEnd: 764
    functionName: PatAGAlgorithm::nextAs
    functionSourceFile: /src/nccl/src/include/collectives.h
    functionUses: 1
    functionsReached:
    - PatAGAlgorithm::firstBitSet
    linkageType: ''
    returnType: int
    signature: int nextAs()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: log2Up
      Src: /src/nccl/src/include/collectives.h:771,1
    - Dst: log2Up
      Src: /src/nccl/src/include/collectives.h:788,1
    - Dst: PatAGAlgorithm::reset
      Src: /src/nccl/src/include/collectives.h:789,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 9
    argNames:
    - stepSize
    - stepDepth
    - maxParallelFactor
    - offset
    - end
    - count
    - chunkCount
    - rank
    - nranks
    argTypes:
    - int
    - int
    - int
    - size_t
    - size_t
    - size_t
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 768
    functionDepth: 2
    functionLinenumber: 768
    functionLinenumberEnd: 790
    functionName: PatAGAlgorithm::PatAGAlgorithm
    functionSourceFile: /src/nccl/src/include/collectives.h
    functionUses: 0
    functionsReached:
    - log2Up
    - PatAGAlgorithm::reset
    linkageType: ''
    returnType: void
    signature: void PatAGAlgorithm(int stepSize, int stepDepth, int maxParallelFactor,
      size_t offset, size_t end, size_t count, int chunkCount, int rank, int nranks)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 792
    functionDepth: 0
    functionLinenumber: 792
    functionLinenumberEnd: 794
    functionName: PatAGAlgorithm::getParallelFactor
    functionSourceFile: /src/nccl/src/include/collectives.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int getParallelFactor()
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: PatAGAlgorithm::firstBitSet
      Src: /src/nccl/src/include/collectives.h:819,1
    - Dst: PatAGAlgorithm::firstBitSet
      Src: /src/nccl/src/include/collectives.h:823,1
    - Dst: PatAGAlgorithm::firstBitSet
      Src: /src/nccl/src/include/collectives.h:849,1
    - Dst: PatAGAlgorithm::firstBitSet
      Src: /src/nccl/src/include/collectives.h:855,1
    - Dst: PatAGAlgorithm::nextAs
      Src: /src/nccl/src/include/collectives.h:873,1
    - Dst: PatAGAlgorithm::reset
      Src: /src/nccl/src/include/collectives.h:879,1
    - Dst: PatAGAlgorithm::resetA
      Src: /src/nccl/src/include/collectives.h:882,1
    - Dst: cuda::atomic_ref::store
      Src: /src/nccl/src/include/collectives.h:890,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 89
    argCount: 1
    argNames:
    - ps
    argTypes:
    - struct ncclPatStep*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 894
      start: 796
    functionDepth: 2
    functionLinenumber: 796
    functionLinenumberEnd: 894
    functionName: PatAGAlgorithm::getNextOp
    functionSourceFile: /src/nccl/src/include/collectives.h
    functionUses: 2
    functionsReached:
    - PatAGAlgorithm::nextAs
    - PatAGAlgorithm::reset
    - cuda::atomic_ref::store
    - PatAGAlgorithm::firstBitSet
    - PatAGAlgorithm::resetA
    linkageType: ''
    returnType: void
    signature: void getNextOp(struct ncclPatStep* ps)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: divUp
      Src: /src/nccl/src/include/channel.h:23,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - comm
    - p2pRound
    argTypes:
    - struct ncclComm*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 19
    functionDepth: 1
    functionLinenumber: 19
    functionLinenumberEnd: 29
    functionName: ncclP2pChannelBaseForRound
    functionSourceFile: /src/nccl/src/include/channel.h
    functionUses: 3
    functionsReached:
    - divUp
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t ncclP2pChannelBaseForRound(struct ncclComm* comm, int p2pRound)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: log2Down
      Src: /src/nccl/src/include/utils.h:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 44
    functionName: log2i
    functionSourceFile: /src/nccl/src/include/utils.h
    functionUses: 1
    functionsReached:
    - log2Down
    linkageType: ''
    returnType: long
    signature: long log2i(long n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: compareInts
    functionSourceFile: /src/nccl/src/include/utils.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int compareInts(const void *a, const void *b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clock_gettime
      Src: /src/nccl/src/include/utils.h:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 56
    functionName: clockNano
    functionSourceFile: /src/nccl/src/include/utils.h
    functionUses: 2
    functionsReached:
    - clock_gettime
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t clockNano()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/nccl/src/include/utils.h:63,1
    - Dst: fread
      Src: /src/nccl/src/include/utils.h:64,1
    - Dst: fclose
      Src: /src/nccl/src/include/utils.h:65,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - buffer
    - bytes
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 68
    functionName: getRandomData
    functionSourceFile: /src/nccl/src/include/utils.h
    functionUses: 3
    functionsReached:
    - fclose
    - fread
    - fopen
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t getRandomData(void* buffer, size_t bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_fetch_add
      Src: /src/nccl/src/include/utils.h:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - refs
    argTypes:
    - Int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 75
    functionName: ncclAtomicRefCountIncrement
    functionSourceFile: /src/nccl/src/include/utils.h
    functionUses: 9
    functionsReached:
    - __atomic_fetch_add
    linkageType: ''
    returnType: void
    signature: void ncclAtomicRefCountIncrement(Int* refs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_sub_fetch
      Src: /src/nccl/src/include/utils.h:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - refs
    argTypes:
    - Int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 80
    functionName: ncclAtomicRefCountDecrement
    functionSourceFile: /src/nccl/src/include/utils.h
    functionUses: 10
    functionsReached:
    - __atomic_sub_fetch
    linkageType: ''
    returnType: Int
    signature: Int ncclAtomicRefCountDecrement(Int* refs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - me
    argTypes:
    - struct ncclMemoryStack*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 227
    functionName: ncclMemoryStackConstruct
    functionSourceFile: /src/nccl/src/include/utils.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ncclMemoryStackConstruct(struct ncclMemoryStack* me)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_expect
      Src: /src/nccl/src/include/utils.h:232,1
    - Dst: reinterpret_cast<void*>
      Src: /src/nccl/src/include/utils.h:234,1
    - Dst: ncclMemoryStack::allocateSpilled
      Src: /src/nccl/src/include/utils.h:236,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - me
    - size
    - align
    argTypes:
    - struct ncclMemoryStack*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 239
    functionName: ncclMemoryStack::allocate
    functionSourceFile: /src/nccl/src/include/utils.h
    functionUses: 0
    functionsReached:
    - __builtin_expect
    - ncclMemoryStack::allocateSpilled
    - reinterpret_cast<void*>
    linkageType: ''
    returnType: void
    signature: void * ncclMemoryStack::allocate(struct ncclMemoryStack* me, size_t
      size, size_t align)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclMemoryStack::allocate
      Src: /src/nccl/src/include/utils.h:242,1
    - Dst: memset
      Src: /src/nccl/src/include/utils.h:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - me
    - size
    - align
    argTypes:
    - struct ncclMemoryStack*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 241
    functionDepth: 2
    functionLinenumber: 241
    functionLinenumberEnd: 245
    functionName: ncclMemoryStackAlloc
    functionSourceFile: /src/nccl/src/include/utils.h
    functionUses: 11
    functionsReached:
    - ncclMemoryStack::allocate
    - memset
    linkageType: ''
    returnType: void
    signature: void * ncclMemoryStackAlloc(struct ncclMemoryStack* me, size_t size,
      size_t align)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclMemoryStack::allocate
      Src: /src/nccl/src/include/utils.h:249,1
    - Dst: memset
      Src: /src/nccl/src/include/utils.h:250,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - me
    - n
    argTypes:
    - struct ncclMemoryStack*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 248
    functionDepth: 2
    functionLinenumber: 248
    functionLinenumberEnd: 252
    functionName: ncclMemoryStackAlloc
    functionSourceFile: /src/nccl/src/include/utils.h
    functionUses: 11
    functionsReached:
    - ncclMemoryStack::allocate
    - memset
    linkageType: ''
    returnType: T
    signature: T * ncclMemoryStackAlloc(struct ncclMemoryStack* me, size_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclMemoryStack::allocate
      Src: /src/nccl/src/include/utils.h:260,1
    - Dst: memset
      Src: /src/nccl/src/include/utils.h:261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - me
    - nElt
    argTypes:
    - struct ncclMemoryStack*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 255
    functionDepth: 2
    functionLinenumber: 255
    functionLinenumberEnd: 263
    functionName: ncclMemoryStackAllocInlineArray
    functionSourceFile: /src/nccl/src/include/utils.h
    functionUses: 3
    functionsReached:
    - ncclMemoryStack::allocate
    - memset
    linkageType: ''
    returnType: Header
    signature: Header * ncclMemoryStackAllocInlineArray(struct ncclMemoryStack* me,
      size_t nElt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclMemoryStack::allocate
      Src: /src/nccl/src/include/utils.h:268,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - me
    argTypes:
    - struct ncclMemoryStack*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 265
    functionDepth: 2
    functionLinenumber: 265
    functionLinenumberEnd: 272
    functionName: ncclMemoryStackPush
    functionSourceFile: /src/nccl/src/include/utils.h
    functionUses: 0
    functionsReached:
    - ncclMemoryStack::allocate
    linkageType: ''
    returnType: void
    signature: void ncclMemoryStackPush(struct ncclMemoryStack* me)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/nccl/src/include/utils.h:277,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - me
    argTypes:
    - struct ncclMemoryStack*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 281
    functionName: ncclMemoryStackPop
    functionSourceFile: /src/nccl/src/include/utils.h
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void ncclMemoryStackPop(struct ncclMemoryStack* me)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - me
    argTypes:
    - struct ncclMemoryPool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 296
    functionName: ncclMemoryPoolConstruct
    functionSourceFile: /src/nccl/src/include/utils.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ncclMemoryPoolConstruct(struct ncclMemoryPool* me)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_expect
      Src: /src/nccl/src/include/utils.h:302,1
    - Dst: std::max
      Src: /src/nccl/src/include/utils.h:307,1
    - Dst: std::max
      Src: /src/nccl/src/include/utils.h:308,1
    - Dst: ncclMemoryStack::allocate
      Src: /src/nccl/src/include/utils.h:309,1
    - Dst: memset
      Src: /src/nccl/src/include/utils.h:311,1
    - Dst: reinterpret_cast<T*>
      Src: /src/nccl/src/include/utils.h:312,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - me
    - backing
    argTypes:
    - struct ncclMemoryPool*
    - struct ncclMemoryStack*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 299
    functionDepth: 2
    functionLinenumber: 299
    functionLinenumberEnd: 313
    functionName: ncclMemoryPoolAlloc
    functionSourceFile: /src/nccl/src/include/utils.h
    functionUses: 3
    functionsReached:
    - reinterpret_cast<T*>
    - ncclMemoryStack::allocate
    - std::max
    - __builtin_expect
    - memset
    linkageType: ''
    returnType: T
    signature: T * ncclMemoryPoolAlloc(struct ncclMemoryPool* me, struct ncclMemoryStack*
      backing)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<Cell*>
      Src: /src/nccl/src/include/utils.h:318,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - me
    - obj
    argTypes:
    - struct ncclMemoryPool*
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 322
    functionName: ncclMemoryPoolFree
    functionSourceFile: /src/nccl/src/include/utils.h
    functionUses: 3
    functionsReached:
    - reinterpret_cast<Cell*>
    linkageType: ''
    returnType: void
    signature: void ncclMemoryPoolFree(struct ncclMemoryPool* me, T* obj)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - me
    - from
    argTypes:
    - struct ncclMemoryPool*
    - struct ncclMemoryPool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 324
    functionDepth: 0
    functionLinenumber: 324
    functionLinenumberEnd: 331
    functionName: ncclMemoryPoolTakeAll
    functionSourceFile: /src/nccl/src/include/utils.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ncclMemoryPoolTakeAll(struct ncclMemoryPool* me, struct ncclMemoryPool*
      from)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - me
    argTypes:
    - ncclIntruQueue<T,next>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 341
    functionDepth: 0
    functionLinenumber: 341
    functionLinenumberEnd: 344
    functionName: ncclIntruQueueConstruct
    functionSourceFile: /src/nccl/src/include/utils.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ncclIntruQueueConstruct(ncclIntruQueue<T,next> *me)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - me
    argTypes:
    - ncclIntruQueue<T,next>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 349
    functionName: ncclIntruQueueEmpty
    functionSourceFile: /src/nccl/src/include/utils.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ncclIntruQueueEmpty(ncclIntruQueue<T,next> *me)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - me
    argTypes:
    - ncclIntruQueue<T,next>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 354
    functionName: ncclIntruQueueHead
    functionSourceFile: /src/nccl/src/include/utils.h
    functionUses: 15
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T * ncclIntruQueueHead(ncclIntruQueue<T,next> *me)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - me
    argTypes:
    - ncclIntruQueue<T,next>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 359
    functionName: ncclIntruQueueTail
    functionSourceFile: /src/nccl/src/include/utils.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T * ncclIntruQueueTail(ncclIntruQueue<T,next> *me)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - me
    - x
    argTypes:
    - ncclIntruQueue<T,next>*
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 366
    functionName: ncclIntruQueueEnqueue
    functionSourceFile: /src/nccl/src/include/utils.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ncclIntruQueueEnqueue(ncclIntruQueue<T,next> *me, T *x)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - me
    - x
    argTypes:
    - ncclIntruQueue<T,next>*
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 373
    functionName: ncclIntruQueueEnqueueFront
    functionSourceFile: /src/nccl/src/include/utils.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ncclIntruQueueEnqueueFront(ncclIntruQueue<T,next> *me, T *x)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - me
    argTypes:
    - ncclIntruQueue<T,next>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 376
    functionDepth: 0
    functionLinenumber: 376
    functionLinenumberEnd: 381
    functionName: ncclIntruQueueDequeue
    functionSourceFile: /src/nccl/src/include/utils.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T * ncclIntruQueueDequeue(ncclIntruQueue<T,next> *me)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - me
    - x
    argTypes:
    - ncclIntruQueue<T,next>*
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 384
    functionDepth: 0
    functionLinenumber: 384
    functionLinenumberEnd: 407
    functionName: ncclIntruQueueDelete
    functionSourceFile: /src/nccl/src/include/utils.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ncclIntruQueueDelete(ncclIntruQueue<T,next> *me, T *x)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - me
    argTypes:
    - ncclIntruQueue<T,next>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 417
    functionName: ncclIntruQueueTryDequeue
    functionSourceFile: /src/nccl/src/include/utils.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T * ncclIntruQueueTryDequeue(ncclIntruQueue<T,next> *me)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - ncclIntruQueue<T,next>*
    - ncclIntruQueue<T,next>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 420
    functionDepth: 0
    functionLinenumber: 420
    functionLinenumberEnd: 425
    functionName: ncclIntruQueueTransfer
    functionSourceFile: /src/nccl/src/include/utils.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ncclIntruQueueTransfer(ncclIntruQueue<T,next> *dst, ncclIntruQueue<T,next>
      *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 429
    functionDepth: 0
    functionLinenumber: 429
    functionLinenumberEnd: 431
    functionName: ncclThreadSignalStaticInitializer
    functionSourceFile: /src/nccl/src/include/utils.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclThreadSignal
    signature: ncclThreadSignal ncclThreadSignalStaticInitializer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_init
      Src: /src/nccl/src/include/utils.h:434,1
    - Dst: pthread_cond_init
      Src: /src/nccl/src/include/utils.h:435,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - me
    argTypes:
    - struct ncclThreadSignal*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 433
    functionDepth: 0
    functionLinenumber: 433
    functionLinenumberEnd: 436
    functionName: ncclThreadSignalConstruct
    functionSourceFile: /src/nccl/src/include/utils.h
    functionUses: 0
    functionsReached:
    - pthread_cond_init
    - pthread_mutex_init
    linkageType: ''
    returnType: void
    signature: void ncclThreadSignalConstruct(struct ncclThreadSignal* me)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_destroy
      Src: /src/nccl/src/include/utils.h:439,1
    - Dst: pthread_cond_destroy
      Src: /src/nccl/src/include/utils.h:440,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - me
    argTypes:
    - struct ncclThreadSignal*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 438
    functionDepth: 0
    functionLinenumber: 438
    functionLinenumberEnd: 441
    functionName: ncclThreadSignalDestruct
    functionSourceFile: /src/nccl/src/include/utils.h
    functionUses: 0
    functionsReached:
    - pthread_cond_destroy
    - pthread_mutex_destroy
    linkageType: ''
    returnType: void
    signature: void ncclThreadSignalDestruct(struct ncclThreadSignal* me)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - me
    argTypes:
    - struct ncclIntruQueueMpsc<T,next>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 453
    functionDepth: 0
    functionLinenumber: 453
    functionLinenumberEnd: 457
    functionName: ncclIntruQueueMpscConstruct
    functionSourceFile: /src/nccl/src/include/utils.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ncclIntruQueueMpscConstruct(struct ncclIntruQueueMpsc<T,next>*
      me)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_load_n
      Src: /src/nccl/src/include/utils.h:461,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - me
    argTypes:
    - struct ncclIntruQueueMpsc<T,next>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 460
    functionDepth: 0
    functionLinenumber: 460
    functionLinenumberEnd: 462
    functionName: ncclIntruQueueMpscEmpty
    functionSourceFile: /src/nccl/src/include/utils.h
    functionUses: 0
    functionsReached:
    - __atomic_load_n
    linkageType: ''
    returnType: bool
    signature: bool ncclIntruQueueMpscEmpty(struct ncclIntruQueueMpsc<T,next>* me)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_store_n
      Src: /src/nccl/src/include/utils.h:466,1
    - Dst: __atomic_exchange_n
      Src: /src/nccl/src/include/utils.h:467,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/include/utils.h:467,1
    - Dst: reinterpret_cast<T*>
      Src: /src/nccl/src/include/utils.h:468,1
    - Dst: __atomic_store_n
      Src: /src/nccl/src/include/utils.h:470,1
    - Dst: __atomic_thread_fence
      Src: /src/nccl/src/include/utils.h:472,1
    - Dst: pthread_mutex_lock
      Src: /src/nccl/src/include/utils.h:476,1
    - Dst: pthread_mutex_unlock
      Src: /src/nccl/src/include/utils.h:477,1
    - Dst: pthread_cond_broadcast
      Src: /src/nccl/src/include/utils.h:478,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - me
    - x
    argTypes:
    - ncclIntruQueueMpsc<T,next>*
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 465
    functionDepth: 0
    functionLinenumber: 465
    functionLinenumberEnd: 481
    functionName: ncclIntruQueueMpscEnqueue
    functionSourceFile: /src/nccl/src/include/utils.h
    functionUses: 2
    functionsReached:
    - pthread_cond_broadcast
    - reinterpret_cast<T*>
    - pthread_mutex_unlock
    - reinterpret_cast<uintptr_t>
    - pthread_mutex_lock
    - __atomic_thread_fence
    - __atomic_exchange_n
    - __atomic_store_n
    linkageType: ''
    returnType: bool
    signature: bool ncclIntruQueueMpscEnqueue(ncclIntruQueueMpsc<T,next>* me, T* x)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_load_n
      Src: /src/nccl/src/include/utils.h:485,1
    - Dst: clockNano
      Src: /src/nccl/src/include/utils.h:488,1
    - Dst: clockNano
      Src: /src/nccl/src/include/utils.h:491,1
    - Dst: pthread_mutex_lock
      Src: /src/nccl/src/include/utils.h:493,1
    - Dst: __atomic_compare_exchange_n
      Src: /src/nccl/src/include/utils.h:497,1
    - Dst: pthread_cond_wait
      Src: /src/nccl/src/include/utils.h:499,1
    - Dst: pthread_mutex_unlock
      Src: /src/nccl/src/include/utils.h:501,1
    - Dst: __atomic_load_n
      Src: /src/nccl/src/include/utils.h:503,1
    - Dst: __atomic_store_n
      Src: /src/nccl/src/include/utils.h:507,1
    - Dst: __atomic_exchange_n
      Src: /src/nccl/src/include/utils.h:508,1
    - Dst: reinterpret_cast<T*>
      Src: /src/nccl/src/include/utils.h:509,1
    - Dst: __atomic_load_n
      Src: /src/nccl/src/include/utils.h:515,1
    - Dst: sched_yield
      Src: /src/nccl/src/include/utils.h:517,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 2
    argNames:
    - me
    - waitSome
    argTypes:
    - ncclIntruQueueMpsc<T,next>*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 522
      start: 484
    functionDepth: 1
    functionLinenumber: 484
    functionLinenumberEnd: 522
    functionName: ncclIntruQueueMpscDequeueAll
    functionSourceFile: /src/nccl/src/include/utils.h
    functionUses: 0
    functionsReached:
    - __atomic_load_n
    - clockNano
    - pthread_cond_wait
    - reinterpret_cast<T*>
    - __atomic_compare_exchange_n
    - pthread_mutex_unlock
    - pthread_mutex_lock
    - sched_yield
    - __atomic_exchange_n
    - __atomic_store_n
    linkageType: ''
    returnType: T
    signature: T * ncclIntruQueueMpscDequeueAll(ncclIntruQueueMpsc<T,next>* me, bool
      waitSome)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_compare_exchange_n
      Src: /src/nccl/src/include/utils.h:527,1
    - Dst: __atomic_load_n
      Src: /src/nccl/src/include/utils.h:533,1
    - Dst: sched_yield
      Src: /src/nccl/src/include/utils.h:535,1
    - Dst: __atomic_store_n
      Src: /src/nccl/src/include/utils.h:537,1
    - Dst: __atomic_exchange_n
      Src: /src/nccl/src/include/utils.h:538,1
    - Dst: reinterpret_cast<T*>
      Src: /src/nccl/src/include/utils.h:539,1
    - Dst: __atomic_load_n
      Src: /src/nccl/src/include/utils.h:545,1
    - Dst: sched_yield
      Src: /src/nccl/src/include/utils.h:547,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 1
    argNames:
    - me
    argTypes:
    - ncclIntruQueueMpsc<T,next>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 525
    functionDepth: 0
    functionLinenumber: 525
    functionLinenumberEnd: 553
    functionName: ncclIntruQueueMpscAbandon
    functionSourceFile: /src/nccl/src/include/utils.h
    functionUses: 0
    functionsReached:
    - __atomic_load_n
    - reinterpret_cast<T*>
    - __atomic_compare_exchange_n
    - sched_yield
    - __atomic_exchange_n
    - __atomic_store_n
    linkageType: ''
    returnType: T
    signature: T * ncclIntruQueueMpscAbandon(ncclIntruQueueMpsc<T,next>* me)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct ibv_cq*::context::ops::poll_cq
      Src: /src/nccl/src/include/ibvwrap.h:60,1
    - Dst: WARN
      Src: /src/nccl/src/include/ibvwrap.h:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - cq
    - num_entries
    - wc
    - num_done
    argTypes:
    - struct ibv_cq*
    - int
    - struct ibv_wc*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 67
    functionName: wrap_ibv_poll_cq
    functionSourceFile: /src/nccl/src/include/ibvwrap.h
    functionUses: 1
    functionsReached:
    - WARN
    - struct ibv_cq*::context::ops::poll_cq
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t wrap_ibv_poll_cq(struct ibv_cq *cq, int num_entries, struct
      ibv_wc *wc, int* num_done)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct ibv_qp*::context::ops::post_send
      Src: /src/nccl/src/include/ibvwrap.h:75,1
    - Dst: WARN
      Src: /src/nccl/src/include/ibvwrap.h:77,1
    - Dst: strerror
      Src: /src/nccl/src/include/ibvwrap.h:77,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - qp
    - wr
    - bad_wr
    argTypes:
    - struct ibv_qp*
    - struct ibv_send_wr*
    - struct ibv_send_wr**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 81
    functionName: wrap_ibv_post_send
    functionSourceFile: /src/nccl/src/include/ibvwrap.h
    functionUses: 3
    functionsReached:
    - WARN
    - strerror
    - struct ibv_qp*::context::ops::post_send
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t wrap_ibv_post_send(struct ibv_qp *qp, struct ibv_send_wr
      *wr, struct ibv_send_wr **bad_wr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: struct ibv_qp*::context::ops::post_recv
      Src: /src/nccl/src/include/ibvwrap.h:84,1
    - Dst: WARN
      Src: /src/nccl/src/include/ibvwrap.h:86,1
    - Dst: strerror
      Src: /src/nccl/src/include/ibvwrap.h:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - qp
    - wr
    - bad_wr
    argTypes:
    - struct ibv_qp*
    - struct ibv_recv_wr*
    - struct ibv_recv_wr**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 90
    functionName: wrap_ibv_post_recv
    functionSourceFile: /src/nccl/src/include/ibvwrap.h
    functionUses: 1
    functionsReached:
    - WARN
    - strerror
    - struct ibv_qp*::context::ops::post_recv
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t wrap_ibv_post_recv(struct ibv_qp *qp, struct ibv_recv_wr
      *wr, struct ibv_recv_wr **bad_wr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: inet_ntop
      Src: /src/nccl/src/include/ibvwrap.h:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - gid
    - gidStr
    - strLen
    argTypes:
    - union ibv_gid*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 102
    functionName: ibvGetGidStr
    functionSourceFile: /src/nccl/src/include/ibvwrap.h
    functionUses: 1
    functionsReached:
    - inet_ntop
    linkageType: ''
    returnType: char
    signature: char * ibvGetGidStr(union ibv_gid* gid, char* gidStr, size_t strLen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - Int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 23
    functionName: minval
    functionSourceFile: /src/nccl/src/include/bitops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __host__
    signature: __host__ minval(Int a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: minval
      Src: /src/nccl/src/include/bitops.h:27,1
    - Dst: min
      Src: /src/nccl/src/include/bitops.h:27,1
    - Dst: minval
      Src: /src/nccl/src/include/bitops.h:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - Int
    - Int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 31
    functionName: minval
    functionSourceFile: /src/nccl/src/include/bitops.h
    functionUses: 1
    functionsReached:
    - min
    - minval
    linkageType: ''
    returnType: __host__
    signature: __host__ minval(Int a, Int b, More ...more)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - Int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 34
    functionName: maxval
    functionSourceFile: /src/nccl/src/include/bitops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __host__
    signature: __host__ maxval(Int a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: maxval
      Src: /src/nccl/src/include/bitops.h:38,1
    - Dst: max
      Src: /src/nccl/src/include/bitops.h:38,1
    - Dst: maxval
      Src: /src/nccl/src/include/bitops.h:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - Int
    - Int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 42
    functionName: maxval
    functionSourceFile: /src/nccl/src/include/bitops.h
    functionUses: 1
    functionsReached:
    - maxval
    - max
    linkageType: ''
    returnType: __host__
    signature: __host__ maxval(Int a, Int b, More ...more)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 46
    functionName: DIVUP
    functionSourceFile: /src/nccl/src/include/bitops.h
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DIVUP(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 49
    functionName: ROUNDUP
    functionSourceFile: /src/nccl/src/include/bitops.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ROUNDUP(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - y
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 52
    functionName: ALIGN_POWER
    functionSourceFile: /src/nccl/src/include/bitops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALIGN_POWER(x, y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - size
    - ','
    - align
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 55
    functionName: ALIGN_SIZE
    functionSourceFile: /src/nccl/src/include/bitops.h
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ALIGN_SIZE(size, align)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - X
    - Y
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 59
    functionName: divUp
    functionSourceFile: /src/nccl/src/include/bitops.h
    functionUses: 25
    functionsReached: []
    linkageType: ''
    returnType: __host__
    signature: __host__ divUp(X x, Y y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - X
    - Y
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 64
    functionName: roundUp
    functionSourceFile: /src/nccl/src/include/bitops.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: __host__
    signature: __host__ roundUp(X x, Y y)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - X
    - Y
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 68
    functionName: roundDown
    functionSourceFile: /src/nccl/src/include/bitops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __host__
    signature: __host__ roundDown(X x, Y y)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Z
      Src: /src/nccl/src/include/bitops.h:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - a
    argTypes:
    - X
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 74
    functionName: alignUp
    functionSourceFile: /src/nccl/src/include/bitops.h
    functionUses: 7
    functionsReached:
    - Z
    linkageType: ''
    returnType: __host__
    signature: __host__ alignUp(X x, int a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Z
      Src: /src/nccl/src/include/bitops.h:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - a
    argTypes:
    - X
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 79
    functionName: alignDown
    functionSourceFile: /src/nccl/src/include/bitops.h
    functionUses: 0
    functionsReached:
    - Z
    linkageType: ''
    returnType: __host__
    signature: __host__ alignDown(X x, int a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - Int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 84
    functionName: isPow2
    functionSourceFile: /src/nccl/src/include/bitops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __host__
    signature: __host__ isPow2(Int x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - base
    - delta4G
    argTypes:
    - T
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 92
    functionName: add4G
    functionSourceFile: /src/nccl/src/include/bitops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __host__
    signature: __host__ add4G(T base, int delta4G)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - ptr
    - delta4G
    - lo4G
    - hi4G
    argTypes:
    - T
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 101
    functionName: incWrap4G
    functionSourceFile: /src/nccl/src/include/bitops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __host__
    signature: __host__ incWrap4G(T ptr, uint32_t delta4G, uint32_t lo4G, uint32_t
      hi4G)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - ptr
    - delta4G
    - lo4G
    - hi4G
    argTypes:
    - T
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 110
    functionName: decWrap4G
    functionSourceFile: /src/nccl/src/include/bitops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __host__
    signature: __host__ decWrap4G(T ptr, uint32_t delta4G, uint32_t lo4G, uint32_t
      hi4G)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 115
    functionName: idivRcp32
    functionSourceFile: /src/nccl/src/include/bitops.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: __host__
    signature: __host__ idivRcp32(uint32_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: isPow2
      Src: /src/nccl/src/include/bitops.h:117,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 118
    functionName: idivRcp64
    functionSourceFile: /src/nccl/src/include/bitops.h
    functionUses: 0
    functionsReached:
    - isPow2
    linkageType: ''
    returnType: __host__
    signature: __host__ idivRcp64(uint64_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __umulhi
      Src: /src/nccl/src/include/bitops.h:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 126
    functionName: mul32hi
    functionSourceFile: /src/nccl/src/include/bitops.h
    functionUses: 0
    functionsReached:
    - __umulhi
    linkageType: ''
    returnType: __host__
    signature: __host__ mul32hi(uint32_t a, uint32_t b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __umul64hi
      Src: /src/nccl/src/include/bitops.h:129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 133
    functionName: mul64hi
    functionSourceFile: /src/nccl/src/include/bitops.h
    functionUses: 2
    functionsReached:
    - __umul64hi
    linkageType: ''
    returnType: __host__
    signature: __host__ mul64hi(uint64_t a, uint64_t b)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mul32hi
      Src: /src/nccl/src/include/bitops.h:140,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - x
    - xrcp
    - y
    - yrcp
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 144
    functionName: imulRcp32
    functionSourceFile: /src/nccl/src/include/bitops.h
    functionUses: 0
    functionsReached:
    - mul32hi
    linkageType: ''
    returnType: __host__
    signature: __host__ imulRcp32(uint32_t x, uint32_t xrcp, uint32_t y, uint32_t
      yrcp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: mul64hi
      Src: /src/nccl/src/include/bitops.h:148,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - x
    - xrcp
    - y
    - yrcp
    argTypes:
    - uint64_t
    - uint64_t
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 152
    functionName: imulRcp64
    functionSourceFile: /src/nccl/src/include/bitops.h
    functionUses: 0
    functionsReached:
    - mul64hi
    linkageType: ''
    returnType: __host__
    signature: __host__ imulRcp64(uint64_t x, uint64_t xrcp, uint64_t y, uint64_t
      yrcp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mul32hi
      Src: /src/nccl/src/include/bitops.h:159,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - quo
    - rem
    - x
    - y
    - yrcp
    argTypes:
    - uint32_t*
    - uint32_t*
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 165
    functionName: idivmodFast32
    functionSourceFile: /src/nccl/src/include/bitops.h
    functionUses: 0
    functionsReached:
    - mul32hi
    linkageType: ''
    returnType: __host__
    signature: __host__ idivmodFast32(uint32_t *quo, uint32_t *rem, uint32_t x, uint32_t
      y, uint32_t yrcp)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: mul64hi
      Src: /src/nccl/src/include/bitops.h:169,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 5
    argNames:
    - quo
    - rem
    - x
    - y
    - yrcp
    argTypes:
    - uint64_t*
    - uint64_t*
    - uint64_t
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 166
    functionDepth: 1
    functionLinenumber: 166
    functionLinenumberEnd: 175
    functionName: idivmodFast64
    functionSourceFile: /src/nccl/src/include/bitops.h
    functionUses: 0
    functionsReached:
    - mul64hi
    linkageType: ''
    returnType: __host__
    signature: __host__ idivmodFast64(uint64_t *quo, uint64_t *rem, uint64_t x, uint64_t
      y, uint64_t yrcp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: idivmodFast32
      Src: /src/nccl/src/include/bitops.h:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - x
    - y
    - yrcp
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 177
    functionDepth: 2
    functionLinenumber: 177
    functionLinenumberEnd: 181
    functionName: idivFast32
    functionSourceFile: /src/nccl/src/include/bitops.h
    functionUses: 0
    functionsReached:
    - idivmodFast32
    linkageType: ''
    returnType: __host__
    signature: __host__ idivFast32(uint32_t x, uint32_t y, uint32_t yrcp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: idivmodFast64
      Src: /src/nccl/src/include/bitops.h:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - x
    - y
    - yrcp
    argTypes:
    - uint64_t
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 182
    functionDepth: 2
    functionLinenumber: 182
    functionLinenumberEnd: 186
    functionName: idivFast64
    functionSourceFile: /src/nccl/src/include/bitops.h
    functionUses: 0
    functionsReached:
    - idivmodFast64
    linkageType: ''
    returnType: __host__
    signature: __host__ idivFast64(uint64_t x, uint64_t y, uint64_t yrcp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: idivmodFast32
      Src: /src/nccl/src/include/bitops.h:190,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - x
    - y
    - yrcp
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 188
    functionDepth: 2
    functionLinenumber: 188
    functionLinenumberEnd: 192
    functionName: imodFast32
    functionSourceFile: /src/nccl/src/include/bitops.h
    functionUses: 0
    functionsReached:
    - idivmodFast32
    linkageType: ''
    returnType: __host__
    signature: __host__ imodFast32(uint32_t x, uint32_t y, uint32_t yrcp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: idivmodFast64
      Src: /src/nccl/src/include/bitops.h:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - x
    - y
    - yrcp
    argTypes:
    - uint64_t
    - uint64_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 193
    functionDepth: 2
    functionLinenumber: 193
    functionLinenumberEnd: 197
    functionName: imodFast64
    functionSourceFile: /src/nccl/src/include/bitops.h
    functionUses: 0
    functionsReached:
    - idivmodFast64
    linkageType: ''
    returnType: __host__
    signature: __host__ imodFast64(uint64_t x, uint64_t y, uint64_t yrcp)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: __popc
      Src: /src/nccl/src/include/bitops.h:203,1
    - Dst: __popcll
      Src: /src/nccl/src/include/bitops.h:205,1
    - Dst: __builtin_popcount
      Src: /src/nccl/src/include/bitops.h:212,1
    - Dst: __builtin_popcountl
      Src: /src/nccl/src/include/bitops.h:214,1
    - Dst: __builtin_popcountll
      Src: /src/nccl/src/include/bitops.h:216,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - x
    argTypes:
    - Int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 200
    functionDepth: 0
    functionLinenumber: 200
    functionLinenumberEnd: 222
    functionName: countOneBits
    functionSourceFile: /src/nccl/src/include/bitops.h
    functionUses: 1
    functionsReached:
    - __builtin_popcount
    - __builtin_popcountll
    - __builtin_popcountl
    - __popcll
    - __popc
    linkageType: ''
    returnType: __host__
    signature: __host__ countOneBits(Int x)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: __ffs
      Src: /src/nccl/src/include/bitops.h:230,1
    - Dst: __ffsll
      Src: /src/nccl/src/include/bitops.h:232,1
    - Dst: __builtin_ffs
      Src: /src/nccl/src/include/bitops.h:238,1
    - Dst: __builtin_ffsl
      Src: /src/nccl/src/include/bitops.h:240,1
    - Dst: __builtin_ffsll
      Src: /src/nccl/src/include/bitops.h:242,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 1
    argNames:
    - mask
    argTypes:
    - Int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 248
    functionName: firstOneBit
    functionSourceFile: /src/nccl/src/include/bitops.h
    functionUses: 0
    functionsReached:
    - __builtin_ffsl
    - __ffs
    - __ffsll
    - __builtin_ffs
    - __builtin_ffsll
    linkageType: ''
    returnType: __host__
    signature: __host__ firstOneBit(Int mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: firstOneBit
      Src: /src/nccl/src/include/bitops.h:254,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - mask
    argTypes:
    - Int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 251
    functionDepth: 1
    functionLinenumber: 251
    functionLinenumberEnd: 255
    functionName: popFirstOneBit
    functionSourceFile: /src/nccl/src/include/bitops.h
    functionUses: 2
    functionsReached:
    - firstOneBit
    linkageType: ''
    returnType: __host__
    signature: __host__ popFirstOneBit(Int* mask)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: __clz
      Src: /src/nccl/src/include/bitops.h:263,1
    - Dst: __clzll
      Src: /src/nccl/src/include/bitops.h:266,1
    - Dst: __builtin_clz
      Src: /src/nccl/src/include/bitops.h:275,1
    - Dst: __builtin_clzl
      Src: /src/nccl/src/include/bitops.h:278,1
    - Dst: __builtin_clzll
      Src: /src/nccl/src/include/bitops.h:281,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 1
    argNames:
    - x
    argTypes:
    - Int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 287
    functionName: log2Down
    functionSourceFile: /src/nccl/src/include/bitops.h
    functionUses: 1
    functionsReached:
    - __builtin_clzl
    - __builtin_clz
    - __builtin_clzll
    - __clz
    - __clzll
    linkageType: ''
    returnType: __host__
    signature: __host__ log2Down(Int x)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: __clz
      Src: /src/nccl/src/include/bitops.h:296,1
    - Dst: __clzll
      Src: /src/nccl/src/include/bitops.h:299,1
    - Dst: __builtin_clz
      Src: /src/nccl/src/include/bitops.h:308,1
    - Dst: __builtin_clzl
      Src: /src/nccl/src/include/bitops.h:311,1
    - Dst: __builtin_clzll
      Src: /src/nccl/src/include/bitops.h:314,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 1
    argNames:
    - x
    argTypes:
    - Int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 320
    functionName: log2Up
    functionSourceFile: /src/nccl/src/include/bitops.h
    functionUses: 3
    functionsReached:
    - __builtin_clzl
    - __builtin_clz
    - __builtin_clzll
    - __clz
    - __clzll
    linkageType: ''
    returnType: __host__
    signature: __host__ log2Up(Int x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Int
      Src: /src/nccl/src/include/bitops.h:324,1
    - Dst: log2Up
      Src: /src/nccl/src/include/bitops.h:324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - Int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 325
    functionName: pow2Up
    functionSourceFile: /src/nccl/src/include/bitops.h
    functionUses: 1
    functionsReached:
    - Int
    - log2Up
    linkageType: ''
    returnType: __host__
    signature: __host__ pow2Up(Int x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Int
      Src: /src/nccl/src/include/bitops.h:331,1
    - Dst: log2Down
      Src: /src/nccl/src/include/bitops.h:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - Int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 328
    functionDepth: 1
    functionLinenumber: 328
    functionLinenumberEnd: 332
    functionName: pow2Down
    functionSourceFile: /src/nccl/src/include/bitops.h
    functionUses: 0
    functionsReached:
    - Int
    - log2Down
    linkageType: ''
    returnType: __host__
    signature: __host__ pow2Down(Int x)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_bswap16
      Src: /src/nccl/src/include/bitops.h:338,1
    - Dst: __builtin_bswap32
      Src: /src/nccl/src/include/bitops.h:339,1
    - Dst: __builtin_bswap64
      Src: /src/nccl/src/include/bitops.h:340,1
    - Dst: reverseSubBits
      Src: /src/nccl/src/include/bitops.h:343,1
    - Dst: UInt
      Src: /src/nccl/src/include/bitops.h:347,1
    - Dst: UInt
      Src: /src/nccl/src/include/bitops.h:347,1
    - Dst: reverseSubBits
      Src: /src/nccl/src/include/bitops.h:349,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 1
    argNames:
    - x
    argTypes:
    - UInt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 335
    functionDepth: 1
    functionLinenumber: 335
    functionLinenumberEnd: 351
    functionName: reverseSubBits
    functionSourceFile: /src/nccl/src/include/bitops.h
    functionUses: 1
    functionsReached:
    - __builtin_bswap64
    - UInt
    - __builtin_bswap32
    - reverseSubBits
    - __builtin_bswap16
    linkageType: ''
    returnType: __host__
    signature: __host__ reverseSubBits(UInt x)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: __brev
      Src: /src/nccl/src/include/bitops.h:374,1
    - Dst: __brevll
      Src: /src/nccl/src/include/bitops.h:376,1
    - Dst: reverseSubBits
      Src: /src/nccl/src/include/bitops.h:381,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - x
    - nBits
    argTypes:
    - Int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 368
    functionDepth: 2
    functionLinenumber: 368
    functionLinenumberEnd: 385
    functionName: reverseBits
    functionSourceFile: /src/nccl/src/include/bitops.h
    functionUses: 0
    functionsReached:
    - reverseSubBits
    - __brev
    - __brevll
    linkageType: ''
    returnType: __host__
    signature: __host__ reverseBits(Int x, int nBits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: __clz
      Src: /src/nccl/src/include/bitops.h:395,1
    - Dst: __builtin_clz
      Src: /src/nccl/src/include/bitops.h:397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - x
    - bitsPerPow2
    argTypes:
    - uint32_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 402
    functionName: u32fpEncode
    functionSourceFile: /src/nccl/src/include/bitops.h
    functionUses: 0
    functionsReached:
    - __clz
    - __builtin_clz
    linkageType: ''
    returnType: __host__
    signature: __host__ u32fpEncode(uint32_t x, int bitsPerPow2)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - x
    - bitsPerPow2
    argTypes:
    - uint32_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 409
    functionName: u32fpDecode
    functionSourceFile: /src/nccl/src/include/bitops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __host__
    signature: __host__ u32fpDecode(uint32_t x, int bitsPerPow2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 411
    functionDepth: 0
    functionLinenumber: 411
    functionLinenumberEnd: 411
    functionName: u32fp8MaxValue
    functionSourceFile: /src/nccl/src/include/bitops.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t u32fp8MaxValue()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: u32fpEncode
      Src: /src/nccl/src/include/bitops.h:414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 413
    functionDepth: 1
    functionLinenumber: 413
    functionLinenumberEnd: 415
    functionName: u32fp8Encode
    functionSourceFile: /src/nccl/src/include/bitops.h
    functionUses: 1
    functionsReached:
    - u32fpEncode
    linkageType: ''
    returnType: __host__
    signature: __host__ u32fp8Encode(uint32_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: u32fpDecode
      Src: /src/nccl/src/include/bitops.h:417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 416
    functionDepth: 1
    functionLinenumber: 416
    functionLinenumberEnd: 418
    functionName: u32fp8Decode
    functionSourceFile: /src/nccl/src/include/bitops.h
    functionUses: 3
    functionsReached:
    - u32fpDecode
    linkageType: ''
    returnType: __host__
    signature: __host__ u32fp8Decode(uint8_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nccl/src/include/bitops.h:436,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 3
    argNames:
    - acc
    - bytes
    - size
    argTypes:
    - uint64_t[]
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 442
    functionName: eatHash
    functionSourceFile: /src/nccl/src/include/bitops.h
    functionUses: 1
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: __host__
    signature: __host__ eatHash(uint64_t acc[2], const void* bytes, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: eatHash
      Src: /src/nccl/src/include/bitops.h:446,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - acc
    - bytes
    argTypes:
    - uint64_t[]
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 445
    functionDepth: 1
    functionLinenumber: 445
    functionLinenumberEnd: 447
    functionName: eatHash
    functionSourceFile: /src/nccl/src/include/bitops.h
    functionUses: 2
    functionsReached:
    - eatHash
    linkageType: ''
    returnType: __host__
    signature: __host__ eatHash(uint64_t acc[2], const T* bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - acc
    argTypes:
    - uint64_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 449
    functionDepth: 0
    functionLinenumber: 449
    functionLinenumberEnd: 457
    functionName: digestHash
    functionSourceFile: /src/nccl/src/include/bitops.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: __host__
    signature: __host__ digestHash(uint64_t const acc[2])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: eatHash
      Src: /src/nccl/src/include/bitops.h:461,1
    - Dst: digestHash
      Src: /src/nccl/src/include/bitops.h:462,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - bytes
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 459
    functionDepth: 1
    functionLinenumber: 459
    functionLinenumberEnd: 463
    functionName: getHash
    functionSourceFile: /src/nccl/src/include/bitops.h
    functionUses: 2
    functionsReached:
    - eatHash
    - digestHash
    linkageType: ''
    returnType: __host__
    signature: __host__ getHash(const void* bytes, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getHash
      Src: /src/nccl/src/include/bitops.h:466,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bytes
    argTypes:
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 465
    functionDepth: 1
    functionLinenumber: 465
    functionLinenumberEnd: 467
    functionName: getHash
    functionSourceFile: /src/nccl/src/include/bitops.h
    functionUses: 3
    functionsReached:
    - getHash
    linkageType: ''
    returnType: __host__
    signature: __host__ getHash(const T* bytes)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 18
    functionName: hexToInt
    functionSourceFile: /src/nccl/src/include/cpuset.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int hexToInt(char c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/nccl/src/include/cpuset.h:26,1
    - Dst: hexToInt
      Src: /src/nccl/src/include/cpuset.h:32,1
    - Dst: memcpy
      Src: /src/nccl/src/include/cpuset.h:40,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 2
    argNames:
    - str
    - mask
    argTypes:
    - char*
    - cpu_set_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 43
    functionName: ncclStrToCpuset
    functionSourceFile: /src/nccl/src/include/cpuset.h
    functionUses: 0
    functionsReached:
    - hexToInt
    - memcpy
    - strlen
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclStrToCpuset(const char* str, cpu_set_t* mask)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sprintf
      Src: /src/nccl/src/include/cpuset.h:50,1
    - Dst: sprintf
      Src: /src/nccl/src/include/cpuset.h:53,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 2
    argNames:
    - mask
    - str
    argTypes:
    - cpu_set_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 59
    functionName: ncclCpusetToStr
    functionSourceFile: /src/nccl/src/include/cpuset.h
    functionUses: 0
    functionsReached:
    - sprintf
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCpusetToStr(cpu_set_t* mask, char* str)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CPU_ISSET
      Src: /src/nccl/src/include/cpuset.h:66,1
    - Dst: snprintf
      Src: /src/nccl/src/include/cpuset.h:74,1
    - Dst: snprintf
      Src: /src/nccl/src/include/cpuset.h:76,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 3
    argNames:
    - mask
    - str
    - len
    argTypes:
    - cpu_set_t*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 84
    functionName: ncclCpusetToRangeStr
    functionSourceFile: /src/nccl/src/include/cpuset.h
    functionUses: 0
    functionsReached:
    - CPU_ISSET
    - snprintf
    linkageType: ''
    returnType: char
    signature: char * ncclCpusetToRangeStr(cpu_set_t* mask, char* str, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - func
    - nRanks
    - count
    argTypes:
    - ncclFunc_t
    - int
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 32
    functionName: ncclFuncSendCount
    functionSourceFile: /src/nccl/src/include/enqueue.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t ncclFuncSendCount(ncclFunc_t func, int nRanks, size_t count)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - func
    - nRanks
    - count
    argTypes:
    - ncclFunc_t
    - int
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 35
    functionName: ncclFuncRecvCount
    functionSourceFile: /src/nccl/src/include/enqueue.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t ncclFuncRecvCount(ncclFunc_t func, int nRanks, size_t count)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - func
    - nRanks
    - count
    argTypes:
    - ncclFunc_t
    - int
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 38
    functionName: ncclFuncMaxSendRecvCount
    functionSourceFile: /src/nccl/src/include/enqueue.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t ncclFuncMaxSendRecvCount(ncclFunc_t func, int nRanks, size_t
      count)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cmd
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 20
    functionName: CUDACHECK
    functionSourceFile: /src/nccl/src/include/checks.h
    functionUses: 53
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CUDACHECK(cmd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - cmd
    - ','
    - RES
    - ','
    - label
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 29
    functionName: CUDACHECKGOTO
    functionSourceFile: /src/nccl/src/include/checks.h
    functionUses: 35
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CUDACHECKGOTO(cmd, RES, label)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cmd
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 38
    functionName: CUDACHECKIGNORE
    functionSourceFile: /src/nccl/src/include/checks.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CUDACHECKIGNORE(cmd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - statement
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 49
    functionName: SYSCHECK
    functionSourceFile: /src/nccl/src/include/checks.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SYSCHECK(statement, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - statement
    - ','
    - name
    - ','
    - retval
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 58
    functionName: SYSCHECKSYNC
    functionSourceFile: /src/nccl/src/include/checks.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SYSCHECKSYNC(statement, name, retval)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - statement
    - ','
    - name
    - ','
    - RES
    - ','
    - label
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 68
    functionName: SYSCHECKGOTO
    functionSourceFile: /src/nccl/src/include/checks.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SYSCHECKGOTO(statement, name, RES, label)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - statement
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 77
    functionName: PTHREADCHECK
    functionSourceFile: /src/nccl/src/include/checks.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PTHREADCHECK(statement, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - statement
    - ','
    - name
    - ','
    - RES
    - ','
    - label
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 86
    functionName: PTHREADCHECKGOTO
    functionSourceFile: /src/nccl/src/include/checks.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: PTHREADCHECKGOTO(statement, name, RES, label)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - statement
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 89
    functionName: NEQCHECK
    functionSourceFile: /src/nccl/src/include/checks.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NEQCHECK(statement, value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - statement
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 106
    functionName: EQCHECK
    functionSourceFile: /src/nccl/src/include/checks.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: EQCHECK(statement, value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - call
    - ','
    - cond
    - ','
    - abortFlagPtr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 149
    functionName: NCCLWAIT
    functionSourceFile: /src/nccl/src/include/checks.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NCCLWAIT(call, cond, abortFlagPtr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - call
    - ','
    - cond
    - ','
    - abortFlagPtr
    - ','
    - RES
    - ','
    - label
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 159
    functionName: NCCLWAITGOTO
    functionSourceFile: /src/nccl/src/include/checks.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NCCLWAITGOTO(call, cond, abortFlagPtr, RES, label)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - args
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 166
    functionName: NCCLCHECKTHREAD
    functionSourceFile: /src/nccl/src/include/checks.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NCCLCHECKTHREAD(a, args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 174
    functionName: CUDACHECKTHREAD
    functionSourceFile: /src/nccl/src/include/checks.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CUDACHECKTHREAD(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - ptr
    - ','
    - type
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 38
    functionName: container_of
    functionSourceFile: /src/nccl/src/include/ibvcore.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: container_of(ptr, type, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - type
    - ','
    - fld
    - ','
    - sz
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: vext_field_avail
    functionSourceFile: /src/nccl/src/include/ibvcore.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: vext_field_avail(type, fld, sz)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - struct ibv_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1037
      start: 1028
    functionDepth: 0
    functionLinenumber: 1028
    functionLinenumberEnd: 1037
    functionName: verbs_get_ctx
    functionSourceFile: /src/nccl/src/include/ibvcore.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct verbs_context
    signature: struct verbs_context *verbs_get_ctx(struct ibv_context *ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ctx
    - ','
    - op
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1043
      start: 1039
    functionDepth: 0
    functionLinenumber: 1039
    functionLinenumberEnd: 1043
    functionName: verbs_get_ctx_op
    functionSourceFile: /src/nccl/src/include/ibvcore.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: verbs_get_ctx_op(ctx, op)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - _vctx
    - ','
    - op
    - ','
    - ptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1048
      start: 1044
    functionDepth: 0
    functionLinenumber: 1044
    functionLinenumberEnd: 1048
    functionName: verbs_set_ctx_op
    functionSourceFile: /src/nccl/src/include/ibvcore.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: verbs_set_ctx_op(_vctx, op, ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: container_of
      Src: /src/nccl/src/include/ibvcore.h:1052,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dev
    argTypes:
    - struct ibv_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1053
      start: 1049
    functionDepth: 1
    functionLinenumber: 1049
    functionLinenumberEnd: 1053
    functionName: verbs_get_device
    functionSourceFile: /src/nccl/src/include/ibvcore.h
    functionUses: 0
    functionsReached:
    - container_of
    linkageType: ''
    returnType: struct verbs_device
    signature: struct verbs_device *verbs_get_device(struct ibv_device *dev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: struct ibv_qp*::context::ops::post_send
      Src: /src/nccl/src/include/ibvcore.h:1056,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - qp
    - wr
    - bad_wr
    argTypes:
    - struct ibv_qp*
    - struct ibv_send_wr*
    - struct ibv_send_wr**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1057
      start: 1055
    functionDepth: 0
    functionLinenumber: 1055
    functionLinenumberEnd: 1057
    functionName: ibv_post_send
    functionSourceFile: /src/nccl/src/include/ibvcore.h
    functionUses: 3
    functionsReached:
    - struct ibv_qp*::context::ops::post_send
    linkageType: ''
    returnType: int
    signature: int ibv_post_send(struct ibv_qp *qp, struct ibv_send_wr *wr, struct
      ibv_send_wr **bad_wr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: verbs_get_ctx_op
      Src: /src/nccl/src/include/ibvcore.h:1081,1
    - Dst: struct verbs_context*::query_port
      Src: /src/nccl/src/include/ibvcore.h:1084,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - context
    - port_num
    - port_attr
    argTypes:
    - struct ibv_context*
    - uint8_t
    - struct ibv_port_attr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1088
      start: 1077
    functionDepth: 1
    functionLinenumber: 1077
    functionLinenumberEnd: 1088
    functionName: ibv_query_port_ex
    functionSourceFile: /src/nccl/src/include/ibvcore.h
    functionUses: 0
    functionsReached:
    - struct verbs_context*::query_port
    - verbs_get_ctx_op
    linkageType: ''
    returnType: int
    signature: "int ibv_query_port_ex(struct ibv_context *context,\n\t\t\t\t    uint8_t
      port_num,\n\t\t\t\t    struct ibv_port_attr *port_attr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nvtxPayloadSchemaRegister
      Src: /src/nccl/src/include/nvtx.h:54,1
    - Dst: nvtx3::domain::get<nccl_domain>
      Src: /src/nccl/src/include/nvtx.h:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - entries
    - numEntries
    - schemaId
    - size
    argTypes:
    - nvtxPayloadSchemaEntry_t[]
    - size_t
    - uint64_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 55
    functionName: payload_schema::payload_schema
    functionSourceFile: /src/nccl/src/include/nvtx.h
    functionUses: 0
    functionsReached:
    - nvtxPayloadSchemaRegister
    - nvtx3::domain::get<nccl_domain>
    linkageType: ''
    returnType: void
    signature: "void payload_schema(const nvtxPayloadSchemaEntry_t entries[], size_t
      numEntries,\n    const uint64_t schemaId, const size_t size) noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    functionName: payload_schema::payload_schema
    functionSourceFile: /src/nccl/src/include/nvtx.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void payload_schema()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 58
    functionName: ~payload_schema()
    functionSourceFile: /src/nccl/src/include/nvtx.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~payload_schema()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: payload_schema::payload_schema
    functionSourceFile: /src/nccl/src/include/nvtx.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void payload_schema(payload_schema const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    functionName: '& operator=(payload_schema const&)'
    functionSourceFile: /src/nccl/src/include/nvtx.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: payload_schema
    signature: payload_schema & operator=(payload_schema const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: payload_schema::payload_schema
    functionSourceFile: /src/nccl/src/include/nvtx.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void payload_schema(payload_schema&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: '& operator=(payload_schema&&)'
    functionSourceFile: /src/nccl/src/include/nvtx.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: payload_schema
    signature: payload_schema & operator=(payload_schema&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 79
    functionName: NVTX3_PAYLOAD
    functionSourceFile: /src/nccl/src/include/nvtx.h
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NVTX3_PAYLOAD(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - N
    - ','
    - T
    - ','
    - P
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 93
    functionName: NVTX3_FUNC_WITH_PARAMS
    functionSourceFile: /src/nccl/src/include/nvtx.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NVTX3_FUNC_WITH_PARAMS(N, T, P)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nvtxDomainRangePushEx
      Src: /src/nccl/src/include/nvtx.h:100,1
    - Dst: nvtx3::domain::get<nccl_domain>
      Src: /src/nccl/src/include/nvtx.h:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - evtAttr
    argTypes:
    - nvtxEventAttributes_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 101
    functionName: ncclNvtxRange::ncclNvtxRange
    functionSourceFile: /src/nccl/src/include/nvtx.h
    functionUses: 0
    functionsReached:
    - nvtx3::domain::get<nccl_domain>
    - nvtxDomainRangePushEx
    linkageType: ''
    returnType: void
    signature: void ncclNvtxRange(const nvtxEventAttributes_t* evtAttr) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nvtxRangePopPayload
      Src: /src/nccl/src/include/nvtx.h:105,1
    - Dst: nvtx3::domain::get<nccl_domain>
      Src: /src/nccl/src/include/nvtx.h:105,1
    - Dst: nvtxDomainRangePop
      Src: /src/nccl/src/include/nvtx.h:107,1
    - Dst: nvtx3::domain::get<nccl_domain>
      Src: /src/nccl/src/include/nvtx.h:107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 109
    functionName: ~ncclNvtxRange() noexcept
    functionSourceFile: /src/nccl/src/include/nvtx.h
    functionUses: 0
    functionsReached:
    - nvtx3::domain::get<nccl_domain>
    - nvtxDomainRangePop
    - nvtxRangePopPayload
    linkageType: ''
    returnType: void
    signature: void ~ncclNvtxRange() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - schemaId
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 114
    functionName: ncclNvtxRange::setPayloadData
    functionSourceFile: /src/nccl/src/include/nvtx.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void setPayloadData(const uint64_t schemaId) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 116
    functionName: ncclNvtxRange::ncclNvtxRange
    functionSourceFile: /src/nccl/src/include/nvtx.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ncclNvtxRange()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 117
    functionName: ncclNvtxRange::ncclNvtxRange
    functionSourceFile: /src/nccl/src/include/nvtx.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ncclNvtxRange(ncclNvtxRange const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 118
    functionName: '& operator=(ncclNvtxRange const&)'
    functionSourceFile: /src/nccl/src/include/nvtx.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclNvtxRange
    signature: ncclNvtxRange & operator=(ncclNvtxRange const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 119
    functionName: ncclNvtxRange::ncclNvtxRange
    functionSourceFile: /src/nccl/src/include/nvtx.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ncclNvtxRange(ncclNvtxRange&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 120
    functionName: '& operator=(ncclNvtxRange&&)'
    functionSourceFile: /src/nccl/src/include/nvtx.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclNvtxRange
    signature: ncclNvtxRange & operator=(ncclNvtxRange&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - T
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 135
    functionName: NVTX3_RANGE
    functionSourceFile: /src/nccl/src/include/nvtx.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NVTX3_RANGE(T)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - N
    - ','
    - S
    - ','
    - P
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 148
    functionName: NVTX3_RANGE_ADD_PAYLOAD
    functionSourceFile: /src/nccl/src/include/nvtx.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NVTX3_RANGE_ADD_PAYLOAD(N, S, P)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: VERSION
    functionSourceFile: /src/nccl/src/include/debug.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: VERSION(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: WARN
    functionSourceFile: /src/nccl/src/include/debug.h
    functionUses: 111
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WARN(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - FLAGS
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: INFO
    functionSourceFile: /src/nccl/src/include/debug.h
    functionUses: 121
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INFO(FLAGS, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: TRACE_CALL
    functionSourceFile: /src/nccl/src/include/debug.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TRACE_CALL(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - FLAGS
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: TRACE
    functionSourceFile: /src/nccl/src/include/debug.h
    functionUses: 52
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TRACE(FLAGS, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 8
    argNames:
    - (
    - ret
    - ','
    - func
    - ','
    - args
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 26
    functionName: NCCL_API
    functionSourceFile: /src/nccl/src/include/core.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NCCL_API(ret, func, args...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 8
    argNames:
    - (
    - ret
    - ','
    - func
    - ','
    - args
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 31
    functionName: NCCL_API
    functionSourceFile: /src/nccl/src/include/core.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NCCL_API(ret, func, args...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 14
    functionName: ncclSymLLMaxSlots
    functionSourceFile: /src/nccl/src/include/symmetric.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __host__
    signature: __host__ ncclSymLLMaxSlots(int eltSize = ncclSymLLMaxEltSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: maxval
      Src: /src/nccl/src/include/symmetric.h:17,1
    - Dst: ncclSymLLMaxSlots
      Src: /src/nccl/src/include/symmetric.h:17,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nRanks
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 16
    functionDepth: 1
    functionLinenumber: 16
    functionLinenumberEnd: 18
    functionName: ncclSymLLEpochSize
    functionSourceFile: /src/nccl/src/include/symmetric.h
    functionUses: 0
    functionsReached:
    - maxval
    - ncclSymLLMaxSlots
    linkageType: ''
    returnType: __host__
    signature: __host__ ncclSymLLEpochSize(int nRanks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alignUp
      Src: /src/nccl/src/include/symmetric.h:28,1
    - Dst: ncclSymLLEpochSize
      Src: /src/nccl/src/include/symmetric.h:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - nRanks
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 26
    functionDepth: 2
    functionLinenumber: 26
    functionLinenumberEnd: 30
    functionName: size
    functionSourceFile: /src/nccl/src/include/symmetric.h
    functionUses: 1
    functionsReached:
    - ncclSymLLEpochSize
    - alignUp
    linkageType: ''
    returnType: size_t
    signature: size_t size(int nRanks)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alignUp
      Src: /src/nccl/src/include/symmetric.h:37,1
    - Dst: ncclSymLLEpochSize
      Src: /src/nccl/src/include/symmetric.h:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - base
    - nRanks
    - block
    - epoch
    argTypes:
    - struct ncclSymDevBase*
    - int
    - int
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 33
    functionDepth: 2
    functionLinenumber: 33
    functionLinenumberEnd: 43
    functionName: ncclSymDevBase_getLLBuf
    functionSourceFile: /src/nccl/src/include/symmetric.h
    functionUses: 0
    functionsReached:
    - ncclSymLLEpochSize
    - alignUp
    linkageType: ''
    returnType: __device__
    signature: __device__ * ncclSymDevBase_getLLBuf(struct ncclSymDevBase* base, int
      nRanks, int block, uint32_t epoch)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - comm
    - data
    - size
    - outReg
    argTypes:
    - struct ncclComm*
    - void*
    - size_t
    - struct ncclReg**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 7
    functionDepth: 0
    functionLinenumber: 7
    functionLinenumberEnd: 19
    functionName: ncclRegFind
    functionSourceFile: /src/nccl/src/include/register_inline.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclRegFind(struct ncclComm* comm, const void* data, size_t
      size, struct ncclReg** outReg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/include/register_inline.h:25,1
    - Dst: ncclRegFind
      Src: /src/nccl/src/include/register_inline.h:25,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - comm
    - data
    - size
    - symPtr
    - outReg
    argTypes:
    - struct ncclComm*
    - void*
    - size_t
    - void**
    - struct ncclReg**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 31
    functionName: ncclRegFindSymmetric
    functionSourceFile: /src/nccl/src/include/register_inline.h
    functionUses: 1
    functionsReached:
    - ncclRegFind
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclRegFindSymmetric(struct ncclComm* comm, const void*
      data, size_t size, void** symPtr, struct ncclReg** outReg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 44
    functionName: ncclCudaGraphNone
    functionSourceFile: /src/nccl/src/include/strongstream.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: struct ncclCudaGraph
    signature: struct ncclCudaGraph ncclCudaGraphNone()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - graph
    argTypes:
    - struct ncclCudaGraph
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 52
    functionName: ncclCudaGraphValid
    functionSourceFile: /src/nccl/src/include/strongstream.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ncclCudaGraphValid(struct ncclCudaGraph graph)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - struct ncclCudaGraph
    - struct ncclCudaGraph
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 60
    functionName: ncclCudaGraphSame
    functionSourceFile: /src/nccl/src/include/strongstream.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ncclCudaGraphSame(struct ncclCudaGraph a, struct ncclCudaGraph
      b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 16
    functionName: collNetName
    functionSourceFile: /src/nccl/src/include/coll_net.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * collNetName(struct ncclComm* comm)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/include/coll_net.h:17,1
    - Dst: struct ncclComm*::ncclCollNet::devices
      Src: /src/nccl/src/include/coll_net.h:17,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - comm
    - ndev
    argTypes:
    - struct ncclComm*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 17
    functionName: collNetDevices
    functionSourceFile: /src/nccl/src/include/coll_net.h
    functionUses: 0
    functionsReached:
    - struct ncclComm*::ncclCollNet::devices
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t collNetDevices(struct ncclComm* comm, int* ndev)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/include/coll_net.h:18,1
    - Dst: struct ncclComm*::ncclCollNet::getProperties
      Src: /src/nccl/src/include/coll_net.h:18,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - comm
    - dev
    - props
    argTypes:
    - struct ncclComm*
    - int
    - ncclNetProperties_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 18
    functionName: collNetGetProperties
    functionSourceFile: /src/nccl/src/include/coll_net.h
    functionUses: 0
    functionsReached:
    - struct ncclComm*::ncclCollNet::getProperties
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t collNetGetProperties(struct ncclComm* comm, int dev, ncclNetProperties_t*
      props)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/include/coll_net.h:19,1
    - Dst: struct ncclComm*::ncclCollNet::listen
      Src: /src/nccl/src/include/coll_net.h:19,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - comm
    - dev
    - handle
    - listenComm
    argTypes:
    - struct ncclComm*
    - int
    - void*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 19
    functionName: collNetListen
    functionSourceFile: /src/nccl/src/include/coll_net.h
    functionUses: 0
    functionsReached:
    - struct ncclComm*::ncclCollNet::listen
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t collNetListen(struct ncclComm* comm, int dev, void* handle,
      void** listenComm)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/include/coll_net.h:20,1
    - Dst: struct ncclComm*::ncclCollNet::connect
      Src: /src/nccl/src/include/coll_net.h:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - comm
    - handles
    - nranks
    - rank
    - listenComm
    - collComm
    argTypes:
    - struct ncclComm*
    - void*[]
    - int
    - int
    - void*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 20
    functionName: collNetConnect
    functionSourceFile: /src/nccl/src/include/coll_net.h
    functionUses: 0
    functionsReached:
    - struct ncclComm*::ncclCollNet::connect
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t collNetConnect(struct ncclComm* comm, void* handles[],
      int nranks, int rank, void* listenComm, void** collComm)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/include/coll_net.h:21,1
    - Dst: struct ncclComm*::ncclCollNet::reduceSupport
      Src: /src/nccl/src/include/coll_net.h:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - comm
    - dataType
    - redOp
    - supported
    argTypes:
    - struct ncclComm*
    - ncclDataType_t
    - ncclRedOp_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 21
    functionName: collNetReduceSupport
    functionSourceFile: /src/nccl/src/include/coll_net.h
    functionUses: 1
    functionsReached:
    - NCCLCHECK
    - struct ncclComm*::ncclCollNet::reduceSupport
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t collNetReduceSupport(struct ncclComm* comm, ncclDataType_t
      dataType, ncclRedOp_t redOp, int* supported)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/include/coll_net.h:22,1
    - Dst: struct ncclComm*::ncclCollNet::regMr
      Src: /src/nccl/src/include/coll_net.h:22,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - comm
    - collComm
    - data
    - size
    - type
    - mhandle
    argTypes:
    - struct ncclComm*
    - void*
    - void*
    - size_t
    - int
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 22
    functionName: collNetRegMr
    functionSourceFile: /src/nccl/src/include/coll_net.h
    functionUses: 0
    functionsReached:
    - struct ncclComm*::ncclCollNet::regMr
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t collNetRegMr(struct ncclComm* comm, void* collComm, void*
      data, size_t size, int type, void** mhandle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/include/coll_net.h:24,1
    - Dst: struct ncclComm*::ncclCollNet::regMrDmaBuf
      Src: /src/nccl/src/include/coll_net.h:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 8
    argNames:
    - comm
    - collComm
    - data
    - size
    - type
    - offset
    - fd
    - mhandle
    argTypes:
    - struct ncclComm*
    - void*
    - void*
    - size_t
    - int
    - uint64_t
    - int
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 24
    functionName: collNetRegMrDmaBuf
    functionSourceFile: /src/nccl/src/include/coll_net.h
    functionUses: 0
    functionsReached:
    - struct ncclComm*::ncclCollNet::regMrDmaBuf
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t collNetRegMrDmaBuf(struct ncclComm* comm, void* collComm,
      void* data, size_t size, int type, uint64_t offset, int fd, void** mhandle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/include/coll_net.h:25,1
    - Dst: struct ncclComm*::ncclCollNet::deregMr
      Src: /src/nccl/src/include/coll_net.h:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - comm
    - collComm
    - mhandle
    argTypes:
    - struct ncclComm*
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 25
    functionName: collNetDeregMr
    functionSourceFile: /src/nccl/src/include/coll_net.h
    functionUses: 0
    functionsReached:
    - struct ncclComm*::ncclCollNet::deregMr
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t collNetDeregMr(struct ncclComm* comm, void* collComm,
      void* mhandle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/include/coll_net.h:27,1
    - Dst: struct ncclComm*::ncclCollNet::iallreduce
      Src: /src/nccl/src/include/coll_net.h:27,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 10
    argNames:
    - comm
    - collComm
    - sendData
    - recvData
    - count
    - dataType
    - redOp
    - sendMhandle
    - recvMhandle
    - request
    argTypes:
    - struct ncclComm*
    - void*
    - void*
    - void*
    - int
    - ncclDataType_t
    - ncclRedOp_t
    - void*
    - void*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 27
    functionName: collNetIallreduce
    functionSourceFile: /src/nccl/src/include/coll_net.h
    functionUses: 1
    functionsReached:
    - NCCLCHECK
    - struct ncclComm*::ncclCollNet::iallreduce
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t collNetIallreduce(struct ncclComm* comm, void* collComm,
      void* sendData, void* recvData, int count, ncclDataType_t dataType, ncclRedOp_t
      redOp, void* sendMhandle, void* recvMhandle,  void** request)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/include/coll_net.h:28,1
    - Dst: struct ncclComm*::ncclCollNet::iflush
      Src: /src/nccl/src/include/coll_net.h:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - comm
    - collComm
    - data
    - size
    - mhandle
    - request
    argTypes:
    - struct ncclComm*
    - void*
    - void*
    - int
    - void*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 28
    functionName: collNetIflush
    functionSourceFile: /src/nccl/src/include/coll_net.h
    functionUses: 0
    functionsReached:
    - struct ncclComm*::ncclCollNet::iflush
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t collNetIflush(struct ncclComm* comm, void* collComm, void*
      data, int size, void* mhandle, void** request)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/include/coll_net.h:29,1
    - Dst: struct ncclComm*::ncclCollNet::test
      Src: /src/nccl/src/include/coll_net.h:29,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - comm
    - request
    - done
    - size
    argTypes:
    - struct ncclComm*
    - void*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 29
    functionName: collNetTest
    functionSourceFile: /src/nccl/src/include/coll_net.h
    functionUses: 0
    functionsReached:
    - struct ncclComm*::ncclCollNet::test
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t collNetTest(struct ncclComm* comm, void* request, int*
      done, int* size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/include/coll_net.h:30,1
    - Dst: struct ncclComm*::ncclCollNet::closeColl
      Src: /src/nccl/src/include/coll_net.h:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - comm
    - collComm
    argTypes:
    - struct ncclComm*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 30
    functionName: collNetCloseColl
    functionSourceFile: /src/nccl/src/include/coll_net.h
    functionUses: 0
    functionsReached:
    - struct ncclComm*::ncclCollNet::closeColl
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t collNetCloseColl(struct ncclComm* comm, void* collComm)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/include/coll_net.h:31,1
    - Dst: struct ncclComm*::ncclCollNet::closeListen
      Src: /src/nccl/src/include/coll_net.h:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - comm
    - listenComm
    argTypes:
    - struct ncclComm*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 31
    functionName: collNetCloseListen
    functionSourceFile: /src/nccl/src/include/coll_net.h
    functionUses: 0
    functionsReached:
    - struct ncclComm*::ncclCollNet::closeListen
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t collNetCloseListen(struct ncclComm* comm, void* listenComm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 33
    functionName: collNetSupport
    functionSourceFile: /src/nccl/src/include/coll_net.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int collNetSupport(struct ncclComm* comm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - data
    - ','
    - ver
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 28
    functionName: NVML_STRUCT_VERSION
    functionSourceFile: /src/nccl/src/include/nvmlwrap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NVML_STRUCT_VERSION(data, ver)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - var
    - ','
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 222
    functionName: NVML_GPU_FABRIC_HEALTH_GET
    functionSourceFile: /src/nccl/src/include/nvmlwrap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NVML_GPU_FABRIC_HEALTH_GET(var, type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - var
    - ','
    - type
    - ','
    - val
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 231
    functionName: NVML_GPU_FABRIC_HEALTH_TEST
    functionSourceFile: /src/nccl/src/include/nvmlwrap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NVML_GPU_FABRIC_HEALTH_TEST(var, type, val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 82
    functionName: ncclGroupStartInternal
    functionSourceFile: /src/nccl/src/include/group.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGroupStartInternal()
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - ret
    argTypes:
    - ncclResult_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 89
    functionName: ncclGroupErrCheck
    functionSourceFile: /src/nccl/src/include/group.h
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGroupErrCheck(ncclResult_t ret)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<struct ncclComm*>
      Src: /src/nccl/src/include/group.h:93,1
    - Dst: ncclMemoryStackPush
      Src: /src/nccl/src/include/group.h:110,1
    - Dst: memset
      Src: /src/nccl/src/include/group.h:114,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - comm
    - type
    argTypes:
    - struct ncclComm*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 92
    functionDepth: 3
    functionLinenumber: 92
    functionLinenumberEnd: 119
    functionName: ncclGroupCommJoin
    functionSourceFile: /src/nccl/src/include/group.h
    functionUses: 1
    functionsReached:
    - memset
    - ncclMemoryStackPush
    - reinterpret_cast<struct ncclComm*>
    linkageType: ''
    returnType: void
    signature: void ncclGroupCommJoin(struct ncclComm* comm, int type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<struct ncclComm*>
      Src: /src/nccl/src/include/group.h:123,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 127
    functionName: ncclGroupCommPreconnect
    functionSourceFile: /src/nccl/src/include/group.h
    functionUses: 1
    functionsReached:
    - reinterpret_cast<struct ncclComm*>
    linkageType: ''
    returnType: void
    signature: void ncclGroupCommPreconnect(struct ncclComm* comm)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<struct ncclComm*>
      Src: /src/nccl/src/include/group.h:131,1
    - Dst: ncclMemoryStackPop
      Src: /src/nccl/src/include/group.h:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - comm
    - type
    argTypes:
    - struct ncclComm*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 134
    functionName: ncclGroupCommLeave
    functionSourceFile: /src/nccl/src/include/group.h
    functionUses: 2
    functionsReached:
    - ncclMemoryStackPop
    - reinterpret_cast<struct ncclComm*>
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGroupCommLeave(struct ncclComm* comm, int type)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: u32fpEncode
      Src: /src/nccl/src/include/comm.h:308,1
    - Dst: min
      Src: /src/nccl/src/include/comm.h:308,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - me
    - x
    - size
    argTypes:
    - struct ncclTaskCollSorter*
    - struct ncclTaskColl*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 301
    functionDepth: 1
    functionLinenumber: 301
    functionLinenumberEnd: 330
    functionName: ncclTaskCollSorterInsert
    functionSourceFile: /src/nccl/src/include/comm.h
    functionUses: 1
    functionsReached:
    - min
    - u32fpEncode
    linkageType: ''
    returnType: void
    signature: "void ncclTaskCollSorterInsert(\n    struct ncclTaskCollSorter* me,
      struct ncclTaskColl* x, size_t size\n  )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - me
    argTypes:
    - struct ncclTaskCollSorter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 334
    functionName: ncclTaskCollSorterEmpty
    functionSourceFile: /src/nccl/src/include/comm.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ncclTaskCollSorterEmpty(struct ncclTaskCollSorter* me)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nccl/src/include/comm.h:339,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - me
    argTypes:
    - struct ncclTaskCollSorter*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 337
    functionDepth: 0
    functionLinenumber: 337
    functionLinenumberEnd: 341
    functionName: ncclTaskCollSorterDequeueAll
    functionSourceFile: /src/nccl/src/include/comm.h
    functionUses: 1
    functionsReached:
    - memset
    linkageType: ''
    returnType: struct ncclTaskColl
    signature: struct ncclTaskColl * ncclTaskCollSorterDequeueAll(struct ncclTaskCollSorter*
      me)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncclIntruQueueMpscDequeueAll
      Src: /src/nccl/src/include/comm.h:662,1
    - Dst: struct ncclCommCallback*::fn
      Src: /src/nccl/src/include/comm.h:665,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/include/comm.h:669,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - comm
    - waitSome
    argTypes:
    - struct ncclComm*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 660
    functionDepth: 2
    functionLinenumber: 660
    functionLinenumberEnd: 671
    functionName: ncclCommPollCallbacks
    functionSourceFile: /src/nccl/src/include/comm.h
    functionUses: 2
    functionsReached:
    - struct ncclCommCallback*::fn
    - ncclIntruQueueMpscDequeueAll
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCommPollCallbacks(struct ncclComm* comm, bool waitSome)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CUDACHECK
      Src: /src/nccl/src/include/comm.h:676,1
    - Dst: cudaThreadExchangeStreamCaptureMode
      Src: /src/nccl/src/include/comm.h:676,1
    - Dst: ncclIntruQueueHead
      Src: /src/nccl/src/include/comm.h:678,1
    - Dst: cudaEventSynchronize
      Src: /src/nccl/src/include/comm.h:682,1
    - Dst: cudaEventQuery
      Src: /src/nccl/src/include/comm.h:685,1
    - Dst: ncclIntruQueueDequeue
      Src: /src/nccl/src/include/comm.h:688,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/include/comm.h:690,1
    - Dst: struct ncclCommEventCallback*::fn
      Src: /src/nccl/src/include/comm.h:690,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/include/comm.h:692,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/include/comm.h:696,1
    - Dst: cudaThreadExchangeStreamCaptureMode
      Src: /src/nccl/src/include/comm.h:696,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - comm
    - waitSome
    argTypes:
    - struct ncclComm*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 673
    functionDepth: 1
    functionLinenumber: 673
    functionLinenumberEnd: 698
    functionName: ncclCommPollEventCallbacks
    functionSourceFile: /src/nccl/src/include/comm.h
    functionUses: 3
    functionsReached:
    - NCCLCHECKGOTO
    - CUDACHECKGOTO
    - struct ncclCommEventCallback*::fn
    - CUDACHECK
    - cudaEventQuery
    - cudaThreadExchangeStreamCaptureMode
    - ncclIntruQueueDequeue
    - cudaEventSynchronize
    - ncclIntruQueueHead
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCommPollEventCallbacks(struct ncclComm *comm, bool
      waitSome)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_add_fetch
      Src: /src/nccl/src/include/comm.h:707,1
    - Dst: __atomic_store_n
      Src: /src/nccl/src/include/comm.h:710,1
    - Dst: __atomic_store_n
      Src: /src/nccl/src/include/comm.h:712,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - comm
    - x
    argTypes:
    - struct ncclComm*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 715
      start: 700
    functionDepth: 0
    functionLinenumber: 700
    functionLinenumberEnd: 715
    functionName: ncclCommIntraBarrierIn
    functionSourceFile: /src/nccl/src/include/comm.h
    functionUses: 1
    functionsReached:
    - __atomic_store_n
    - __atomic_add_fetch
    linkageType: ''
    returnType: void
    signature: void ncclCommIntraBarrierIn(struct ncclComm* comm, uint32_t x)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_load_n
      Src: /src/nccl/src/include/comm.h:722,1
    - Dst: clockNano
      Src: /src/nccl/src/include/comm.h:724,1
    - Dst: clockNano
      Src: /src/nccl/src/include/comm.h:727,1
    - Dst: sched_yield
      Src: /src/nccl/src/include/comm.h:727,1
    - Dst: __atomic_load_n
      Src: /src/nccl/src/include/comm.h:728,1
    - Dst: __atomic_thread_fence
      Src: /src/nccl/src/include/comm.h:731,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 718
    functionDepth: 1
    functionLinenumber: 718
    functionLinenumberEnd: 733
    functionName: ncclCommIntraBarrierOut
    functionSourceFile: /src/nccl/src/include/comm.h
    functionUses: 1
    functionsReached:
    - __atomic_load_n
    - clockNano
    - sched_yield
    - __atomic_thread_fence
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t ncclCommIntraBarrierOut(struct ncclComm* comm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<uint64_t>
      Src: /src/nccl/src/include/comm.h:743,1
    - Dst: ncclRedOp_t
      Src: /src/nccl/src/include/comm.h:750,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - comm
    - op
    argTypes:
    - ncclComm*
    - ncclRedOp_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 751
      start: 739
    functionDepth: 0
    functionLinenumber: 739
    functionLinenumberEnd: 751
    functionName: ncclUserRedOpMangle
    functionSourceFile: /src/nccl/src/include/comm.h
    functionUses: 3
    functionsReached:
    - ncclRedOp_t
    - reinterpret_cast<uint64_t>
    linkageType: ''
    returnType: ncclRedOp_t
    signature: ncclRedOp_t ncclUserRedOpMangle(ncclComm *comm, ncclRedOp_t op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: gettimeofday
      Src: /src/nccl/src/include/timer.h:16,1
    - Dst: __rdtsc
      Src: /src/nccl/src/include/timer.h:17,1
    - Dst: __rdtsc
      Src: /src/nccl/src/include/timer.h:20,1
    - Dst: gettimeofday
      Src: /src/nccl/src/include/timer.h:21,1
    - Dst: __rdtsc
      Src: /src/nccl/src/include/timer.h:22,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 25
    functionName: calibrate
    functionSourceFile: /src/nccl/src/include/timer.h
    functionUses: 0
    functionsReached:
    - __rdtsc
    - gettimeofday
    linkageType: ''
    returnType: void
    signature: void calibrate()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calibrate
      Src: /src/nccl/src/include/timer.h:27,1
    - Dst: __rdtsc
      Src: /src/nccl/src/include/timer.h:28,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 29
    functionName: gettime
    functionSourceFile: /src/nccl/src/include/timer.h
    functionUses: 2
    functionsReached:
    - __rdtsc
    - calibrate
    linkageType: ''
    returnType: double
    signature: double gettime()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - index
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 37
    functionName: TIME_START
    functionSourceFile: /src/nccl/src/include/timer.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TIME_START(index)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - index
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 41
    functionName: TIME_STOP
    functionSourceFile: /src/nccl/src/include/timer.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TIME_STOP(index)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - index
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: TIME_CANCEL
    functionSourceFile: /src/nccl/src/include/timer.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TIME_CANCEL(index)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 54
    functionName: TIME_PRINT
    functionSourceFile: /src/nccl/src/include/timer.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TIME_PRINT(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - index
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    functionName: TIME_START
    functionSourceFile: /src/nccl/src/include/timer.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TIME_START(index)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - index
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: TIME_STOP
    functionSourceFile: /src/nccl/src/include/timer.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TIME_STOP(index)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - index
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 58
    functionName: TIME_CANCEL
    functionSourceFile: /src/nccl/src/include/timer.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TIME_CANCEL(index)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 99
    functionName: NCCL_LL_FLAG
    functionSourceFile: /src/nccl/src/include/device.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NCCL_LL_FLAG(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 102
    functionName: NCCL_LL_FLAG
    functionSourceFile: /src/nccl/src/include/device.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NCCL_LL_FLAG(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: alignUp
      Src: /src/nccl/src/include/device.h:254,1
    - Dst: divUp
      Src: /src/nccl/src/include/device.h:254,1
    - Dst: min
      Src: /src/nccl/src/include/device.h:256,1
    - Dst: min
      Src: /src/nccl/src/include/device.h:257,1
    - Dst: std::min<size_t>
      Src: /src/nccl/src/include/device.h:259,1
    - Dst: std::min<size_t>
      Src: /src/nccl/src/include/device.h:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 5
    argNames:
    - nParts
    - part
    - bytes
    - partBeg
    - partEnd
    argTypes:
    - int
    - int
    - size_t
    - size_t*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 253
    functionDepth: 1
    functionLinenumber: 253
    functionLinenumberEnd: 262
    functionName: ncclP2pPartBounds
    functionSourceFile: /src/nccl/src/include/device.h
    functionUses: 2
    functionsReached:
    - min
    - alignUp
    - std::min<size_t>
    - divUp
    linkageType: ''
    returnType: __host__
    signature: __host__ ncclP2pPartBounds(int nParts, int part, size_t bytes, size_t*
      partBeg, size_t* partEnd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: countOneBits
      Src: /src/nccl/src/include/device.h:271,1
    - Dst: reverseBits
      Src: /src/nccl/src/include/device.h:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - nP2pChannels
    - base
    - part
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 269
    functionDepth: 3
    functionLinenumber: 269
    functionLinenumberEnd: 274
    functionName: ncclP2pChannelForPart
    functionSourceFile: /src/nccl/src/include/device.h
    functionUses: 3
    functionsReached:
    - countOneBits
    - reverseBits
    linkageType: ''
    returnType: __host__
    signature: __host__ ncclP2pChannelForPart(int nP2pChannels, int base, int part)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: countOneBits
      Src: /src/nccl/src/include/device.h:277,1
    - Dst: reverseBits
      Src: /src/nccl/src/include/device.h:279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - nP2pChannels
    - base
    - channel
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 275
    functionDepth: 3
    functionLinenumber: 275
    functionLinenumberEnd: 280
    functionName: ncclP2pChannelToPart
    functionSourceFile: /src/nccl/src/include/device.h
    functionUses: 1
    functionsReached:
    - countOneBits
    - reverseBits
    linkageType: ''
    returnType: __device__
    signature: __device__ ncclP2pChannelToPart(int nP2pChannels, int base, int channel)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - proto
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 319
    functionName: ncclProtoGrainSize
    functionSourceFile: /src/nccl/src/include/device.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: __host__
    signature: __host__ ncclProtoGrainSize(int proto)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ncclProtoGrainSize
      Src: /src/nccl/src/include/device.h:326,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 8
    argNames:
    - work
    - channelId
    - proto
    - eltSize
    - count
    - partOffset
    - partCount
    - chunkCount
    argTypes:
    - struct ncclDevWorkColl*
    - uint32_t
    - int
    - int
    - Int*
    - Int*
    - Int*
    - Int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 347
      start: 322
    functionDepth: 1
    functionLinenumber: 322
    functionLinenumberEnd: 347
    functionName: ncclCollCbdPart
    functionSourceFile: /src/nccl/src/include/device.h
    functionUses: 20
    functionsReached:
    - ncclProtoGrainSize
    linkageType: ''
    returnType: __host__
    signature: "__host__ ncclCollCbdPart(\n    struct ncclDevWorkColl* work, uint32_t
      channelId, int proto, int eltSize,\n    Int* count, Int* partOffset, Int* partCount,
      Int* chunkCount\n  )"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - enum ncclDevWorkType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 362
    functionDepth: 0
    functionLinenumber: 362
    functionLinenumberEnd: 365
    functionName: ncclDevWorkSize
    functionSourceFile: /src/nccl/src/include/device.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t ncclDevWorkSize(enum ncclDevWorkType type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 460
    functionDepth: 0
    functionLinenumber: 460
    functionLinenumberEnd: 463
    functionName: ncclMaxKernelArgsSize
    functionSourceFile: /src/nccl/src/include/device.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: __host__
    signature: __host__ ncclMaxKernelArgsSize(/*int cudaDriver, */int cudaArch=NCCL_CUDA_ARCH)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 477
    functionDepth: 0
    functionLinenumber: 477
    functionLinenumberEnd: 477
    functionName: min_constexpr
    functionSourceFile: /src/nccl/src/include/device.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __host__
    signature: __host__ min_constexpr(T a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: min_constexpr
      Src: /src/nccl/src/include/device.h:480,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 479
    functionDepth: 1
    functionLinenumber: 479
    functionLinenumberEnd: 481
    functionName: min_constexpr
    functionSourceFile: /src/nccl/src/include/device.h
    functionUses: 1
    functionsReached:
    - min_constexpr
    linkageType: ''
    returnType: __host__
    signature: __host__ min_constexpr(T a, T b, Ts ...c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - a
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 484
      start: 484
    functionDepth: 0
    functionLinenumber: 484
    functionLinenumberEnd: 484
    functionName: max_constexpr
    functionSourceFile: /src/nccl/src/include/device.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __host__
    signature: __host__ max_constexpr(T a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: max_constexpr
      Src: /src/nccl/src/include/device.h:487,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - T
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 486
    functionDepth: 1
    functionLinenumber: 486
    functionLinenumberEnd: 488
    functionName: max_constexpr
    functionSourceFile: /src/nccl/src/include/device.h
    functionUses: 1
    functionsReached:
    - max_constexpr
    linkageType: ''
    returnType: __host__
    signature: __host__ max_constexpr(T a, T b, Ts ...c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: min_constexpr
      Src: /src/nccl/src/include/device.h:491,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - argsBytes
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 490
    functionDepth: 1
    functionLinenumber: 490
    functionLinenumberEnd: 492
    functionName: ncclDevMaxChannelsForArgsBytes
    functionSourceFile: /src/nccl/src/include/device.h
    functionUses: 0
    functionsReached:
    - min_constexpr
    linkageType: ''
    returnType: int
    signature: int ncclDevMaxChannelsForArgsBytes(size_t argsBytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: min_constexpr
      Src: /src/nccl/src/include/device.h:499,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - bytePerPack
    - insns
    - bytes
    argTypes:
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 498
    functionDepth: 1
    functionLinenumber: 498
    functionLinenumberEnd: 500
    functionName: ncclCalcUnroll
    functionSourceFile: /src/nccl/src/include/device.h
    functionUses: 0
    functionsReached:
    - min_constexpr
    linkageType: ''
    returnType: __host__
    signature: __host__ ncclCalcUnroll(int bytePerPack, int insns, int bytes)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 507
    functionDepth: 0
    functionLinenumber: 507
    functionLinenumberEnd: 510
    functionName: ncclCollUnroll
    functionSourceFile: /src/nccl/src/include/device.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __host__
    signature: __host__ ncclCollUnroll(int cudaArch = NCCL_CUDA_ARCH)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 512
    functionDepth: 0
    functionLinenumber: 512
    functionLinenumberEnd: 512
    functionName: ncclNvlsUnrollBytes
    functionSourceFile: /src/nccl/src/include/device.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __host__
    signature: __host__ ncclNvlsUnrollBytes(int cudaArch = NCCL_CUDA_ARCH)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 513
    functionDepth: 0
    functionLinenumber: 513
    functionLinenumberEnd: 513
    functionName: ncclNvlsUnrollInsns
    functionSourceFile: /src/nccl/src/include/device.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __host__
    signature: __host__ ncclNvlsUnrollInsns(int cudaArch = NCCL_CUDA_ARCH)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclCalcUnroll
      Src: /src/nccl/src/include/device.h:516,1
    - Dst: ncclNvlsUnrollInsns
      Src: /src/nccl/src/include/device.h:516,1
    - Dst: ncclNvlsUnrollBytes
      Src: /src/nccl/src/include/device.h:516,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bytePerPack
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 515
    functionDepth: 2
    functionLinenumber: 515
    functionLinenumberEnd: 517
    functionName: ncclNvlsUnroll
    functionSourceFile: /src/nccl/src/include/device.h
    functionUses: 0
    functionsReached:
    - ncclCalcUnroll
    - ncclNvlsUnrollInsns
    - ncclNvlsUnrollBytes
    linkageType: ''
    returnType: __host__
    signature: __host__ ncclNvlsUnroll(int bytePerPack, int cudaArch = NCCL_CUDA_ARCH)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: max_constexpr
      Src: /src/nccl/src/include/device.h:521,1
    - Dst: ncclCollUnroll
      Src: /src/nccl/src/include/device.h:524,1
    - Dst: ncclNvlsUnrollBytes
      Src: /src/nccl/src/include/device.h:526,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 520
    functionDepth: 1
    functionLinenumber: 520
    functionLinenumberEnd: 528
    functionName: ncclShmemScratchWarpSize
    functionSourceFile: /src/nccl/src/include/device.h
    functionUses: 2
    functionsReached:
    - max_constexpr
    - ncclNvlsUnrollBytes
    - ncclCollUnroll
    linkageType: ''
    returnType: __host__
    signature: __host__ ncclShmemScratchWarpSize(int cudaArch = NCCL_CUDA_ARCH)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclShmemScratchWarpSize
      Src: /src/nccl/src/include/device.h:532,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 531
    functionDepth: 2
    functionLinenumber: 531
    functionLinenumberEnd: 533
    functionName: ncclShmemDynamicSize
    functionSourceFile: /src/nccl/src/include/device.h
    functionUses: 2
    functionsReached:
    - ncclShmemScratchWarpSize
    linkageType: ''
    returnType: __host__
    signature: __host__ ncclShmemDynamicSize(int cudaArch = NCCL_CUDA_ARCH)
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 2
    argNames:
    - devRedOp
    - type
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 548
    functionDepth: 0
    functionLinenumber: 548
    functionLinenumberEnd: 563
    functionName: ncclNvlsSupported
    functionSourceFile: /src/nccl/src/include/device.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ncclNvlsSupported(int devRedOp, int type)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 37
    argCount: 5
    argNames:
    - coll
    - devRedOp
    - type
    - algo
    - proto
    argTypes:
    - int
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 619
      start: 566
    functionDepth: 0
    functionLinenumber: 566
    functionLinenumberEnd: 619
    functionName: ncclDevFuncId
    functionSourceFile: /src/nccl/src/include/device.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ncclDevFuncId(int coll, int devRedOp, int type, int algo, int proto)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 621
    functionDepth: 0
    functionLinenumber: 621
    functionLinenumberEnd: 621
    functionName: ncclDevFuncId_P2p
    functionSourceFile: /src/nccl/src/include/device.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ncclDevFuncId_P2p()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - symbol
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 27
    functionName: CUPFN
    functionSourceFile: /src/nccl/src/include/cudawrap.h
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CUPFN(symbol)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cmd
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 38
    functionName: CUCHECK
    functionSourceFile: /src/nccl/src/include/cudawrap.h
    functionUses: 29
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CUCHECK(cmd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cmd
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 42
    functionName: CUCALL
    functionSourceFile: /src/nccl/src/include/cudawrap.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CUCALL(cmd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - cmd
    - ','
    - res
    - ','
    - label
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 53
    functionName: CUCHECKGOTO
    functionSourceFile: /src/nccl/src/include/cudawrap.h
    functionUses: 22
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CUCHECKGOTO(cmd, res, label)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - cmd
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 63
    functionName: CUCHECKIGNORE
    functionSourceFile: /src/nccl/src/include/cudawrap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CUCHECKIGNORE(cmd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - cmd
    - ','
    - args
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 72
    functionName: CUCHECKTHREAD
    functionSourceFile: /src/nccl/src/include/cudawrap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CUCHECKTHREAD(cmd, args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - symbol
    - ','
    - version
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 74
    functionName: DECLARE_CUDA_PFN_EXTERN
    functionSourceFile: /src/nccl/src/include/cudawrap.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECLARE_CUDA_PFN_EXTERN(symbol,version)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_load_n
      Src: /src/nccl/src/include/cudawrap.h:125,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/include/cudawrap.h:127,1
    - Dst: cudaDriverGetVersion
      Src: /src/nccl/src/include/cudawrap.h:127,1
    - Dst: __atomic_store_n
      Src: /src/nccl/src/include/cudawrap.h:128,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - driver
    argTypes:
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 132
    functionName: ncclCudaDriverVersion
    functionSourceFile: /src/nccl/src/include/cudawrap.h
    functionUses: 2
    functionsReached:
    - __atomic_load_n
    - __atomic_store_n
    - cudaDriverGetVersion
    - CUDACHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCudaDriverVersion(int* driver)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - schemaId
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 22
    functionName: NVTX_PAYLOAD_NESTED
    functionSourceFile: /src/nccl/src/include/nvtx3/nvToolsExtPayloadHelper.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NVTX_PAYLOAD_NESTED(schemaId)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - struct_id
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 66
    functionName: NVTX_DEFINE_SCHEMA_FOR_STRUCT
    functionSourceFile: /src/nccl/src/include/nvtx3/nvToolsExtPayloadHelper.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NVTX_DEFINE_SCHEMA_FOR_STRUCT(struct_id, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - struct_id
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 110
    functionName: NVTX_DEFINE_STRUCT_WITH_SCHEMA
    functionSourceFile: /src/nccl/src/include/nvtx3/nvToolsExtPayloadHelper.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NVTX_DEFINE_STRUCT_WITH_SCHEMA(struct_id, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - domain
    - ','
    - struct_id
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 124
    functionName: NVTX_DEFINE_STRUCT_WITH_SCHEMA_AND_REGISTER
    functionSourceFile: /src/nccl/src/include/nvtx3/nvToolsExtPayloadHelper.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NVTX_DEFINE_STRUCT_WITH_SCHEMA_AND_REGISTER(domain, struct_id, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - domain
    - ','
    - struct_id
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 137
    functionName: NVTX_DEFINE_SCHEMA_FOR_STRUCT_AND_REGISTER
    functionSourceFile: /src/nccl/src/include/nvtx3/nvToolsExtPayloadHelper.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NVTX_DEFINE_SCHEMA_FOR_STRUCT_AND_REGISTER(domain, struct_id, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - struct_id
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 155
    functionName: NVTX_DEFINE_STRUCT
    functionSourceFile: /src/nccl/src/include/nvtx3/nvToolsExtPayloadHelper.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NVTX_DEFINE_STRUCT(struct_id, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - domain
    - ','
    - struct_id
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 170
    functionName: NVTX_PAYLOAD_SCHEMA_REGISTER
    functionSourceFile: /src/nccl/src/include/nvtx3/nvToolsExtPayloadHelper.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NVTX_PAYLOAD_SCHEMA_REGISTER(domain, struct_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - F
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 157
    functionName: NVTX_PAYLOAD_ENTRY_FLAG_ARRAY_TYPE
    functionSourceFile: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NVTX_PAYLOAD_ENTRY_FLAG_ARRAY_TYPE(F)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 993
      start: 991
    functionDepth: 0
    functionLinenumber: 991
    functionLinenumberEnd: 993
    functionName: NVTX_POINTER_AS_PAYLOAD_ULLVALUE
    functionSourceFile: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NVTX_POINTER_AS_PAYLOAD_ULLVALUE(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - p
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 995
      start: 994
    functionDepth: 0
    functionLinenumber: 994
    functionLinenumberEnd: 995
    functionName: NVTX_POINTER_AS_PAYLOAD_ULLVALUE
    functionSourceFile: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NVTX_POINTER_AS_PAYLOAD_ULLVALUE(p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - evtAttr
    - ','
    - pldata_addr
    - ','
    - schema_id
    - ','
    - pl_addr
    - ','
    - sz
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1015
      start: 1008
    functionDepth: 0
    functionLinenumber: 1008
    functionLinenumberEnd: 1015
    functionName: NVTX_PAYLOAD_EVTATTR_SET_DATA
    functionSourceFile: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NVTX_PAYLOAD_EVTATTR_SET_DATA(evtAttr, pldata_addr, schema_id, pl_addr,
      sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - evtAttr
    - ','
    - pldata
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1028
      start: 1024
    functionDepth: 0
    functionLinenumber: 1024
    functionLinenumberEnd: 1028
    functionName: NVTX_PAYLOAD_EVTATTR_SET_MULTIPLE
    functionSourceFile: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NVTX_PAYLOAD_EVTATTR_SET_MULTIPLE(evtAttr, pldata)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - evtAttr
    - ','
    - schema_id
    - ','
    - pl_addr
    - ','
    - sz
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1043
      start: 1036
    functionDepth: 0
    functionLinenumber: 1036
    functionLinenumberEnd: 1043
    functionName: NVTX_PAYLOAD_EVTATTR_SET
    functionSourceFile: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NVTX_PAYLOAD_EVTATTR_SET(evtAttr, schema_id, pl_addr, sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - domain
    - ','
    - evtAttr
    - ','
    - schemaId
    - ','
    - plAddr
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1060
      start: 1055
    functionDepth: 0
    functionLinenumber: 1055
    functionLinenumberEnd: 1060
    functionName: nvtxPayloadRangePush
    functionSourceFile: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: nvtxPayloadRangePush(domain, evtAttr, schemaId, plAddr, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - domain
    - ','
    - evtAttr
    - ','
    - schemaId
    - ','
    - plAddr
    - ','
    - size
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1077
      start: 1072
    functionDepth: 0
    functionLinenumber: 1072
    functionLinenumberEnd: 1077
    functionName: nvtxPayloadMark
    functionSourceFile: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: nvtxPayloadMark(domain, evtAttr, schemaId, plAddr, size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - NAME
    - ','
    - VERSION
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 188
    functionName: NVTX_VERSIONED_IDENTIFIER_L3
    functionSourceFile: /src/nccl/src/include/nvtx3/nvToolsExt.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NVTX_VERSIONED_IDENTIFIER_L3(NAME, VERSION)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - NAME
    - ','
    - VERSION
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 189
    functionName: NVTX_VERSIONED_IDENTIFIER_L2
    functionSourceFile: /src/nccl/src/include/nvtx3/nvToolsExt.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NVTX_VERSIONED_IDENTIFIER_L2(NAME, VERSION)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - NAME
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 190
    functionName: NVTX_VERSIONED_IDENTIFIER
    functionSourceFile: /src/nccl/src/include/nvtx3/nvToolsExt.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NVTX_VERSIONED_IDENTIFIER(NAME)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - CLASS
    - ','
    - INDEX
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 942
      start: 941
    functionDepth: 0
    functionLinenumber: 941
    functionLinenumberEnd: 942
    functionName: NVTX_RESOURCE_MAKE_TYPE
    functionSourceFile: /src/nccl/src/include/nvtx3/nvToolsExt.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NVTX_RESOURCE_MAKE_TYPE(CLASS, INDEX)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - A
    - ','
    - B
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 600
      start: 599
    functionDepth: 0
    functionLinenumber: 599
    functionLinenumberEnd: 600
    functionName: NVTX3_CONCAT
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NVTX3_CONCAT(A, B)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - VERSION
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 600
    functionDepth: 0
    functionLinenumber: 600
    functionLinenumberEnd: 601
    functionName: NVTX3_NAMESPACE_FOR
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NVTX3_NAMESPACE_FOR(VERSION)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - condition
    - ','
    - message
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 635
      start: 634
    functionDepth: 0
    functionLinenumber: 634
    functionLinenumberEnd: 635
    functionName: NVTX3_STATIC_ASSERT
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NVTX3_STATIC_ASSERT(condition, message)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NVTX3_STATIC_ASSERT
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:830,1
    - Dst: NVTX3_STATIC_ASSERT
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:848,1
    - Dst: nvtxDomainCreateA
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:880,1
    - Dst: nvtxDomainCreateW
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:890,1
    - Dst: c_str
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:900,1
    - Dst: c_str
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:910,1
    - Dst: from_bytes_msb_to_lsb
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:1064,1
    - Dst: from_bytes_msb_to_lsb
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:1077,1
    - Dst: NVTX3_STATIC_ASSERT
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:1284,1
    - Dst: NVTX3_STATIC_ASSERT
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:1288,1
    - Dst: NVTX3_STATIC_ASSERT
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:1306,1
    - Dst: NVTX3_STATIC_ASSERT
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:1309,1
    - Dst: nvtxDomainNameCategoryA
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:1342,1
    - Dst: domain::get<D>
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:1342,1
    - Dst: get_id
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:1342,1
    - Dst: nvtxDomainNameCategoryW
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:1362,1
    - Dst: domain::get<D>
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:1362,1
    - Dst: get_id
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:1362,1
    - Dst: NVTX3_STATIC_ASSERT
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:1480,1
    - Dst: NVTX3_STATIC_ASSERT
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:1498,1
    - Dst: nvtxDomainRegisterStringA
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:1526,1
    - Dst: domain::get<D>
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:1526,1
    - Dst: c_str
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:1542,1
    - Dst: nvtxDomainRegisterStringW
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:1556,1
    - Dst: domain::get<D>
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:1556,1
    - Dst: c_str
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:1572,1
    - Dst: c_str
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:1657,1
    - Dst: c_str
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:1684,1
    - Dst: get_handle
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:1708,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 86
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1750
      start: 654
    functionDepth: 1
    functionLinenumber: 654
    functionLinenumberEnd: 1750
    functionName: nvtx3::NVTX3_VERSION_NAMESPACE
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached:
    - get_id
    - nvtxDomainNameCategoryW
    - nvtxDomainNameCategoryA
    - nvtxDomainCreateW
    - nvtxDomainRegisterStringW
    - nvtxDomainCreateA
    - from_bytes_msb_to_lsb
    - c_str
    - get_handle
    - domain::get<D>
    - nvtxDomainRegisterStringA
    - NVTX3_STATIC_ASSERT
    linkageType: ''
    returnType: NVTX3_INLINE_IF_REQUESTED
    signature: NVTX3_INLINE_IF_REQUESTED NVTX3_VERSION_NAMESPACE
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 745
      start: 745
    functionDepth: 0
    functionLinenumber: 745
    functionLinenumberEnd: 745
    functionName: nvtx3::domain::domain
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void domain(domain const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 746
      start: 746
    functionDepth: 0
    functionLinenumber: 746
    functionLinenumberEnd: 746
    functionName: '& operator=(domain const&)'
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: domain
    signature: domain & operator=(domain const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 747
    functionDepth: 0
    functionLinenumber: 747
    functionLinenumberEnd: 747
    functionName: nvtx3::domain::domain
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void domain(domain&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 748
      start: 748
    functionDepth: 0
    functionLinenumber: 748
    functionLinenumberEnd: 748
    functionName: '& operator=(domain&&)'
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: domain
    signature: domain & operator=(domain&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 817
      start: 813
    functionDepth: 0
    functionLinenumber: 813
    functionLinenumberEnd: 817
    functionName: nvtx3::domain::get
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: domain
    signature: domain & get() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NVTX3_STATIC_ASSERT
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:830,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 836
      start: 828
    functionDepth: 1
    functionLinenumber: 828
    functionLinenumberEnd: 836
    functionName: nvtx3::domain::get
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached:
    - NVTX3_STATIC_ASSERT
    linkageType: ''
    returnType: domain
    signature: domain & get() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NVTX3_STATIC_ASSERT
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:848,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 853
      start: 846
    functionDepth: 1
    functionLinenumber: 846
    functionLinenumberEnd: 853
    functionName: nvtx3::domain::get
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached:
    - NVTX3_STATIC_ASSERT
    linkageType: ''
    returnType: domain
    signature: domain & get() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 860
      start: 856
    functionDepth: 0
    functionLinenumber: 856
    functionLinenumberEnd: 860
    functionName: nvtx3::domain::get
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: domain
    signature: domain & get() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 869
    functionDepth: 0
    functionLinenumber: 869
    functionLinenumberEnd: 869
    functionName: operator nvtxDomainHandle_t() const noexcept
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator nvtxDomainHandle_t() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nvtxDomainCreateA
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:880,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 880
      start: 880
    functionDepth: 1
    functionLinenumber: 880
    functionLinenumberEnd: 880
    functionName: nvtx3::domain::domain
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached:
    - nvtxDomainCreateA
    linkageType: ''
    returnType: void
    signature: void domain(char const* name) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nvtxDomainCreateW
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:890,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - name
    argTypes:
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 890
      start: 890
    functionDepth: 1
    functionLinenumber: 890
    functionLinenumberEnd: 890
    functionName: nvtx3::domain::domain
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached:
    - nvtxDomainCreateW
    linkageType: ''
    returnType: void
    signature: void domain(wchar_t const* name) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: c_str
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:900,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 900
      start: 900
    functionDepth: 0
    functionLinenumber: 900
    functionLinenumberEnd: 900
    functionName: nvtx3::domain::domain
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached:
    - c_str
    linkageType: ''
    returnType: void
    signature: void domain(std::string const& name) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: c_str
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:910,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' name'
    argTypes:
    - std::wstring
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 910
      start: 910
    functionDepth: 0
    functionLinenumber: 910
    functionLinenumberEnd: 910
    functionName: nvtx3::domain::domain
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached:
    - c_str
    linkageType: ''
    returnType: void
    signature: void domain(std::wstring const& name) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 920
      start: 920
    functionDepth: 0
    functionLinenumber: 920
    functionLinenumberEnd: 920
    functionName: nvtx3::domain::domain
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void domain() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 936
      start: 936
    functionDepth: 0
    functionLinenumber: 936
    functionLinenumberEnd: 936
    functionName: ~domain()
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~domain()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 960
      start: 956
    functionDepth: 0
    functionLinenumber: 956
    functionLinenumberEnd: 960
    functionName: '& domain::get<domain::global>() noexcept'
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: domain
    signature: domain & domain::get<domain::global>() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - red_
    - green_
    - blue_
    argTypes:
    - component_type
    - component_type
    - component_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 987
      start: 981
    functionDepth: 0
    functionLinenumber: 981
    functionLinenumberEnd: 987
    functionName: nvtx3::rgb
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void rgb(\n    component_type red_,\n    component_type green_,\n
      \   component_type blue_) noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - alpha_
    - red_
    - green_
    - blue_
    argTypes:
    - component_type
    - component_type
    - component_type
    - component_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1019
      start: 1012
    functionDepth: 0
    functionLinenumber: 1012
    functionLinenumberEnd: 1019
    functionName: nvtx3::argb
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void argb(\n    component_type alpha_,\n    component_type red_,\n
      \   component_type green_,\n    component_type blue_) noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - hex_code
    argTypes:
    - value_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1055
      start: 1055
    functionDepth: 0
    functionLinenumber: 1055
    functionLinenumberEnd: 1055
    functionName: nvtx3::color::color
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void color(value_type hex_code) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nvtx3::color::from_bytes_msb_to_lsb
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:1064,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - argb_
    argTypes:
    - argb
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1066
      start: 1063
    functionDepth: 1
    functionLinenumber: 1063
    functionLinenumberEnd: 1066
    functionName: nvtx3::color::color
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached:
    - nvtx3::color::from_bytes_msb_to_lsb
    linkageType: ''
    returnType: void
    signature: void color(argb argb_) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nvtx3::color::from_bytes_msb_to_lsb
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:1077,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - rgb_
    argTypes:
    - rgb
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1079
      start: 1076
    functionDepth: 1
    functionLinenumber: 1076
    functionLinenumberEnd: 1079
    functionName: nvtx3::color::color
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached:
    - nvtx3::color::from_bytes_msb_to_lsb
    linkageType: ''
    returnType: void
    signature: void color(rgb rgb_) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1085
      start: 1085
    functionDepth: 0
    functionLinenumber: 1085
    functionLinenumberEnd: 1085
    functionName: nvtx3::color::get_value
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: value_type
    signature: value_type get_value() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1091
      start: 1091
    functionDepth: 0
    functionLinenumber: 1091
    functionLinenumberEnd: 1091
    functionName: nvtx3::color::get_type
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: nvtxColorType_t
    signature: nvtxColorType_t get_type() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1093
      start: 1093
    functionDepth: 0
    functionLinenumber: 1093
    functionLinenumberEnd: 1093
    functionName: nvtx3::color::color
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void color()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1094
      start: 1094
    functionDepth: 0
    functionLinenumber: 1094
    functionLinenumberEnd: 1094
    functionName: ~color()
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~color()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1095
      start: 1095
    functionDepth: 0
    functionLinenumber: 1095
    functionLinenumberEnd: 1095
    functionName: nvtx3::color::color
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void color(color const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1096
      start: 1096
    functionDepth: 0
    functionLinenumber: 1096
    functionLinenumberEnd: 1096
    functionName: '& operator=(color const&)'
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: color
    signature: color & operator=(color const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1097
      start: 1097
    functionDepth: 0
    functionLinenumber: 1097
    functionLinenumberEnd: 1097
    functionName: nvtx3::color::color
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void color(color&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1098
      start: 1098
    functionDepth: 0
    functionLinenumber: 1098
    functionLinenumberEnd: 1098
    functionName: '& operator=(color&&)'
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: color
    signature: color & operator=(color&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - byte3
    - byte2
    - byte1
    - byte0
    argTypes:
    - uint8_t
    - uint8_t
    - uint8_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1113
      start: 1106
    functionDepth: 0
    functionLinenumber: 1106
    functionLinenumberEnd: 1113
    functionName: nvtx3::color::from_bytes_msb_to_lsb
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: value_type
    signature: "value_type from_bytes_msb_to_lsb(\n    uint8_t byte3,\n    uint8_t
      byte2,\n    uint8_t byte1,\n    uint8_t byte0) noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - id
    argTypes:
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1154
      start: 1154
    functionDepth: 0
    functionLinenumber: 1154
    functionLinenumberEnd: 1154
    functionName: nvtx3::category::category
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void category(id_type id) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1160
      start: 1160
    functionDepth: 0
    functionLinenumber: 1160
    functionLinenumberEnd: 1160
    functionName: nvtx3::category::get_id
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: id_type
    signature: id_type get_id() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1162
      start: 1162
    functionDepth: 0
    functionLinenumber: 1162
    functionLinenumberEnd: 1162
    functionName: nvtx3::category::category
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void category()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1163
      start: 1163
    functionDepth: 0
    functionLinenumber: 1163
    functionLinenumberEnd: 1163
    functionName: ~category()
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~category()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1164
      start: 1164
    functionDepth: 0
    functionLinenumber: 1164
    functionLinenumberEnd: 1164
    functionName: nvtx3::category::category
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void category(category const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1165
      start: 1165
    functionDepth: 0
    functionLinenumber: 1165
    functionLinenumberEnd: 1165
    functionName: '& operator=(category const&)'
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: category
    signature: category & operator=(category const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1166
      start: 1166
    functionDepth: 0
    functionLinenumber: 1166
    functionLinenumberEnd: 1166
    functionName: nvtx3::category::category
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void category(category&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1167
      start: 1167
    functionDepth: 0
    functionLinenumber: 1167
    functionLinenumberEnd: 1167
    functionName: '& operator=(category&&)'
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: category
    signature: category & operator=(category&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1269
      start: 1265
    functionDepth: 0
    functionLinenumber: 1265
    functionLinenumberEnd: 1269
    functionName: nvtx3::named_category_in::get
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: named_category_in
    signature: named_category_in & get() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NVTX3_STATIC_ASSERT
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:1284,1
    - Dst: NVTX3_STATIC_ASSERT
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:1288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1293
      start: 1282
    functionDepth: 1
    functionLinenumber: 1282
    functionLinenumberEnd: 1293
    functionName: nvtx3::named_category_in::get
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached:
    - NVTX3_STATIC_ASSERT
    linkageType: ''
    returnType: named_category_in
    signature: named_category_in & get() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NVTX3_STATIC_ASSERT
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:1306,1
    - Dst: NVTX3_STATIC_ASSERT
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:1309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1314
      start: 1304
    functionDepth: 1
    functionLinenumber: 1304
    functionLinenumberEnd: 1314
    functionName: nvtx3::named_category_in::get
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached:
    - NVTX3_STATIC_ASSERT
    linkageType: ''
    returnType: named_category_in
    signature: named_category_in & get() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1321
      start: 1317
    functionDepth: 0
    functionLinenumber: 1317
    functionLinenumberEnd: 1321
    functionName: nvtx3::named_category_in::get
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: named_category_in
    signature: named_category_in & get() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1326
      start: 1326
    functionDepth: 0
    functionLinenumber: 1326
    functionLinenumberEnd: 1326
    functionName: nvtx3::named_category_in::named_category_in
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void named_category_in() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nvtxDomainNameCategoryA
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:1342,1
    - Dst: domain::get<D>
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:1342,1
    - Dst: get_id
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:1342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - id
    - name
    argTypes:
    - id_type
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1347
      start: 1339
    functionDepth: 1
    functionLinenumber: 1339
    functionLinenumberEnd: 1347
    functionName: nvtx3::named_category_in::named_category_in
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached:
    - domain::get<D>
    - get_id
    - nvtxDomainNameCategoryA
    linkageType: ''
    returnType: void
    signature: void named_category_in(id_type id, char const* name) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nvtxDomainNameCategoryW
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:1362,1
    - Dst: domain::get<D>
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:1362,1
    - Dst: get_id
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:1362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - id
    - name
    argTypes:
    - id_type
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1367
      start: 1359
    functionDepth: 1
    functionLinenumber: 1359
    functionLinenumberEnd: 1367
    functionName: nvtx3::named_category_in::named_category_in
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached:
    - domain::get<D>
    - get_id
    - nvtxDomainNameCategoryW
    linkageType: ''
    returnType: void
    signature: void named_category_in(id_type id, wchar_t const* name) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1467
      start: 1463
    functionDepth: 0
    functionLinenumber: 1463
    functionLinenumberEnd: 1467
    functionName: nvtx3::registered_string_in::get
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: registered_string_in
    signature: registered_string_in & get() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NVTX3_STATIC_ASSERT
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:1480,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1486
      start: 1478
    functionDepth: 1
    functionLinenumber: 1478
    functionLinenumberEnd: 1486
    functionName: nvtx3::registered_string_in::get
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached:
    - NVTX3_STATIC_ASSERT
    linkageType: ''
    returnType: registered_string_in
    signature: registered_string_in & get() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NVTX3_STATIC_ASSERT
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:1498,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1504
      start: 1496
    functionDepth: 1
    functionLinenumber: 1496
    functionLinenumberEnd: 1504
    functionName: nvtx3::registered_string_in::get
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached:
    - NVTX3_STATIC_ASSERT
    linkageType: ''
    returnType: registered_string_in
    signature: registered_string_in & get() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1511
      start: 1507
    functionDepth: 0
    functionLinenumber: 1507
    functionLinenumberEnd: 1511
    functionName: nvtx3::registered_string_in::get
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: registered_string_in
    signature: registered_string_in & get() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nvtxDomainRegisterStringA
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:1526,1
    - Dst: domain::get<D>
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:1526,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1528
      start: 1525
    functionDepth: 1
    functionLinenumber: 1525
    functionLinenumberEnd: 1528
    functionName: nvtx3::registered_string_in::registered_string_in
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached:
    - domain::get<D>
    - nvtxDomainRegisterStringA
    linkageType: ''
    returnType: void
    signature: void registered_string_in(char const* msg) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: c_str
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:1542,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' msg'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1542
      start: 1541
    functionDepth: 0
    functionLinenumber: 1541
    functionLinenumberEnd: 1542
    functionName: nvtx3::registered_string_in::registered_string_in
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached:
    - c_str
    linkageType: ''
    returnType: void
    signature: void registered_string_in(std::string const& msg) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nvtxDomainRegisterStringW
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:1556,1
    - Dst: domain::get<D>
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:1556,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - msg
    argTypes:
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1558
      start: 1555
    functionDepth: 1
    functionLinenumber: 1555
    functionLinenumberEnd: 1558
    functionName: nvtx3::registered_string_in::registered_string_in
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached:
    - nvtxDomainRegisterStringW
    - domain::get<D>
    linkageType: ''
    returnType: void
    signature: void registered_string_in(wchar_t const* msg) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: c_str
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:1572,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' msg'
    argTypes:
    - std::wstring
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1572
      start: 1571
    functionDepth: 0
    functionLinenumber: 1571
    functionLinenumberEnd: 1572
    functionName: nvtx3::registered_string_in::registered_string_in
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached:
    - c_str
    linkageType: ''
    returnType: void
    signature: void registered_string_in(std::wstring const& msg) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1578
      start: 1578
    functionDepth: 0
    functionLinenumber: 1578
    functionLinenumberEnd: 1578
    functionName: nvtx3::registered_string_in::get_handle
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: nvtxStringHandle_t
    signature: nvtxStringHandle_t get_handle() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1582
      start: 1582
    functionDepth: 0
    functionLinenumber: 1582
    functionLinenumberEnd: 1582
    functionName: nvtx3::registered_string_in::registered_string_in
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void registered_string_in() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1584
      start: 1584
    functionDepth: 0
    functionLinenumber: 1584
    functionLinenumberEnd: 1584
    functionName: ~registered_string_in()
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~registered_string_in()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1585
      start: 1585
    functionDepth: 0
    functionLinenumber: 1585
    functionLinenumberEnd: 1585
    functionName: nvtx3::registered_string_in::registered_string_in
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void registered_string_in(registered_string_in const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1586
      start: 1586
    functionDepth: 0
    functionLinenumber: 1586
    functionLinenumberEnd: 1586
    functionName: '& operator=(registered_string_in const&)'
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: registered_string_in
    signature: registered_string_in & operator=(registered_string_in const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1587
      start: 1587
    functionDepth: 0
    functionLinenumber: 1587
    functionLinenumberEnd: 1587
    functionName: nvtx3::registered_string_in::registered_string_in
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void registered_string_in(registered_string_in&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1588
      start: 1588
    functionDepth: 0
    functionLinenumber: 1588
    functionLinenumberEnd: 1588
    functionName: '& operator=(registered_string_in&&)'
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: registered_string_in
    signature: registered_string_in & operator=(registered_string_in&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1650
      start: 1647
    functionDepth: 0
    functionLinenumber: 1647
    functionLinenumberEnd: 1650
    functionName: nvtx3::message::message
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NVTX3_CONSTEXPR_IF_CPP14
    signature: NVTX3_CONSTEXPR_IF_CPP14 message(char const* msg) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: c_str
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:1657,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' msg'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1657
      start: 1657
    functionDepth: 0
    functionLinenumber: 1657
    functionLinenumberEnd: 1657
    functionName: nvtx3::message::message
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached:
    - c_str
    linkageType: ''
    returnType: void
    signature: void message(std::string const& msg) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1667
      start: 1667
    functionDepth: 0
    functionLinenumber: 1667
    functionLinenumberEnd: 1667
    functionName: nvtx3::message::message
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void message(std::string&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1677
      start: 1674
    functionDepth: 0
    functionLinenumber: 1674
    functionLinenumberEnd: 1677
    functionName: nvtx3::message::message
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NVTX3_CONSTEXPR_IF_CPP14
    signature: NVTX3_CONSTEXPR_IF_CPP14 message(wchar_t const* msg) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: c_str
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:1684,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' msg'
    argTypes:
    - std::wstring
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1684
      start: 1684
    functionDepth: 0
    functionLinenumber: 1684
    functionLinenumberEnd: 1684
    functionName: nvtx3::message::message
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached:
    - c_str
    linkageType: ''
    returnType: void
    signature: void message(std::wstring const& msg) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1694
      start: 1694
    functionDepth: 0
    functionLinenumber: 1694
    functionLinenumberEnd: 1694
    functionName: nvtx3::message::message
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void message(std::wstring&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1739
      start: 1739
    functionDepth: 0
    functionLinenumber: 1739
    functionLinenumberEnd: 1739
    functionName: nvtx3::get_value
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: value_type
    signature: value_type get_value() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1745
      start: 1745
    functionDepth: 0
    functionLinenumber: 1745
    functionLinenumberEnd: 1745
    functionName: nvtx3::get_type
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: nvtxMessageType_t
    signature: nvtxMessageType_t get_type() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1781
      start: 1777
    functionDepth: 0
    functionLinenumber: 1777
    functionLinenumberEnd: 1781
    functionName: nvtx3::payload::payload
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void payload(int64_t value) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1792
      start: 1788
    functionDepth: 0
    functionLinenumber: 1788
    functionLinenumberEnd: 1792
    functionName: nvtx3::payload::payload
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void payload(int32_t value) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1803
      start: 1799
    functionDepth: 0
    functionLinenumber: 1799
    functionLinenumberEnd: 1803
    functionName: nvtx3::payload::payload
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void payload(uint64_t value) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1814
      start: 1810
    functionDepth: 0
    functionLinenumber: 1810
    functionLinenumberEnd: 1814
    functionName: nvtx3::payload::payload
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void payload(uint32_t value) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1826
      start: 1822
    functionDepth: 0
    functionLinenumber: 1822
    functionLinenumberEnd: 1826
    functionName: nvtx3::payload::payload
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void payload(float value) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1838
      start: 1834
    functionDepth: 0
    functionLinenumber: 1834
    functionLinenumberEnd: 1838
    functionName: nvtx3::payload::payload
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void payload(double value) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' type'
    - ' value'
    argTypes:
    - nvtxPayloadType_t
    - value_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1851
      start: 1846
    functionDepth: 0
    functionLinenumber: 1846
    functionLinenumberEnd: 1851
    functionName: nvtx3::payload::payload
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void payload(\n    nvtxPayloadType_t const& type,\n    value_type
      const& value) noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1857
      start: 1857
    functionDepth: 0
    functionLinenumber: 1857
    functionLinenumberEnd: 1857
    functionName: nvtx3::payload::get_value
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: value_type
    signature: value_type get_value() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1863
      start: 1863
    functionDepth: 0
    functionLinenumber: 1863
    functionLinenumberEnd: 1863
    functionName: nvtx3::payload::get_type
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: nvtxPayloadType_t
    signature: nvtxPayloadType_t get_type() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1950
      start: 1936
    functionDepth: 0
    functionLinenumber: 1936
    functionLinenumberEnd: 1950
    functionName: nvtx3::event_attributes::event_attributes
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void event_attributes() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_id
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:1963,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1964
      start: 1960
    functionDepth: 0
    functionLinenumber: 1960
    functionLinenumberEnd: 1964
    functionName: nvtx3::event_attributes::event_attributes
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached:
    - get_id
    linkageType: ''
    returnType: NVTX3_CONSTEXPR_IF_CPP14
    signature: NVTX3_CONSTEXPR_IF_CPP14 event_attributes(args...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_value
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:1977,1
    - Dst: get_type
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:1978,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1979
      start: 1974
    functionDepth: 0
    functionLinenumber: 1974
    functionLinenumberEnd: 1979
    functionName: nvtx3::event_attributes::event_attributes
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached:
    - get_type
    - get_value
    linkageType: ''
    returnType: NVTX3_CONSTEXPR_IF_CPP14
    signature: NVTX3_CONSTEXPR_IF_CPP14 event_attributes(args...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_value
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:1992,1
    - Dst: get_type
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:1993,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1994
      start: 1989
    functionDepth: 0
    functionLinenumber: 1989
    functionLinenumberEnd: 1994
    functionName: nvtx3::event_attributes::event_attributes
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached:
    - get_type
    - get_value
    linkageType: ''
    returnType: NVTX3_CONSTEXPR_IF_CPP14
    signature: NVTX3_CONSTEXPR_IF_CPP14 event_attributes(args...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_value
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:2007,1
    - Dst: get_type
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:2008,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2009
      start: 2004
    functionDepth: 0
    functionLinenumber: 2004
    functionLinenumberEnd: 2009
    functionName: nvtx3::event_attributes::event_attributes
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached:
    - get_type
    - get_value
    linkageType: ''
    returnType: NVTX3_CONSTEXPR_IF_CPP14
    signature: NVTX3_CONSTEXPR_IF_CPP14 event_attributes(args...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_POINTER_AS_PAYLOAD_ULLVALUE
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:2024,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2025
      start: 2019
    functionDepth: 1
    functionLinenumber: 2019
    functionLinenumberEnd: 2025
    functionName: nvtx3::event_attributes::event_attributes
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached:
    - NVTX_POINTER_AS_PAYLOAD_ULLVALUE
    linkageType: ''
    returnType: NVTX3_CONSTEXPR_IF_CPP14
    signature: NVTX3_CONSTEXPR_IF_CPP14 event_attributes(args...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2027
      start: 2027
    functionDepth: 0
    functionLinenumber: 2027
    functionLinenumberEnd: 2027
    functionName: ~event_attributes()
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~event_attributes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2028
      start: 2028
    functionDepth: 0
    functionLinenumber: 2028
    functionLinenumberEnd: 2028
    functionName: nvtx3::event_attributes::event_attributes
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void event_attributes(event_attributes const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2029
      start: 2029
    functionDepth: 0
    functionLinenumber: 2029
    functionLinenumberEnd: 2029
    functionName: '& operator=(event_attributes const&)'
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: event_attributes
    signature: event_attributes & operator=(event_attributes const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2030
      start: 2030
    functionDepth: 0
    functionLinenumber: 2030
    functionLinenumberEnd: 2030
    functionName: nvtx3::event_attributes::event_attributes
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void event_attributes(event_attributes&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2031
      start: 2031
    functionDepth: 0
    functionLinenumber: 2031
    functionLinenumberEnd: 2031
    functionName: '& operator=(event_attributes&&)'
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: event_attributes
    signature: event_attributes & operator=(event_attributes&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2037
      start: 2037
    functionDepth: 0
    functionLinenumber: 2037
    functionLinenumberEnd: 2037
    functionName: nvtx3::event_attributes::get
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: value_type
    signature: value_type * get() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nvtxDomainRangePushEx
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:2110,1
    - Dst: domain::get<D>
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:2110,1
    - Dst: get
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:2110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' attr'
    argTypes:
    - event_attributes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2114
      start: 2107
    functionDepth: 1
    functionLinenumber: 2107
    functionLinenumberEnd: 2114
    functionName: nvtx3::scoped_range_in::scoped_range_in
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached:
    - domain::get<D>
    - get
    - nvtxDomainRangePushEx
    linkageType: ''
    returnType: void
    signature: void scoped_range_in(event_attributes const& attr) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2140
      start: 2137
    functionDepth: 0
    functionLinenumber: 2137
    functionLinenumberEnd: 2140
    functionName: nvtx3::scoped_range_in::scoped_range_in
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void scoped_range_in(Args const&... args) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2147
      start: 2147
    functionDepth: 0
    functionLinenumber: 2147
    functionLinenumberEnd: 2147
    functionName: nvtx3::scoped_range_in::scoped_range_in
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void scoped_range_in() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2155
      start: 2155
    functionDepth: 0
    functionLinenumber: 2155
    functionLinenumberEnd: 2155
    functionName: '* operator new(std::size_t)'
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void * operator new(std::size_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2157
      start: 2157
    functionDepth: 0
    functionLinenumber: 2157
    functionLinenumberEnd: 2157
    functionName: nvtx3::scoped_range_in::scoped_range_in
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void scoped_range_in(scoped_range_in const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2158
      start: 2158
    functionDepth: 0
    functionLinenumber: 2158
    functionLinenumberEnd: 2158
    functionName: '& operator=(scoped_range_in const&)'
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: scoped_range_in
    signature: scoped_range_in & operator=(scoped_range_in const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2159
      start: 2159
    functionDepth: 0
    functionLinenumber: 2159
    functionLinenumberEnd: 2159
    functionName: nvtx3::scoped_range_in::scoped_range_in
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void scoped_range_in(scoped_range_in&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2160
      start: 2160
    functionDepth: 0
    functionLinenumber: 2160
    functionLinenumberEnd: 2160
    functionName: '& operator=(scoped_range_in&&)'
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: scoped_range_in
    signature: scoped_range_in & operator=(scoped_range_in&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nvtxDomainRangePop
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:2168,1
    - Dst: domain::get<D>
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:2168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2170
      start: 2165
    functionDepth: 1
    functionLinenumber: 2165
    functionLinenumberEnd: 2170
    functionName: ~scoped_range_in() noexcept
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached:
    - domain::get<D>
    - nvtxDomainRangePop
    linkageType: ''
    returnType: void
    signature: void ~scoped_range_in() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2186
      start: 2186
    functionDepth: 0
    functionLinenumber: 2186
    functionLinenumberEnd: 2186
    functionName: nvtx3::detail::optional_scoped_range_in::optional_scoped_range_in
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void optional_scoped_range_in()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nvtxDomainRangePushEx
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:2197,1
    - Dst: domain::get<D>
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:2197,1
    - Dst: get
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:2197,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' attr'
    argTypes:
    - event_attributes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2200
      start: 2188
    functionDepth: 1
    functionLinenumber: 2188
    functionLinenumberEnd: 2200
    functionName: nvtx3::detail::optional_scoped_range_in::begin
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached:
    - domain::get<D>
    - get
    - nvtxDomainRangePushEx
    linkageType: ''
    returnType: void
    signature: void begin(event_attributes const& attr) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nvtxDomainRangePop
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:2205,1
    - Dst: domain::get<D>
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:2205,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2207
      start: 2202
    functionDepth: 1
    functionLinenumber: 2202
    functionLinenumberEnd: 2207
    functionName: ~optional_scoped_range_in() noexcept
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached:
    - domain::get<D>
    - nvtxDomainRangePop
    linkageType: ''
    returnType: void
    signature: void ~optional_scoped_range_in() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2209
      start: 2209
    functionDepth: 0
    functionLinenumber: 2209
    functionLinenumberEnd: 2209
    functionName: '* operator new(std::size_t)'
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void * operator new(std::size_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2210
      start: 2210
    functionDepth: 0
    functionLinenumber: 2210
    functionLinenumberEnd: 2210
    functionName: nvtx3::detail::optional_scoped_range_in::optional_scoped_range_in
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void optional_scoped_range_in(optional_scoped_range_in const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2211
      start: 2211
    functionDepth: 0
    functionLinenumber: 2211
    functionLinenumberEnd: 2211
    functionName: '& operator=(optional_scoped_range_in const&)'
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: optional_scoped_range_in
    signature: optional_scoped_range_in & operator=(optional_scoped_range_in const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2212
      start: 2212
    functionDepth: 0
    functionLinenumber: 2212
    functionLinenumberEnd: 2212
    functionName: nvtx3::detail::optional_scoped_range_in::optional_scoped_range_in
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void optional_scoped_range_in(optional_scoped_range_in&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2213
      start: 2213
    functionDepth: 0
    functionLinenumber: 2213
    functionLinenumberEnd: 2213
    functionName: '& operator=(optional_scoped_range_in&&)'
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: optional_scoped_range_in
    signature: optional_scoped_range_in & operator=(optional_scoped_range_in&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2186
      start: 2186
    functionDepth: 0
    functionLinenumber: 2186
    functionLinenumberEnd: 2186
    functionName: nvtx3::detail::optional_scoped_range_in::optional_scoped_range_in
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void optional_scoped_range_in()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nvtxDomainRangePushEx
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:2197,1
    - Dst: domain::get<D>
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:2197,1
    - Dst: get
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:2197,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' attr'
    argTypes:
    - event_attributes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2200
      start: 2188
    functionDepth: 1
    functionLinenumber: 2188
    functionLinenumberEnd: 2200
    functionName: nvtx3::detail::optional_scoped_range_in::begin
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached:
    - domain::get<D>
    - get
    - nvtxDomainRangePushEx
    linkageType: ''
    returnType: void
    signature: void begin(event_attributes const& attr) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nvtxDomainRangePop
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:2205,1
    - Dst: domain::get<D>
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:2205,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2207
      start: 2202
    functionDepth: 1
    functionLinenumber: 2202
    functionLinenumberEnd: 2207
    functionName: ~optional_scoped_range_in() noexcept
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached:
    - domain::get<D>
    - nvtxDomainRangePop
    linkageType: ''
    returnType: void
    signature: void ~optional_scoped_range_in() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2209
      start: 2209
    functionDepth: 0
    functionLinenumber: 2209
    functionLinenumberEnd: 2209
    functionName: '* operator new(std::size_t)'
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void * operator new(std::size_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2210
      start: 2210
    functionDepth: 0
    functionLinenumber: 2210
    functionLinenumberEnd: 2210
    functionName: nvtx3::detail::optional_scoped_range_in::optional_scoped_range_in
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void optional_scoped_range_in(optional_scoped_range_in const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2211
      start: 2211
    functionDepth: 0
    functionLinenumber: 2211
    functionLinenumberEnd: 2211
    functionName: '& operator=(optional_scoped_range_in const&)'
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: optional_scoped_range_in
    signature: optional_scoped_range_in & operator=(optional_scoped_range_in const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2212
      start: 2212
    functionDepth: 0
    functionLinenumber: 2212
    functionLinenumberEnd: 2212
    functionName: nvtx3::detail::optional_scoped_range_in::optional_scoped_range_in
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void optional_scoped_range_in(optional_scoped_range_in&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2213
      start: 2213
    functionDepth: 0
    functionLinenumber: 2213
    functionLinenumberEnd: 2213
    functionName: '& operator=(optional_scoped_range_in&&)'
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: optional_scoped_range_in
    signature: optional_scoped_range_in & operator=(optional_scoped_range_in&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - id
    argTypes:
    - value_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2239
      start: 2239
    functionDepth: 0
    functionLinenumber: 2239
    functionLinenumberEnd: 2239
    functionName: nvtx3::range_handle
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void range_handle(value_type id) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2248
      start: 2248
    functionDepth: 0
    functionLinenumber: 2248
    functionLinenumberEnd: 2248
    functionName: nvtx3::range_handle
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void range_handle() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nvtx3::get_value
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:2261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2261
      start: 2261
    functionDepth: 1
    functionLinenumber: 2261
    functionLinenumberEnd: 2261
    functionName: operator bool() const noexcept
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached:
    - nvtx3::get_value
    linkageType: ''
    returnType: void
    signature: void operator bool() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2269
      start: 2269
    functionDepth: 0
    functionLinenumber: 2269
    functionLinenumberEnd: 2269
    functionName: nvtx3::range_handle
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void range_handle(std::nullptr_t) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2276
      start: 2276
    functionDepth: 0
    functionLinenumber: 2276
    functionLinenumberEnd: 2276
    functionName: nvtx3::get_value
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: value_type
    signature: value_type get_value() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range_handle::get_value
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:2293,1
    - Dst: range_handle::get_value
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:2293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - range_handle
    - range_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2294
      start: 2291
    functionDepth: 0
    functionLinenumber: 2291
    functionLinenumberEnd: 2294
    functionName: operator==(range_handle lhs, range_handle rhs) noexcept
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached:
    - range_handle::get_value
    linkageType: ''
    returnType: bool
    signature: bool operator==(range_handle lhs, range_handle rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - range_handle
    - range_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2302
      start: 2302
    functionDepth: 0
    functionLinenumber: 2302
    functionLinenumberEnd: 2302
    functionName: operator!=(range_handle lhs, range_handle rhs) noexcept
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(range_handle lhs, range_handle rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nvtxDomainRangeStartEx
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:2337,1
    - Dst: domain::get<D>
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:2337,1
    - Dst: get
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:2337,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' attr'
    argTypes:
    - event_attributes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2342
      start: 2334
    functionDepth: 1
    functionLinenumber: 2334
    functionLinenumberEnd: 2342
    functionName: nvtx3::start_range_in
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached:
    - nvtxDomainRangeStartEx
    - domain::get<D>
    - get
    linkageType: ''
    returnType: range_handle
    signature: range_handle start_range_in(event_attributes const& attr) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nvtx3::start_range_in
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:2378,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2382
      start: 2375
    functionDepth: 1
    functionLinenumber: 2375
    functionLinenumberEnd: 2382
    functionName: nvtx3::start_range_in
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 1
    functionsReached:
    - nvtx3::start_range_in
    linkageType: ''
    returnType: range_handle
    signature: range_handle start_range_in(Args const&... args) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nvtx3::start_range_in
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:2413,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' attr'
    argTypes:
    - event_attributes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2418
      start: 2410
    functionDepth: 2
    functionLinenumber: 2410
    functionLinenumberEnd: 2418
    functionName: nvtx3::start_range
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached:
    - nvtx3::start_range_in
    linkageType: ''
    returnType: range_handle
    signature: range_handle start_range(event_attributes const& attr) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nvtx3::start_range_in
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:2451,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2455
      start: 2448
    functionDepth: 2
    functionLinenumber: 2448
    functionLinenumberEnd: 2455
    functionName: nvtx3::start_range
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached:
    - nvtx3::start_range_in
    linkageType: ''
    returnType: range_handle
    signature: range_handle start_range(Args const&... args) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nvtxDomainRangeEnd
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:2476,1
    - Dst: domain::get<D>
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:2476,1
    - Dst: range_handle::get_value
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:2476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - r
    argTypes:
    - range_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2480
      start: 2473
    functionDepth: 1
    functionLinenumber: 2473
    functionLinenumberEnd: 2480
    functionName: nvtx3::end_range_in
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached:
    - range_handle::get_value
    - domain::get<D>
    - nvtxDomainRangeEnd
    linkageType: ''
    returnType: void
    signature: void end_range_in(range_handle r) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nvtx3::end_range_in
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:2498,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - r
    argTypes:
    - range_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2502
      start: 2495
    functionDepth: 2
    functionLinenumber: 2495
    functionLinenumberEnd: 2502
    functionName: nvtx3::end_range
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached:
    - nvtx3::end_range_in
    linkageType: ''
    returnType: void
    signature: void end_range(range_handle r) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: start_range_in<D>
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:2542,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' attr'
    argTypes:
    - event_attributes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2544
      start: 2541
    functionDepth: 0
    functionLinenumber: 2541
    functionLinenumberEnd: 2544
    functionName: nvtx3::unique_range_in::unique_range_in
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached:
    - start_range_in<D>
    linkageType: ''
    returnType: void
    signature: void unique_range_in(event_attributes const& attr) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2569
      start: 2566
    functionDepth: 0
    functionLinenumber: 2566
    functionLinenumberEnd: 2569
    functionName: nvtx3::unique_range_in::unique_range_in
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void unique_range_in(Args const&... args) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2576
      start: 2576
    functionDepth: 0
    functionLinenumber: 2576
    functionLinenumberEnd: 2576
    functionName: nvtx3::unique_range_in::unique_range_in
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void unique_range_in() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2582
      start: 2582
    functionDepth: 0
    functionLinenumber: 2582
    functionLinenumberEnd: 2582
    functionName: ~unique_range_in() noexcept
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~unique_range_in() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - unique_range_in
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2590
      start: 2590
    functionDepth: 0
    functionLinenumber: 2590
    functionLinenumberEnd: 2590
    functionName: nvtx3::unique_range_in::unique_range_in
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void unique_range_in(unique_range_in&& other) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - unique_range_in
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2598
      start: 2598
    functionDepth: 0
    functionLinenumber: 2598
    functionLinenumberEnd: 2598
    functionName: '& operator=(unique_range_in&& other) noexcept'
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unique_range_in
    signature: unique_range_in & operator=(unique_range_in&& other) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2602
      start: 2602
    functionDepth: 0
    functionLinenumber: 2602
    functionLinenumberEnd: 2602
    functionName: nvtx3::unique_range_in::unique_range_in
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void unique_range_in(unique_range_in const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2606
      start: 2606
    functionDepth: 0
    functionLinenumber: 2606
    functionLinenumberEnd: 2606
    functionName: '& operator=(unique_range_in const&)'
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unique_range_in
    signature: unique_range_in & operator=(unique_range_in const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nvtx3::end_range_in
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:2612,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - h
    argTypes:
    - range_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2612
      start: 2612
    functionDepth: 2
    functionLinenumber: 2612
    functionLinenumberEnd: 2612
    functionName: operator()(range_handle h) const noexcept
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached:
    - nvtx3::end_range_in
    linkageType: ''
    returnType: void
    signature: void operator()(range_handle h) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nvtxDomainMarkEx
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:2652,1
    - Dst: domain::get<D>
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:2652,1
    - Dst: get
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:2652,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' attr'
    argTypes:
    - event_attributes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2656
      start: 2649
    functionDepth: 1
    functionLinenumber: 2649
    functionLinenumberEnd: 2656
    functionName: nvtx3::mark_in
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached:
    - domain::get<D>
    - get
    - nvtxDomainMarkEx
    linkageType: ''
    returnType: void
    signature: void mark_in(event_attributes const& attr) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nvtx3::mark_in
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:2689,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2691
      start: 2686
    functionDepth: 1
    functionLinenumber: 2686
    functionLinenumberEnd: 2691
    functionName: nvtx3::mark_in
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 1
    functionsReached:
    - nvtx3::mark_in
    linkageType: ''
    returnType: void
    signature: void mark_in(Args const&... args) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nvtx3::mark_in
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:2716,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' attr'
    argTypes:
    - event_attributes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2718
      start: 2713
    functionDepth: 2
    functionLinenumber: 2713
    functionLinenumberEnd: 2718
    functionName: nvtx3::mark
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached:
    - nvtx3::mark_in
    linkageType: ''
    returnType: void
    signature: void mark(event_attributes const& attr) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nvtx3::mark_in
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:2748,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2750
      start: 2745
    functionDepth: 2
    functionLinenumber: 2745
    functionLinenumberEnd: 2750
    functionName: nvtx3::mark
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached:
    - nvtx3::mark_in
    linkageType: ''
    returnType: void
    signature: void mark(Args const&... args) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NVTX3_STATIC_ASSERT
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:830,1
    - Dst: NVTX3_STATIC_ASSERT
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:848,1
    - Dst: nvtxDomainCreateA
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:880,1
    - Dst: nvtxDomainCreateW
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:890,1
    - Dst: c_str
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:900,1
    - Dst: c_str
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:910,1
    - Dst: from_bytes_msb_to_lsb
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:1064,1
    - Dst: from_bytes_msb_to_lsb
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:1077,1
    - Dst: NVTX3_STATIC_ASSERT
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:1284,1
    - Dst: NVTX3_STATIC_ASSERT
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:1288,1
    - Dst: NVTX3_STATIC_ASSERT
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:1306,1
    - Dst: NVTX3_STATIC_ASSERT
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:1309,1
    - Dst: nvtxDomainNameCategoryA
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:1342,1
    - Dst: domain::get<D>
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:1342,1
    - Dst: get_id
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:1342,1
    - Dst: nvtxDomainNameCategoryW
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:1362,1
    - Dst: domain::get<D>
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:1362,1
    - Dst: get_id
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:1362,1
    - Dst: NVTX3_STATIC_ASSERT
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:1480,1
    - Dst: NVTX3_STATIC_ASSERT
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:1498,1
    - Dst: nvtxDomainRegisterStringA
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:1526,1
    - Dst: domain::get<D>
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:1526,1
    - Dst: c_str
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:1542,1
    - Dst: nvtxDomainRegisterStringW
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:1556,1
    - Dst: domain::get<D>
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:1556,1
    - Dst: c_str
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:1572,1
    - Dst: c_str
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:1657,1
    - Dst: c_str
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:1684,1
    - Dst: get_handle
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:1708,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 86
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1750
      start: 654
    functionDepth: 1
    functionLinenumber: 654
    functionLinenumberEnd: 1750
    functionName: nvtx3::NVTX3_VERSION_NAMESPACE
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached:
    - get_id
    - nvtxDomainNameCategoryW
    - nvtxDomainNameCategoryA
    - nvtxDomainCreateW
    - nvtxDomainRegisterStringW
    - nvtxDomainCreateA
    - from_bytes_msb_to_lsb
    - c_str
    - get_handle
    - domain::get<D>
    - nvtxDomainRegisterStringA
    - NVTX3_STATIC_ASSERT
    linkageType: ''
    returnType: NVTX3_INLINE_IF_REQUESTED
    signature: NVTX3_INLINE_IF_REQUESTED NVTX3_VERSION_NAMESPACE
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 745
      start: 745
    functionDepth: 0
    functionLinenumber: 745
    functionLinenumberEnd: 745
    functionName: nvtx3::domain::domain
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void domain(domain const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 746
      start: 746
    functionDepth: 0
    functionLinenumber: 746
    functionLinenumberEnd: 746
    functionName: '& operator=(domain const&)'
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: domain
    signature: domain & operator=(domain const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 747
    functionDepth: 0
    functionLinenumber: 747
    functionLinenumberEnd: 747
    functionName: nvtx3::domain::domain
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void domain(domain&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 748
      start: 748
    functionDepth: 0
    functionLinenumber: 748
    functionLinenumberEnd: 748
    functionName: '& operator=(domain&&)'
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: domain
    signature: domain & operator=(domain&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 817
      start: 813
    functionDepth: 0
    functionLinenumber: 813
    functionLinenumberEnd: 817
    functionName: nvtx3::domain::get
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: domain
    signature: domain & get() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NVTX3_STATIC_ASSERT
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:830,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 836
      start: 828
    functionDepth: 1
    functionLinenumber: 828
    functionLinenumberEnd: 836
    functionName: nvtx3::domain::get
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached:
    - NVTX3_STATIC_ASSERT
    linkageType: ''
    returnType: domain
    signature: domain & get() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NVTX3_STATIC_ASSERT
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:848,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 853
      start: 846
    functionDepth: 1
    functionLinenumber: 846
    functionLinenumberEnd: 853
    functionName: nvtx3::domain::get
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached:
    - NVTX3_STATIC_ASSERT
    linkageType: ''
    returnType: domain
    signature: domain & get() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 860
      start: 856
    functionDepth: 0
    functionLinenumber: 856
    functionLinenumberEnd: 860
    functionName: nvtx3::domain::get
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: domain
    signature: domain & get() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 869
    functionDepth: 0
    functionLinenumber: 869
    functionLinenumberEnd: 869
    functionName: operator nvtxDomainHandle_t() const noexcept
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator nvtxDomainHandle_t() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nvtxDomainCreateA
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:880,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 880
      start: 880
    functionDepth: 1
    functionLinenumber: 880
    functionLinenumberEnd: 880
    functionName: nvtx3::domain::domain
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached:
    - nvtxDomainCreateA
    linkageType: ''
    returnType: void
    signature: void domain(char const* name) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nvtxDomainCreateW
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:890,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - name
    argTypes:
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 890
      start: 890
    functionDepth: 1
    functionLinenumber: 890
    functionLinenumberEnd: 890
    functionName: nvtx3::domain::domain
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached:
    - nvtxDomainCreateW
    linkageType: ''
    returnType: void
    signature: void domain(wchar_t const* name) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: c_str
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:900,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' name'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 900
      start: 900
    functionDepth: 0
    functionLinenumber: 900
    functionLinenumberEnd: 900
    functionName: nvtx3::domain::domain
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached:
    - c_str
    linkageType: ''
    returnType: void
    signature: void domain(std::string const& name) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: c_str
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:910,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' name'
    argTypes:
    - std::wstring
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 910
      start: 910
    functionDepth: 0
    functionLinenumber: 910
    functionLinenumberEnd: 910
    functionName: nvtx3::domain::domain
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached:
    - c_str
    linkageType: ''
    returnType: void
    signature: void domain(std::wstring const& name) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 920
      start: 920
    functionDepth: 0
    functionLinenumber: 920
    functionLinenumberEnd: 920
    functionName: nvtx3::domain::domain
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void domain() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 936
      start: 936
    functionDepth: 0
    functionLinenumber: 936
    functionLinenumberEnd: 936
    functionName: ~domain()
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~domain()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 960
      start: 956
    functionDepth: 0
    functionLinenumber: 956
    functionLinenumberEnd: 960
    functionName: '& domain::get<domain::global>() noexcept'
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: domain
    signature: domain & domain::get<domain::global>() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - red_
    - green_
    - blue_
    argTypes:
    - component_type
    - component_type
    - component_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 987
      start: 981
    functionDepth: 0
    functionLinenumber: 981
    functionLinenumberEnd: 987
    functionName: nvtx3::rgb
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void rgb(\n    component_type red_,\n    component_type green_,\n
      \   component_type blue_) noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 4
    argNames:
    - alpha_
    - red_
    - green_
    - blue_
    argTypes:
    - component_type
    - component_type
    - component_type
    - component_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1019
      start: 1012
    functionDepth: 0
    functionLinenumber: 1012
    functionLinenumberEnd: 1019
    functionName: nvtx3::argb
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void argb(\n    component_type alpha_,\n    component_type red_,\n
      \   component_type green_,\n    component_type blue_) noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - hex_code
    argTypes:
    - value_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1055
      start: 1055
    functionDepth: 0
    functionLinenumber: 1055
    functionLinenumberEnd: 1055
    functionName: nvtx3::color::color
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void color(value_type hex_code) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nvtx3::color::from_bytes_msb_to_lsb
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:1064,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - argb_
    argTypes:
    - argb
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1066
      start: 1063
    functionDepth: 1
    functionLinenumber: 1063
    functionLinenumberEnd: 1066
    functionName: nvtx3::color::color
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached:
    - nvtx3::color::from_bytes_msb_to_lsb
    linkageType: ''
    returnType: void
    signature: void color(argb argb_) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nvtx3::color::from_bytes_msb_to_lsb
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:1077,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - rgb_
    argTypes:
    - rgb
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1079
      start: 1076
    functionDepth: 1
    functionLinenumber: 1076
    functionLinenumberEnd: 1079
    functionName: nvtx3::color::color
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached:
    - nvtx3::color::from_bytes_msb_to_lsb
    linkageType: ''
    returnType: void
    signature: void color(rgb rgb_) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1085
      start: 1085
    functionDepth: 0
    functionLinenumber: 1085
    functionLinenumberEnd: 1085
    functionName: nvtx3::color::get_value
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: value_type
    signature: value_type get_value() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1091
      start: 1091
    functionDepth: 0
    functionLinenumber: 1091
    functionLinenumberEnd: 1091
    functionName: nvtx3::color::get_type
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: nvtxColorType_t
    signature: nvtxColorType_t get_type() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1093
      start: 1093
    functionDepth: 0
    functionLinenumber: 1093
    functionLinenumberEnd: 1093
    functionName: nvtx3::color::color
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void color()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1094
      start: 1094
    functionDepth: 0
    functionLinenumber: 1094
    functionLinenumberEnd: 1094
    functionName: ~color()
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~color()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1095
      start: 1095
    functionDepth: 0
    functionLinenumber: 1095
    functionLinenumberEnd: 1095
    functionName: nvtx3::color::color
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void color(color const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1096
      start: 1096
    functionDepth: 0
    functionLinenumber: 1096
    functionLinenumberEnd: 1096
    functionName: '& operator=(color const&)'
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: color
    signature: color & operator=(color const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1097
      start: 1097
    functionDepth: 0
    functionLinenumber: 1097
    functionLinenumberEnd: 1097
    functionName: nvtx3::color::color
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void color(color&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1098
      start: 1098
    functionDepth: 0
    functionLinenumber: 1098
    functionLinenumberEnd: 1098
    functionName: '& operator=(color&&)'
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: color
    signature: color & operator=(color&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - byte3
    - byte2
    - byte1
    - byte0
    argTypes:
    - uint8_t
    - uint8_t
    - uint8_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1113
      start: 1106
    functionDepth: 0
    functionLinenumber: 1106
    functionLinenumberEnd: 1113
    functionName: nvtx3::color::from_bytes_msb_to_lsb
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: value_type
    signature: "value_type from_bytes_msb_to_lsb(\n    uint8_t byte3,\n    uint8_t
      byte2,\n    uint8_t byte1,\n    uint8_t byte0) noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - id
    argTypes:
    - id_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1154
      start: 1154
    functionDepth: 0
    functionLinenumber: 1154
    functionLinenumberEnd: 1154
    functionName: nvtx3::category::category
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void category(id_type id) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1160
      start: 1160
    functionDepth: 0
    functionLinenumber: 1160
    functionLinenumberEnd: 1160
    functionName: nvtx3::category::get_id
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: id_type
    signature: id_type get_id() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1162
      start: 1162
    functionDepth: 0
    functionLinenumber: 1162
    functionLinenumberEnd: 1162
    functionName: nvtx3::category::category
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void category()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1163
      start: 1163
    functionDepth: 0
    functionLinenumber: 1163
    functionLinenumberEnd: 1163
    functionName: ~category()
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~category()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1164
      start: 1164
    functionDepth: 0
    functionLinenumber: 1164
    functionLinenumberEnd: 1164
    functionName: nvtx3::category::category
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void category(category const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1165
      start: 1165
    functionDepth: 0
    functionLinenumber: 1165
    functionLinenumberEnd: 1165
    functionName: '& operator=(category const&)'
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: category
    signature: category & operator=(category const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1166
      start: 1166
    functionDepth: 0
    functionLinenumber: 1166
    functionLinenumberEnd: 1166
    functionName: nvtx3::category::category
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void category(category&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1167
      start: 1167
    functionDepth: 0
    functionLinenumber: 1167
    functionLinenumberEnd: 1167
    functionName: '& operator=(category&&)'
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: category
    signature: category & operator=(category&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1269
      start: 1265
    functionDepth: 0
    functionLinenumber: 1265
    functionLinenumberEnd: 1269
    functionName: nvtx3::named_category_in::get
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: named_category_in
    signature: named_category_in & get() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NVTX3_STATIC_ASSERT
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:1284,1
    - Dst: NVTX3_STATIC_ASSERT
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:1288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1293
      start: 1282
    functionDepth: 1
    functionLinenumber: 1282
    functionLinenumberEnd: 1293
    functionName: nvtx3::named_category_in::get
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached:
    - NVTX3_STATIC_ASSERT
    linkageType: ''
    returnType: named_category_in
    signature: named_category_in & get() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NVTX3_STATIC_ASSERT
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:1306,1
    - Dst: NVTX3_STATIC_ASSERT
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:1309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1314
      start: 1304
    functionDepth: 1
    functionLinenumber: 1304
    functionLinenumberEnd: 1314
    functionName: nvtx3::named_category_in::get
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached:
    - NVTX3_STATIC_ASSERT
    linkageType: ''
    returnType: named_category_in
    signature: named_category_in & get() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1321
      start: 1317
    functionDepth: 0
    functionLinenumber: 1317
    functionLinenumberEnd: 1321
    functionName: nvtx3::named_category_in::get
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: named_category_in
    signature: named_category_in & get() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1326
      start: 1326
    functionDepth: 0
    functionLinenumber: 1326
    functionLinenumberEnd: 1326
    functionName: nvtx3::named_category_in::named_category_in
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void named_category_in() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nvtxDomainNameCategoryA
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:1342,1
    - Dst: domain::get<D>
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:1342,1
    - Dst: get_id
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:1342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - id
    - name
    argTypes:
    - id_type
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1347
      start: 1339
    functionDepth: 1
    functionLinenumber: 1339
    functionLinenumberEnd: 1347
    functionName: nvtx3::named_category_in::named_category_in
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached:
    - domain::get<D>
    - get_id
    - nvtxDomainNameCategoryA
    linkageType: ''
    returnType: void
    signature: void named_category_in(id_type id, char const* name) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nvtxDomainNameCategoryW
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:1362,1
    - Dst: domain::get<D>
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:1362,1
    - Dst: get_id
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:1362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - id
    - name
    argTypes:
    - id_type
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1367
      start: 1359
    functionDepth: 1
    functionLinenumber: 1359
    functionLinenumberEnd: 1367
    functionName: nvtx3::named_category_in::named_category_in
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached:
    - domain::get<D>
    - get_id
    - nvtxDomainNameCategoryW
    linkageType: ''
    returnType: void
    signature: void named_category_in(id_type id, wchar_t const* name) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1467
      start: 1463
    functionDepth: 0
    functionLinenumber: 1463
    functionLinenumberEnd: 1467
    functionName: nvtx3::registered_string_in::get
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: registered_string_in
    signature: registered_string_in & get() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NVTX3_STATIC_ASSERT
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:1480,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1486
      start: 1478
    functionDepth: 1
    functionLinenumber: 1478
    functionLinenumberEnd: 1486
    functionName: nvtx3::registered_string_in::get
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached:
    - NVTX3_STATIC_ASSERT
    linkageType: ''
    returnType: registered_string_in
    signature: registered_string_in & get() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NVTX3_STATIC_ASSERT
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:1498,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1504
      start: 1496
    functionDepth: 1
    functionLinenumber: 1496
    functionLinenumberEnd: 1504
    functionName: nvtx3::registered_string_in::get
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached:
    - NVTX3_STATIC_ASSERT
    linkageType: ''
    returnType: registered_string_in
    signature: registered_string_in & get() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1511
      start: 1507
    functionDepth: 0
    functionLinenumber: 1507
    functionLinenumberEnd: 1511
    functionName: nvtx3::registered_string_in::get
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: registered_string_in
    signature: registered_string_in & get() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nvtxDomainRegisterStringA
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:1526,1
    - Dst: domain::get<D>
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:1526,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1528
      start: 1525
    functionDepth: 1
    functionLinenumber: 1525
    functionLinenumberEnd: 1528
    functionName: nvtx3::registered_string_in::registered_string_in
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached:
    - domain::get<D>
    - nvtxDomainRegisterStringA
    linkageType: ''
    returnType: void
    signature: void registered_string_in(char const* msg) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: c_str
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:1542,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' msg'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1542
      start: 1541
    functionDepth: 0
    functionLinenumber: 1541
    functionLinenumberEnd: 1542
    functionName: nvtx3::registered_string_in::registered_string_in
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached:
    - c_str
    linkageType: ''
    returnType: void
    signature: void registered_string_in(std::string const& msg) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nvtxDomainRegisterStringW
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:1556,1
    - Dst: domain::get<D>
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:1556,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - msg
    argTypes:
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1558
      start: 1555
    functionDepth: 1
    functionLinenumber: 1555
    functionLinenumberEnd: 1558
    functionName: nvtx3::registered_string_in::registered_string_in
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached:
    - nvtxDomainRegisterStringW
    - domain::get<D>
    linkageType: ''
    returnType: void
    signature: void registered_string_in(wchar_t const* msg) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: c_str
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:1572,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' msg'
    argTypes:
    - std::wstring
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1572
      start: 1571
    functionDepth: 0
    functionLinenumber: 1571
    functionLinenumberEnd: 1572
    functionName: nvtx3::registered_string_in::registered_string_in
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached:
    - c_str
    linkageType: ''
    returnType: void
    signature: void registered_string_in(std::wstring const& msg) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1578
      start: 1578
    functionDepth: 0
    functionLinenumber: 1578
    functionLinenumberEnd: 1578
    functionName: nvtx3::registered_string_in::get_handle
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: nvtxStringHandle_t
    signature: nvtxStringHandle_t get_handle() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1582
      start: 1582
    functionDepth: 0
    functionLinenumber: 1582
    functionLinenumberEnd: 1582
    functionName: nvtx3::registered_string_in::registered_string_in
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void registered_string_in() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1584
      start: 1584
    functionDepth: 0
    functionLinenumber: 1584
    functionLinenumberEnd: 1584
    functionName: ~registered_string_in()
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~registered_string_in()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1585
      start: 1585
    functionDepth: 0
    functionLinenumber: 1585
    functionLinenumberEnd: 1585
    functionName: nvtx3::registered_string_in::registered_string_in
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void registered_string_in(registered_string_in const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1586
      start: 1586
    functionDepth: 0
    functionLinenumber: 1586
    functionLinenumberEnd: 1586
    functionName: '& operator=(registered_string_in const&)'
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: registered_string_in
    signature: registered_string_in & operator=(registered_string_in const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1587
      start: 1587
    functionDepth: 0
    functionLinenumber: 1587
    functionLinenumberEnd: 1587
    functionName: nvtx3::registered_string_in::registered_string_in
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void registered_string_in(registered_string_in&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1588
      start: 1588
    functionDepth: 0
    functionLinenumber: 1588
    functionLinenumberEnd: 1588
    functionName: '& operator=(registered_string_in&&)'
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: registered_string_in
    signature: registered_string_in & operator=(registered_string_in&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1650
      start: 1647
    functionDepth: 0
    functionLinenumber: 1647
    functionLinenumberEnd: 1650
    functionName: nvtx3::message::message
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NVTX3_CONSTEXPR_IF_CPP14
    signature: NVTX3_CONSTEXPR_IF_CPP14 message(char const* msg) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: c_str
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:1657,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' msg'
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1657
      start: 1657
    functionDepth: 0
    functionLinenumber: 1657
    functionLinenumberEnd: 1657
    functionName: nvtx3::message::message
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached:
    - c_str
    linkageType: ''
    returnType: void
    signature: void message(std::string const& msg) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1667
      start: 1667
    functionDepth: 0
    functionLinenumber: 1667
    functionLinenumberEnd: 1667
    functionName: nvtx3::message::message
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void message(std::string&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1677
      start: 1674
    functionDepth: 0
    functionLinenumber: 1674
    functionLinenumberEnd: 1677
    functionName: nvtx3::message::message
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NVTX3_CONSTEXPR_IF_CPP14
    signature: NVTX3_CONSTEXPR_IF_CPP14 message(wchar_t const* msg) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: c_str
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:1684,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' msg'
    argTypes:
    - std::wstring
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1684
      start: 1684
    functionDepth: 0
    functionLinenumber: 1684
    functionLinenumberEnd: 1684
    functionName: nvtx3::message::message
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached:
    - c_str
    linkageType: ''
    returnType: void
    signature: void message(std::wstring const& msg) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1694
      start: 1694
    functionDepth: 0
    functionLinenumber: 1694
    functionLinenumberEnd: 1694
    functionName: nvtx3::message::message
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void message(std::wstring&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1739
      start: 1739
    functionDepth: 0
    functionLinenumber: 1739
    functionLinenumberEnd: 1739
    functionName: nvtx3::get_value
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: value_type
    signature: value_type get_value() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1745
      start: 1745
    functionDepth: 0
    functionLinenumber: 1745
    functionLinenumberEnd: 1745
    functionName: nvtx3::get_type
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: nvtxMessageType_t
    signature: nvtxMessageType_t get_type() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1781
      start: 1777
    functionDepth: 0
    functionLinenumber: 1777
    functionLinenumberEnd: 1781
    functionName: nvtx3::payload::payload
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void payload(int64_t value) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - int32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1792
      start: 1788
    functionDepth: 0
    functionLinenumber: 1788
    functionLinenumberEnd: 1792
    functionName: nvtx3::payload::payload
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void payload(int32_t value) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1803
      start: 1799
    functionDepth: 0
    functionLinenumber: 1799
    functionLinenumberEnd: 1803
    functionName: nvtx3::payload::payload
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void payload(uint64_t value) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1814
      start: 1810
    functionDepth: 0
    functionLinenumber: 1810
    functionLinenumberEnd: 1814
    functionName: nvtx3::payload::payload
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void payload(uint32_t value) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1826
      start: 1822
    functionDepth: 0
    functionLinenumber: 1822
    functionLinenumberEnd: 1826
    functionName: nvtx3::payload::payload
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void payload(float value) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1838
      start: 1834
    functionDepth: 0
    functionLinenumber: 1834
    functionLinenumberEnd: 1838
    functionName: nvtx3::payload::payload
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void payload(double value) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - ' type'
    - ' value'
    argTypes:
    - nvtxPayloadType_t
    - value_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1851
      start: 1846
    functionDepth: 0
    functionLinenumber: 1846
    functionLinenumberEnd: 1851
    functionName: nvtx3::payload::payload
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void payload(\n    nvtxPayloadType_t const& type,\n    value_type
      const& value) noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1857
      start: 1857
    functionDepth: 0
    functionLinenumber: 1857
    functionLinenumberEnd: 1857
    functionName: nvtx3::payload::get_value
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: value_type
    signature: value_type get_value() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1863
      start: 1863
    functionDepth: 0
    functionLinenumber: 1863
    functionLinenumberEnd: 1863
    functionName: nvtx3::payload::get_type
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: nvtxPayloadType_t
    signature: nvtxPayloadType_t get_type() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1950
      start: 1936
    functionDepth: 0
    functionLinenumber: 1936
    functionLinenumberEnd: 1950
    functionName: nvtx3::event_attributes::event_attributes
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void event_attributes() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_id
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:1963,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1964
      start: 1960
    functionDepth: 0
    functionLinenumber: 1960
    functionLinenumberEnd: 1964
    functionName: nvtx3::event_attributes::event_attributes
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached:
    - get_id
    linkageType: ''
    returnType: NVTX3_CONSTEXPR_IF_CPP14
    signature: NVTX3_CONSTEXPR_IF_CPP14 event_attributes(args...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_value
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:1977,1
    - Dst: get_type
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:1978,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1979
      start: 1974
    functionDepth: 0
    functionLinenumber: 1974
    functionLinenumberEnd: 1979
    functionName: nvtx3::event_attributes::event_attributes
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached:
    - get_type
    - get_value
    linkageType: ''
    returnType: NVTX3_CONSTEXPR_IF_CPP14
    signature: NVTX3_CONSTEXPR_IF_CPP14 event_attributes(args...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_value
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:1992,1
    - Dst: get_type
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:1993,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1994
      start: 1989
    functionDepth: 0
    functionLinenumber: 1989
    functionLinenumberEnd: 1994
    functionName: nvtx3::event_attributes::event_attributes
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached:
    - get_type
    - get_value
    linkageType: ''
    returnType: NVTX3_CONSTEXPR_IF_CPP14
    signature: NVTX3_CONSTEXPR_IF_CPP14 event_attributes(args...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_value
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:2007,1
    - Dst: get_type
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:2008,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2009
      start: 2004
    functionDepth: 0
    functionLinenumber: 2004
    functionLinenumberEnd: 2009
    functionName: nvtx3::event_attributes::event_attributes
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached:
    - get_type
    - get_value
    linkageType: ''
    returnType: NVTX3_CONSTEXPR_IF_CPP14
    signature: NVTX3_CONSTEXPR_IF_CPP14 event_attributes(args...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_POINTER_AS_PAYLOAD_ULLVALUE
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:2024,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2025
      start: 2019
    functionDepth: 1
    functionLinenumber: 2019
    functionLinenumberEnd: 2025
    functionName: nvtx3::event_attributes::event_attributes
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached:
    - NVTX_POINTER_AS_PAYLOAD_ULLVALUE
    linkageType: ''
    returnType: NVTX3_CONSTEXPR_IF_CPP14
    signature: NVTX3_CONSTEXPR_IF_CPP14 event_attributes(args...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2027
      start: 2027
    functionDepth: 0
    functionLinenumber: 2027
    functionLinenumberEnd: 2027
    functionName: ~event_attributes()
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~event_attributes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2028
      start: 2028
    functionDepth: 0
    functionLinenumber: 2028
    functionLinenumberEnd: 2028
    functionName: nvtx3::event_attributes::event_attributes
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void event_attributes(event_attributes const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2029
      start: 2029
    functionDepth: 0
    functionLinenumber: 2029
    functionLinenumberEnd: 2029
    functionName: '& operator=(event_attributes const&)'
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: event_attributes
    signature: event_attributes & operator=(event_attributes const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2030
      start: 2030
    functionDepth: 0
    functionLinenumber: 2030
    functionLinenumberEnd: 2030
    functionName: nvtx3::event_attributes::event_attributes
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void event_attributes(event_attributes&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2031
      start: 2031
    functionDepth: 0
    functionLinenumber: 2031
    functionLinenumberEnd: 2031
    functionName: '& operator=(event_attributes&&)'
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: event_attributes
    signature: event_attributes & operator=(event_attributes&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2037
      start: 2037
    functionDepth: 0
    functionLinenumber: 2037
    functionLinenumberEnd: 2037
    functionName: nvtx3::event_attributes::get
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: value_type
    signature: value_type * get() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nvtxDomainRangePushEx
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:2110,1
    - Dst: domain::get<D>
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:2110,1
    - Dst: get
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:2110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' attr'
    argTypes:
    - event_attributes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2114
      start: 2107
    functionDepth: 1
    functionLinenumber: 2107
    functionLinenumberEnd: 2114
    functionName: nvtx3::scoped_range_in::scoped_range_in
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached:
    - domain::get<D>
    - get
    - nvtxDomainRangePushEx
    linkageType: ''
    returnType: void
    signature: void scoped_range_in(event_attributes const& attr) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2140
      start: 2137
    functionDepth: 0
    functionLinenumber: 2137
    functionLinenumberEnd: 2140
    functionName: nvtx3::scoped_range_in::scoped_range_in
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void scoped_range_in(Args const&... args) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2147
      start: 2147
    functionDepth: 0
    functionLinenumber: 2147
    functionLinenumberEnd: 2147
    functionName: nvtx3::scoped_range_in::scoped_range_in
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void scoped_range_in() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2155
      start: 2155
    functionDepth: 0
    functionLinenumber: 2155
    functionLinenumberEnd: 2155
    functionName: '* operator new(std::size_t)'
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void * operator new(std::size_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2157
      start: 2157
    functionDepth: 0
    functionLinenumber: 2157
    functionLinenumberEnd: 2157
    functionName: nvtx3::scoped_range_in::scoped_range_in
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void scoped_range_in(scoped_range_in const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2158
      start: 2158
    functionDepth: 0
    functionLinenumber: 2158
    functionLinenumberEnd: 2158
    functionName: '& operator=(scoped_range_in const&)'
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: scoped_range_in
    signature: scoped_range_in & operator=(scoped_range_in const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2159
      start: 2159
    functionDepth: 0
    functionLinenumber: 2159
    functionLinenumberEnd: 2159
    functionName: nvtx3::scoped_range_in::scoped_range_in
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void scoped_range_in(scoped_range_in&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2160
      start: 2160
    functionDepth: 0
    functionLinenumber: 2160
    functionLinenumberEnd: 2160
    functionName: '& operator=(scoped_range_in&&)'
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: scoped_range_in
    signature: scoped_range_in & operator=(scoped_range_in&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nvtxDomainRangePop
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:2168,1
    - Dst: domain::get<D>
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:2168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2170
      start: 2165
    functionDepth: 1
    functionLinenumber: 2165
    functionLinenumberEnd: 2170
    functionName: ~scoped_range_in() noexcept
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached:
    - domain::get<D>
    - nvtxDomainRangePop
    linkageType: ''
    returnType: void
    signature: void ~scoped_range_in() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2186
      start: 2186
    functionDepth: 0
    functionLinenumber: 2186
    functionLinenumberEnd: 2186
    functionName: nvtx3::detail::optional_scoped_range_in::optional_scoped_range_in
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void optional_scoped_range_in()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nvtxDomainRangePushEx
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:2197,1
    - Dst: domain::get<D>
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:2197,1
    - Dst: get
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:2197,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' attr'
    argTypes:
    - event_attributes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2200
      start: 2188
    functionDepth: 1
    functionLinenumber: 2188
    functionLinenumberEnd: 2200
    functionName: nvtx3::detail::optional_scoped_range_in::begin
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached:
    - domain::get<D>
    - get
    - nvtxDomainRangePushEx
    linkageType: ''
    returnType: void
    signature: void begin(event_attributes const& attr) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nvtxDomainRangePop
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:2205,1
    - Dst: domain::get<D>
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:2205,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2207
      start: 2202
    functionDepth: 1
    functionLinenumber: 2202
    functionLinenumberEnd: 2207
    functionName: ~optional_scoped_range_in() noexcept
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached:
    - domain::get<D>
    - nvtxDomainRangePop
    linkageType: ''
    returnType: void
    signature: void ~optional_scoped_range_in() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2209
      start: 2209
    functionDepth: 0
    functionLinenumber: 2209
    functionLinenumberEnd: 2209
    functionName: '* operator new(std::size_t)'
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void * operator new(std::size_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2210
      start: 2210
    functionDepth: 0
    functionLinenumber: 2210
    functionLinenumberEnd: 2210
    functionName: nvtx3::detail::optional_scoped_range_in::optional_scoped_range_in
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void optional_scoped_range_in(optional_scoped_range_in const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2211
      start: 2211
    functionDepth: 0
    functionLinenumber: 2211
    functionLinenumberEnd: 2211
    functionName: '& operator=(optional_scoped_range_in const&)'
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: optional_scoped_range_in
    signature: optional_scoped_range_in & operator=(optional_scoped_range_in const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2212
      start: 2212
    functionDepth: 0
    functionLinenumber: 2212
    functionLinenumberEnd: 2212
    functionName: nvtx3::detail::optional_scoped_range_in::optional_scoped_range_in
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void optional_scoped_range_in(optional_scoped_range_in&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2213
      start: 2213
    functionDepth: 0
    functionLinenumber: 2213
    functionLinenumberEnd: 2213
    functionName: '& operator=(optional_scoped_range_in&&)'
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: optional_scoped_range_in
    signature: optional_scoped_range_in & operator=(optional_scoped_range_in&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2186
      start: 2186
    functionDepth: 0
    functionLinenumber: 2186
    functionLinenumberEnd: 2186
    functionName: nvtx3::detail::optional_scoped_range_in::optional_scoped_range_in
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void optional_scoped_range_in()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nvtxDomainRangePushEx
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:2197,1
    - Dst: domain::get<D>
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:2197,1
    - Dst: get
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:2197,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' attr'
    argTypes:
    - event_attributes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2200
      start: 2188
    functionDepth: 1
    functionLinenumber: 2188
    functionLinenumberEnd: 2200
    functionName: nvtx3::detail::optional_scoped_range_in::begin
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached:
    - domain::get<D>
    - get
    - nvtxDomainRangePushEx
    linkageType: ''
    returnType: void
    signature: void begin(event_attributes const& attr) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nvtxDomainRangePop
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:2205,1
    - Dst: domain::get<D>
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:2205,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2207
      start: 2202
    functionDepth: 1
    functionLinenumber: 2202
    functionLinenumberEnd: 2207
    functionName: ~optional_scoped_range_in() noexcept
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached:
    - domain::get<D>
    - nvtxDomainRangePop
    linkageType: ''
    returnType: void
    signature: void ~optional_scoped_range_in() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2209
      start: 2209
    functionDepth: 0
    functionLinenumber: 2209
    functionLinenumberEnd: 2209
    functionName: '* operator new(std::size_t)'
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void * operator new(std::size_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2210
      start: 2210
    functionDepth: 0
    functionLinenumber: 2210
    functionLinenumberEnd: 2210
    functionName: nvtx3::detail::optional_scoped_range_in::optional_scoped_range_in
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void optional_scoped_range_in(optional_scoped_range_in const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2211
      start: 2211
    functionDepth: 0
    functionLinenumber: 2211
    functionLinenumberEnd: 2211
    functionName: '& operator=(optional_scoped_range_in const&)'
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: optional_scoped_range_in
    signature: optional_scoped_range_in & operator=(optional_scoped_range_in const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2212
      start: 2212
    functionDepth: 0
    functionLinenumber: 2212
    functionLinenumberEnd: 2212
    functionName: nvtx3::detail::optional_scoped_range_in::optional_scoped_range_in
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void optional_scoped_range_in(optional_scoped_range_in&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2213
      start: 2213
    functionDepth: 0
    functionLinenumber: 2213
    functionLinenumberEnd: 2213
    functionName: '& operator=(optional_scoped_range_in&&)'
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: optional_scoped_range_in
    signature: optional_scoped_range_in & operator=(optional_scoped_range_in&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - id
    argTypes:
    - value_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2239
      start: 2239
    functionDepth: 0
    functionLinenumber: 2239
    functionLinenumberEnd: 2239
    functionName: nvtx3::range_handle
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void range_handle(value_type id) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2248
      start: 2248
    functionDepth: 0
    functionLinenumber: 2248
    functionLinenumberEnd: 2248
    functionName: nvtx3::range_handle
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void range_handle() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_value
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:2261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2261
      start: 2261
    functionDepth: 0
    functionLinenumber: 2261
    functionLinenumberEnd: 2261
    functionName: operator bool() const noexcept
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached:
    - get_value
    linkageType: ''
    returnType: void
    signature: void operator bool() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2269
      start: 2269
    functionDepth: 0
    functionLinenumber: 2269
    functionLinenumberEnd: 2269
    functionName: nvtx3::range_handle
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void range_handle(std::nullptr_t) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2276
      start: 2276
    functionDepth: 0
    functionLinenumber: 2276
    functionLinenumberEnd: 2276
    functionName: nvtx3::get_value
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: value_type
    signature: value_type get_value() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: range_handle::get_value
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:2293,1
    - Dst: range_handle::get_value
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:2293,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - range_handle
    - range_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2294
      start: 2291
    functionDepth: 0
    functionLinenumber: 2291
    functionLinenumberEnd: 2294
    functionName: operator==(range_handle lhs, range_handle rhs) noexcept
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached:
    - range_handle::get_value
    linkageType: ''
    returnType: bool
    signature: bool operator==(range_handle lhs, range_handle rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - range_handle
    - range_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2302
      start: 2302
    functionDepth: 0
    functionLinenumber: 2302
    functionLinenumberEnd: 2302
    functionName: operator!=(range_handle lhs, range_handle rhs) noexcept
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(range_handle lhs, range_handle rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nvtxDomainRangeStartEx
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:2337,1
    - Dst: domain::get<D>
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:2337,1
    - Dst: get
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:2337,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' attr'
    argTypes:
    - event_attributes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2342
      start: 2334
    functionDepth: 1
    functionLinenumber: 2334
    functionLinenumberEnd: 2342
    functionName: nvtx3::start_range_in
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 3
    functionsReached:
    - nvtxDomainRangeStartEx
    - domain::get<D>
    - get
    linkageType: ''
    returnType: range_handle
    signature: range_handle start_range_in(event_attributes const& attr) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nvtx3::start_range_in
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:2378,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2382
      start: 2375
    functionDepth: 1
    functionLinenumber: 2375
    functionLinenumberEnd: 2382
    functionName: nvtx3::start_range_in
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 4
    functionsReached:
    - nvtx3::start_range_in
    linkageType: ''
    returnType: range_handle
    signature: range_handle start_range_in(Args const&... args) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nvtx3::start_range_in
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:2413,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' attr'
    argTypes:
    - event_attributes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2418
      start: 2410
    functionDepth: 2
    functionLinenumber: 2410
    functionLinenumberEnd: 2418
    functionName: nvtx3::start_range
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached:
    - nvtx3::start_range_in
    linkageType: ''
    returnType: range_handle
    signature: range_handle start_range(event_attributes const& attr) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nvtx3::start_range_in
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:2451,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2455
      start: 2448
    functionDepth: 2
    functionLinenumber: 2448
    functionLinenumberEnd: 2455
    functionName: nvtx3::start_range
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached:
    - nvtx3::start_range_in
    linkageType: ''
    returnType: range_handle
    signature: range_handle start_range(Args const&... args) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nvtxDomainRangeEnd
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:2476,1
    - Dst: domain::get<D>
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:2476,1
    - Dst: range_handle::get_value
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:2476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - r
    argTypes:
    - range_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2480
      start: 2473
    functionDepth: 1
    functionLinenumber: 2473
    functionLinenumberEnd: 2480
    functionName: nvtx3::end_range_in
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 2
    functionsReached:
    - range_handle::get_value
    - domain::get<D>
    - nvtxDomainRangeEnd
    linkageType: ''
    returnType: void
    signature: void end_range_in(range_handle r) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nvtx3::end_range_in
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:2498,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - r
    argTypes:
    - range_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2502
      start: 2495
    functionDepth: 2
    functionLinenumber: 2495
    functionLinenumberEnd: 2502
    functionName: nvtx3::end_range
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached:
    - nvtx3::end_range_in
    linkageType: ''
    returnType: void
    signature: void end_range(range_handle r) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: start_range_in<D>
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:2542,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' attr'
    argTypes:
    - event_attributes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2544
      start: 2541
    functionDepth: 0
    functionLinenumber: 2541
    functionLinenumberEnd: 2544
    functionName: nvtx3::unique_range_in::unique_range_in
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached:
    - start_range_in<D>
    linkageType: ''
    returnType: void
    signature: void unique_range_in(event_attributes const& attr) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2569
      start: 2566
    functionDepth: 0
    functionLinenumber: 2566
    functionLinenumberEnd: 2569
    functionName: nvtx3::unique_range_in::unique_range_in
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void unique_range_in(Args const&... args) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2576
      start: 2576
    functionDepth: 0
    functionLinenumber: 2576
    functionLinenumberEnd: 2576
    functionName: nvtx3::unique_range_in::unique_range_in
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void unique_range_in() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2582
      start: 2582
    functionDepth: 0
    functionLinenumber: 2582
    functionLinenumberEnd: 2582
    functionName: ~unique_range_in() noexcept
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~unique_range_in() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - unique_range_in
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2590
      start: 2590
    functionDepth: 0
    functionLinenumber: 2590
    functionLinenumberEnd: 2590
    functionName: nvtx3::unique_range_in::unique_range_in
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void unique_range_in(unique_range_in&& other) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - unique_range_in
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2598
      start: 2598
    functionDepth: 0
    functionLinenumber: 2598
    functionLinenumberEnd: 2598
    functionName: '& operator=(unique_range_in&& other) noexcept'
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unique_range_in
    signature: unique_range_in & operator=(unique_range_in&& other) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2602
      start: 2602
    functionDepth: 0
    functionLinenumber: 2602
    functionLinenumberEnd: 2602
    functionName: nvtx3::unique_range_in::unique_range_in
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void unique_range_in(unique_range_in const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2606
      start: 2606
    functionDepth: 0
    functionLinenumber: 2606
    functionLinenumberEnd: 2606
    functionName: '& operator=(unique_range_in const&)'
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unique_range_in
    signature: unique_range_in & operator=(unique_range_in const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: end_range_in<D>
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:2612,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - h
    argTypes:
    - range_handle
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2612
      start: 2612
    functionDepth: 0
    functionLinenumber: 2612
    functionLinenumberEnd: 2612
    functionName: operator()(range_handle h) const noexcept
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached:
    - end_range_in<D>
    linkageType: ''
    returnType: void
    signature: void operator()(range_handle h) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nvtxDomainMarkEx
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:2652,1
    - Dst: domain::get<D>
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:2652,1
    - Dst: get
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:2652,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' attr'
    argTypes:
    - event_attributes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2656
      start: 2649
    functionDepth: 1
    functionLinenumber: 2649
    functionLinenumberEnd: 2656
    functionName: nvtx3::mark_in
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 3
    functionsReached:
    - domain::get<D>
    - get
    - nvtxDomainMarkEx
    linkageType: ''
    returnType: void
    signature: void mark_in(event_attributes const& attr) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nvtx3::mark_in
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:2689,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2691
      start: 2686
    functionDepth: 1
    functionLinenumber: 2686
    functionLinenumberEnd: 2691
    functionName: nvtx3::mark_in
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 4
    functionsReached:
    - nvtx3::mark_in
    linkageType: ''
    returnType: void
    signature: void mark_in(Args const&... args) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nvtx3::mark_in
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:2716,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' attr'
    argTypes:
    - event_attributes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2718
      start: 2713
    functionDepth: 2
    functionLinenumber: 2713
    functionLinenumberEnd: 2718
    functionName: nvtx3::mark
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached:
    - nvtx3::mark_in
    linkageType: ''
    returnType: void
    signature: void mark(event_attributes const& attr) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nvtx3::mark_in
      Src: /src/nccl/src/include/nvtx3/nvtx3.hpp:2748,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2750
      start: 2745
    functionDepth: 2
    functionLinenumber: 2745
    functionLinenumberEnd: 2750
    functionName: nvtx3::mark
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached:
    - nvtx3::mark_in
    linkageType: ''
    returnType: void
    signature: void mark(Args const&... args) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - D
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2789
      start: 2785
    functionDepth: 0
    functionLinenumber: 2785
    functionLinenumberEnd: 2789
    functionName: NVTX3_V1_FUNC_RANGE_IN
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NVTX3_V1_FUNC_RANGE_IN(D)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - D
    - ','
    - C
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2813
      start: 2806
    functionDepth: 0
    functionLinenumber: 2806
    functionLinenumberEnd: 2813
    functionName: NVTX3_V1_FUNC_RANGE_IF_IN
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NVTX3_V1_FUNC_RANGE_IF_IN(D, C)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2841
      start: 2840
    functionDepth: 0
    functionLinenumber: 2840
    functionLinenumberEnd: 2841
    functionName: NVTX3_V1_FUNC_RANGE
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NVTX3_V1_FUNC_RANGE()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - C
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2854
      start: 2853
    functionDepth: 0
    functionLinenumber: 2853
    functionLinenumberEnd: 2854
    functionName: NVTX3_V1_FUNC_RANGE_IF
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtx3.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NVTX3_V1_FUNC_RANGE_IF(C)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: NVTX_ERR
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtImpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NVTX_ERR(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 53
    functionName: NVTX_INFO
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtImpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NVTX_INFO(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    functionName: NVTX_ERR
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtImpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NVTX_ERR(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: NVTX_INFO
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtImpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NVTX_INFO(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 24
    functionName: nvtx_alignof
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadTypeInfo.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: nvtx_alignof(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - tname
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    functionName: nvtx_alignof2
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadTypeInfo.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: nvtx_alignof2(type,tname)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - type
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: MKTYPEDEF
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadTypeInfo.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MKTYPEDEF(type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - tname
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: MKTYPEDEF2
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadTypeInfo.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MKTYPEDEF2(type,tname)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - tname
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    functionName: nvtx_alignof
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadTypeInfo.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: nvtx_alignof(tname)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - tname
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 79
    functionName: nvtx_alignof2
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadTypeInfo.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: nvtx_alignof2(type, tname)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: NVTX_ERR
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NVTX_ERR(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: NVTX_INFO
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NVTX_INFO(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 58
    functionName: NVTX_ERR
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NVTX_ERR(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 59
    functionName: NVTX_INFO
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImpl.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NVTX_INFO(...)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImpl.h:370,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImpl.h:371,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImpl.h:374,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImpl.h:375,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImpl.h:378,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImpl.h:379,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImpl.h:382,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImpl.h:383,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImpl.h:386,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImpl.h:387,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImpl.h:390,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImpl.h:391,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 3
    argNames:
    - module
    - out_table
    - out_size
    argTypes:
    - NvtxCallbackModule
    - NvtxFunctionTable*
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 403
    functionName: NVTX_VERSIONED_IDENTIFIER
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImpl.h
    functionUses: 1
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    linkageType: ''
    returnType: NVTX_LINKONCE_DEFINE_FUNCTION
    signature: "NVTX_LINKONCE_DEFINE_FUNCTION NVTX_VERSIONED_IDENTIFIER(nvtxEtiGetModuleFunctionTable)(\n
      \   NvtxCallbackModule module,\n    NvtxFunctionTable* out_table,\n    unsigned
      int* out_size)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImpl.h:409,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImpl.h:410,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - exportTableId
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 413
    functionName: NVTX_VERSIONED_IDENTIFIER
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImpl.h
    functionUses: 2
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    linkageType: ''
    returnType: NVTX_LINKONCE_DEFINE_FUNCTION
    signature: NVTX_LINKONCE_DEFINE_FUNCTION * NVTX_API NVTX_VERSIONED_IDENTIFIER(nvtxGetExportTable)(uint32_t
      exportTableId)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - version
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 415
    functionDepth: 0
    functionLinenumber: 415
    functionLinenumberEnd: 419
    functionName: NVTX_VERSIONED_IDENTIFIER
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImpl.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: NVTX_LINKONCE_DEFINE_FUNCTION
    signature: NVTX_LINKONCE_DEFINE_FUNCTION NVTX_VERSIONED_IDENTIFIER(nvtxEtiSetInjectionNvtxVersion)(uint32_t
      version)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:14,1
    - Dst: nvtxMarkEx
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:15,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - eventAttrib
    argTypes:
    - nvtxEventAttributes_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 13
    functionDepth: 1
    functionLinenumber: 13
    functionLinenumberEnd: 16
    functionName: NVTX_VERSIONED_IDENTIFIER
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h
    functionUses: 3
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    - nvtxMarkEx
    linkageType: ''
    returnType: NVTX_LINKONCE_DEFINE_FUNCTION
    signature: NVTX_LINKONCE_DEFINE_FUNCTION NVTX_VERSIONED_IDENTIFIER(nvtxMarkEx_impl_init)(const
      nvtxEventAttributes_t* eventAttrib)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:19,1
    - Dst: nvtxMarkA
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - message
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 18
    functionDepth: 1
    functionLinenumber: 18
    functionLinenumberEnd: 21
    functionName: NVTX_VERSIONED_IDENTIFIER
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h
    functionUses: 4
    functionsReached:
    - nvtxMarkA
    - NVTX_VERSIONED_IDENTIFIER
    linkageType: ''
    returnType: NVTX_LINKONCE_DEFINE_FUNCTION
    signature: NVTX_LINKONCE_DEFINE_FUNCTION NVTX_VERSIONED_IDENTIFIER(nvtxMarkA_impl_init)(const
      char* message)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:24,1
    - Dst: nvtxMarkW
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - message
    argTypes:
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 26
    functionName: NVTX_VERSIONED_IDENTIFIER
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h
    functionUses: 5
    functionsReached:
    - nvtxMarkW
    - NVTX_VERSIONED_IDENTIFIER
    linkageType: ''
    returnType: NVTX_LINKONCE_DEFINE_FUNCTION
    signature: NVTX_LINKONCE_DEFINE_FUNCTION NVTX_VERSIONED_IDENTIFIER(nvtxMarkW_impl_init)(const
      wchar_t* message)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:29,1
    - Dst: nvtxRangeStartEx
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - eventAttrib
    argTypes:
    - nvtxEventAttributes_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 31
    functionName: NVTX_VERSIONED_IDENTIFIER
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h
    functionUses: 6
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    - nvtxRangeStartEx
    linkageType: ''
    returnType: NVTX_LINKONCE_DEFINE_FUNCTION
    signature: NVTX_LINKONCE_DEFINE_FUNCTION NVTX_VERSIONED_IDENTIFIER(nvtxRangeStartEx_impl_init)(const
      nvtxEventAttributes_t* eventAttrib)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:34,1
    - Dst: nvtxRangeStartA
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - message
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 36
    functionName: NVTX_VERSIONED_IDENTIFIER
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h
    functionUses: 7
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    - nvtxRangeStartA
    linkageType: ''
    returnType: NVTX_LINKONCE_DEFINE_FUNCTION
    signature: NVTX_LINKONCE_DEFINE_FUNCTION NVTX_VERSIONED_IDENTIFIER(nvtxRangeStartA_impl_init)(const
      char* message)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:39,1
    - Dst: nvtxRangeStartW
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - message
    argTypes:
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 41
    functionName: NVTX_VERSIONED_IDENTIFIER
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h
    functionUses: 8
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    - nvtxRangeStartW
    linkageType: ''
    returnType: NVTX_LINKONCE_DEFINE_FUNCTION
    signature: NVTX_LINKONCE_DEFINE_FUNCTION NVTX_VERSIONED_IDENTIFIER(nvtxRangeStartW_impl_init)(const
      wchar_t* message)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:44,1
    - Dst: nvtxRangeEnd
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - id
    argTypes:
    - nvtxRangeId_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 46
    functionName: NVTX_VERSIONED_IDENTIFIER
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h
    functionUses: 9
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    - nvtxRangeEnd
    linkageType: ''
    returnType: NVTX_LINKONCE_DEFINE_FUNCTION
    signature: NVTX_LINKONCE_DEFINE_FUNCTION NVTX_VERSIONED_IDENTIFIER(nvtxRangeEnd_impl_init)(nvtxRangeId_t
      id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:49,1
    - Dst: nvtxRangePushEx
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - eventAttrib
    argTypes:
    - nvtxEventAttributes_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: NVTX_VERSIONED_IDENTIFIER
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h
    functionUses: 10
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    - nvtxRangePushEx
    linkageType: ''
    returnType: NVTX_LINKONCE_DEFINE_FUNCTION
    signature: NVTX_LINKONCE_DEFINE_FUNCTION NVTX_VERSIONED_IDENTIFIER(nvtxRangePushEx_impl_init)(const
      nvtxEventAttributes_t* eventAttrib)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:54,1
    - Dst: nvtxRangePushA
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - message
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 56
    functionName: NVTX_VERSIONED_IDENTIFIER
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h
    functionUses: 11
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    - nvtxRangePushA
    linkageType: ''
    returnType: NVTX_LINKONCE_DEFINE_FUNCTION
    signature: NVTX_LINKONCE_DEFINE_FUNCTION NVTX_VERSIONED_IDENTIFIER(nvtxRangePushA_impl_init)(const
      char* message)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:59,1
    - Dst: nvtxRangePushW
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - message
    argTypes:
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 61
    functionName: NVTX_VERSIONED_IDENTIFIER
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h
    functionUses: 12
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    - nvtxRangePushW
    linkageType: ''
    returnType: NVTX_LINKONCE_DEFINE_FUNCTION
    signature: NVTX_LINKONCE_DEFINE_FUNCTION NVTX_VERSIONED_IDENTIFIER(nvtxRangePushW_impl_init)(const
      wchar_t* message)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:64,1
    - Dst: nvtxRangePop
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 66
    functionName: NVTX_VERSIONED_IDENTIFIER
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h
    functionUses: 13
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    - nvtxRangePop
    linkageType: ''
    returnType: NVTX_LINKONCE_DEFINE_FUNCTION
    signature: NVTX_LINKONCE_DEFINE_FUNCTION NVTX_VERSIONED_IDENTIFIER(nvtxRangePop_impl_init)(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:69,1
    - Dst: nvtxNameCategoryA
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - category
    - name
    argTypes:
    - uint32_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 71
    functionName: NVTX_VERSIONED_IDENTIFIER
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h
    functionUses: 14
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    - nvtxNameCategoryA
    linkageType: ''
    returnType: NVTX_LINKONCE_DEFINE_FUNCTION
    signature: NVTX_LINKONCE_DEFINE_FUNCTION NVTX_VERSIONED_IDENTIFIER(nvtxNameCategoryA_impl_init)(uint32_t
      category, const char* name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:74,1
    - Dst: nvtxNameCategoryW
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - category
    - name
    argTypes:
    - uint32_t
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 76
    functionName: NVTX_VERSIONED_IDENTIFIER
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h
    functionUses: 15
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    - nvtxNameCategoryW
    linkageType: ''
    returnType: NVTX_LINKONCE_DEFINE_FUNCTION
    signature: NVTX_LINKONCE_DEFINE_FUNCTION NVTX_VERSIONED_IDENTIFIER(nvtxNameCategoryW_impl_init)(uint32_t
      category, const wchar_t* name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:79,1
    - Dst: nvtxNameOsThreadA
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - threadId
    - name
    argTypes:
    - uint32_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 81
    functionName: NVTX_VERSIONED_IDENTIFIER
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h
    functionUses: 16
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    - nvtxNameOsThreadA
    linkageType: ''
    returnType: NVTX_LINKONCE_DEFINE_FUNCTION
    signature: NVTX_LINKONCE_DEFINE_FUNCTION NVTX_VERSIONED_IDENTIFIER(nvtxNameOsThreadA_impl_init)(uint32_t
      threadId, const char* name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:84,1
    - Dst: nvtxNameOsThreadW
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - threadId
    - name
    argTypes:
    - uint32_t
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 86
    functionName: NVTX_VERSIONED_IDENTIFIER
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h
    functionUses: 17
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    - nvtxNameOsThreadW
    linkageType: ''
    returnType: NVTX_LINKONCE_DEFINE_FUNCTION
    signature: NVTX_LINKONCE_DEFINE_FUNCTION NVTX_VERSIONED_IDENTIFIER(nvtxNameOsThreadW_impl_init)(uint32_t
      threadId, const wchar_t* name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:89,1
    - Dst: nvtxDomainMarkEx
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - domain
    - eventAttrib
    argTypes:
    - nvtxDomainHandle_t
    - nvtxEventAttributes_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 91
    functionName: NVTX_VERSIONED_IDENTIFIER
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h
    functionUses: 18
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    - nvtxDomainMarkEx
    linkageType: ''
    returnType: NVTX_LINKONCE_DEFINE_FUNCTION
    signature: NVTX_LINKONCE_DEFINE_FUNCTION NVTX_VERSIONED_IDENTIFIER(nvtxDomainMarkEx_impl_init)(nvtxDomainHandle_t
      domain, const nvtxEventAttributes_t* eventAttrib)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:94,1
    - Dst: nvtxDomainRangeStartEx
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - domain
    - eventAttrib
    argTypes:
    - nvtxDomainHandle_t
    - nvtxEventAttributes_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 96
    functionName: NVTX_VERSIONED_IDENTIFIER
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h
    functionUses: 19
    functionsReached:
    - nvtxDomainRangeStartEx
    - NVTX_VERSIONED_IDENTIFIER
    linkageType: ''
    returnType: NVTX_LINKONCE_DEFINE_FUNCTION
    signature: NVTX_LINKONCE_DEFINE_FUNCTION NVTX_VERSIONED_IDENTIFIER(nvtxDomainRangeStartEx_impl_init)(nvtxDomainHandle_t
      domain, const nvtxEventAttributes_t* eventAttrib)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:99,1
    - Dst: nvtxDomainRangeEnd
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - domain
    - id
    argTypes:
    - nvtxDomainHandle_t
    - nvtxRangeId_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 101
    functionName: NVTX_VERSIONED_IDENTIFIER
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h
    functionUses: 20
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    - nvtxDomainRangeEnd
    linkageType: ''
    returnType: NVTX_LINKONCE_DEFINE_FUNCTION
    signature: NVTX_LINKONCE_DEFINE_FUNCTION NVTX_VERSIONED_IDENTIFIER(nvtxDomainRangeEnd_impl_init)(nvtxDomainHandle_t
      domain, nvtxRangeId_t id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:104,1
    - Dst: nvtxDomainRangePushEx
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - domain
    - eventAttrib
    argTypes:
    - nvtxDomainHandle_t
    - nvtxEventAttributes_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 106
    functionName: NVTX_VERSIONED_IDENTIFIER
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h
    functionUses: 21
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    - nvtxDomainRangePushEx
    linkageType: ''
    returnType: NVTX_LINKONCE_DEFINE_FUNCTION
    signature: NVTX_LINKONCE_DEFINE_FUNCTION NVTX_VERSIONED_IDENTIFIER(nvtxDomainRangePushEx_impl_init)(nvtxDomainHandle_t
      domain, const nvtxEventAttributes_t* eventAttrib)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:109,1
    - Dst: nvtxDomainRangePop
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - domain
    argTypes:
    - nvtxDomainHandle_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 111
    functionName: NVTX_VERSIONED_IDENTIFIER
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h
    functionUses: 22
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    - nvtxDomainRangePop
    linkageType: ''
    returnType: NVTX_LINKONCE_DEFINE_FUNCTION
    signature: NVTX_LINKONCE_DEFINE_FUNCTION NVTX_VERSIONED_IDENTIFIER(nvtxDomainRangePop_impl_init)(nvtxDomainHandle_t
      domain)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:114,1
    - Dst: nvtxDomainResourceCreate
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - domain
    - attribs
    argTypes:
    - nvtxDomainHandle_t
    - nvtxResourceAttributes_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 116
    functionName: NVTX_VERSIONED_IDENTIFIER
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h
    functionUses: 23
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    - nvtxDomainResourceCreate
    linkageType: ''
    returnType: NVTX_LINKONCE_DEFINE_FUNCTION
    signature: NVTX_LINKONCE_DEFINE_FUNCTION NVTX_VERSIONED_IDENTIFIER(nvtxDomainResourceCreate_impl_init)(nvtxDomainHandle_t
      domain, nvtxResourceAttributes_t* attribs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:119,1
    - Dst: nvtxDomainResourceDestroy
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - resource
    argTypes:
    - nvtxResourceHandle_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 121
    functionName: NVTX_VERSIONED_IDENTIFIER
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h
    functionUses: 24
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    - nvtxDomainResourceDestroy
    linkageType: ''
    returnType: NVTX_LINKONCE_DEFINE_FUNCTION
    signature: NVTX_LINKONCE_DEFINE_FUNCTION NVTX_VERSIONED_IDENTIFIER(nvtxDomainResourceDestroy_impl_init)(nvtxResourceHandle_t
      resource)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:124,1
    - Dst: nvtxDomainNameCategoryA
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - domain
    - category
    - name
    argTypes:
    - nvtxDomainHandle_t
    - uint32_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 126
    functionName: NVTX_VERSIONED_IDENTIFIER
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h
    functionUses: 25
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    - nvtxDomainNameCategoryA
    linkageType: ''
    returnType: NVTX_LINKONCE_DEFINE_FUNCTION
    signature: NVTX_LINKONCE_DEFINE_FUNCTION NVTX_VERSIONED_IDENTIFIER(nvtxDomainNameCategoryA_impl_init)(nvtxDomainHandle_t
      domain, uint32_t category, const char* name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:129,1
    - Dst: nvtxDomainNameCategoryW
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - domain
    - category
    - name
    argTypes:
    - nvtxDomainHandle_t
    - uint32_t
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 131
    functionName: NVTX_VERSIONED_IDENTIFIER
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h
    functionUses: 26
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    - nvtxDomainNameCategoryW
    linkageType: ''
    returnType: NVTX_LINKONCE_DEFINE_FUNCTION
    signature: NVTX_LINKONCE_DEFINE_FUNCTION NVTX_VERSIONED_IDENTIFIER(nvtxDomainNameCategoryW_impl_init)(nvtxDomainHandle_t
      domain, uint32_t category, const wchar_t* name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:134,1
    - Dst: nvtxDomainRegisterStringA
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - domain
    - string
    argTypes:
    - nvtxDomainHandle_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 136
    functionName: NVTX_VERSIONED_IDENTIFIER
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h
    functionUses: 27
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    - nvtxDomainRegisterStringA
    linkageType: ''
    returnType: NVTX_LINKONCE_DEFINE_FUNCTION
    signature: NVTX_LINKONCE_DEFINE_FUNCTION NVTX_VERSIONED_IDENTIFIER(nvtxDomainRegisterStringA_impl_init)(nvtxDomainHandle_t
      domain, const char* string)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:139,1
    - Dst: nvtxDomainRegisterStringW
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - domain
    - string
    argTypes:
    - nvtxDomainHandle_t
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 141
    functionName: NVTX_VERSIONED_IDENTIFIER
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h
    functionUses: 28
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    - nvtxDomainRegisterStringW
    linkageType: ''
    returnType: NVTX_LINKONCE_DEFINE_FUNCTION
    signature: NVTX_LINKONCE_DEFINE_FUNCTION NVTX_VERSIONED_IDENTIFIER(nvtxDomainRegisterStringW_impl_init)(nvtxDomainHandle_t
      domain, const wchar_t* string)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:144,1
    - Dst: nvtxDomainCreateA
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - message
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 143
    functionDepth: 1
    functionLinenumber: 143
    functionLinenumberEnd: 146
    functionName: NVTX_VERSIONED_IDENTIFIER
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h
    functionUses: 29
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    - nvtxDomainCreateA
    linkageType: ''
    returnType: NVTX_LINKONCE_DEFINE_FUNCTION
    signature: NVTX_LINKONCE_DEFINE_FUNCTION NVTX_VERSIONED_IDENTIFIER(nvtxDomainCreateA_impl_init)(const
      char* message)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:149,1
    - Dst: nvtxDomainCreateW
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - message
    argTypes:
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 151
    functionName: NVTX_VERSIONED_IDENTIFIER
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h
    functionUses: 30
    functionsReached:
    - nvtxDomainCreateW
    - NVTX_VERSIONED_IDENTIFIER
    linkageType: ''
    returnType: NVTX_LINKONCE_DEFINE_FUNCTION
    signature: NVTX_LINKONCE_DEFINE_FUNCTION NVTX_VERSIONED_IDENTIFIER(nvtxDomainCreateW_impl_init)(const
      wchar_t* message)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:154,1
    - Dst: nvtxDomainDestroy
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - domain
    argTypes:
    - nvtxDomainHandle_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 156
    functionName: NVTX_VERSIONED_IDENTIFIER
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h
    functionUses: 31
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    - nvtxDomainDestroy
    linkageType: ''
    returnType: NVTX_LINKONCE_DEFINE_FUNCTION
    signature: NVTX_LINKONCE_DEFINE_FUNCTION NVTX_VERSIONED_IDENTIFIER(nvtxDomainDestroy_impl_init)(nvtxDomainHandle_t
      domain)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:159,1
    - Dst: nvtxInitialize
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - reserved
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 161
    functionName: NVTX_VERSIONED_IDENTIFIER
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h
    functionUses: 32
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    - nvtxInitialize
    linkageType: ''
    returnType: NVTX_LINKONCE_DEFINE_FUNCTION
    signature: NVTX_LINKONCE_DEFINE_FUNCTION NVTX_VERSIONED_IDENTIFIER(nvtxInitialize_impl_init)(const
      void* reserved)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:165,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:166,1
    - Dst: local
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:168,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - device
    - name
    argTypes:
    - nvtx_CUdevice
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 169
    functionName: NVTX_VERSIONED_IDENTIFIER
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h
    functionUses: 33
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    - local
    linkageType: ''
    returnType: NVTX_LINKONCE_DEFINE_FUNCTION
    signature: NVTX_LINKONCE_DEFINE_FUNCTION NVTX_VERSIONED_IDENTIFIER(nvtxNameCuDeviceA_impl_init)(nvtx_CUdevice
      device, const char* name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:173,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:174,1
    - Dst: local
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:176,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - device
    - name
    argTypes:
    - nvtx_CUdevice
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 177
    functionName: NVTX_VERSIONED_IDENTIFIER
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h
    functionUses: 34
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    - local
    linkageType: ''
    returnType: NVTX_LINKONCE_DEFINE_FUNCTION
    signature: NVTX_LINKONCE_DEFINE_FUNCTION NVTX_VERSIONED_IDENTIFIER(nvtxNameCuDeviceW_impl_init)(nvtx_CUdevice
      device, const wchar_t* name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:181,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:182,1
    - Dst: local
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - context
    - name
    argTypes:
    - nvtx_CUcontext
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 185
    functionName: NVTX_VERSIONED_IDENTIFIER
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h
    functionUses: 35
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    - local
    linkageType: ''
    returnType: NVTX_LINKONCE_DEFINE_FUNCTION
    signature: NVTX_LINKONCE_DEFINE_FUNCTION NVTX_VERSIONED_IDENTIFIER(nvtxNameCuContextA_impl_init)(nvtx_CUcontext
      context, const char* name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:189,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:190,1
    - Dst: local
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:192,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - context
    - name
    argTypes:
    - nvtx_CUcontext
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 193
    functionName: NVTX_VERSIONED_IDENTIFIER
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h
    functionUses: 36
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    - local
    linkageType: ''
    returnType: NVTX_LINKONCE_DEFINE_FUNCTION
    signature: NVTX_LINKONCE_DEFINE_FUNCTION NVTX_VERSIONED_IDENTIFIER(nvtxNameCuContextW_impl_init)(nvtx_CUcontext
      context, const wchar_t* name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:197,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:198,1
    - Dst: local
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:200,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - stream
    - name
    argTypes:
    - nvtx_CUstream
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 201
    functionName: NVTX_VERSIONED_IDENTIFIER
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h
    functionUses: 37
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    - local
    linkageType: ''
    returnType: NVTX_LINKONCE_DEFINE_FUNCTION
    signature: NVTX_LINKONCE_DEFINE_FUNCTION NVTX_VERSIONED_IDENTIFIER(nvtxNameCuStreamA_impl_init)(nvtx_CUstream
      stream, const char* name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:205,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:206,1
    - Dst: local
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:208,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - stream
    - name
    argTypes:
    - nvtx_CUstream
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 209
    functionName: NVTX_VERSIONED_IDENTIFIER
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h
    functionUses: 38
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    - local
    linkageType: ''
    returnType: NVTX_LINKONCE_DEFINE_FUNCTION
    signature: NVTX_LINKONCE_DEFINE_FUNCTION NVTX_VERSIONED_IDENTIFIER(nvtxNameCuStreamW_impl_init)(nvtx_CUstream
      stream, const wchar_t* name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:213,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:214,1
    - Dst: local
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:216,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - event
    - name
    argTypes:
    - nvtx_CUevent
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 217
    functionName: NVTX_VERSIONED_IDENTIFIER
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h
    functionUses: 39
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    - local
    linkageType: ''
    returnType: NVTX_LINKONCE_DEFINE_FUNCTION
    signature: NVTX_LINKONCE_DEFINE_FUNCTION NVTX_VERSIONED_IDENTIFIER(nvtxNameCuEventA_impl_init)(nvtx_CUevent
      event, const char* name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:221,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:222,1
    - Dst: local
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:224,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - event
    - name
    argTypes:
    - nvtx_CUevent
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 225
    functionName: NVTX_VERSIONED_IDENTIFIER
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h
    functionUses: 40
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    - local
    linkageType: ''
    returnType: NVTX_LINKONCE_DEFINE_FUNCTION
    signature: NVTX_LINKONCE_DEFINE_FUNCTION NVTX_VERSIONED_IDENTIFIER(nvtxNameCuEventW_impl_init)(nvtx_CUevent
      event, const wchar_t* name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:229,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:230,1
    - Dst: local
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:232,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - device
    - name
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 233
    functionName: NVTX_VERSIONED_IDENTIFIER
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h
    functionUses: 41
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    - local
    linkageType: ''
    returnType: NVTX_LINKONCE_DEFINE_FUNCTION
    signature: NVTX_LINKONCE_DEFINE_FUNCTION NVTX_VERSIONED_IDENTIFIER(nvtxNameCudaDeviceA_impl_init)(int
      device, const char* name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:237,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:238,1
    - Dst: local
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - device
    - name
    argTypes:
    - int
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 235
    functionDepth: 0
    functionLinenumber: 235
    functionLinenumberEnd: 241
    functionName: NVTX_VERSIONED_IDENTIFIER
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h
    functionUses: 42
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    - local
    linkageType: ''
    returnType: NVTX_LINKONCE_DEFINE_FUNCTION
    signature: NVTX_LINKONCE_DEFINE_FUNCTION NVTX_VERSIONED_IDENTIFIER(nvtxNameCudaDeviceW_impl_init)(int
      device, const wchar_t* name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:245,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:246,1
    - Dst: local
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:248,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - stream
    - name
    argTypes:
    - nvtx_cudaStream_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 249
    functionName: NVTX_VERSIONED_IDENTIFIER
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h
    functionUses: 43
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    - local
    linkageType: ''
    returnType: NVTX_LINKONCE_DEFINE_FUNCTION
    signature: NVTX_LINKONCE_DEFINE_FUNCTION NVTX_VERSIONED_IDENTIFIER(nvtxNameCudaStreamA_impl_init)(nvtx_cudaStream_t
      stream, const char* name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:253,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:254,1
    - Dst: local
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:256,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - stream
    - name
    argTypes:
    - nvtx_cudaStream_t
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 257
    functionName: NVTX_VERSIONED_IDENTIFIER
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h
    functionUses: 44
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    - local
    linkageType: ''
    returnType: NVTX_LINKONCE_DEFINE_FUNCTION
    signature: NVTX_LINKONCE_DEFINE_FUNCTION NVTX_VERSIONED_IDENTIFIER(nvtxNameCudaStreamW_impl_init)(nvtx_cudaStream_t
      stream, const wchar_t* name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:261,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:262,1
    - Dst: local
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:264,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - event
    - name
    argTypes:
    - nvtx_cudaEvent_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 265
    functionName: NVTX_VERSIONED_IDENTIFIER
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h
    functionUses: 45
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    - local
    linkageType: ''
    returnType: NVTX_LINKONCE_DEFINE_FUNCTION
    signature: NVTX_LINKONCE_DEFINE_FUNCTION NVTX_VERSIONED_IDENTIFIER(nvtxNameCudaEventA_impl_init)(nvtx_cudaEvent_t
      event, const char* name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:269,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:270,1
    - Dst: local
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:272,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - event
    - name
    argTypes:
    - nvtx_cudaEvent_t
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 273
    functionName: NVTX_VERSIONED_IDENTIFIER
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h
    functionUses: 46
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    - local
    linkageType: ''
    returnType: NVTX_LINKONCE_DEFINE_FUNCTION
    signature: NVTX_LINKONCE_DEFINE_FUNCTION NVTX_VERSIONED_IDENTIFIER(nvtxNameCudaEventW_impl_init)(nvtx_cudaEvent_t
      event, const wchar_t* name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:277,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:278,1
    - Dst: local
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:280,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - device
    - name
    argTypes:
    - nvtx_cl_device_id
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 281
    functionName: NVTX_VERSIONED_IDENTIFIER
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h
    functionUses: 47
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    - local
    linkageType: ''
    returnType: NVTX_LINKONCE_DEFINE_FUNCTION
    signature: NVTX_LINKONCE_DEFINE_FUNCTION NVTX_VERSIONED_IDENTIFIER(nvtxNameClDeviceA_impl_init)(nvtx_cl_device_id
      device, const char* name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:285,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:286,1
    - Dst: local
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:288,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - device
    - name
    argTypes:
    - nvtx_cl_device_id
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 289
    functionName: NVTX_VERSIONED_IDENTIFIER
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h
    functionUses: 48
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    - local
    linkageType: ''
    returnType: NVTX_LINKONCE_DEFINE_FUNCTION
    signature: NVTX_LINKONCE_DEFINE_FUNCTION NVTX_VERSIONED_IDENTIFIER(nvtxNameClDeviceW_impl_init)(nvtx_cl_device_id
      device, const wchar_t* name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:293,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:294,1
    - Dst: local
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:296,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - context
    - name
    argTypes:
    - nvtx_cl_context
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 297
    functionName: NVTX_VERSIONED_IDENTIFIER
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h
    functionUses: 49
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    - local
    linkageType: ''
    returnType: NVTX_LINKONCE_DEFINE_FUNCTION
    signature: NVTX_LINKONCE_DEFINE_FUNCTION NVTX_VERSIONED_IDENTIFIER(nvtxNameClContextA_impl_init)(nvtx_cl_context
      context, const char* name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:301,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:302,1
    - Dst: local
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:304,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - context
    - name
    argTypes:
    - nvtx_cl_context
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 305
    functionName: NVTX_VERSIONED_IDENTIFIER
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h
    functionUses: 50
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    - local
    linkageType: ''
    returnType: NVTX_LINKONCE_DEFINE_FUNCTION
    signature: NVTX_LINKONCE_DEFINE_FUNCTION NVTX_VERSIONED_IDENTIFIER(nvtxNameClContextW_impl_init)(nvtx_cl_context
      context, const wchar_t* name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:309,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:310,1
    - Dst: local
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:312,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - command_queue
    - name
    argTypes:
    - nvtx_cl_command_queue
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 313
    functionName: NVTX_VERSIONED_IDENTIFIER
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h
    functionUses: 51
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    - local
    linkageType: ''
    returnType: NVTX_LINKONCE_DEFINE_FUNCTION
    signature: NVTX_LINKONCE_DEFINE_FUNCTION NVTX_VERSIONED_IDENTIFIER(nvtxNameClCommandQueueA_impl_init)(nvtx_cl_command_queue
      command_queue, const char* name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:317,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:318,1
    - Dst: local
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:320,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - command_queue
    - name
    argTypes:
    - nvtx_cl_command_queue
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 321
    functionName: NVTX_VERSIONED_IDENTIFIER
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h
    functionUses: 52
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    - local
    linkageType: ''
    returnType: NVTX_LINKONCE_DEFINE_FUNCTION
    signature: NVTX_LINKONCE_DEFINE_FUNCTION NVTX_VERSIONED_IDENTIFIER(nvtxNameClCommandQueueW_impl_init)(nvtx_cl_command_queue
      command_queue, const wchar_t* name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:325,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:326,1
    - Dst: local
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:328,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - memobj
    - name
    argTypes:
    - nvtx_cl_mem
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 329
    functionName: NVTX_VERSIONED_IDENTIFIER
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h
    functionUses: 53
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    - local
    linkageType: ''
    returnType: NVTX_LINKONCE_DEFINE_FUNCTION
    signature: NVTX_LINKONCE_DEFINE_FUNCTION NVTX_VERSIONED_IDENTIFIER(nvtxNameClMemObjectA_impl_init)(nvtx_cl_mem
      memobj, const char* name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:333,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:334,1
    - Dst: local
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:336,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - memobj
    - name
    argTypes:
    - nvtx_cl_mem
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 337
    functionName: NVTX_VERSIONED_IDENTIFIER
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h
    functionUses: 54
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    - local
    linkageType: ''
    returnType: NVTX_LINKONCE_DEFINE_FUNCTION
    signature: NVTX_LINKONCE_DEFINE_FUNCTION NVTX_VERSIONED_IDENTIFIER(nvtxNameClMemObjectW_impl_init)(nvtx_cl_mem
      memobj, const wchar_t* name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:341,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:342,1
    - Dst: local
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:344,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - sampler
    - name
    argTypes:
    - nvtx_cl_sampler
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 339
    functionDepth: 0
    functionLinenumber: 339
    functionLinenumberEnd: 345
    functionName: NVTX_VERSIONED_IDENTIFIER
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h
    functionUses: 55
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    - local
    linkageType: ''
    returnType: NVTX_LINKONCE_DEFINE_FUNCTION
    signature: NVTX_LINKONCE_DEFINE_FUNCTION NVTX_VERSIONED_IDENTIFIER(nvtxNameClSamplerA_impl_init)(nvtx_cl_sampler
      sampler, const char* name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:349,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:350,1
    - Dst: local
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:352,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - sampler
    - name
    argTypes:
    - nvtx_cl_sampler
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 347
    functionDepth: 0
    functionLinenumber: 347
    functionLinenumberEnd: 353
    functionName: NVTX_VERSIONED_IDENTIFIER
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h
    functionUses: 56
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    - local
    linkageType: ''
    returnType: NVTX_LINKONCE_DEFINE_FUNCTION
    signature: NVTX_LINKONCE_DEFINE_FUNCTION NVTX_VERSIONED_IDENTIFIER(nvtxNameClSamplerW_impl_init)(nvtx_cl_sampler
      sampler, const wchar_t* name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:357,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:358,1
    - Dst: local
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:360,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - program
    - name
    argTypes:
    - nvtx_cl_program
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 361
    functionName: NVTX_VERSIONED_IDENTIFIER
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h
    functionUses: 57
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    - local
    linkageType: ''
    returnType: NVTX_LINKONCE_DEFINE_FUNCTION
    signature: NVTX_LINKONCE_DEFINE_FUNCTION NVTX_VERSIONED_IDENTIFIER(nvtxNameClProgramA_impl_init)(nvtx_cl_program
      program, const char* name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:365,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:366,1
    - Dst: local
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:368,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - program
    - name
    argTypes:
    - nvtx_cl_program
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 369
    functionName: NVTX_VERSIONED_IDENTIFIER
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h
    functionUses: 58
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    - local
    linkageType: ''
    returnType: NVTX_LINKONCE_DEFINE_FUNCTION
    signature: NVTX_LINKONCE_DEFINE_FUNCTION NVTX_VERSIONED_IDENTIFIER(nvtxNameClProgramW_impl_init)(nvtx_cl_program
      program, const wchar_t* name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:373,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:374,1
    - Dst: local
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:376,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - evnt
    - name
    argTypes:
    - nvtx_cl_event
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 371
    functionDepth: 0
    functionLinenumber: 371
    functionLinenumberEnd: 377
    functionName: NVTX_VERSIONED_IDENTIFIER
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h
    functionUses: 59
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    - local
    linkageType: ''
    returnType: NVTX_LINKONCE_DEFINE_FUNCTION
    signature: NVTX_LINKONCE_DEFINE_FUNCTION NVTX_VERSIONED_IDENTIFIER(nvtxNameClEventA_impl_init)(nvtx_cl_event
      evnt, const char* name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:381,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:382,1
    - Dst: local
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:384,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - evnt
    - name
    argTypes:
    - nvtx_cl_event
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 379
    functionDepth: 0
    functionLinenumber: 379
    functionLinenumberEnd: 385
    functionName: NVTX_VERSIONED_IDENTIFIER
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h
    functionUses: 60
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    - local
    linkageType: ''
    returnType: NVTX_LINKONCE_DEFINE_FUNCTION
    signature: NVTX_LINKONCE_DEFINE_FUNCTION NVTX_VERSIONED_IDENTIFIER(nvtxNameClEventW_impl_init)(nvtx_cl_event
      evnt, const wchar_t* name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:389,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:390,1
    - Dst: local
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:392,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - domain
    - attribs
    argTypes:
    - nvtxDomainHandle_t
    - nvtxSyncUserAttributes_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 395
    functionName: NVTX_VERSIONED_IDENTIFIER
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h
    functionUses: 61
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    - local
    linkageType: ''
    returnType: NVTX_LINKONCE_DEFINE_FUNCTION
    signature: NVTX_LINKONCE_DEFINE_FUNCTION NVTX_VERSIONED_IDENTIFIER(nvtxDomainSyncUserCreate_impl_init)(nvtxDomainHandle_t
      domain, const nvtxSyncUserAttributes_t* attribs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:399,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:400,1
    - Dst: local
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:402,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - handle
    argTypes:
    - nvtxSyncUser_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 403
    functionName: NVTX_VERSIONED_IDENTIFIER
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h
    functionUses: 62
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    - local
    linkageType: ''
    returnType: NVTX_LINKONCE_DEFINE_FUNCTION
    signature: NVTX_LINKONCE_DEFINE_FUNCTION NVTX_VERSIONED_IDENTIFIER(nvtxDomainSyncUserDestroy_impl_init)(nvtxSyncUser_t
      handle)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:407,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:408,1
    - Dst: local
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:410,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - handle
    argTypes:
    - nvtxSyncUser_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 411
    functionName: NVTX_VERSIONED_IDENTIFIER
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h
    functionUses: 63
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    - local
    linkageType: ''
    returnType: NVTX_LINKONCE_DEFINE_FUNCTION
    signature: NVTX_LINKONCE_DEFINE_FUNCTION NVTX_VERSIONED_IDENTIFIER(nvtxDomainSyncUserAcquireStart_impl_init)(nvtxSyncUser_t
      handle)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:415,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:416,1
    - Dst: local
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:418,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - handle
    argTypes:
    - nvtxSyncUser_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 419
      start: 413
    functionDepth: 0
    functionLinenumber: 413
    functionLinenumberEnd: 419
    functionName: NVTX_VERSIONED_IDENTIFIER
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h
    functionUses: 64
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    - local
    linkageType: ''
    returnType: NVTX_LINKONCE_DEFINE_FUNCTION
    signature: NVTX_LINKONCE_DEFINE_FUNCTION NVTX_VERSIONED_IDENTIFIER(nvtxDomainSyncUserAcquireFailed_impl_init)(nvtxSyncUser_t
      handle)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:423,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:424,1
    - Dst: local
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:426,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - handle
    argTypes:
    - nvtxSyncUser_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 427
      start: 421
    functionDepth: 0
    functionLinenumber: 421
    functionLinenumberEnd: 427
    functionName: NVTX_VERSIONED_IDENTIFIER
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h
    functionUses: 65
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    - local
    linkageType: ''
    returnType: NVTX_LINKONCE_DEFINE_FUNCTION
    signature: NVTX_LINKONCE_DEFINE_FUNCTION NVTX_VERSIONED_IDENTIFIER(nvtxDomainSyncUserAcquireSuccess_impl_init)(nvtxSyncUser_t
      handle)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:431,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:432,1
    - Dst: local
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:434,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - handle
    argTypes:
    - nvtxSyncUser_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 429
    functionDepth: 0
    functionLinenumber: 429
    functionLinenumberEnd: 435
    functionName: NVTX_VERSIONED_IDENTIFIER
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h
    functionUses: 66
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    - local
    linkageType: ''
    returnType: NVTX_LINKONCE_DEFINE_FUNCTION
    signature: NVTX_LINKONCE_DEFINE_FUNCTION NVTX_VERSIONED_IDENTIFIER(nvtxDomainSyncUserReleasing_impl_init)(nvtxSyncUser_t
      handle)
  - BBCount: 65
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:440,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:440,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:441,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:442,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:442,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:443,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:444,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:444,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:445,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:446,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:446,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:447,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:448,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:448,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:449,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:450,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:450,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:451,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:452,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:452,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:453,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:454,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:454,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:455,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:456,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:456,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:457,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:458,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:458,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:459,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:460,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:460,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:461,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:462,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:462,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:463,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:464,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:464,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:465,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:466,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:466,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:467,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:468,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:468,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:469,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:471,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:471,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:472,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:473,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:473,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:474,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:475,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:475,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:476,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:477,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:477,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:478,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:479,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:479,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:480,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:481,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:481,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:482,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:483,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:483,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:484,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:485,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:485,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:486,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:488,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:488,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:489,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:490,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:490,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:491,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:492,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:492,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:493,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:494,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:494,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:495,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:496,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:496,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:497,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:498,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:498,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:499,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:500,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:500,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:501,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:502,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:502,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:503,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:504,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:504,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:505,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:506,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:506,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:507,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:508,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:508,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:509,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:510,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:510,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:511,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:512,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:512,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:513,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:514,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:514,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:515,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:517,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:517,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:518,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:519,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:519,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:520,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:521,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:521,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:522,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:523,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:523,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:524,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:525,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:525,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:526,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:527,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:527,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:528,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:530,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:530,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:531,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:532,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:532,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:533,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:534,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:534,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:535,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:536,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:536,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:537,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:538,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:538,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:539,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:540,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:540,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:541,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:542,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:542,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:543,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:544,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:544,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:545,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:546,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:546,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:547,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:548,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:548,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:549,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:550,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:550,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:551,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:552,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:552,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:553,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:554,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:554,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:555,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:556,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:556,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:557,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:558,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:558,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:559,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:561,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:561,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:562,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:563,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:563,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:564,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:565,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:565,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:566,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:567,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:567,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:568,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:569,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:569,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:570,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:571,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:571,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h:572,1
    CyclomaticComplexity: 128
    EdgeCount: 128
    ICount: 129
    argCount: 1
    argNames:
    - forceAllToNoops
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 573
      start: 438
    functionDepth: 0
    functionLinenumber: 438
    functionLinenumberEnd: 573
    functionName: NVTX_VERSIONED_IDENTIFIER
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h
    functionUses: 67
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    linkageType: ''
    returnType: NVTX_LINKONCE_DEFINE_FUNCTION
    signature: NVTX_LINKONCE_DEFINE_FUNCTION NVTX_VERSIONED_IDENTIFIER(nvtxSetInitFunctionsToNoops)(int
      forceAllToNoops)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - NAME
    - ','
    - VERSION
    - ','
    - COMPATID
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 27
    functionName: NVTX_EXT_COUNTERS_VERSIONED_IDENTIFIER_L3
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtImplCounters_v1.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NVTX_EXT_COUNTERS_VERSIONED_IDENTIFIER_L3(NAME, VERSION, COMPATID)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - NAME
    - ','
    - VERSION
    - ','
    - COMPATID
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 29
    functionName: NVTX_EXT_COUNTERS_VERSIONED_IDENTIFIER_L2
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtImplCounters_v1.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NVTX_EXT_COUNTERS_VERSIONED_IDENTIFIER_L2(NAME, VERSION, COMPATID)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - NAME
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 31
    functionName: NVTX_EXT_COUNTERS_VERSIONED_ID
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtImplCounters_v1.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NVTX_EXT_COUNTERS_VERSIONED_ID(NAME)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - ret_val
    - ','
    - fn_name
    - ','
    - signature
    - ','
    - arg_names
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 41
    functionName: NVTX_EXT_COUNTERS_IMPL_FN_V1
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtImplCounters_v1.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NVTX_EXT_COUNTERS_IMPL_FN_V1(ret_val, fn_name, signature, arg_names)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_EXT_COUNTERS_VERSIONED_ID
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtImplCounters_v1.h:57,1
    - Dst: NVTX_INFO
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtImplCounters_v1.h:73,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtImplCounters_v1.h:75,1
    - Dst: NVTX_EXT_COUNTERS_VERSIONED_ID
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtImplCounters_v1.h:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 77
    functionName: NVTX_EXT_COUNTERS_VERSIONED_ID
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtImplCounters_v1.h
    functionUses: 1
    functionsReached:
    - NVTX_EXT_COUNTERS_VERSIONED_ID
    - NVTX_VERSIONED_IDENTIFIER
    - NVTX_INFO
    linkageType: ''
    returnType: NVTX_LINKONCE_DEFINE_FUNCTION
    signature: NVTX_LINKONCE_DEFINE_FUNCTION NVTX_EXT_COUNTERS_VERSIONED_ID(nvtxExtCountersInitOnce)()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - ret_type
    - ','
    - fn_name
    - ','
    - signature
    - ','
    - arg_names
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 88
    functionName: NVTX_EXT_COUNTERS_IMPL_FN_V1
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtImplCounters_v1.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NVTX_EXT_COUNTERS_IMPL_FN_V1(ret_type, fn_name, signature, arg_names)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - rtype
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 102
    functionName: NVTX_EXT_FN_RETURN_INVALID
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtImplCounters_v1.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NVTX_EXT_FN_RETURN_INVALID(rtype)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplOpenCL_v3.h:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - device
    - name
    argTypes:
    - cl_device_id
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 40
    functionName: nvtxNameClDeviceA
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplOpenCL_v3.h
    functionUses: 0
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    linkageType: ''
    returnType: NVTX_DECLSPEC
    signature: NVTX_DECLSPEC nvtxNameClDeviceA(cl_device_id device, const char* name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplOpenCL_v3.h:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - device
    - name
    argTypes:
    - cl_device_id
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 49
    functionName: nvtxNameClDeviceW
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplOpenCL_v3.h
    functionUses: 0
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    linkageType: ''
    returnType: NVTX_DECLSPEC
    signature: NVTX_DECLSPEC nvtxNameClDeviceW(cl_device_id device, const wchar_t*
      name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplOpenCL_v3.h:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - context
    - name
    argTypes:
    - cl_context
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 58
    functionName: nvtxNameClContextA
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplOpenCL_v3.h
    functionUses: 0
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    linkageType: ''
    returnType: NVTX_DECLSPEC
    signature: NVTX_DECLSPEC nvtxNameClContextA(cl_context context, const char* name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplOpenCL_v3.h:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - context
    - name
    argTypes:
    - cl_context
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 67
    functionName: nvtxNameClContextW
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplOpenCL_v3.h
    functionUses: 0
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    linkageType: ''
    returnType: NVTX_DECLSPEC
    signature: NVTX_DECLSPEC nvtxNameClContextW(cl_context context, const wchar_t*
      name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplOpenCL_v3.h:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - command_queue
    - name
    argTypes:
    - cl_command_queue
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 76
    functionName: nvtxNameClCommandQueueA
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplOpenCL_v3.h
    functionUses: 0
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    linkageType: ''
    returnType: NVTX_DECLSPEC
    signature: NVTX_DECLSPEC nvtxNameClCommandQueueA(cl_command_queue command_queue,
      const char* name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplOpenCL_v3.h:81,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - command_queue
    - name
    argTypes:
    - cl_command_queue
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 85
    functionName: nvtxNameClCommandQueueW
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplOpenCL_v3.h
    functionUses: 0
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    linkageType: ''
    returnType: NVTX_DECLSPEC
    signature: NVTX_DECLSPEC nvtxNameClCommandQueueW(cl_command_queue command_queue,
      const wchar_t* name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplOpenCL_v3.h:90,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - memobj
    - name
    argTypes:
    - cl_mem
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 94
    functionName: nvtxNameClMemObjectA
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplOpenCL_v3.h
    functionUses: 0
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    linkageType: ''
    returnType: NVTX_DECLSPEC
    signature: NVTX_DECLSPEC nvtxNameClMemObjectA(cl_mem memobj, const char* name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplOpenCL_v3.h:99,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - memobj
    - name
    argTypes:
    - cl_mem
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 103
    functionName: nvtxNameClMemObjectW
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplOpenCL_v3.h
    functionUses: 0
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    linkageType: ''
    returnType: NVTX_DECLSPEC
    signature: NVTX_DECLSPEC nvtxNameClMemObjectW(cl_mem memobj, const wchar_t* name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplOpenCL_v3.h:108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - sampler
    - name
    argTypes:
    - cl_sampler
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 112
    functionName: nvtxNameClSamplerA
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplOpenCL_v3.h
    functionUses: 0
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    linkageType: ''
    returnType: NVTX_DECLSPEC
    signature: NVTX_DECLSPEC nvtxNameClSamplerA(cl_sampler sampler, const char* name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplOpenCL_v3.h:117,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - sampler
    - name
    argTypes:
    - cl_sampler
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 121
    functionName: nvtxNameClSamplerW
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplOpenCL_v3.h
    functionUses: 0
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    linkageType: ''
    returnType: NVTX_DECLSPEC
    signature: NVTX_DECLSPEC nvtxNameClSamplerW(cl_sampler sampler, const wchar_t*
      name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplOpenCL_v3.h:126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - program
    - name
    argTypes:
    - cl_program
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 130
    functionName: nvtxNameClProgramA
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplOpenCL_v3.h
    functionUses: 0
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    linkageType: ''
    returnType: NVTX_DECLSPEC
    signature: NVTX_DECLSPEC nvtxNameClProgramA(cl_program program, const char* name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplOpenCL_v3.h:135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - program
    - name
    argTypes:
    - cl_program
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 139
    functionName: nvtxNameClProgramW
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplOpenCL_v3.h
    functionUses: 0
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    linkageType: ''
    returnType: NVTX_DECLSPEC
    signature: NVTX_DECLSPEC nvtxNameClProgramW(cl_program program, const wchar_t*
      name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplOpenCL_v3.h:144,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - evnt
    - name
    argTypes:
    - cl_event
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 148
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 148
    functionName: nvtxNameClEventA
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplOpenCL_v3.h
    functionUses: 0
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    linkageType: ''
    returnType: NVTX_DECLSPEC
    signature: NVTX_DECLSPEC nvtxNameClEventA(cl_event evnt, const char* name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplOpenCL_v3.h:153,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - evnt
    - name
    argTypes:
    - cl_event
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 150
    functionDepth: 0
    functionLinenumber: 150
    functionLinenumberEnd: 157
    functionName: nvtxNameClEventW
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplOpenCL_v3.h
    functionUses: 0
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    linkageType: ''
    returnType: NVTX_DECLSPEC
    signature: NVTX_DECLSPEC nvtxNameClEventW(cl_event evnt, const wchar_t* name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCudaRt_v3.h:27,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - device
    - name
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 31
    functionName: nvtxNameCudaDeviceA
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCudaRt_v3.h
    functionUses: 0
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    linkageType: ''
    returnType: NVTX_DECLSPEC
    signature: NVTX_DECLSPEC nvtxNameCudaDeviceA(int device, const char* name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCudaRt_v3.h:36,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - device
    - name
    argTypes:
    - int
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 40
    functionName: nvtxNameCudaDeviceW
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCudaRt_v3.h
    functionUses: 0
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    linkageType: ''
    returnType: NVTX_DECLSPEC
    signature: NVTX_DECLSPEC nvtxNameCudaDeviceW(int device, const wchar_t* name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCudaRt_v3.h:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - stream
    - name
    argTypes:
    - cudaStream_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 49
    functionName: nvtxNameCudaStreamA
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCudaRt_v3.h
    functionUses: 0
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    linkageType: ''
    returnType: NVTX_DECLSPEC
    signature: NVTX_DECLSPEC nvtxNameCudaStreamA(cudaStream_t stream, const char*
      name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCudaRt_v3.h:54,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - stream
    - name
    argTypes:
    - cudaStream_t
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 58
    functionName: nvtxNameCudaStreamW
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCudaRt_v3.h
    functionUses: 0
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    linkageType: ''
    returnType: NVTX_DECLSPEC
    signature: NVTX_DECLSPEC nvtxNameCudaStreamW(cudaStream_t stream, const wchar_t*
      name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCudaRt_v3.h:63,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - event
    - name
    argTypes:
    - cudaEvent_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 67
    functionName: nvtxNameCudaEventA
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCudaRt_v3.h
    functionUses: 0
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    linkageType: ''
    returnType: NVTX_DECLSPEC
    signature: NVTX_DECLSPEC nvtxNameCudaEventA(cudaEvent_t event, const char* name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCudaRt_v3.h:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - event
    - name
    argTypes:
    - cudaEvent_t
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 76
    functionName: nvtxNameCudaEventW
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCudaRt_v3.h
    functionUses: 0
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    linkageType: ''
    returnType: NVTX_DECLSPEC
    signature: NVTX_DECLSPEC nvtxNameCudaEventW(cudaEvent_t event, const wchar_t*
      name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - NAME
    - ','
    - VERSION
    - ','
    - COMPATID
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 27
    functionName: NVTX_EXT_PAYLOAD_VERSIONED_IDENTIFIER_L3
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtImplPayload_v1.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NVTX_EXT_PAYLOAD_VERSIONED_IDENTIFIER_L3(NAME, VERSION, COMPATID)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - NAME
    - ','
    - VERSION
    - ','
    - COMPATID
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 29
    functionName: NVTX_EXT_PAYLOAD_VERSIONED_IDENTIFIER_L2
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtImplPayload_v1.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NVTX_EXT_PAYLOAD_VERSIONED_IDENTIFIER_L2(NAME, VERSION, COMPATID)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - NAME
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 31
    functionName: NVTX_EXT_PAYLOAD_VERSIONED_ID
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtImplPayload_v1.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NVTX_EXT_PAYLOAD_VERSIONED_ID(NAME)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - ret_val
    - ','
    - fn_name
    - ','
    - signature
    - ','
    - arg_names
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 41
    functionName: NVTX_EXT_PAYLOAD_IMPL_FN_V1
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtImplPayload_v1.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NVTX_EXT_PAYLOAD_IMPL_FN_V1(ret_val, fn_name, signature, arg_names)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_EXT_PAYLOAD_VERSIONED_ID
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtImplPayload_v1.h:59,1
    - Dst: NVTX_EXT_PAYLOAD_VERSIONED_ID
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtImplPayload_v1.h:72,1
    - Dst: NVTX_INFO
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtImplPayload_v1.h:75,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtImplPayload_v1.h:77,1
    - Dst: NVTX_EXT_PAYLOAD_VERSIONED_ID
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtImplPayload_v1.h:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 79
    functionName: NVTX_EXT_PAYLOAD_VERSIONED_ID
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtImplPayload_v1.h
    functionUses: 1
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    - NVTX_INFO
    - NVTX_EXT_PAYLOAD_VERSIONED_ID
    linkageType: ''
    returnType: NVTX_LINKONCE_DEFINE_FUNCTION
    signature: NVTX_LINKONCE_DEFINE_FUNCTION NVTX_EXT_PAYLOAD_VERSIONED_ID(nvtxExtPayloadInitOnce)()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - ret_type
    - ','
    - fn_name
    - ','
    - signature
    - ','
    - arg_names
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 90
    functionName: NVTX_EXT_PAYLOAD_IMPL_FN_V1
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtImplPayload_v1.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NVTX_EXT_PAYLOAD_IMPL_FN_V1(ret_type, fn_name, signature, arg_names)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - rtype
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 104
    functionName: NVTX_EXT_FN_RETURN_INVALID
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtImplPayload_v1.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NVTX_EXT_FN_RETURN_INVALID(rtype)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCuda_v3.h:30,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - device
    - name
    argTypes:
    - CUdevice
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 34
    functionName: nvtxNameCuDeviceA
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCuda_v3.h
    functionUses: 0
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    linkageType: ''
    returnType: NVTX_DECLSPEC
    signature: NVTX_DECLSPEC nvtxNameCuDeviceA(CUdevice device, const char* name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCuda_v3.h:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - device
    - name
    argTypes:
    - CUdevice
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 43
    functionName: nvtxNameCuDeviceW
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCuda_v3.h
    functionUses: 0
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    linkageType: ''
    returnType: NVTX_DECLSPEC
    signature: NVTX_DECLSPEC nvtxNameCuDeviceW(CUdevice device, const wchar_t* name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCuda_v3.h:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - context
    - name
    argTypes:
    - CUcontext
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 52
    functionName: nvtxNameCuContextA
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCuda_v3.h
    functionUses: 0
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    linkageType: ''
    returnType: NVTX_DECLSPEC
    signature: NVTX_DECLSPEC nvtxNameCuContextA(CUcontext context, const char* name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCuda_v3.h:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - context
    - name
    argTypes:
    - CUcontext
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 61
    functionName: nvtxNameCuContextW
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCuda_v3.h
    functionUses: 0
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    linkageType: ''
    returnType: NVTX_DECLSPEC
    signature: NVTX_DECLSPEC nvtxNameCuContextW(CUcontext context, const wchar_t*
      name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCuda_v3.h:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - stream
    - name
    argTypes:
    - CUstream
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 70
    functionName: nvtxNameCuStreamA
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCuda_v3.h
    functionUses: 0
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    linkageType: ''
    returnType: NVTX_DECLSPEC
    signature: NVTX_DECLSPEC nvtxNameCuStreamA(CUstream stream, const char* name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCuda_v3.h:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - stream
    - name
    argTypes:
    - CUstream
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 79
    functionName: nvtxNameCuStreamW
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCuda_v3.h
    functionUses: 0
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    linkageType: ''
    returnType: NVTX_DECLSPEC
    signature: NVTX_DECLSPEC nvtxNameCuStreamW(CUstream stream, const wchar_t* name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCuda_v3.h:84,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - event
    - name
    argTypes:
    - CUevent
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 88
    functionName: nvtxNameCuEventA
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCuda_v3.h
    functionUses: 0
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    linkageType: ''
    returnType: NVTX_DECLSPEC
    signature: NVTX_DECLSPEC nvtxNameCuEventA(CUevent event, const char* name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCuda_v3.h:93,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - event
    - name
    argTypes:
    - CUevent
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 97
    functionName: nvtxNameCuEventW
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCuda_v3.h
    functionUses: 0
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    linkageType: ''
    returnType: NVTX_DECLSPEC
    signature: NVTX_DECLSPEC nvtxNameCuEventW(CUevent event, const wchar_t* name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 20
    functionName: NVTX_STR
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInit.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NVTX_STR(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 24
    functionName: NVTX_DLLOPEN
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInit.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NVTX_DLLOPEN(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 26
    functionDepth: 0
    functionLinenumber: 26
    functionLinenumberEnd: 27
    functionName: NVTX_YIELD
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInit.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NVTX_YIELD()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: NVTX_MEMBAR
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInit.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NVTX_MEMBAR()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - address
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 29
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 29
    functionName: NVTX_ATOMIC_WRITE_32
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInit.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NVTX_ATOMIC_WRITE_32(address, value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - old
    - ','
    - address
    - ','
    - exchange
    - ','
    - comparand
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 30
    functionName: NVTX_ATOMIC_CAS_32
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInit.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NVTX_ATOMIC_CAS_32(old, address, exchange, comparand)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: NVTX_STR
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInit.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NVTX_STR(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: NVTX_DLLOPEN
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInit.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NVTX_DLLOPEN(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 40
    functionName: NVTX_YIELD
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInit.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NVTX_YIELD()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: NVTX_MEMBAR
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInit.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NVTX_MEMBAR()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - address
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: NVTX_ATOMIC_WRITE_32
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInit.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NVTX_ATOMIC_WRITE_32(address, value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - old
    - ','
    - address
    - ','
    - exchange
    - ','
    - comparand
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: NVTX_ATOMIC_CAS_32
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInit.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NVTX_ATOMIC_CAS_32(old, address, exchange, comparand)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_DLLFUNC
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInit.h:106,1
    - Dst: NVTX_STR
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInit.h:117,1
    - Dst: NVTX_STR
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInit.h:118,1
    - Dst: NVTX_GETENV
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInit.h:133,1
    - Dst: getpid
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInit.h:151,1
    - Dst: snprintf
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInit.h:152,1
    - Dst: NVTX_ERR
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInit.h:155,1
    - Dst: fopen
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInit.h:159,1
    - Dst: NVTX_ERR
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInit.h:162,1
    - Dst: fread
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInit.h:166,1
    - Dst: fclose
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInit.h:167,1
    - Dst: NVTX_ERR
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInit.h:170,1
    - Dst: snprintf
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInit.h:184,1
    - Dst: NVTX_ERR
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInit.h:187,1
    - Dst: access
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInit.h:197,1
    - Dst: faccessat
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInit.h:199,1
    - Dst: NVTX_ERR
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInit.h:203,1
    - Dst: strerror
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInit.h:203,1
    - Dst: NVTX_DLLOPEN
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInit.h:216,1
    - Dst: NVTX_ERR
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInit.h:219,1
    - Dst: NVTX_DLLFUNC
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInit.h:225,1
    - Dst: NVTX_DLLCLOSE
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInit.h:228,1
    - Dst: NVTX_ERR
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInit.h:229,1
    - Dst: init_fnptr
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInit.h:259,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInit.h:259,1
    - Dst: NVTX_ERR
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInit.h:262,1
    - Dst: NVTX_DLLCLOSE
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInit.h:265,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 74
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 271
    functionName: NVTX_VERSIONED_IDENTIFIER
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInit.h
    functionUses: 98
    functionsReached:
    - NVTX_DLLOPEN
    - NVTX_GETENV
    - NVTX_DLLFUNC
    - NVTX_ERR
    - fclose
    - fopen
    - getpid
    - init_fnptr
    - access
    - NVTX_STR
    - NVTX_DLLCLOSE
    - NVTX_VERSIONED_IDENTIFIER
    - strerror
    - fread
    - faccessat
    - snprintf
    linkageType: ''
    returnType: NVTX_LINKONCE_DEFINE_FUNCTION
    signature: NVTX_LINKONCE_DEFINE_FUNCTION NVTX_VERSIONED_IDENTIFIER(nvtxInitializeInjectionLibrary)(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInit.h:276,1
    - Dst: NVTX_ATOMIC_CAS_32
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInit.h:281,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInit.h:283,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInit.h:292,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInit.h:296,1
    - Dst: NVTX_ATOMIC_WRITE_32
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInit.h:299,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInit.h:300,1
    - Dst: NVTX_MEMBAR
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInit.h:305,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInit.h:306,1
    - Dst: NVTX_YIELD
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInit.h:308,1
    - Dst: NVTX_MEMBAR
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInit.h:309,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 312
    functionName: NVTX_VERSIONED_IDENTIFIER
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInit.h
    functionUses: 99
    functionsReached:
    - NVTX_MEMBAR
    - NVTX_YIELD
    - NVTX_ATOMIC_CAS_32
    - NVTX_VERSIONED_IDENTIFIER
    - NVTX_ATOMIC_WRITE_32
    linkageType: ''
    returnType: NVTX_LINKONCE_DEFINE_FUNCTION
    signature: NVTX_LINKONCE_DEFINE_FUNCTION NVTX_VERSIONED_IDENTIFIER(nvtxInitOnce)(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 14
    functionName: _NVTX_EXT_CONCAT
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtHelperMacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NVTX_EXT_CONCAT(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 15
    functionName: NVTX_EXT_CONCAT
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtHelperMacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NVTX_EXT_CONCAT(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 19
    functionName: NVTX_EXT_NUM_ARGS
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtHelperMacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NVTX_EXT_NUM_ARGS(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 35
    argNames:
    - (
    - a1
    - ','
    - a2
    - ','
    - a3
    - ','
    - a4
    - ','
    - a5
    - ','
    - a6
    - ','
    - a7
    - ','
    - a8
    - ','
    - a9
    - ','
    - a10
    - ','
    - a11
    - ','
    - a12
    - ','
    - a13
    - ','
    - a14
    - ','
    - a15
    - ','
    - a16
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 20
    functionName: NVTX_EXT_SELECTA16
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtHelperMacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NVTX_EXT_SELECTA16(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12,
      a13, a14, a15, a16, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a1
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 23
    functionName: _NVTX_EXT_VOIDIFY1
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtHelperMacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NVTX_EXT_VOIDIFY1(a1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a1
    - ','
    - a2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 24
    functionName: _NVTX_EXT_VOIDIFY2
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtHelperMacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NVTX_EXT_VOIDIFY2(a1, a2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a1
    - ','
    - a2
    - ','
    - a3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    functionName: _NVTX_EXT_VOIDIFY3
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtHelperMacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NVTX_EXT_VOIDIFY3(a1, a2, a3)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - a1
    - ','
    - a2
    - ','
    - a3
    - ','
    - a4
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: _NVTX_EXT_VOIDIFY4
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtHelperMacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NVTX_EXT_VOIDIFY4(a1, a2, a3, a4)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 30
    functionName: NVTX_EXT_HELPER_UNUSED_ARGS
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtHelperMacros.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NVTX_EXT_HELPER_UNUSED_ARGS(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - NAME
    - ','
    - VERSION
    - ','
    - COMPATID
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 22
    functionName: NVTXMEM_VERSIONED_IDENTIFIER_L3
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtImplMem_v1.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NVTXMEM_VERSIONED_IDENTIFIER_L3(NAME, VERSION, COMPATID)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - NAME
    - ','
    - VERSION
    - ','
    - COMPATID
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 23
    functionName: NVTXMEM_VERSIONED_IDENTIFIER_L2
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtImplMem_v1.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NVTXMEM_VERSIONED_IDENTIFIER_L2(NAME, VERSION, COMPATID)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - NAME
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 24
    functionName: NVTX_EXT_MEM_VERSIONED_ID
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtImplMem_v1.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NVTX_EXT_MEM_VERSIONED_ID(NAME)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - ret_val
    - ','
    - fn_name
    - ','
    - signature
    - ','
    - arg_names
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 34
    functionName: NVTX_EXT_FN_IMPL
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtImplMem_v1.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NVTX_EXT_FN_IMPL(ret_val, fn_name, signature, arg_names)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_EXT_MEM_VERSIONED_ID
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtImplMem_v1.h:47,1
    - Dst: NVTX_INFO
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtImplMem_v1.h:62,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtImplMem_v1.h:64,1
    - Dst: NVTX_EXT_MEM_VERSIONED_ID
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtImplMem_v1.h:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 66
    functionName: NVTX_EXT_MEM_VERSIONED_ID
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtImplMem_v1.h
    functionUses: 1
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    - NVTX_INFO
    - NVTX_EXT_MEM_VERSIONED_ID
    linkageType: ''
    returnType: NVTX_LINKONCE_DEFINE_FUNCTION
    signature: NVTX_LINKONCE_DEFINE_FUNCTION NVTX_EXT_MEM_VERSIONED_ID(nvtxExtMemInitOnce)()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - ret_type
    - ','
    - fn_name
    - ','
    - signature
    - ','
    - arg_names
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 77
    functionName: NVTX_EXT_FN_IMPL
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtImplMem_v1.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NVTX_EXT_FN_IMPL(ret_type, fn_name, signature, arg_names)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - rtype
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 91
    functionName: NVTX_EXT_FN_RETURN_INVALID
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtImplMem_v1.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NVTX_EXT_FN_RETURN_INVALID(rtype)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - ret_val
    - ','
    - fn_name
    - ','
    - signature
    - ','
    - arg_names
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 26
    functionName: NVTX_EXT_FN_IMPL
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtImplMemCudaRt_v1.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NVTX_EXT_FN_IMPL(ret_val, fn_name, signature, arg_names)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - ret_type
    - ','
    - fn_name
    - ','
    - signature
    - ','
    - arg_names
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 38
    functionName: NVTX_EXT_FN_IMPL
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtImplMemCudaRt_v1.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NVTX_EXT_FN_IMPL(ret_type, fn_name, signature, arg_names)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - rtype
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: NVTX_EXT_FN_RETURN_INVALID
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtImplMemCudaRt_v1.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NVTX_EXT_FN_RETURN_INVALID(rtype)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplSync_v3.h:28,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - domain
    - attribs
    argTypes:
    - nvtxDomainHandle_t
    - nvtxSyncUserAttributes_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 34
    functionName: nvtxDomainSyncUserCreate
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplSync_v3.h
    functionUses: 0
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    linkageType: ''
    returnType: NVTX_DECLSPEC
    signature: NVTX_DECLSPEC nvtxDomainSyncUserCreate(nvtxDomainHandle_t domain, const
      nvtxSyncUserAttributes_t* attribs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplSync_v3.h:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - handle
    argTypes:
    - nvtxSyncUser_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 43
    functionName: nvtxDomainSyncUserDestroy
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplSync_v3.h
    functionUses: 0
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    linkageType: ''
    returnType: NVTX_DECLSPEC
    signature: NVTX_DECLSPEC nvtxDomainSyncUserDestroy(nvtxSyncUser_t handle)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplSync_v3.h:48,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - handle
    argTypes:
    - nvtxSyncUser_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 52
    functionName: nvtxDomainSyncUserAcquireStart
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplSync_v3.h
    functionUses: 0
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    linkageType: ''
    returnType: NVTX_DECLSPEC
    signature: NVTX_DECLSPEC nvtxDomainSyncUserAcquireStart(nvtxSyncUser_t handle)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplSync_v3.h:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - handle
    argTypes:
    - nvtxSyncUser_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 61
    functionName: nvtxDomainSyncUserAcquireFailed
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplSync_v3.h
    functionUses: 0
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    linkageType: ''
    returnType: NVTX_DECLSPEC
    signature: NVTX_DECLSPEC nvtxDomainSyncUserAcquireFailed(nvtxSyncUser_t handle)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplSync_v3.h:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - handle
    argTypes:
    - nvtxSyncUser_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 70
    functionName: nvtxDomainSyncUserAcquireSuccess
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplSync_v3.h
    functionUses: 0
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    linkageType: ''
    returnType: NVTX_DECLSPEC
    signature: NVTX_DECLSPEC nvtxDomainSyncUserAcquireSuccess(nvtxSyncUser_t handle)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplSync_v3.h:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - handle
    argTypes:
    - nvtxSyncUser_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 79
    functionName: nvtxDomainSyncUserReleasing
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplSync_v3.h
    functionUses: 0
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    linkageType: ''
    returnType: NVTX_DECLSPEC
    signature: NVTX_DECLSPEC nvtxDomainSyncUserReleasing(nvtxSyncUser_t handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 24
    functionName: NVTX_STR
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtInit.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NVTX_STR(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 28
    functionName: NVTX_DLLOPEN
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtInit.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NVTX_DLLOPEN(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 31
    functionName: NVTX_YIELD
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtInit.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NVTX_YIELD()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 32
    functionName: NVTX_MEMBAR
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtInit.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NVTX_MEMBAR()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - address
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 33
    functionName: NVTX_ATOMIC_WRITE_32
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtInit.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NVTX_ATOMIC_WRITE_32(address, value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - old
    - ','
    - address
    - ','
    - exchange
    - ','
    - comparand
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 34
    functionName: NVTX_ATOMIC_CAS_32
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtInit.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NVTX_ATOMIC_CAS_32(old, address, exchange, comparand)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - address
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: NVTX_ATOMIC_WRITE_PTR
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtInit.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NVTX_ATOMIC_WRITE_PTR(address, value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - old
    - ','
    - address
    - ','
    - exchange
    - ','
    - comparand
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: NVTX_ATOMIC_CAS_PTR
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtInit.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NVTX_ATOMIC_CAS_PTR(old, address, exchange, comparand)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 41
    functionName: NVTX_STR
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtInit.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NVTX_STR(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 45
    functionName: NVTX_DLLOPEN
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtInit.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NVTX_DLLOPEN(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 48
    functionName: NVTX_YIELD
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtInit.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NVTX_YIELD()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 49
    functionName: NVTX_MEMBAR
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtInit.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NVTX_MEMBAR()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - address
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 51
    functionName: NVTX_ATOMIC_WRITE_32
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtInit.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NVTX_ATOMIC_WRITE_32(address, value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - old
    - ','
    - address
    - ','
    - exchange
    - ','
    - comparand
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: NVTX_ATOMIC_CAS_32
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtInit.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NVTX_ATOMIC_CAS_32(old, address, exchange, comparand)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - address
    - ','
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 53
    functionName: NVTX_ATOMIC_WRITE_PTR
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtInit.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NVTX_ATOMIC_WRITE_PTR(address, value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - old
    - ','
    - address
    - ','
    - exchange
    - ','
    - comparand
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: NVTX_ATOMIC_CAS_PTR
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtInit.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NVTX_ATOMIC_CAS_PTR(old, address, exchange, comparand)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_DLLFUNC
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtInit.h:123,1
    - Dst: NVTX_STR
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtInit.h:134,1
    - Dst: NVTX_STR
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtInit.h:135,1
    - Dst: NVTX_GETENV
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtInit.h:150,1
    - Dst: getpid
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtInit.h:168,1
    - Dst: snprintf
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtInit.h:169,1
    - Dst: NVTX_ERR
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtInit.h:172,1
    - Dst: fopen
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtInit.h:176,1
    - Dst: NVTX_ERR
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtInit.h:179,1
    - Dst: fread
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtInit.h:183,1
    - Dst: fclose
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtInit.h:184,1
    - Dst: NVTX_ERR
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtInit.h:187,1
    - Dst: snprintf
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtInit.h:202,1
    - Dst: NVTX_ERR
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtInit.h:205,1
    - Dst: access
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtInit.h:215,1
    - Dst: faccessat
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtInit.h:217,1
    - Dst: NVTX_ERR
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtInit.h:221,1
    - Dst: strerror
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtInit.h:221,1
    - Dst: NVTX_DLLOPEN
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtInit.h:234,1
    - Dst: NVTX_ERR
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtInit.h:237,1
    - Dst: NVTX_DLLFUNC
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtInit.h:243,1
    - Dst: NVTX_DLLCLOSE
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtInit.h:246,1
    - Dst: NVTX_ERR
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtInit.h:247,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 72
    argCount: 1
    argNames:
    - out_init_fnptr
    argTypes:
    - NvtxExtInitializeInjectionFunc_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 280
    functionName: NVTX_VERSIONED_IDENTIFIER
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtInit.h
    functionUses: 106
    functionsReached:
    - NVTX_DLLOPEN
    - NVTX_GETENV
    - NVTX_DLLFUNC
    - NVTX_ERR
    - fclose
    - fopen
    - getpid
    - access
    - NVTX_STR
    - NVTX_DLLCLOSE
    - strerror
    - fread
    - faccessat
    - snprintf
    linkageType: ''
    returnType: NVTX_LINKONCE_DEFINE_FUNCTION
    signature: "NVTX_LINKONCE_DEFINE_FUNCTION NVTX_VERSIONED_IDENTIFIER(nvtxExtLoadInjectionLibrary)(\n
      \   NvtxExtInitializeInjectionFunc_t* out_init_fnptr)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_INFO
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtInit.h:290,1
    - Dst: NVTX_INFO
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtInit.h:294,1
    - Dst: NVTX_ATOMIC_CAS_PTR
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtInit.h:298,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtInit.h:306,1
    - Dst: nvtxInitialize
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtInit.h:317,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtInit.h:319,1
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtInit.h:324,1
    - Dst: NVTX_ERR
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtInit.h:328,1
    - Dst: init_fnptr
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtInit.h:336,1
    - Dst: NVTX_ERR
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtInit.h:339,1
    - Dst: NVTX_MEMBAR
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtInit.h:359,1
    - Dst: NVTX_ATOMIC_WRITE_PTR
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtInit.h:363,1
    - Dst: NVTX_MEMBAR
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtInit.h:367,1
    - Dst: NVTX_YIELD
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtInit.h:370,1
    - Dst: NVTX_MEMBAR
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtInit.h:371,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 40
    argCount: 2
    argNames:
    - moduleInfo
    - moduleState
    argTypes:
    - nvtxExtModuleInfo_t*
    - intptr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 285
    functionDepth: 1
    functionLinenumber: 285
    functionLinenumberEnd: 374
    functionName: NVTX_VERSIONED_IDENTIFIER
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtInit.h
    functionUses: 107
    functionsReached:
    - NVTX_ATOMIC_CAS_PTR
    - NVTX_ERR
    - NVTX_INFO
    - init_fnptr
    - NVTX_ATOMIC_WRITE_PTR
    - NVTX_YIELD
    - nvtxInitialize
    - NVTX_MEMBAR
    - NVTX_VERSIONED_IDENTIFIER
    linkageType: ''
    returnType: NVTX_LINKONCE_DEFINE_FUNCTION
    signature: "NVTX_LINKONCE_DEFINE_FUNCTION NVTX_VERSIONED_IDENTIFIER(nvtxExtInitOnce)
      (\n    nvtxExtModuleInfo_t* moduleInfo, intptr_t* moduleState)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 20
    functionName: _NVTX_PAYLOAD_PASS_THROUGH
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadHelperInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NVTX_PAYLOAD_PASS_THROUGH(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - id
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 24
    functionName: _NVTX_PAYLOAD_NESTED
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadHelperInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NVTX_PAYLOAD_NESTED(id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - struct_id
    - ','
    - schema_name
    - ','
    - schema_flags
    - ','
    - schema_id
    - ','
    - mask_add
    - ','
    - num_entries
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 36
    functionName: NVTX_PAYLOAD_SCHEMA_ATTR
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadHelperInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NVTX_PAYLOAD_SCHEMA_ATTR(struct_id, schema_name, schema_flags, schema_id,
      mask_add, num_entries)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - member
    - ','
    - etype
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: _NVTX_PAYLOAD_SCHEMA_EF2
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadHelperInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NVTX_PAYLOAD_SCHEMA_EF2(member, etype)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - member
    - ','
    - etype
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 56
    functionName: _NVTX_PAYLOAD_SCHEMA_EF3
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadHelperInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NVTX_PAYLOAD_SCHEMA_EF3(member, etype, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - member
    - ','
    - etype
    - ','
    - name
    - ','
    - desc
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 58
    functionName: _NVTX_PAYLOAD_SCHEMA_EF4
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadHelperInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NVTX_PAYLOAD_SCHEMA_EF4(member, etype, name, desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - member
    - ','
    - etype
    - ','
    - name
    - ','
    - desc
    - ','
    - arraylen
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 60
    functionName: _NVTX_PAYLOAD_SCHEMA_EF5
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadHelperInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NVTX_PAYLOAD_SCHEMA_EF5(member, etype, name, desc, arraylen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - member
    - ','
    - etype
    - ','
    - name
    - ','
    - desc
    - ','
    - arraylen
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 62
    functionName: _NVTX_PAYLOAD_SCHEMA_EF6
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadHelperInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NVTX_PAYLOAD_SCHEMA_EF6(member, etype, name, desc, arraylen, flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 65
    functionName: _NVTX_PAYLOAD_SCHEMA_ENTRY_FRONT
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadHelperInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NVTX_PAYLOAD_SCHEMA_ENTRY_FRONT(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - member
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 69
    functionName: _NVTX_PAYLOAD_SCHEMA_ENTRY_END
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadHelperInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NVTX_PAYLOAD_SCHEMA_ENTRY_END(member, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - struct_id
    - ','
    - entry
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 74
    functionName: _NVTX_PAYLOAD_SCHEMA_ENTRY
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadHelperInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NVTX_PAYLOAD_SCHEMA_ENTRY(struct_id, entry)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - s
    - ','
    - e1
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 77
    functionName: _NVTX_PAYLOAD_SME1
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadHelperInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NVTX_PAYLOAD_SME1(s,e1,...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - s
    - ','
    - e1
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    functionName: _NVTX_PAYLOAD_SME2
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadHelperInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NVTX_PAYLOAD_SME2(s,e1,...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - s
    - ','
    - e1
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 79
    functionName: _NVTX_PAYLOAD_SME3
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadHelperInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NVTX_PAYLOAD_SME3(s,e1,...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - s
    - ','
    - e1
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 80
    functionName: _NVTX_PAYLOAD_SME4
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadHelperInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NVTX_PAYLOAD_SME4(s,e1,...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - s
    - ','
    - e1
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 81
    functionName: _NVTX_PAYLOAD_SME5
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadHelperInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NVTX_PAYLOAD_SME5(s,e1,...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - s
    - ','
    - e1
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 82
    functionName: _NVTX_PAYLOAD_SME6
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadHelperInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NVTX_PAYLOAD_SME6(s,e1,...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - s
    - ','
    - e1
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 83
    functionName: _NVTX_PAYLOAD_SME7
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadHelperInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NVTX_PAYLOAD_SME7(s,e1,...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - s
    - ','
    - e1
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 84
    functionName: _NVTX_PAYLOAD_SME8
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadHelperInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NVTX_PAYLOAD_SME8(s,e1,...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - s
    - ','
    - e1
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 85
    functionName: _NVTX_PAYLOAD_SME9
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadHelperInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NVTX_PAYLOAD_SME9(s,e1,...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - s
    - ','
    - e1
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 86
    functionName: _NVTX_PAYLOAD_SME10
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadHelperInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NVTX_PAYLOAD_SME10(s,e1,...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - s
    - ','
    - e1
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 87
    functionName: _NVTX_PAYLOAD_SME11
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadHelperInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NVTX_PAYLOAD_SME11(s,e1,...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - s
    - ','
    - e1
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 88
    functionName: _NVTX_PAYLOAD_SME12
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadHelperInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NVTX_PAYLOAD_SME12(s,e1,...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - s
    - ','
    - e1
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 89
    functionName: _NVTX_PAYLOAD_SME13
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadHelperInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NVTX_PAYLOAD_SME13(s,e1,...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - s
    - ','
    - e1
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 90
    functionName: _NVTX_PAYLOAD_SME14
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadHelperInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NVTX_PAYLOAD_SME14(s,e1,...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - s
    - ','
    - e1
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 91
    functionName: _NVTX_PAYLOAD_SME15
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadHelperInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NVTX_PAYLOAD_SME15(s,e1,...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - s
    - ','
    - e1
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 92
    functionName: _NVTX_PAYLOAD_SME16
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadHelperInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NVTX_PAYLOAD_SME16(s,e1,...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - struct_id
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 98
    functionName: _NVTX_PAYLOAD_SCHEMA_ENTRIES
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadHelperInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NVTX_PAYLOAD_SCHEMA_ENTRIES(struct_id, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - struct_id
    - ','
    - schema_name
    - ','
    - prefix
    - ','
    - schema_flags
    - ','
    - schema_id
    - ','
    - entries
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 107
    functionName: _NVTX_DEFINE_S4S_6
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadHelperInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NVTX_DEFINE_S4S_6(struct_id, schema_name, prefix, schema_flags, schema_id,
      entries)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - struct_id
    - ','
    - schema_name
    - ','
    - prefix
    - ','
    - schema_flags
    - ','
    - entries
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 112
    functionName: _NVTX_DEFINE_S4S_5
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadHelperInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NVTX_DEFINE_S4S_5(struct_id, schema_name, prefix, schema_flags, entries)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - struct_id
    - ','
    - schema_name
    - ','
    - prefix
    - ','
    - entries
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 117
    functionName: _NVTX_DEFINE_S4S_4
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadHelperInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NVTX_DEFINE_S4S_4(struct_id, schema_name, prefix, entries)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - struct_id
    - ','
    - entries
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 123
    functionName: _NVTX_DEFINE_S4S_2
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadHelperInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NVTX_DEFINE_S4S_2(struct_id, entries)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - struct_id
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 127
    functionName: _NVTX_DEFINE_SCHEMA_FOR_STRUCT
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadHelperInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NVTX_DEFINE_SCHEMA_FOR_STRUCT(struct_id, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 136
    functionName: _NVTX_PAYLOAD_STRUCT_ARR_MEM1
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadHelperInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NVTX_PAYLOAD_STRUCT_ARR_MEM1(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - count
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 137
    functionName: _NVTX_PAYLOAD_STRUCT_ARR_MEM2
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadHelperInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NVTX_PAYLOAD_STRUCT_ARR_MEM2(name, count)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - type
    - ','
    - member
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 140
    functionName: _NVTX_PAYLOAD_STRUCT_E2
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadHelperInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NVTX_PAYLOAD_STRUCT_E2(type, member)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - type
    - ','
    - member
    - ','
    - etype
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 141
    functionName: _NVTX_PAYLOAD_STRUCT_E3
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadHelperInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NVTX_PAYLOAD_STRUCT_E3(type, member, etype)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - type
    - ','
    - member
    - ','
    - etype
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 142
    functionName: _NVTX_PAYLOAD_STRUCT_E4
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadHelperInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NVTX_PAYLOAD_STRUCT_E4(type, member, etype, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - type
    - ','
    - member
    - ','
    - etype
    - ','
    - name
    - ','
    - desc
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 143
    functionName: _NVTX_PAYLOAD_STRUCT_E5
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadHelperInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NVTX_PAYLOAD_STRUCT_E5(type, member, etype, name, desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - type
    - ','
    - member
    - ','
    - etype
    - ','
    - name
    - ','
    - desc
    - ','
    - arraylen
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 145
    functionName: _NVTX_PAYLOAD_STRUCT_E6
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadHelperInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NVTX_PAYLOAD_STRUCT_E6(type, member, etype, name, desc, arraylen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - type
    - ','
    - member
    - ','
    - etype
    - ','
    - name
    - ','
    - desc
    - ','
    - arraylen
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 147
    functionName: _NVTX_PAYLOAD_STRUCT_E7
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadHelperInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NVTX_PAYLOAD_STRUCT_E7(type, member, etype, name, desc, arraylen,
      flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 151
    functionName: _NVTX_PAYLOAD_STRUCT_ENTRY_
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadHelperInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NVTX_PAYLOAD_STRUCT_ENTRY_(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - entry
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 154
    functionName: _NVTX_PAYLOAD_STRUCT_ENTRY
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadHelperInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NVTX_PAYLOAD_STRUCT_ENTRY(entry)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - e1
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 155
    functionName: _NVTX_PAYLOAD_STRUCT1
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadHelperInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NVTX_PAYLOAD_STRUCT1(e1, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - e1
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 156
    functionName: _NVTX_PAYLOAD_STRUCT2
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadHelperInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NVTX_PAYLOAD_STRUCT2(e1, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - e1
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 157
    functionName: _NVTX_PAYLOAD_STRUCT3
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadHelperInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NVTX_PAYLOAD_STRUCT3(e1, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - e1
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 158
    functionName: _NVTX_PAYLOAD_STRUCT4
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadHelperInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NVTX_PAYLOAD_STRUCT4(e1, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - e1
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 159
    functionName: _NVTX_PAYLOAD_STRUCT5
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadHelperInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NVTX_PAYLOAD_STRUCT5(e1, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - e1
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 160
    functionName: _NVTX_PAYLOAD_STRUCT6
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadHelperInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NVTX_PAYLOAD_STRUCT6(e1, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - e1
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 161
    functionName: _NVTX_PAYLOAD_STRUCT7
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadHelperInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NVTX_PAYLOAD_STRUCT7(e1, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - e1
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 162
    functionName: _NVTX_PAYLOAD_STRUCT8
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadHelperInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NVTX_PAYLOAD_STRUCT8(e1, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - e1
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 163
    functionName: _NVTX_PAYLOAD_STRUCT9
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadHelperInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NVTX_PAYLOAD_STRUCT9(e1, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - e1
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 164
    functionName: _NVTX_PAYLOAD_STRUCT10
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadHelperInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NVTX_PAYLOAD_STRUCT10(e1, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - e1
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 165
    functionName: _NVTX_PAYLOAD_STRUCT11
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadHelperInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NVTX_PAYLOAD_STRUCT11(e1, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - e1
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 166
    functionName: _NVTX_PAYLOAD_STRUCT12
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadHelperInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NVTX_PAYLOAD_STRUCT12(e1, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - e1
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 167
    functionName: _NVTX_PAYLOAD_STRUCT13
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadHelperInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NVTX_PAYLOAD_STRUCT13(e1, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - e1
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 168
    functionName: _NVTX_PAYLOAD_STRUCT14
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadHelperInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NVTX_PAYLOAD_STRUCT14(e1, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - e1
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 169
    functionName: _NVTX_PAYLOAD_STRUCT15
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadHelperInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NVTX_PAYLOAD_STRUCT15(e1, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - e1
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 170
    functionName: _NVTX_PAYLOAD_STRUCT16
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadHelperInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NVTX_PAYLOAD_STRUCT16(e1, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - struct_id
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 176
    functionName: _NVTX_PAYLOAD_TYPEDEF_STRUCT
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadHelperInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NVTX_PAYLOAD_TYPEDEF_STRUCT(struct_id, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - type
    - ','
    - memberId
    - ','
    - etype
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 180
    functionName: _NVTX_PAYLOAD_INIT_SCHEMA_N3
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadHelperInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NVTX_PAYLOAD_INIT_SCHEMA_N3(type, memberId, etype)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - type
    - ','
    - memberId
    - ','
    - etype
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 182
    functionName: _NVTX_PAYLOAD_INIT_SCHEMA_N4
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadHelperInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NVTX_PAYLOAD_INIT_SCHEMA_N4(type, memberId, etype, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - type
    - ','
    - memberId
    - ','
    - etype
    - ','
    - name
    - ','
    - desc
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 184
    functionName: _NVTX_PAYLOAD_INIT_SCHEMA_N5
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadHelperInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NVTX_PAYLOAD_INIT_SCHEMA_N5(type, memberId, etype, name, desc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - type
    - ','
    - memberId
    - ','
    - etype
    - ','
    - name
    - ','
    - desc
    - ','
    - arraylen
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 186
    functionName: _NVTX_PAYLOAD_INIT_SCHEMA_N6
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadHelperInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NVTX_PAYLOAD_INIT_SCHEMA_N6(type, memberId, etype, name, desc, arraylen)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - type
    - ','
    - memberId
    - ','
    - etype
    - ','
    - name
    - ','
    - desc
    - ','
    - arraylen
    - ','
    - flags
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 188
    functionName: _NVTX_PAYLOAD_INIT_SCHEMA_N7
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadHelperInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NVTX_PAYLOAD_INIT_SCHEMA_N7(type, memberId, etype, name, desc, arraylen,
      flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 191
    functionName: _NVTX_PAYLOAD_SCHEMA_INIT_ENTRY_FRONT
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadHelperInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NVTX_PAYLOAD_SCHEMA_INIT_ENTRY_FRONT(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 193
    functionName: _NVTX_PAYLOAD_ARRAY_MEMBER1
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadHelperInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NVTX_PAYLOAD_ARRAY_MEMBER1(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - count
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 194
    functionName: _NVTX_PAYLOAD_ARRAY_MEMBER2
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadHelperInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NVTX_PAYLOAD_ARRAY_MEMBER2(name, count)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - type
    - ','
    - memberId
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 197
    functionName: _NVTX_PAYLOAD_INIT_SCHEMA_NX3
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadHelperInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NVTX_PAYLOAD_INIT_SCHEMA_NX3(type, memberId, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - type
    - ','
    - memberId
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 197
    functionDepth: 0
    functionLinenumber: 197
    functionLinenumberEnd: 198
    functionName: _NVTX_PAYLOAD_INIT_SCHEMA_NX4
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadHelperInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NVTX_PAYLOAD_INIT_SCHEMA_NX4(type, memberId, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - type
    - ','
    - memberId
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 199
    functionName: _NVTX_PAYLOAD_INIT_SCHEMA_NX5
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadHelperInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NVTX_PAYLOAD_INIT_SCHEMA_NX5(type, memberId, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - type
    - ','
    - memberId
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 199
    functionDepth: 0
    functionLinenumber: 199
    functionLinenumberEnd: 201
    functionName: _NVTX_PAYLOAD_INIT_SCHEMA_NX6
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadHelperInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NVTX_PAYLOAD_INIT_SCHEMA_NX6(type, memberId, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - type
    - ','
    - memberId
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 203
    functionName: _NVTX_PAYLOAD_INIT_SCHEMA_NX7
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadHelperInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NVTX_PAYLOAD_INIT_SCHEMA_NX7(type, memberId, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 206
    functionName: _NVTX_PAYLOAD_SCHEMA_INIT_ENTRY_END
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadHelperInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NVTX_PAYLOAD_SCHEMA_INIT_ENTRY_END(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - struct_id
    - ','
    - entry
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 211
    functionName: _NVTX_PAYLOAD_SCHEMA_INIT_ENTRY
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadHelperInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NVTX_PAYLOAD_SCHEMA_INIT_ENTRY(struct_id, entry)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - s
    - ','
    - e1
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 214
    functionName: _NVTX_PAYLOAD_INIT_SME1
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadHelperInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NVTX_PAYLOAD_INIT_SME1(s, e1, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - s
    - ','
    - e1
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 214
    functionDepth: 0
    functionLinenumber: 214
    functionLinenumberEnd: 215
    functionName: _NVTX_PAYLOAD_INIT_SME2
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadHelperInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NVTX_PAYLOAD_INIT_SME2(s, e1, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - s
    - ','
    - e1
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 216
    functionName: _NVTX_PAYLOAD_INIT_SME3
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadHelperInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NVTX_PAYLOAD_INIT_SME3(s, e1, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - s
    - ','
    - e1
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 217
    functionName: _NVTX_PAYLOAD_INIT_SME4
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadHelperInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NVTX_PAYLOAD_INIT_SME4(s, e1, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - s
    - ','
    - e1
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 218
    functionName: _NVTX_PAYLOAD_INIT_SME5
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadHelperInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NVTX_PAYLOAD_INIT_SME5(s, e1, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - s
    - ','
    - e1
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 218
    functionDepth: 0
    functionLinenumber: 218
    functionLinenumberEnd: 219
    functionName: _NVTX_PAYLOAD_INIT_SME6
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadHelperInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NVTX_PAYLOAD_INIT_SME6(s, e1, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - s
    - ','
    - e1
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 220
    functionName: _NVTX_PAYLOAD_INIT_SME7
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadHelperInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NVTX_PAYLOAD_INIT_SME7(s, e1, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - s
    - ','
    - e1
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 221
    functionName: _NVTX_PAYLOAD_INIT_SME8
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadHelperInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NVTX_PAYLOAD_INIT_SME8(s, e1, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - s
    - ','
    - e1
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 222
    functionName: _NVTX_PAYLOAD_INIT_SME9
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadHelperInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NVTX_PAYLOAD_INIT_SME9(s, e1, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - s
    - ','
    - e1
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 222
    functionDepth: 0
    functionLinenumber: 222
    functionLinenumberEnd: 223
    functionName: _NVTX_PAYLOAD_INIT_SME10
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadHelperInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NVTX_PAYLOAD_INIT_SME10(s, e1, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - s
    - ','
    - e1
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 224
    functionName: _NVTX_PAYLOAD_INIT_SME11
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadHelperInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NVTX_PAYLOAD_INIT_SME11(s, e1, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - s
    - ','
    - e1
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 225
    functionName: _NVTX_PAYLOAD_INIT_SME12
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadHelperInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NVTX_PAYLOAD_INIT_SME12(s, e1, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - s
    - ','
    - e1
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 226
    functionName: _NVTX_PAYLOAD_INIT_SME13
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadHelperInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NVTX_PAYLOAD_INIT_SME13(s, e1, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - s
    - ','
    - e1
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 227
    functionName: _NVTX_PAYLOAD_INIT_SME14
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadHelperInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NVTX_PAYLOAD_INIT_SME14(s, e1, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - s
    - ','
    - e1
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 228
    functionName: _NVTX_PAYLOAD_INIT_SME15
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadHelperInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NVTX_PAYLOAD_INIT_SME15(s, e1, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - s
    - ','
    - e1
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 229
    functionName: _NVTX_PAYLOAD_INIT_SME16
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadHelperInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NVTX_PAYLOAD_INIT_SME16(s, e1, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - struct_id
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 230
    functionDepth: 0
    functionLinenumber: 230
    functionLinenumberEnd: 235
    functionName: _NVTX_PAYLOAD_SCHEMA_INIT_ENTRIES
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadHelperInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NVTX_PAYLOAD_SCHEMA_INIT_ENTRIES(struct_id, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - struct_id
    - ','
    - schema_name
    - ','
    - prefix
    - ','
    - schema_flags
    - ','
    - schema_id
    - ','
    - entries
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 246
    functionName: _NVTX_DEFINE_SWS_6
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadHelperInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NVTX_DEFINE_SWS_6(struct_id, schema_name, prefix, schema_flags, schema_id,
      entries)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - struct_id
    - ','
    - schema_name
    - ','
    - prefix
    - ','
    - schema_flags
    - ','
    - entries
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 252
    functionName: _NVTX_DEFINE_SWS_5
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadHelperInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NVTX_DEFINE_SWS_5(struct_id, schema_name, prefix, schema_flags, entries)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - struct_id
    - ','
    - schema_name
    - ','
    - prefix
    - ','
    - entries
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 258
    functionName: _NVTX_DEFINE_SWS_4
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadHelperInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NVTX_DEFINE_SWS_4(struct_id, schema_name, prefix, entries)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - struct_id
    - ','
    - entries
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 265
    functionName: _NVTX_DEFINE_SWS_2
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadHelperInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NVTX_DEFINE_SWS_2(struct_id, entries)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - struct_id
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 266
    functionDepth: 0
    functionLinenumber: 266
    functionLinenumberEnd: 269
    functionName: _NVTX_DEFINE_STRUCT_WITH_SCHEMA
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadHelperInternal.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: _NVTX_DEFINE_STRUCT_WITH_SCHEMA(struct_id, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCore.h:12,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - eventAttrib
    argTypes:
    - nvtxEventAttributes_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 16
    functionName: nvtxMarkEx
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCore.h
    functionUses: 1
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    linkageType: ''
    returnType: NVTX_DECLSPEC
    signature: NVTX_DECLSPEC nvtxMarkEx(const nvtxEventAttributes_t* eventAttrib)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCore.h:21,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - message
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 25
    functionName: nvtxMarkA
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCore.h
    functionUses: 1
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    linkageType: ''
    returnType: NVTX_DECLSPEC
    signature: NVTX_DECLSPEC nvtxMarkA(const char* message)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCore.h:30,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - message
    argTypes:
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 34
    functionName: nvtxMarkW
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCore.h
    functionUses: 1
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    linkageType: ''
    returnType: NVTX_DECLSPEC
    signature: NVTX_DECLSPEC nvtxMarkW(const wchar_t* message)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCore.h:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - eventAttrib
    argTypes:
    - nvtxEventAttributes_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 45
    functionName: nvtxRangeStartEx
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCore.h
    functionUses: 1
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    linkageType: ''
    returnType: NVTX_DECLSPEC
    signature: NVTX_DECLSPEC nvtxRangeStartEx(const nvtxEventAttributes_t* eventAttrib)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCore.h:50,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - message
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 56
    functionName: nvtxRangeStartA
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCore.h
    functionUses: 1
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    linkageType: ''
    returnType: NVTX_DECLSPEC
    signature: NVTX_DECLSPEC nvtxRangeStartA(const char* message)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCore.h:61,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - message
    argTypes:
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 67
    functionName: nvtxRangeStartW
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCore.h
    functionUses: 1
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    linkageType: ''
    returnType: NVTX_DECLSPEC
    signature: NVTX_DECLSPEC nvtxRangeStartW(const wchar_t* message)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCore.h:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - id
    argTypes:
    - nvtxRangeId_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 76
    functionName: nvtxRangeEnd
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCore.h
    functionUses: 1
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    linkageType: ''
    returnType: NVTX_DECLSPEC
    signature: NVTX_DECLSPEC nvtxRangeEnd(nvtxRangeId_t id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCore.h:81,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - eventAttrib
    argTypes:
    - nvtxEventAttributes_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 87
    functionName: nvtxRangePushEx
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCore.h
    functionUses: 1
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    linkageType: ''
    returnType: NVTX_DECLSPEC
    signature: NVTX_DECLSPEC nvtxRangePushEx(const nvtxEventAttributes_t* eventAttrib)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCore.h:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - message
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 98
    functionName: nvtxRangePushA
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCore.h
    functionUses: 1
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    linkageType: ''
    returnType: NVTX_DECLSPEC
    signature: NVTX_DECLSPEC nvtxRangePushA(const char* message)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCore.h:103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - message
    argTypes:
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 109
    functionName: nvtxRangePushW
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCore.h
    functionUses: 1
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    linkageType: ''
    returnType: NVTX_DECLSPEC
    signature: NVTX_DECLSPEC nvtxRangePushW(const wchar_t* message)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCore.h:114,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 120
    functionName: nvtxRangePop
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCore.h
    functionUses: 1
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    linkageType: ''
    returnType: NVTX_DECLSPEC
    signature: NVTX_DECLSPEC nvtxRangePop(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCore.h:125,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - category
    - name
    argTypes:
    - uint32_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 129
    functionName: nvtxNameCategoryA
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCore.h
    functionUses: 1
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    linkageType: ''
    returnType: NVTX_DECLSPEC
    signature: NVTX_DECLSPEC nvtxNameCategoryA(uint32_t category, const char* name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCore.h:134,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - category
    - name
    argTypes:
    - uint32_t
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 138
    functionName: nvtxNameCategoryW
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCore.h
    functionUses: 1
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    linkageType: ''
    returnType: NVTX_DECLSPEC
    signature: NVTX_DECLSPEC nvtxNameCategoryW(uint32_t category, const wchar_t* name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCore.h:143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - threadId
    - name
    argTypes:
    - uint32_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 147
    functionName: nvtxNameOsThreadA
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCore.h
    functionUses: 2
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    linkageType: ''
    returnType: NVTX_DECLSPEC
    signature: NVTX_DECLSPEC nvtxNameOsThreadA(uint32_t threadId, const char* name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCore.h:152,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - threadId
    - name
    argTypes:
    - uint32_t
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 156
    functionName: nvtxNameOsThreadW
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCore.h
    functionUses: 1
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    linkageType: ''
    returnType: NVTX_DECLSPEC
    signature: NVTX_DECLSPEC nvtxNameOsThreadW(uint32_t threadId, const wchar_t* name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCore.h:161,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - domain
    - eventAttrib
    argTypes:
    - nvtxDomainHandle_t
    - nvtxEventAttributes_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 165
    functionName: nvtxDomainMarkEx
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCore.h
    functionUses: 3
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    linkageType: ''
    returnType: NVTX_DECLSPEC
    signature: NVTX_DECLSPEC nvtxDomainMarkEx(nvtxDomainHandle_t domain, const nvtxEventAttributes_t*
      eventAttrib)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCore.h:170,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - domain
    - eventAttrib
    argTypes:
    - nvtxDomainHandle_t
    - nvtxEventAttributes_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 176
    functionName: nvtxDomainRangeStartEx
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCore.h
    functionUses: 3
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    linkageType: ''
    returnType: NVTX_DECLSPEC
    signature: NVTX_DECLSPEC nvtxDomainRangeStartEx(nvtxDomainHandle_t domain, const
      nvtxEventAttributes_t* eventAttrib)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCore.h:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - domain
    - id
    argTypes:
    - nvtxDomainHandle_t
    - nvtxRangeId_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 185
    functionName: nvtxDomainRangeEnd
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCore.h
    functionUses: 3
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    linkageType: ''
    returnType: NVTX_DECLSPEC
    signature: NVTX_DECLSPEC nvtxDomainRangeEnd(nvtxDomainHandle_t domain, nvtxRangeId_t
      id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCore.h:190,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - domain
    - eventAttrib
    argTypes:
    - nvtxDomainHandle_t
    - nvtxEventAttributes_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 196
    functionName: nvtxDomainRangePushEx
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCore.h
    functionUses: 8
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    linkageType: ''
    returnType: NVTX_DECLSPEC
    signature: NVTX_DECLSPEC nvtxDomainRangePushEx(nvtxDomainHandle_t domain, const
      nvtxEventAttributes_t* eventAttrib)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCore.h:201,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - domain
    argTypes:
    - nvtxDomainHandle_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 207
    functionName: nvtxDomainRangePop
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCore.h
    functionUses: 8
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    linkageType: ''
    returnType: NVTX_DECLSPEC
    signature: NVTX_DECLSPEC nvtxDomainRangePop(nvtxDomainHandle_t domain)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCore.h:212,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - domain
    - attribs
    argTypes:
    - nvtxDomainHandle_t
    - nvtxResourceAttributes_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 209
    functionDepth: 0
    functionLinenumber: 209
    functionLinenumberEnd: 218
    functionName: nvtxDomainResourceCreate
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCore.h
    functionUses: 1
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    linkageType: ''
    returnType: NVTX_DECLSPEC
    signature: NVTX_DECLSPEC nvtxDomainResourceCreate(nvtxDomainHandle_t domain, nvtxResourceAttributes_t*
      attribs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCore.h:223,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - resource
    argTypes:
    - nvtxResourceHandle_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 220
    functionDepth: 0
    functionLinenumber: 220
    functionLinenumberEnd: 227
    functionName: nvtxDomainResourceDestroy
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCore.h
    functionUses: 1
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    linkageType: ''
    returnType: NVTX_DECLSPEC
    signature: NVTX_DECLSPEC nvtxDomainResourceDestroy(nvtxResourceHandle_t resource)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCore.h:232,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - domain
    - category
    - name
    argTypes:
    - nvtxDomainHandle_t
    - uint32_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 229
    functionDepth: 0
    functionLinenumber: 229
    functionLinenumberEnd: 236
    functionName: nvtxDomainNameCategoryA
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCore.h
    functionUses: 5
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    linkageType: ''
    returnType: NVTX_DECLSPEC
    signature: NVTX_DECLSPEC nvtxDomainNameCategoryA(nvtxDomainHandle_t domain, uint32_t
      category, const char* name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCore.h:241,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - domain
    - category
    - name
    argTypes:
    - nvtxDomainHandle_t
    - uint32_t
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 245
    functionName: nvtxDomainNameCategoryW
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCore.h
    functionUses: 5
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    linkageType: ''
    returnType: NVTX_DECLSPEC
    signature: NVTX_DECLSPEC nvtxDomainNameCategoryW(nvtxDomainHandle_t domain, uint32_t
      category, const wchar_t* name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCore.h:250,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - domain
    - string
    argTypes:
    - nvtxDomainHandle_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 256
    functionName: nvtxDomainRegisterStringA
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCore.h
    functionUses: 5
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    linkageType: ''
    returnType: NVTX_DECLSPEC
    signature: NVTX_DECLSPEC nvtxDomainRegisterStringA(nvtxDomainHandle_t domain,
      const char* string)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCore.h:261,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - domain
    - string
    argTypes:
    - nvtxDomainHandle_t
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 267
    functionName: nvtxDomainRegisterStringW
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCore.h
    functionUses: 5
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    linkageType: ''
    returnType: NVTX_DECLSPEC
    signature: NVTX_DECLSPEC nvtxDomainRegisterStringW(nvtxDomainHandle_t domain,
      const wchar_t* string)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCore.h:272,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - message
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 278
    functionName: nvtxDomainCreateA
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCore.h
    functionUses: 5
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    linkageType: ''
    returnType: NVTX_DECLSPEC
    signature: NVTX_DECLSPEC nvtxDomainCreateA(const char* message)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCore.h:283,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - message
    argTypes:
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 289
    functionName: nvtxDomainCreateW
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCore.h
    functionUses: 5
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    linkageType: ''
    returnType: NVTX_DECLSPEC
    signature: NVTX_DECLSPEC nvtxDomainCreateW(const wchar_t* message)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCore.h:294,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - domain
    argTypes:
    - nvtxDomainHandle_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 291
    functionDepth: 0
    functionLinenumber: 291
    functionLinenumberEnd: 298
    functionName: nvtxDomainDestroy
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCore.h
    functionUses: 1
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    linkageType: ''
    returnType: NVTX_DECLSPEC
    signature: NVTX_DECLSPEC nvtxDomainDestroy(nvtxDomainHandle_t domain)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NVTX_VERSIONED_IDENTIFIER
      Src: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCore.h:303,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - reserved
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 307
    functionName: nvtxInitialize
    functionSourceFile: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCore.h
    functionUses: 2
    functionsReached:
    - NVTX_VERSIONED_IDENTIFIER
    linkageType: ''
    returnType: NVTX_DECLSPEC
    signature: NVTX_DECLSPEC nvtxInitialize(const void* reserved)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ncclParamGraphRegister
      Src: /src/nccl/src/register/sendrecv_reg.cc:9,1
    - Dst: ncclNetGraphRegisterBuffer
      Src: /src/nccl/src/register/sendrecv_reg.cc:10,1
    - Dst: ncclParamLocalRegister
      Src: /src/nccl/src/register/sendrecv_reg.cc:12,1
    - Dst: ncclNetLocalRegisterBuffer
      Src: /src/nccl/src/register/sendrecv_reg.cc:13,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 7
    argNames:
    - comm
    - userbuff
    - size
    - conn
    - regFlag
    - handle
    - cleanupQueue
    argTypes:
    - struct ncclComm*
    - void*
    - size_t
    - struct ncclConnector*
    - int*
    - void**
    - struct ncclIntruQueue<struct ncclCommCallback, &ncclCommCallback::next>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 4
    functionDepth: 6
    functionLinenumber: 4
    functionLinenumberEnd: 17
    functionName: ncclRegisterP2pNetBuffer
    functionSourceFile: /src/nccl/src/register/sendrecv_reg.cc
    functionUses: 1
    functionsReached:
    - ncclParamLocalRegister
    - ncclParamGraphRegister
    - ncclNetGraphRegisterBuffer
    - ncclNetLocalRegisterBuffer
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclRegisterP2pNetBuffer(struct ncclComm* comm, void*
      userbuff, size_t size, struct ncclConnector* conn, int* regFlag, void** handle,
      struct ncclIntruQueue<struct ncclCommCallback, &ncclCommCallback::next>* cleanupQueue)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ncclParamGraphRegister
      Src: /src/nccl/src/register/sendrecv_reg.cc:25,1
    - Dst: ncclIpcGraphRegisterBuffer
      Src: /src/nccl/src/register/sendrecv_reg.cc:26,1
    - Dst: reinterpret_cast<void*>
      Src: /src/nccl/src/register/sendrecv_reg.cc:26,1
    - Dst: ncclParamLocalRegister
      Src: /src/nccl/src/register/sendrecv_reg.cc:28,1
    - Dst: ncclIpcLocalRegisterBuffer
      Src: /src/nccl/src/register/sendrecv_reg.cc:29,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 7
    argNames:
    - comm
    - userbuff
    - size
    - peerRank
    - regFlag
    - regAddr
    - cleanupQueue
    argTypes:
    - struct ncclComm*
    - void*
    - size_t
    - int
    - int*
    - void**
    - struct ncclIntruQueue<struct ncclCommCallback, &ncclCommCallback::next>*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 19
    functionDepth: 6
    functionLinenumber: 19
    functionLinenumberEnd: 35
    functionName: ncclRegisterP2pIpcBuffer
    functionSourceFile: /src/nccl/src/register/sendrecv_reg.cc
    functionUses: 1
    functionsReached:
    - ncclParamLocalRegister
    - reinterpret_cast<void*>
    - ncclIpcGraphRegisterBuffer
    - ncclParamGraphRegister
    - ncclIpcLocalRegisterBuffer
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclRegisterP2pIpcBuffer(struct ncclComm* comm, void*
      userbuff, size_t size, int peerRank, int* regFlag, void** regAddr, struct ncclIntruQueue<struct
      ncclCommCallback, &ncclCommCallback::next>* cleanupQueue)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/register/coll_reg.cc:18,1
    - Dst: canConnect
      Src: /src/nccl/src/register/coll_reg.cc:18,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 5
    argNames:
    - comm
    - conn
    - graph
    - peer
    - needReg
    argTypes:
    - struct ncclComm*
    - struct ncclConnector*
    - struct ncclTopoGraph*
    - int
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 6
    functionDepth: 0
    functionLinenumber: 6
    functionLinenumberEnd: 26
    functionName: registerCheckP2PConnection
    functionSourceFile: /src/nccl/src/register/coll_reg.cc
    functionUses: 0
    functionsReached:
    - canConnect
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t registerCheckP2PConnection(struct ncclComm* comm, struct
      ncclConnector* conn, struct ncclTopoGraph* graph, int peer, bool* needReg)
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: ncclParamLocalRegister
      Src: /src/nccl/src/register/coll_reg.cc:39,1
    - Dst: ncclParamGraphRegister
      Src: /src/nccl/src/register/coll_reg.cc:39,1
    - Dst: ncclTypeSize
      Src: /src/nccl/src/register/coll_reg.cc:50,1
    - Dst: ncclFuncSendCount
      Src: /src/nccl/src/register/coll_reg.cc:51,1
    - Dst: ncclFuncRecvCount
      Src: /src/nccl/src/register/coll_reg.cc:52,1
    - Dst: ncclParamGraphRegister
      Src: /src/nccl/src/register/coll_reg.cc:55,1
    - Dst: ncclNvlsGraphRegisterBuffer
      Src: /src/nccl/src/register/coll_reg.cc:56,1
    - Dst: ncclParamLocalRegister
      Src: /src/nccl/src/register/coll_reg.cc:59,1
    - Dst: ncclNvlsLocalRegisterBuffer
      Src: /src/nccl/src/register/coll_reg.cc:60,1
    - Dst: ncclParamGraphRegister
      Src: /src/nccl/src/register/coll_reg.cc:64,1
    - Dst: ncclCollnetGraphRegisterBuffer
      Src: /src/nccl/src/register/coll_reg.cc:66,1
    - Dst: ncclCollnetGraphRegisterBuffer
      Src: /src/nccl/src/register/coll_reg.cc:68,1
    - Dst: ncclCollnetGraphRegisterBuffer
      Src: /src/nccl/src/register/coll_reg.cc:70,1
    - Dst: ncclCollnetGraphRegisterBuffer
      Src: /src/nccl/src/register/coll_reg.cc:71,1
    - Dst: ncclParamLocalRegister
      Src: /src/nccl/src/register/coll_reg.cc:75,1
    - Dst: ncclCollnetLocalRegisterBuffer
      Src: /src/nccl/src/register/coll_reg.cc:77,1
    - Dst: ncclCollnetLocalRegisterBuffer
      Src: /src/nccl/src/register/coll_reg.cc:79,1
    - Dst: ncclCollnetLocalRegisterBuffer
      Src: /src/nccl/src/register/coll_reg.cc:81,1
    - Dst: ncclCollnetLocalRegisterBuffer
      Src: /src/nccl/src/register/coll_reg.cc:82,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/register/coll_reg.cc:91,1
    - Dst: ncclNvlsRegResourcesQuery
      Src: /src/nccl/src/register/coll_reg.cc:91,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 64
    argCount: 6
    argNames:
    - comm
    - info
    - outRegBufSend
    - outRegBufRecv
    - cleanupQueue
    - regNeedConnect
    argTypes:
    - struct ncclComm*
    - struct ncclTaskColl*
    - void*[]
    - void*[]
    - struct ncclIntruQueue<struct ncclCommCallback, &ncclCommCallback::next>*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 28
    functionDepth: 9
    functionLinenumber: 28
    functionLinenumberEnd: 105
    functionName: ncclRegisterCollNvlsBuffers
    functionSourceFile: /src/nccl/src/register/coll_reg.cc
    functionUses: 1
    functionsReached:
    - ncclParamLocalRegister
    - ncclCollnetLocalRegisterBuffer
    - ncclNvlsRegResourcesQuery
    - ncclNvlsGraphRegisterBuffer
    - ncclNvlsLocalRegisterBuffer
    - ncclCollnetGraphRegisterBuffer
    - ncclTypeSize
    - ncclFuncRecvCount
    - ncclParamGraphRegister
    - ncclFuncSendCount
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclRegisterCollNvlsBuffers(\n    struct ncclComm* comm,
      struct ncclTaskColl* info,\n    void* outRegBufSend[NCCL_MAX_LOCAL_RANKS],\n
      \   void* outRegBufRecv[NCCL_MAX_LOCAL_RANKS],\n    struct ncclIntruQueue<struct
      ncclCommCallback, &ncclCommCallback::next>* cleanupQueue,\n    bool* regNeedConnect\n
      \ )"
  - BBCount: 87
    BranchProfiles: []
    Callsites:
    - Dst: ncclParamLocalRegister
      Src: /src/nccl/src/register/coll_reg.cc:118,1
    - Dst: ncclParamGraphRegister
      Src: /src/nccl/src/register/coll_reg.cc:118,1
    - Dst: ncclTypeSize
      Src: /src/nccl/src/register/coll_reg.cc:130,1
    - Dst: ncclFuncSendCount
      Src: /src/nccl/src/register/coll_reg.cc:131,1
    - Dst: ncclFuncRecvCount
      Src: /src/nccl/src/register/coll_reg.cc:132,1
    - Dst: ncclParamLocalRegister
      Src: /src/nccl/src/register/coll_reg.cc:135,1
    - Dst: ncclNvlsLocalRegisterBuffer
      Src: /src/nccl/src/register/coll_reg.cc:136,1
    - Dst: ncclParamGraphRegister
      Src: /src/nccl/src/register/coll_reg.cc:139,1
    - Dst: ncclNvlsGraphRegisterBuffer
      Src: /src/nccl/src/register/coll_reg.cc:140,1
    - Dst: ncclParamLocalRegister
      Src: /src/nccl/src/register/coll_reg.cc:144,1
    - Dst: ncclCollnetLocalRegisterBuffer
      Src: /src/nccl/src/register/coll_reg.cc:145,1
    - Dst: ncclCollnetLocalRegisterBuffer
      Src: /src/nccl/src/register/coll_reg.cc:146,1
    - Dst: ncclParamGraphRegister
      Src: /src/nccl/src/register/coll_reg.cc:149,1
    - Dst: ncclCollnetGraphRegisterBuffer
      Src: /src/nccl/src/register/coll_reg.cc:150,1
    - Dst: ncclCollnetGraphRegisterBuffer
      Src: /src/nccl/src/register/coll_reg.cc:151,1
    - Dst: std::max
      Src: /src/nccl/src/register/coll_reg.cc:161,1
    - Dst: min
      Src: /src/nccl/src/register/coll_reg.cc:161,1
    - Dst: std::max
      Src: /src/nccl/src/register/coll_reg.cc:163,1
    - Dst: min
      Src: /src/nccl/src/register/coll_reg.cc:163,1
    - Dst: std::max
      Src: /src/nccl/src/register/coll_reg.cc:165,1
    - Dst: min
      Src: /src/nccl/src/register/coll_reg.cc:165,1
    - Dst: ncclTypeSize
      Src: /src/nccl/src/register/coll_reg.cc:184,1
    - Dst: ncclFuncSendCount
      Src: /src/nccl/src/register/coll_reg.cc:185,1
    - Dst: ncclFuncRecvCount
      Src: /src/nccl/src/register/coll_reg.cc:186,1
    - Dst: memset
      Src: /src/nccl/src/register/coll_reg.cc:188,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/register/coll_reg.cc:202,1
    - Dst: registerCheckP2PConnection
      Src: /src/nccl/src/register/coll_reg.cc:202,1
    - Dst: ncclParamGraphRegister
      Src: /src/nccl/src/register/coll_reg.cc:218,1
    - Dst: ncclIpcGraphRegisterBuffer
      Src: /src/nccl/src/register/coll_reg.cc:219,1
    - Dst: ncclIpcGraphRegisterBuffer
      Src: /src/nccl/src/register/coll_reg.cc:220,1
    - Dst: ncclParamLocalRegister
      Src: /src/nccl/src/register/coll_reg.cc:222,1
    - Dst: ncclIpcLocalRegisterBuffer
      Src: /src/nccl/src/register/coll_reg.cc:223,1
    - Dst: ncclIpcLocalRegisterBuffer
      Src: /src/nccl/src/register/coll_reg.cc:224,1
    - Dst: ncclParamGraphRegister
      Src: /src/nccl/src/register/coll_reg.cc:234,1
    - Dst: ncclCollnetGraphRegisterBuffer
      Src: /src/nccl/src/register/coll_reg.cc:235,1
    - Dst: ncclCollnetGraphRegisterBuffer
      Src: /src/nccl/src/register/coll_reg.cc:238,1
    - Dst: ncclParamLocalRegister
      Src: /src/nccl/src/register/coll_reg.cc:243,1
    - Dst: ncclCollnetLocalRegisterBuffer
      Src: /src/nccl/src/register/coll_reg.cc:245,1
    - Dst: ncclCollnetLocalRegisterBuffer
      Src: /src/nccl/src/register/coll_reg.cc:249,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/register/coll_reg.cc:272,1
    - Dst: ncclRegFind
      Src: /src/nccl/src/register/coll_reg.cc:272,1
    - Dst: ncclParamGraphRegister
      Src: /src/nccl/src/register/coll_reg.cc:273,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/register/coll_reg.cc:274,1
    - Dst: ncclRegFind
      Src: /src/nccl/src/register/coll_reg.cc:274,1
    - Dst: ncclParamGraphRegister
      Src: /src/nccl/src/register/coll_reg.cc:275,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/register/coll_reg.cc:276,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/register/coll_reg.cc:276,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/register/coll_reg.cc:277,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/register/coll_reg.cc:277,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/register/coll_reg.cc:278,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/register/coll_reg.cc:278,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/register/coll_reg.cc:279,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/register/coll_reg.cc:279,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/register/coll_reg.cc:280,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/register/coll_reg.cc:280,1
    - Dst: ncclParamGraphRegister
      Src: /src/nccl/src/register/coll_reg.cc:315,1
    - Dst: ncclIpcGraphRegisterBuffer
      Src: /src/nccl/src/register/coll_reg.cc:316,1
    - Dst: ncclParamLocalRegister
      Src: /src/nccl/src/register/coll_reg.cc:318,1
    - Dst: ncclIpcLocalRegisterBuffer
      Src: /src/nccl/src/register/coll_reg.cc:319,1
    - Dst: ncclParamGraphRegister
      Src: /src/nccl/src/register/coll_reg.cc:329,1
    - Dst: ncclNetGraphRegisterBuffer
      Src: /src/nccl/src/register/coll_reg.cc:331,1
    - Dst: ncclNetGraphRegisterBuffer
      Src: /src/nccl/src/register/coll_reg.cc:333,1
    - Dst: ncclNetGraphRegisterBuffer
      Src: /src/nccl/src/register/coll_reg.cc:336,1
    - Dst: ncclParamLocalRegister
      Src: /src/nccl/src/register/coll_reg.cc:338,1
    - Dst: ncclNetLocalRegisterBuffer
      Src: /src/nccl/src/register/coll_reg.cc:340,1
    - Dst: ncclNetLocalRegisterBuffer
      Src: /src/nccl/src/register/coll_reg.cc:342,1
    - Dst: ncclNetLocalRegisterBuffer
      Src: /src/nccl/src/register/coll_reg.cc:345,1
    - Dst: free
      Src: /src/nccl/src/register/coll_reg.cc:358,1
    - Dst: free
      Src: /src/nccl/src/register/coll_reg.cc:359,1
    - Dst: free
      Src: /src/nccl/src/register/coll_reg.cc:360,1
    - Dst: free
      Src: /src/nccl/src/register/coll_reg.cc:363,1
    - Dst: free
      Src: /src/nccl/src/register/coll_reg.cc:364,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/register/coll_reg.cc:369,1
    - Dst: ncclRegFind
      Src: /src/nccl/src/register/coll_reg.cc:369,1
    - Dst: ncclParamGraphRegister
      Src: /src/nccl/src/register/coll_reg.cc:370,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/register/coll_reg.cc:390,1
    - Dst: registerCheckP2PConnection
      Src: /src/nccl/src/register/coll_reg.cc:390,1
    - Dst: ncclParamGraphRegister
      Src: /src/nccl/src/register/coll_reg.cc:405,1
    - Dst: ncclIpcGraphRegisterBuffer
      Src: /src/nccl/src/register/coll_reg.cc:406,1
    - Dst: ncclParamLocalRegister
      Src: /src/nccl/src/register/coll_reg.cc:408,1
    - Dst: ncclIpcLocalRegisterBuffer
      Src: /src/nccl/src/register/coll_reg.cc:409,1
    - Dst: ncclParamGraphRegister
      Src: /src/nccl/src/register/coll_reg.cc:419,1
    - Dst: ncclCollnetGraphRegisterBuffer
      Src: /src/nccl/src/register/coll_reg.cc:420,1
    - Dst: ncclCollnetGraphRegisterBuffer
      Src: /src/nccl/src/register/coll_reg.cc:423,1
    - Dst: ncclParamLocalRegister
      Src: /src/nccl/src/register/coll_reg.cc:428,1
    - Dst: ncclCollnetLocalRegisterBuffer
      Src: /src/nccl/src/register/coll_reg.cc:430,1
    - Dst: ncclCollnetLocalRegisterBuffer
      Src: /src/nccl/src/register/coll_reg.cc:434,1
    CyclomaticComplexity: 170
    EdgeCount: 170
    ICount: 291
    argCount: 6
    argNames:
    - comm
    - info
    - outRegBufSend
    - outRegBufRecv
    - cleanupQueue
    - regNeedConnect
    argTypes:
    - struct ncclComm*
    - struct ncclTaskColl*
    - void*[]
    - void*[]
    - struct ncclIntruQueue<struct ncclCommCallback, &ncclCommCallback::next>*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 453
      start: 107
    functionDepth: 9
    functionLinenumber: 107
    functionLinenumberEnd: 453
    functionName: ncclRegisterCollBuffers
    functionSourceFile: /src/nccl/src/register/coll_reg.cc
    functionUses: 1
    functionsReached:
    - std::max
    - ncclNetGraphRegisterBuffer
    - ncclParamGraphRegister
    - ncclIpcLocalRegisterBuffer
    - min
    - ncclNvlsLocalRegisterBuffer
    - ncclCollnetGraphRegisterBuffer
    - ncclIpcGraphRegisterBuffer
    - ncclFuncSendCount
    - memset
    - ncclParamLocalRegister
    - ncclNvlsGraphRegisterBuffer
    - ncclTypeSize
    - ncclRegFind
    - ncclCollnetLocalRegisterBuffer
    - free
    - ncclNetLocalRegisterBuffer
    - registerCheckP2PConnection
    - ncclFuncRecvCount
    - ncclCalloc
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclRegisterCollBuffers(\n    struct ncclComm* comm,
      struct ncclTaskColl* info,\n    void* outRegBufSend[NCCL_MAX_LOCAL_RANKS],\n
      \   void* outRegBufRecv[NCCL_MAX_LOCAL_RANKS],\n    struct ncclIntruQueue<struct
      ncclCommCallback, &ncclCommCallback::next>* cleanupQueue,\n    bool* regNeedConnect\n
      \ )"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - comm
    - baseSymPtr
    - handle
    argTypes:
    - struct ncclComm*
    - void*
    - struct ncclReg**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 27
    functionName: regFindHandleFromSymAddr
    functionSourceFile: /src/nccl/src/register/register.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t regFindHandleFromSymAddr(struct ncclComm* comm, void*
      baseSymPtr, struct ncclReg** handle)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - reg
    - isValid
    argTypes:
    - struct ncclReg*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 37
    functionName: ncclRegLocalIsValid
    functionSourceFile: /src/nccl/src/register/register.cc
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclRegLocalIsValid(struct ncclReg *reg, bool *isValid)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/register/register.cc:40,1
    - Dst: CommCheck
      Src: /src/nccl/src/register/register.cc:40,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/register/register.cc:46,1
    - Dst: CudaPtrCheck
      Src: /src/nccl/src/register/register.cc:46,1
    - Dst: INFO
      Src: /src/nccl/src/register/register.cc:47,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/register/register.cc:53,1
    - Dst: ncclRealloc
      Src: /src/nccl/src/register/register.cc:53,1
    - Dst: memmove
      Src: /src/nccl/src/register/register.cc:55,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/register/register.cc:56,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/register/register.cc:56,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 5
    argNames:
    - comm
    - data
    - size
    - isGraph
    - handle
    argTypes:
    - struct ncclComm*
    - void*
    - size_t
    - bool
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 39
    functionDepth: 2
    functionLinenumber: 39
    functionLinenumberEnd: 76
    functionName: ncclRegister
    functionSourceFile: /src/nccl/src/register/register.cc
    functionUses: 0
    functionsReached:
    - INFO
    - memmove
    - CommCheck
    - CudaPtrCheck
    - ncclCalloc
    - ncclRealloc
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclRegister(struct ncclComm* comm, void* data, size_t
      size, bool isGraph, void** handle)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: ncclNetDeregBuffer
      Src: /src/nccl/src/register/register.cc:83,1
    - Dst: WARN
      Src: /src/nccl/src/register/register.cc:84,1
    - Dst: free
      Src: /src/nccl/src/register/register.cc:88,1
    - Dst: ncclNvlsDeregBuffer
      Src: /src/nccl/src/register/register.cc:92,1
    - Dst: WARN
      Src: /src/nccl/src/register/register.cc:93,1
    - Dst: ncclCollnetDeregBuffer
      Src: /src/nccl/src/register/register.cc:98,1
    - Dst: WARN
      Src: /src/nccl/src/register/register.cc:99,1
    - Dst: ncclIpcDeregBuffer
      Src: /src/nccl/src/register/register.cc:105,1
    - Dst: WARN
      Src: /src/nccl/src/register/register.cc:106,1
    - Dst: free
      Src: /src/nccl/src/register/register.cc:108,1
    - Dst: free
      Src: /src/nccl/src/register/register.cc:110,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/register/register.cc:111,1
    - Dst: ncclCudaFree
      Src: /src/nccl/src/register/register.cc:111,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 36
    argCount: 2
    argNames:
    - comm
    - reg
    argTypes:
    - struct ncclComm*
    - struct ncclReg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 78
    functionDepth: 5
    functionLinenumber: 78
    functionLinenumberEnd: 114
    functionName: regCleanup
    functionSourceFile: /src/nccl/src/register/register.cc
    functionUses: 0
    functionsReached:
    - WARN
    - ncclNvlsDeregBuffer
    - free
    - ncclNetDeregBuffer
    - ncclCudaFree
    - ncclCollnetDeregBuffer
    - ncclIpcDeregBuffer
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t regCleanup(struct ncclComm* comm, struct ncclReg* reg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INFO
      Src: /src/nccl/src/register/register.cc:120,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/register/register.cc:121,1
    - Dst: regCleanup
      Src: /src/nccl/src/register/register.cc:121,1
    - Dst: free
      Src: /src/nccl/src/register/register.cc:122,1
    - Dst: free
      Src: /src/nccl/src/register/register.cc:124,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 116
    functionDepth: 6
    functionLinenumber: 116
    functionLinenumberEnd: 126
    functionName: ncclRegCleanup
    functionSourceFile: /src/nccl/src/register/register.cc
    functionUses: 1
    functionsReached:
    - INFO
    - regCleanup
    - NCCLCHECK
    - free
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclRegCleanup(struct ncclComm* comm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncclParamLocalRegister
      Src: /src/nccl/src/register/register.cc:130,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/register/register.cc:133,1
    - Dst: ncclRegister
      Src: /src/nccl/src/register/register.cc:133,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - comm
    - buff
    - size
    - handle
    argTypes:
    - ncclComm_t
    - void*
    - size_t
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 129
    functionDepth: 3
    functionLinenumber: 129
    functionLinenumberEnd: 135
    functionName: ncclCommRegister
    functionSourceFile: /src/nccl/src/register/register.cc
    functionUses: 0
    functionsReached:
    - ncclParamLocalRegister
    - ncclRegister
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCommRegister(const ncclComm_t comm, void* buff, size_t
      size, void** handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/register/register.cc:138,1
    - Dst: ncclRegister
      Src: /src/nccl/src/register/register.cc:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - comm
    - buff
    - size
    - handle
    argTypes:
    - ncclComm_t
    - void*
    - size_t
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 137
    functionDepth: 3
    functionLinenumber: 137
    functionLinenumberEnd: 140
    functionName: ncclCommGraphRegister
    functionSourceFile: /src/nccl/src/register/register.cc
    functionUses: 4
    functionsReached:
    - ncclRegister
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCommGraphRegister(const ncclComm_t comm, void* buff,
      size_t size, void** handle)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/register/register.cc:143,1
    - Dst: CommCheck
      Src: /src/nccl/src/register/register.cc:143,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/register/register.cc:148,1
    - Dst: cudaGetDevice
      Src: /src/nccl/src/register/register.cc:148,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/register/register.cc:149,1
    - Dst: cudaSetDevice
      Src: /src/nccl/src/register/register.cc:149,1
    - Dst: WARN
      Src: /src/nccl/src/register/register.cc:152,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/register/register.cc:158,1
    - Dst: regCleanup
      Src: /src/nccl/src/register/register.cc:158,1
    - Dst: free
      Src: /src/nccl/src/register/register.cc:159,1
    - Dst: memmove
      Src: /src/nccl/src/register/register.cc:160,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/register/register.cc:162,1
    - Dst: cudaSetDevice
      Src: /src/nccl/src/register/register.cc:162,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 3
    argNames:
    - comm
    - isGraph
    - reg
    argTypes:
    - struct ncclComm*
    - bool
    - struct ncclReg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 142
    functionDepth: 6
    functionLinenumber: 142
    functionLinenumberEnd: 165
    functionName: commDeregister
    functionSourceFile: /src/nccl/src/register/register.cc
    functionUses: 0
    functionsReached:
    - WARN
    - free
    - CUDACHECK
    - memmove
    - cudaSetDevice
    - CommCheck
    - regCleanup
    - cudaGetDevice
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t commDeregister(struct ncclComm *comm, bool isGraph, struct
      ncclReg* reg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/register/register.cc:169,1
    - Dst: commDeregister
      Src: /src/nccl/src/register/register.cc:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - comm
    - handle
    argTypes:
    - ncclComm_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 168
    functionDepth: 7
    functionLinenumber: 168
    functionLinenumberEnd: 171
    functionName: ncclCommDeregister
    functionSourceFile: /src/nccl/src/register/register.cc
    functionUses: 0
    functionsReached:
    - NCCLCHECK
    - commDeregister
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCommDeregister(const ncclComm_t comm, void *handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/register/register.cc:174,1
    - Dst: commDeregister
      Src: /src/nccl/src/register/register.cc:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - comm
    - handle
    argTypes:
    - ncclComm_t
    - struct ncclReg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 173
    functionDepth: 7
    functionLinenumber: 173
    functionLinenumberEnd: 176
    functionName: ncclCommGraphDeregister
    functionSourceFile: /src/nccl/src/register/register.cc
    functionUses: 8
    functionsReached:
    - NCCLCHECK
    - commDeregister
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCommGraphDeregister(const ncclComm_t comm, struct
      ncclReg *handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ALIGN_SIZE
      Src: /src/nccl/src/register/register.cc:181,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/register/register.cc:182,1
    - Dst: ncclIpcSymmetricMap
      Src: /src/nccl/src/register/register.cc:182,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/register/register.cc:183,1
    - Dst: ncclNvlsSymmetricMap
      Src: /src/nccl/src/register/register.cc:183,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/register/register.cc:184,1
    - Dst: bootstrapIntraNodeBarrier
      Src: /src/nccl/src/register/register.cc:184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 6
    argNames:
    - comm
    - buff
    - baseSize
    - alignment
    - memHandle
    - regHandle
    argTypes:
    - struct ncclComm*
    - void*
    - size_t
    - size_t
    - CUmemGenericAllocationHandle
    - struct ncclReg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 178
    functionDepth: 6
    functionLinenumber: 178
    functionLinenumberEnd: 194
    functionName: ncclCommSymmetricRegisterInternal
    functionSourceFile: /src/nccl/src/register/register.cc
    functionUses: 1
    functionsReached:
    - NCCLCHECKGOTO
    - ALIGN_SIZE
    - ncclIpcSymmetricMap
    - ncclNvlsSymmetricMap
    - bootstrapIntraNodeBarrier
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCommSymmetricRegisterInternal(struct ncclComm* comm,
      void* buff, size_t baseSize, size_t alignment, CUmemGenericAllocationHandle
      memHandle, struct ncclReg* regHandle)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: CUDACHECK
      Src: /src/nccl/src/register/register.cc:207,1
    - Dst: cudaGetDevice
      Src: /src/nccl/src/register/register.cc:207,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/register/register.cc:208,1
    - Dst: ncclGroupStartInternal
      Src: /src/nccl/src/register/register.cc:208,1
    - Dst: ncclParamLocalRegister
      Src: /src/nccl/src/register/register.cc:209,1
    - Dst: ncclCuMemEnable
      Src: /src/nccl/src/register/register.cc:209,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/register/register.cc:213,1
    - Dst: ncclCommEnsureReady
      Src: /src/nccl/src/register/register.cc:213,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/register/register.cc:215,1
    - Dst: cudaSetDevice
      Src: /src/nccl/src/register/register.cc:215,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/register/register.cc:218,1
    - Dst: cuMemGetAddressRange
      Src: /src/nccl/src/register/register.cc:218,1
    - Dst: WARN
      Src: /src/nccl/src/register/register.cc:221,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/register/register.cc:224,1
    - Dst: ncclRegister
      Src: /src/nccl/src/register/register.cc:224,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/register/register.cc:225,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/register/register.cc:225,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/register/register.cc:230,1
    - Dst: cuMemRetainAllocationHandle
      Src: /src/nccl/src/register/register.cc:230,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/register/register.cc:231,1
    - Dst: cuMemRelease
      Src: /src/nccl/src/register/register.cc:231,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/register/register.cc:233,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/register/register.cc:233,1
    - Dst: ncclIntruQueueEnqueue
      Src: /src/nccl/src/register/register.cc:239,1
    - Dst: ncclGroupCommJoin
      Src: /src/nccl/src/register/register.cc:240,1
    - Dst: ncclGroupErrCheck
      Src: /src/nccl/src/register/register.cc:245,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/register/register.cc:246,1
    - Dst: ncclGroupEndInternal
      Src: /src/nccl/src/register/register.cc:246,1
    - Dst: cudaSetDevice
      Src: /src/nccl/src/register/register.cc:247,1
    - Dst: free
      Src: /src/nccl/src/register/register.cc:250,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 47
    argCount: 5
    argNames:
    - comm
    - buff
    - size
    - win
    - winFlags
    argTypes:
    - ncclComm_t
    - void*
    - size_t
    - ncclWindow_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 197
    functionDepth: 5
    functionLinenumber: 197
    functionLinenumberEnd: 253
    functionName: ncclCommWindowRegister
    functionSourceFile: /src/nccl/src/register/register.cc
    functionUses: 0
    functionsReached:
    - WARN
    - ncclGroupCommJoin
    - cuMemRelease
    - ncclIntruQueueEnqueue
    - cudaGetDevice
    - ncclParamLocalRegister
    - cuMemRetainAllocationHandle
    - CUDACHECKGOTO
    - CUDACHECK
    - ncclGroupEndInternal
    - ncclCuMemEnable
    - ncclGroupStartInternal
    - cuMemGetAddressRange
    - NCCLCHECKGOTO
    - ncclCommEnsureReady
    - free
    - cudaSetDevice
    - ncclGroupErrCheck
    - ncclCalloc
    - ncclRegister
    - CUCHECKGOTO
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCommWindowRegister(ncclComm_t comm, void* buff, size_t
      size, ncclWindow_t* win, int winFlags)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CUDACHECK
      Src: /src/nccl/src/register/register.cc:260,1
    - Dst: cudaGetDevice
      Src: /src/nccl/src/register/register.cc:260,1
    - Dst: ncclParamLocalRegister
      Src: /src/nccl/src/register/register.cc:263,1
    - Dst: ncclCuMemEnable
      Src: /src/nccl/src/register/register.cc:263,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/register/register.cc:265,1
    - Dst: cudaSetDevice
      Src: /src/nccl/src/register/register.cc:265,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/register/register.cc:266,1
    - Dst: ncclNvlsSymmetricFree
      Src: /src/nccl/src/register/register.cc:266,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/register/register.cc:267,1
    - Dst: ncclIpcSymmetricFree
      Src: /src/nccl/src/register/register.cc:267,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/register/register.cc:269,1
    - Dst: commDeregister
      Src: /src/nccl/src/register/register.cc:269,1
    - Dst: free
      Src: /src/nccl/src/register/register.cc:271,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/register/register.cc:273,1
    - Dst: cudaSetDevice
      Src: /src/nccl/src/register/register.cc:273,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - comm
    - win
    argTypes:
    - ncclComm_t
    - ncclWindow_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 256
    functionDepth: 7
    functionLinenumber: 256
    functionLinenumberEnd: 277
    functionName: ncclCommWindowDeregister
    functionSourceFile: /src/nccl/src/register/register.cc
    functionUses: 0
    functionsReached:
    - ncclParamLocalRegister
    - NCCLCHECKGOTO
    - CUDACHECKGOTO
    - commDeregister
    - CUDACHECK
    - free
    - ncclNvlsSymmetricFree
    - cudaSetDevice
    - ncclIpcSymmetricFree
    - ncclCuMemEnable
    - cudaGetDevice
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCommWindowDeregister(ncclComm_t comm, ncclWindow_t
      win)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nanosleep
      Src: /src/nccl/src/misc/socket.cc:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - time_msec
    argTypes:
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 26
    functionName: msleep
    functionSourceFile: /src/nccl/src/misc/socket.cc
    functionUses: 0
    functionsReached:
    - nanosleep
    linkageType: ''
    returnType: void
    signature: void msleep(unsigned int time_msec)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: recv
      Src: /src/nccl/src/misc/socket.cc:34,1
    - Dst: send
      Src: /src/nccl/src/misc/socket.cc:35,1
    - Dst: WARN
      Src: /src/nccl/src/misc/socket.cc:46,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/misc/socket.cc:47,1
    - Dst: strerror
      Src: /src/nccl/src/misc/socket.cc:47,1
    - Dst: __atomic_load_n
      Src: /src/nccl/src/misc/socket.cc:54,1
    - Dst: INFO
      Src: /src/nccl/src/misc/socket.cc:55,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 30
    argCount: 7
    argNames:
    - op
    - sock
    - ptr
    - size
    - offset
    - block
    - closed
    argTypes:
    - int
    - struct ncclSocket*
    - void*
    - int
    - int*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 60
    functionName: socketProgressOpt
    functionSourceFile: /src/nccl/src/misc/socket.cc
    functionUses: 0
    functionsReached:
    - WARN
    - ncclSocketToString
    - __atomic_load_n
    - send
    - INFO
    - recv
    - strerror
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t socketProgressOpt(int op, struct ncclSocket* sock, void*
      ptr, int size, int* offset, int block, int* closed)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/misc/socket.cc:64,1
    - Dst: socketProgressOpt
      Src: /src/nccl/src/misc/socket.cc:64,1
    - Dst: WARN
      Src: /src/nccl/src/misc/socket.cc:71,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/misc/socket.cc:72,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 5
    argNames:
    - op
    - sock
    - ptr
    - size
    - offset
    argTypes:
    - int
    - struct ncclSocket*
    - void*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 62
    functionDepth: 2
    functionLinenumber: 62
    functionLinenumberEnd: 77
    functionName: socketProgress
    functionSourceFile: /src/nccl/src/misc/socket.cc
    functionUses: 0
    functionsReached:
    - WARN
    - ncclSocketToString
    - socketProgressOpt
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t socketProgress(int op, struct ncclSocket* sock, void*
      ptr, int size, int* offset, int* pclosed = NULL)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/misc/socket.cc:81,1
    - Dst: socketProgress
      Src: /src/nccl/src/misc/socket.cc:81,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 5
    argNames:
    - op
    - sock
    - ptr
    - size
    - offset
    argTypes:
    - int
    - struct ncclSocket*
    - void*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 79
    functionDepth: 3
    functionLinenumber: 79
    functionLinenumberEnd: 83
    functionName: socketWait
    functionSourceFile: /src/nccl/src/misc/socket.cc
    functionUses: 0
    functionsReached:
    - socketProgress
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t socketWait(int op, struct ncclSocket* sock, void* ptr,
      int size, int* offset)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: getnameinfo
      Src: /src/nccl/src/misc/socket.cc:99,1
    - Dst: sprintf
      Src: /src/nccl/src/misc/socket.cc:100,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 3
    argNames:
    - addr
    - buf
    - numericHostForm
    argTypes:
    - union ncclSocketAddress*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 106
    functionName: ncclSocketToString
    functionSourceFile: /src/nccl/src/misc/socket.cc
    functionUses: 8
    functionsReached:
    - sprintf
    - getnameinfo
    linkageType: ''
    returnType: char
    signature: char *ncclSocketToString(const union ncclSocketAddress *addr, char
      *buf, const int numericHostForm /*= 1*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ntohs
      Src: /src/nccl/src/misc/socket.cc:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - addr
    argTypes:
    - union ncclSocketAddress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 111
    functionName: socketToPort
    functionSourceFile: /src/nccl/src/misc/socket.cc
    functionUses: 0
    functionsReached:
    - ntohs
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t socketToPort(union ncclSocketAddress *addr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ncclGetEnv
      Src: /src/nccl/src/misc/socket.cc:116,1
    - Dst: INFO
      Src: /src/nccl/src/misc/socket.cc:120,1
    - Dst: strcmp
      Src: /src/nccl/src/misc/socket.cc:122,1
    - Dst: strcmp
      Src: /src/nccl/src/misc/socket.cc:124,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 127
    functionName: envSocketFamily
    functionSourceFile: /src/nccl/src/misc/socket.cc
    functionUses: 0
    functionsReached:
    - ncclGetEnv
    - INFO
    - strcmp
    linkageType: ''
    returnType: int
    signature: int envSocketFamily(void)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: parseStringList
      Src: /src/nccl/src/misc/socket.cc:139,1
    - Dst: SYSCHECK
      Src: /src/nccl/src/misc/socket.cc:143,1
    - Dst: getifaddrs
      Src: /src/nccl/src/misc/socket.cc:143,1
    - Dst: TRACE
      Src: /src/nccl/src/misc/socket.cc:152,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/misc/socket.cc:152,1
    - Dst: IN6_IS_ADDR_LOOPBACK
      Src: /src/nccl/src/misc/socket.cc:161,1
    - Dst: matchIfList
      Src: /src/nccl/src/misc/socket.cc:165,1
    - Dst: strcmp
      Src: /src/nccl/src/misc/socket.cc:173,1
    - Dst: strncpy
      Src: /src/nccl/src/misc/socket.cc:178,1
    - Dst: memset
      Src: /src/nccl/src/misc/socket.cc:181,1
    - Dst: memcpy
      Src: /src/nccl/src/misc/socket.cc:182,1
    - Dst: freeifaddrs
      Src: /src/nccl/src/misc/socket.cc:187,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 37
    argCount: 7
    argNames:
    - prefixList
    - names
    - addrs
    - sock_family
    - maxIfNameSize
    - maxIfs
    - found
    argTypes:
    - char*
    - char*
    - union ncclSocketAddress*
    - int
    - int
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 189
    functionName: findInterfaces
    functionSourceFile: /src/nccl/src/misc/socket.cc
    functionUses: 0
    functionsReached:
    - TRACE
    - ncclSocketToString
    - matchIfList
    - getifaddrs
    - strcmp
    - memcpy
    - strncpy
    - parseStringList
    - freeifaddrs
    - SYSCHECK
    - IN6_IS_ADDR_LOOPBACK
    - memset
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t findInterfaces(const char* prefixList, char* names, union
      ncclSocketAddress *addrs, int sock_family,\n                                   int
      maxIfNameSize, int maxIfs, int* found)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: INFO
      Src: /src/nccl/src/misc/socket.cc:229,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - local_if
    - remote
    argTypes:
    - struct ifaddrs
    - union ncclSocketAddress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 232
    functionName: matchSubnet
    functionSourceFile: /src/nccl/src/misc/socket.cc
    functionUses: 0
    functionsReached:
    - INFO
    linkageType: ''
    returnType: bool
    signature: bool matchSubnet(struct ifaddrs local_if, union ncclSocketAddress*
      remote)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SYSCHECK
      Src: /src/nccl/src/misc/socket.cc:242,1
    - Dst: getifaddrs
      Src: /src/nccl/src/misc/socket.cc:242,1
    - Dst: matchSubnet
      Src: /src/nccl/src/misc/socket.cc:252,1
    - Dst: memcpy
      Src: /src/nccl/src/misc/socket.cc:258,1
    - Dst: strncpy
      Src: /src/nccl/src/misc/socket.cc:261,1
    - Dst: TRACE
      Src: /src/nccl/src/misc/socket.cc:263,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/misc/socket.cc:264,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/misc/socket.cc:264,1
    - Dst: freeifaddrs
      Src: /src/nccl/src/misc/socket.cc:268,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 18
    argCount: 5
    argNames:
    - ifName
    - localAddr
    - remoteAddr
    - ifNameMaxSize
    - found
    argTypes:
    - char*
    - union ncclSocketAddress*
    - union ncclSocketAddress*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 234
    functionDepth: 1
    functionLinenumber: 234
    functionLinenumberEnd: 270
    functionName: ncclFindInterfaceMatchSubnet
    functionSourceFile: /src/nccl/src/misc/socket.cc
    functionUses: 1
    functionsReached:
    - TRACE
    - ncclSocketToString
    - getifaddrs
    - memcpy
    - strncpy
    - matchSubnet
    - freeifaddrs
    - SYSCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclFindInterfaceMatchSubnet(char* ifName, union ncclSocketAddress*
      localAddr,\n                                          union ncclSocketAddress*
      remoteAddr, int ifNameMaxSize, int* found)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/nccl/src/misc/socket.cc:273,1
    - Dst: WARN
      Src: /src/nccl/src/misc/socket.cc:274,1
    - Dst: parseStringList
      Src: /src/nccl/src/misc/socket.cc:283,1
    - Dst: WARN
      Src: /src/nccl/src/misc/socket.cc:284,1
    - Dst: memset
      Src: /src/nccl/src/misc/socket.cc:290,1
    - Dst: getaddrinfo
      Src: /src/nccl/src/misc/socket.cc:294,1
    - Dst: WARN
      Src: /src/nccl/src/misc/socket.cc:295,1
    - Dst: gai_strerror
      Src: /src/nccl/src/misc/socket.cc:295,1
    - Dst: memcpy
      Src: /src/nccl/src/misc/socket.cc:302,1
    - Dst: htons
      Src: /src/nccl/src/misc/socket.cc:305,1
    - Dst: memcpy
      Src: /src/nccl/src/misc/socket.cc:308,1
    - Dst: htons
      Src: /src/nccl/src/misc/socket.cc:310,1
    - Dst: WARN
      Src: /src/nccl/src/misc/socket.cc:314,1
    - Dst: freeaddrinfo
      Src: /src/nccl/src/misc/socket.cc:315,1
    - Dst: freeaddrinfo
      Src: /src/nccl/src/misc/socket.cc:319,1
    - Dst: strlen
      Src: /src/nccl/src/misc/socket.cc:322,1
    - Dst: WARN
      Src: /src/nccl/src/misc/socket.cc:328,1
    - Dst: memset
      Src: /src/nccl/src/misc/socket.cc:334,1
    - Dst: memset
      Src: /src/nccl/src/misc/socket.cc:335,1
    - Dst: memset
      Src: /src/nccl/src/misc/socket.cc:336,1
    - Dst: strncpy
      Src: /src/nccl/src/misc/socket.cc:337,1
    - Dst: strncpy
      Src: /src/nccl/src/misc/socket.cc:338,1
    - Dst: atoi
      Src: /src/nccl/src/misc/socket.cc:339,1
    - Dst: strncpy
      Src: /src/nccl/src/misc/socket.cc:340,1
    - Dst: inet_pton
      Src: /src/nccl/src/misc/socket.cc:344,1
    - Dst: htons
      Src: /src/nccl/src/misc/socket.cc:345,1
    - Dst: if_nametoindex
      Src: /src/nccl/src/misc/socket.cc:347,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 59
    argCount: 2
    argNames:
    - ua
    - ip_port_pair
    argTypes:
    - union ncclSocketAddress*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 272
    functionDepth: 1
    functionLinenumber: 272
    functionLinenumberEnd: 350
    functionName: ncclSocketGetAddrFromString
    functionSourceFile: /src/nccl/src/misc/socket.cc
    functionUses: 2
    functionsReached:
    - WARN
    - freeaddrinfo
    - strlen
    - gai_strerror
    - memcpy
    - strncpy
    - atoi
    - inet_pton
    - getaddrinfo
    - parseStringList
    - if_nametoindex
    - htons
    - memset
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclSocketGetAddrFromString(union ncclSocketAddress* ua,
      const char* ip_port_pair)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: envSocketFamily
      Src: /src/nccl/src/misc/socket.cc:356,1
    - Dst: ncclGetEnv
      Src: /src/nccl/src/misc/socket.cc:358,1
    - Dst: strlen
      Src: /src/nccl/src/misc/socket.cc:360,1
    - Dst: INFO
      Src: /src/nccl/src/misc/socket.cc:361,1
    - Dst: INFO
      Src: /src/nccl/src/misc/socket.cc:363,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/misc/socket.cc:364,1
    - Dst: findInterfaces
      Src: /src/nccl/src/misc/socket.cc:364,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/misc/socket.cc:368,1
    - Dst: findInterfaces
      Src: /src/nccl/src/misc/socket.cc:368,1
    - Dst: ncclGetEnv
      Src: /src/nccl/src/misc/socket.cc:371,1
    - Dst: strlen
      Src: /src/nccl/src/misc/socket.cc:372,1
    - Dst: INFO
      Src: /src/nccl/src/misc/socket.cc:373,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/misc/socket.cc:376,1
    - Dst: ncclSocketGetAddrFromString
      Src: /src/nccl/src/misc/socket.cc:376,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/misc/socket.cc:377,1
    - Dst: ncclFindInterfaceMatchSubnet
      Src: /src/nccl/src/misc/socket.cc:377,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/misc/socket.cc:381,1
    - Dst: findInterfaces
      Src: /src/nccl/src/misc/socket.cc:381,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/misc/socket.cc:383,1
    - Dst: findInterfaces
      Src: /src/nccl/src/misc/socket.cc:383,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/misc/socket.cc:384,1
    - Dst: findInterfaces
      Src: /src/nccl/src/misc/socket.cc:384,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 5
    argNames:
    - ifNames
    - ifAddrs
    - ifNameMaxSize
    - maxIfs
    - nIfs
    argTypes:
    - char*
    - union ncclSocketAddress*
    - int
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 352
    functionDepth: 2
    functionLinenumber: 352
    functionLinenumberEnd: 387
    functionName: ncclFindInterfaces
    functionSourceFile: /src/nccl/src/misc/socket.cc
    functionUses: 3
    functionsReached:
    - INFO
    - ncclSocketGetAddrFromString
    - findInterfaces
    - strlen
    - ncclGetEnv
    - ncclFindInterfaceMatchSubnet
    - envSocketFamily
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclFindInterfaces(char* ifNames, union ncclSocketAddress
      *ifAddrs, int ifNameMaxSize, int maxIfs,\n                                int*
      nIfs)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/misc/socket.cc:391,1
    - Dst: WARN
      Src: /src/nccl/src/misc/socket.cc:395,1
    - Dst: socketToPort
      Src: /src/nccl/src/misc/socket.cc:399,1
    - Dst: SYSCHECK
      Src: /src/nccl/src/misc/socket.cc:402,1
    - Dst: setsockopt
      Src: /src/nccl/src/misc/socket.cc:402,1
    - Dst: SYSCHECK
      Src: /src/nccl/src/misc/socket.cc:404,1
    - Dst: setsockopt
      Src: /src/nccl/src/misc/socket.cc:404,1
    - Dst: SYSCHECK
      Src: /src/nccl/src/misc/socket.cc:409,1
    - Dst: bind
      Src: /src/nccl/src/misc/socket.cc:409,1
    - Dst: SYSCHECK
      Src: /src/nccl/src/misc/socket.cc:413,1
    - Dst: getsockname
      Src: /src/nccl/src/misc/socket.cc:413,1
    - Dst: TRACE
      Src: /src/nccl/src/misc/socket.cc:417,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/misc/socket.cc:417,1
    - Dst: SYSCHECK
      Src: /src/nccl/src/misc/socket.cc:423,1
    - Dst: listen
      Src: /src/nccl/src/misc/socket.cc:423,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - sock
    argTypes:
    - struct ncclSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 389
    functionDepth: 1
    functionLinenumber: 389
    functionLinenumberEnd: 426
    functionName: ncclSocketListen
    functionSourceFile: /src/nccl/src/misc/socket.cc
    functionUses: 4
    functionsReached:
    - WARN
    - setsockopt
    - TRACE
    - ncclSocketToString
    - socketToPort
    - SYSCHECK
    - getsockname
    - listen
    - bind
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclSocketListen(struct ncclSocket* sock)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/misc/socket.cc:430,1
    - Dst: memcpy
      Src: /src/nccl/src/misc/socket.cc:434,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - sock
    - addr
    argTypes:
    - struct ncclSocket*
    - union ncclSocketAddress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 428
    functionDepth: 1
    functionLinenumber: 428
    functionLinenumberEnd: 436
    functionName: ncclSocketGetAddr
    functionSourceFile: /src/nccl/src/misc/socket.cc
    functionUses: 7
    functionsReached:
    - WARN
    - memcpy
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclSocketGetAddr(struct ncclSocket* sock, union ncclSocketAddress*
      addr)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: accept
      Src: /src/nccl/src/misc/socket.cc:440,1
    - Dst: ncclParamRetryCnt
      Src: /src/nccl/src/misc/socket.cc:448,1
    - Dst: WARN
      Src: /src/nccl/src/misc/socket.cc:449,1
    - Dst: strerror
      Src: /src/nccl/src/misc/socket.cc:449,1
    - Dst: INFO
      Src: /src/nccl/src/misc/socket.cc:452,1
    - Dst: strerror
      Src: /src/nccl/src/misc/socket.cc:452,1
    - Dst: WARN
      Src: /src/nccl/src/misc/socket.cc:454,1
    - Dst: strerror
      Src: /src/nccl/src/misc/socket.cc:454,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 17
    argCount: 1
    argNames:
    - sock
    argTypes:
    - struct ncclSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 438
    functionDepth: 1
    functionLinenumber: 438
    functionLinenumberEnd: 458
    functionName: socketTryAccept
    functionSourceFile: /src/nccl/src/misc/socket.cc
    functionUses: 0
    functionsReached:
    - WARN
    - INFO
    - ncclParamRetryCnt
    - accept
    - strerror
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t socketTryAccept(struct ncclSocket* sock)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SYSCHECK
      Src: /src/nccl/src/misc/socket.cc:468,1
    - Dst: fcntl
      Src: /src/nccl/src/misc/socket.cc:468,1
    - Dst: SYSCHECK
      Src: /src/nccl/src/misc/socket.cc:469,1
    - Dst: fcntl
      Src: /src/nccl/src/misc/socket.cc:469,1
    - Dst: SYSCHECK
      Src: /src/nccl/src/misc/socket.cc:471,1
    - Dst: setsockopt
      Src: /src/nccl/src/misc/socket.cc:471,1
    - Dst: ncclParamSocketMaxRecvBuff
      Src: /src/nccl/src/misc/socket.cc:473,1
    - Dst: ncclParamSocketMaxSendBuff
      Src: /src/nccl/src/misc/socket.cc:473,1
    - Dst: SYSCHECK
      Src: /src/nccl/src/misc/socket.cc:474,1
    - Dst: setsockopt
      Src: /src/nccl/src/misc/socket.cc:474,1
    - Dst: SYSCHECK
      Src: /src/nccl/src/misc/socket.cc:475,1
    - Dst: setsockopt
      Src: /src/nccl/src/misc/socket.cc:475,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - sock
    argTypes:
    - struct ncclSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 463
    functionDepth: 1
    functionLinenumber: 463
    functionLinenumberEnd: 477
    functionName: socketSetFlags
    functionSourceFile: /src/nccl/src/misc/socket.cc
    functionUses: 0
    functionsReached:
    - setsockopt
    - ncclParamSocketMaxRecvBuff
    - fcntl
    - ncclParamSocketMaxSendBuff
    - SYSCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t socketSetFlags(struct ncclSocket* sock)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INFO
      Src: /src/nccl/src/misc/socket.cc:481,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/misc/socket.cc:482,1
    - Dst: close
      Src: /src/nccl/src/misc/socket.cc:484,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - sock
    argTypes:
    - struct ncclSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 479
    functionDepth: 1
    functionLinenumber: 479
    functionLinenumberEnd: 488
    functionName: socketResetAccept
    functionSourceFile: /src/nccl/src/misc/socket.cc
    functionUses: 0
    functionsReached:
    - INFO
    - ncclSocketToString
    - close
    linkageType: ''
    returnType: void
    signature: void socketResetAccept(struct ncclSocket* sock)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/misc/socket.cc:496,1
    - Dst: socketSetFlags
      Src: /src/nccl/src/misc/socket.cc:496,1
    - Dst: socketWait
      Src: /src/nccl/src/misc/socket.cc:501,1
    - Dst: socketResetAccept
      Src: /src/nccl/src/misc/socket.cc:502,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/misc/socket.cc:508,1
    - Dst: socketProgress
      Src: /src/nccl/src/misc/socket.cc:508,1
    - Dst: socketResetAccept
      Src: /src/nccl/src/misc/socket.cc:512,1
    - Dst: memcpy
      Src: /src/nccl/src/misc/socket.cc:516,1
    - Dst: socketResetAccept
      Src: /src/nccl/src/misc/socket.cc:519,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/misc/socket.cc:525,1
    - Dst: socketWait
      Src: /src/nccl/src/misc/socket.cc:525,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/misc/socket.cc:528,1
    - Dst: socketProgress
      Src: /src/nccl/src/misc/socket.cc:528,1
    - Dst: memcpy
      Src: /src/nccl/src/misc/socket.cc:531,1
    - Dst: WARN
      Src: /src/nccl/src/misc/socket.cc:534,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/misc/socket.cc:534,1
    - Dst: close
      Src: /src/nccl/src/misc/socket.cc:536,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 47
    argCount: 1
    argNames:
    - sock
    argTypes:
    - struct ncclSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 490
    functionDepth: 4
    functionLinenumber: 490
    functionLinenumberEnd: 543
    functionName: socketFinalizeAccept
    functionSourceFile: /src/nccl/src/misc/socket.cc
    functionUses: 0
    functionsReached:
    - WARN
    - socketProgress
    - ncclSocketToString
    - memcpy
    - socketWait
    - socketResetAccept
    - close
    - socketSetFlags
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t socketFinalizeAccept(struct ncclSocket* sock)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SYSCHECKGOTO
      Src: /src/nccl/src/misc/socket.cc:548,1
    - Dst: socket
      Src: /src/nccl/src/misc/socket.cc:548,1
    - Dst: SYSCHECKGOTO
      Src: /src/nccl/src/misc/socket.cc:551,1
    - Dst: dup2
      Src: /src/nccl/src/misc/socket.cc:551,1
    - Dst: SYSCHECKGOTO
      Src: /src/nccl/src/misc/socket.cc:552,1
    - Dst: close
      Src: /src/nccl/src/misc/socket.cc:552,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/misc/socket.cc:556,1
    - Dst: socketSetFlags
      Src: /src/nccl/src/misc/socket.cc:556,1
    - Dst: close
      Src: /src/nccl/src/misc/socket.cc:562,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - sock
    argTypes:
    - struct ncclSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 545
    functionDepth: 2
    functionLinenumber: 545
    functionLinenumberEnd: 565
    functionName: socketResetFd
    functionSourceFile: /src/nccl/src/misc/socket.cc
    functionUses: 0
    functionsReached:
    - NCCLCHECKGOTO
    - dup2
    - close
    - socketSetFlags
    - SYSCHECKGOTO
    - socket
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t socketResetFd(struct ncclSocket* sock)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ncclParamRetryCnt
      Src: /src/nccl/src/misc/socket.cc:576,1
    - Dst: WARN
      Src: /src/nccl/src/misc/socket.cc:578,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/misc/socket.cc:579,1
    - Dst: strerror
      Src: /src/nccl/src/misc/socket.cc:579,1
    - Dst: ncclParamRetryTimeOut
      Src: /src/nccl/src/misc/socket.cc:582,1
    - Dst: INFO
      Src: /src/nccl/src/misc/socket.cc:583,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/misc/socket.cc:584,1
    - Dst: strerror
      Src: /src/nccl/src/misc/socket.cc:584,1
    - Dst: ncclParamRetryCnt
      Src: /src/nccl/src/misc/socket.cc:585,1
    - Dst: msleep
      Src: /src/nccl/src/misc/socket.cc:586,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/misc/socket.cc:588,1
    - Dst: socketResetFd
      Src: /src/nccl/src/misc/socket.cc:588,1
    - Dst: WARN
      Src: /src/nccl/src/misc/socket.cc:592,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/misc/socket.cc:592,1
    - Dst: strerror
      Src: /src/nccl/src/misc/socket.cc:592,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 25
    argCount: 3
    argNames:
    - sock
    - errCode
    - funcName
    argTypes:
    - struct ncclSocket*
    - int
    - char[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 567
    functionDepth: 3
    functionLinenumber: 567
    functionLinenumberEnd: 596
    functionName: socketConnectCheck
    functionSourceFile: /src/nccl/src/misc/socket.cc
    functionUses: 0
    functionsReached:
    - WARN
    - ncclSocketToString
    - INFO
    - ncclParamRetryTimeOut
    - ncclParamRetryCnt
    - strerror
    - socketResetFd
    - NCCLCHECK
    - msleep
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t socketConnectCheck(struct ncclSocket* sock, int errCode,
      const char funcName[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: connect
      Src: /src/nccl/src/misc/socket.cc:600,1
    - Dst: socketConnectCheck
      Src: /src/nccl/src/misc/socket.cc:601,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sock
    argTypes:
    - struct ncclSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 598
    functionDepth: 4
    functionLinenumber: 598
    functionLinenumberEnd: 602
    functionName: socketStartConnect
    functionSourceFile: /src/nccl/src/misc/socket.cc
    functionUses: 0
    functionsReached:
    - socketConnectCheck
    - connect
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t socketStartConnect(struct ncclSocket* sock)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nccl/src/misc/socket.cc:610,1
    - Dst: poll
      Src: /src/nccl/src/misc/socket.cc:613,1
    - Dst: WARN
      Src: /src/nccl/src/misc/socket.cc:618,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/misc/socket.cc:618,1
    - Dst: strerror
      Src: /src/nccl/src/misc/socket.cc:618,1
    - Dst: SYSCHECK
      Src: /src/nccl/src/misc/socket.cc:623,1
    - Dst: getsockopt
      Src: /src/nccl/src/misc/socket.cc:623,1
    - Dst: socketConnectCheck
      Src: /src/nccl/src/misc/socket.cc:624,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - sock
    argTypes:
    - struct ncclSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 604
    functionDepth: 4
    functionLinenumber: 604
    functionLinenumberEnd: 625
    functionName: socketPollConnect
    functionSourceFile: /src/nccl/src/misc/socket.cc
    functionUses: 0
    functionsReached:
    - WARN
    - ncclSocketToString
    - socketConnectCheck
    - getsockopt
    - poll
    - SYSCHECK
    - strerror
    - memset
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t socketPollConnect(struct ncclSocket* sock)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/misc/socket.cc:629,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/misc/socket.cc:632,1
    - Dst: socketPollConnect
      Src: /src/nccl/src/misc/socket.cc:632,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - sock
    argTypes:
    - struct ncclSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 627
    functionDepth: 5
    functionLinenumber: 627
    functionLinenumberEnd: 634
    functionName: ncclSocketPollConnect
    functionSourceFile: /src/nccl/src/misc/socket.cc
    functionUses: 0
    functionsReached:
    - WARN
    - socketPollConnect
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclSocketPollConnect(struct ncclSocket* sock)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/misc/socket.cc:640,1
    - Dst: socketWait
      Src: /src/nccl/src/misc/socket.cc:640,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/misc/socket.cc:642,1
    - Dst: socketWait
      Src: /src/nccl/src/misc/socket.cc:642,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/misc/socket.cc:646,1
    - Dst: socketProgress
      Src: /src/nccl/src/misc/socket.cc:646,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/misc/socket.cc:651,1
    - Dst: socketProgress
      Src: /src/nccl/src/misc/socket.cc:651,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - sock
    argTypes:
    - struct ncclSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 636
    functionDepth: 4
    functionLinenumber: 636
    functionLinenumberEnd: 657
    functionName: socketFinalizeConnect
    functionSourceFile: /src/nccl/src/misc/socket.cc
    functionUses: 0
    functionsReached:
    - socketProgress
    - socketWait
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t socketFinalizeConnect(struct ncclSocket* sock)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/misc/socket.cc:661,1
    - Dst: socketTryAccept
      Src: /src/nccl/src/misc/socket.cc:661,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/misc/socket.cc:664,1
    - Dst: socketFinalizeAccept
      Src: /src/nccl/src/misc/socket.cc:664,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/misc/socket.cc:667,1
    - Dst: socketStartConnect
      Src: /src/nccl/src/misc/socket.cc:667,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/misc/socket.cc:670,1
    - Dst: socketPollConnect
      Src: /src/nccl/src/misc/socket.cc:670,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/misc/socket.cc:673,1
    - Dst: socketFinalizeConnect
      Src: /src/nccl/src/misc/socket.cc:673,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - sock
    argTypes:
    - struct ncclSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 659
    functionDepth: 5
    functionLinenumber: 659
    functionLinenumberEnd: 676
    functionName: socketProgressState
    functionSourceFile: /src/nccl/src/misc/socket.cc
    functionUses: 0
    functionsReached:
    - socketFinalizeConnect
    - socketFinalizeAccept
    - socketStartConnect
    - socketTryAccept
    - socketPollConnect
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t socketProgressState(struct ncclSocket* sock)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/misc/socket.cc:684,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/misc/socket.cc:689,1
    - Dst: socketProgressState
      Src: /src/nccl/src/misc/socket.cc:689,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 2
    argNames:
    - sock
    - running
    argTypes:
    - struct ncclSocket*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 678
    functionDepth: 6
    functionLinenumber: 678
    functionLinenumberEnd: 693
    functionName: ncclSocketReady
    functionSourceFile: /src/nccl/src/misc/socket.cc
    functionUses: 7
    functionsReached:
    - WARN
    - socketProgressState
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclSocketReady(struct ncclSocket* sock, int *running)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/misc/socket.cc:701,1
    - Dst: WARN
      Src: /src/nccl/src/misc/socket.cc:705,1
    - Dst: WARN
      Src: /src/nccl/src/misc/socket.cc:710,1
    - Dst: TRACE
      Src: /src/nccl/src/misc/socket.cc:714,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/misc/socket.cc:714,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/misc/socket.cc:719,1
    - Dst: socketProgressState
      Src: /src/nccl/src/misc/socket.cc:719,1
    - Dst: __atomic_load_n
      Src: /src/nccl/src/misc/socket.cc:721,1
    - Dst: __atomic_load_n
      Src: /src/nccl/src/misc/socket.cc:726,1
    - Dst: WARN
      Src: /src/nccl/src/misc/socket.cc:737,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 35
    argCount: 1
    argNames:
    - sock
    argTypes:
    - struct ncclSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 740
      start: 695
    functionDepth: 6
    functionLinenumber: 695
    functionLinenumberEnd: 740
    functionName: ncclSocketConnect
    functionSourceFile: /src/nccl/src/misc/socket.cc
    functionUses: 8
    functionsReached:
    - WARN
    - TRACE
    - ncclSocketToString
    - __atomic_load_n
    - socketProgressState
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclSocketConnect(struct ncclSocket* sock)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/misc/socket.cc:746,1
    - Dst: WARN
      Src: /src/nccl/src/misc/socket.cc:751,1
    - Dst: memcpy
      Src: /src/nccl/src/misc/socket.cc:760,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/misc/socket.cc:767,1
    - Dst: socketProgressState
      Src: /src/nccl/src/misc/socket.cc:767,1
    - Dst: __atomic_load_n
      Src: /src/nccl/src/misc/socket.cc:769,1
    - Dst: __atomic_load_n
      Src: /src/nccl/src/misc/socket.cc:773,1
    - Dst: WARN
      Src: /src/nccl/src/misc/socket.cc:785,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 43
    argCount: 2
    argNames:
    - sock
    - listenSock
    argTypes:
    - struct ncclSocket*
    - struct ncclSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 792
      start: 742
    functionDepth: 6
    functionLinenumber: 742
    functionLinenumberEnd: 792
    functionName: ncclSocketAccept
    functionSourceFile: /src/nccl/src/misc/socket.cc
    functionUses: 7
    functionsReached:
    - WARN
    - __atomic_load_n
    - NCCLCHECKGOTO
    - memcpy
    - socketProgressState
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclSocketAccept(struct ncclSocket* sock, struct ncclSocket*
      listenSock)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nccl/src/misc/socket.cc:811,1
    - Dst: WARN
      Src: /src/nccl/src/misc/socket.cc:815,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/misc/socket.cc:816,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/misc/socket.cc:822,1
    - Dst: socketResetFd
      Src: /src/nccl/src/misc/socket.cc:822,1
    - Dst: memset
      Src: /src/nccl/src/misc/socket.cc:824,1
    - Dst: close
      Src: /src/nccl/src/misc/socket.cc:830,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 38
    argCount: 7
    argNames:
    - sock
    - addr
    - magic
    - type
    - abortFlag
    - asyncFlag
    - customRetry
    argTypes:
    - struct ncclSocket*
    - union ncclSocketAddress*
    - uint64_t
    - enum ncclSocketType
    - uint32_t*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 834
      start: 794
    functionDepth: 3
    functionLinenumber: 794
    functionLinenumberEnd: 834
    functionName: ncclSocketInit
    functionSourceFile: /src/nccl/src/misc/socket.cc
    functionUses: 18
    functionsReached:
    - WARN
    - ncclSocketToString
    - NCCLCHECKGOTO
    - memcpy
    - close
    - socketResetFd
    - memset
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclSocketInit(struct ncclSocket* sock, const union ncclSocketAddress*
      addr, uint64_t magic, enum ncclSocketType type, volatile uint32_t* abortFlag,
      int asyncFlag, int customRetry)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/misc/socket.cc:838,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/misc/socket.cc:841,1
    - Dst: socketProgress
      Src: /src/nccl/src/misc/socket.cc:841,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 6
    argNames:
    - op
    - sock
    - ptr
    - size
    - offset
    - closed
    argTypes:
    - int
    - struct ncclSocket*
    - void*
    - int
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 843
      start: 836
    functionDepth: 3
    functionLinenumber: 836
    functionLinenumberEnd: 843
    functionName: ncclSocketProgress
    functionSourceFile: /src/nccl/src/misc/socket.cc
    functionUses: 7
    functionsReached:
    - WARN
    - socketProgress
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclSocketProgress(int op, struct ncclSocket* sock, void*
      ptr, int size, int* offset, int* closed)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/misc/socket.cc:847,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/misc/socket.cc:850,1
    - Dst: socketWait
      Src: /src/nccl/src/misc/socket.cc:850,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - op
    - sock
    - ptr
    - size
    - offset
    argTypes:
    - int
    - struct ncclSocket*
    - void*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 852
      start: 845
    functionDepth: 4
    functionLinenumber: 845
    functionLinenumberEnd: 852
    functionName: ncclSocketWait
    functionSourceFile: /src/nccl/src/misc/socket.cc
    functionUses: 0
    functionsReached:
    - WARN
    - socketWait
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclSocketWait(int op, struct ncclSocket* sock, void*
      ptr, int size, int* offset)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/misc/socket.cc:857,1
    - Dst: WARN
      Src: /src/nccl/src/misc/socket.cc:861,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/misc/socket.cc:864,1
    - Dst: socketWait
      Src: /src/nccl/src/misc/socket.cc:864,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - sock
    - ptr
    - size
    argTypes:
    - struct ncclSocket*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 866
      start: 854
    functionDepth: 4
    functionLinenumber: 854
    functionLinenumberEnd: 866
    functionName: ncclSocketSend
    functionSourceFile: /src/nccl/src/misc/socket.cc
    functionUses: 4
    functionsReached:
    - WARN
    - socketWait
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclSocketSend(struct ncclSocket* sock, void* ptr, int
      size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/misc/socket.cc:871,1
    - Dst: WARN
      Src: /src/nccl/src/misc/socket.cc:875,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/misc/socket.cc:878,1
    - Dst: socketWait
      Src: /src/nccl/src/misc/socket.cc:878,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - sock
    - ptr
    - size
    argTypes:
    - struct ncclSocket*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 880
      start: 868
    functionDepth: 4
    functionLinenumber: 868
    functionLinenumberEnd: 880
    functionName: ncclSocketRecv
    functionSourceFile: /src/nccl/src/misc/socket.cc
    functionUses: 3
    functionsReached:
    - WARN
    - socketWait
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclSocketRecv(struct ncclSocket* sock, void* ptr, int
      size)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/misc/socket.cc:885,1
    - Dst: WARN
      Src: /src/nccl/src/misc/socket.cc:890,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/misc/socket.cc:894,1
    - Dst: socketProgress
      Src: /src/nccl/src/misc/socket.cc:894,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/misc/socket.cc:895,1
    - Dst: socketProgress
      Src: /src/nccl/src/misc/socket.cc:895,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 6
    argNames:
    - sendSock
    - sendPtr
    - sendSize
    - recvSock
    - recvPtr
    - recvSize
    argTypes:
    - struct ncclSocket*
    - void*
    - int
    - struct ncclSocket*
    - void*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 898
      start: 882
    functionDepth: 3
    functionLinenumber: 882
    functionLinenumberEnd: 898
    functionName: ncclSocketSendRecv
    functionSourceFile: /src/nccl/src/misc/socket.cc
    functionUses: 1
    functionsReached:
    - WARN
    - socketProgress
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclSocketSendRecv(struct ncclSocket* sendSock, void*
      sendPtr, int sendSize, struct ncclSocket* recvSock, void* recvPtr, int recvSize)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/misc/socket.cc:905,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/misc/socket.cc:912,1
    - Dst: socketProgressOpt
      Src: /src/nccl/src/misc/socket.cc:912,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/misc/socket.cc:916,1
    - Dst: socketProgressOpt
      Src: /src/nccl/src/misc/socket.cc:916,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/misc/socket.cc:922,1
    - Dst: socketProgressOpt
      Src: /src/nccl/src/misc/socket.cc:922,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 5
    argNames:
    - sock
    - ptr
    - size
    - closed
    - blocking
    argTypes:
    - struct ncclSocket*
    - void*
    - int
    - int*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 931
      start: 902
    functionDepth: 2
    functionLinenumber: 902
    functionLinenumberEnd: 931
    functionName: ncclSocketTryRecv
    functionSourceFile: /src/nccl/src/misc/socket.cc
    functionUses: 1
    functionsReached:
    - WARN
    - socketProgressOpt
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclSocketTryRecv(struct ncclSocket* sock, void* ptr,
      int size, int* closed, bool blocking)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: SYSCHECK
      Src: /src/nccl/src/misc/socket.cc:937,1
    - Dst: shutdown
      Src: /src/nccl/src/misc/socket.cc:937,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - sock
    - how
    argTypes:
    - struct ncclSocket*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 942
      start: 934
    functionDepth: 1
    functionLinenumber: 934
    functionLinenumberEnd: 942
    functionName: ncclSocketShutdown
    functionSourceFile: /src/nccl/src/misc/socket.cc
    functionUses: 0
    functionsReached:
    - SYSCHECK
    - shutdown
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclSocketShutdown(struct ncclSocket* sock, int how)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ncclSocketProgress
      Src: /src/nccl/src/misc/socket.cc:952,1
    - Dst: shutdown
      Src: /src/nccl/src/misc/socket.cc:959,1
    - Dst: close
      Src: /src/nccl/src/misc/socket.cc:960,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 2
    argNames:
    - sock
    - wait
    argTypes:
    - struct ncclSocket*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 966
      start: 944
    functionDepth: 4
    functionLinenumber: 944
    functionLinenumberEnd: 966
    functionName: ncclSocketClose
    functionSourceFile: /src/nccl/src/misc/socket.cc
    functionUses: 19
    functionsReached:
    - ncclSocketProgress
    - close
    - shutdown
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclSocketClose(struct ncclSocket* sock, bool wait)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/misc/socket.cc:970,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - sock
    - fd
    argTypes:
    - struct ncclSocket*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 975
      start: 968
    functionDepth: 1
    functionLinenumber: 968
    functionLinenumberEnd: 975
    functionName: ncclSocketGetFd
    functionSourceFile: /src/nccl/src/misc/socket.cc
    functionUses: 2
    functionsReached:
    - WARN
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclSocketGetFd(struct ncclSocket* sock, int* fd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/misc/socket.cc:979,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - fd
    - sock
    argTypes:
    - int
    - struct ncclSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 984
      start: 977
    functionDepth: 1
    functionLinenumber: 977
    functionLinenumberEnd: 984
    functionName: ncclSocketSetFd
    functionSourceFile: /src/nccl/src/misc/socket.cc
    functionUses: 1
    functionsReached:
    - WARN
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclSocketSetFd(int fd, struct ncclSocket* sock)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/nccl/src/misc/shmutils.cc:38,1
    - Dst: malloc
      Src: /src/nccl/src/misc/shmutils.cc:39,1
    - Dst: memcpy
      Src: /src/nccl/src/misc/shmutils.cc:40,1
    - Dst: memset
      Src: /src/nccl/src/misc/shmutils.cc:41,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 8
    argNames:
    - fd
    - shmPath
    - shmSize
    - realShmSize
    - hptr
    - dptr
    - create
    - handle
    argTypes:
    - int
    - char*
    - size_t
    - size_t
    - char*
    - void*
    - bool
    - struct shmHandleInternal*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 46
    functionName: shmHandleInit
    functionSourceFile: /src/nccl/src/misc/shmutils.cc
    functionUses: 0
    functionsReached:
    - malloc
    - memcpy
    - strlen
    - memset
    linkageType: ''
    returnType: void
    signature: void shmHandleInit(int fd, char* shmPath, size_t shmSize, size_t realShmSize,
      char* hptr, void* dptr, bool create, struct shmHandleInternal* handle)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: EQCHECKGOTO
      Src: /src/nccl/src/misc/shmutils.cc:59,1
    - Dst: calloc
      Src: /src/nccl/src/misc/shmutils.cc:59,1
    - Dst: snprintf
      Src: /src/nccl/src/misc/shmutils.cc:65,1
    - Dst: mkstemp
      Src: /src/nccl/src/misc/shmutils.cc:67,1
    - Dst: INFO
      Src: /src/nccl/src/misc/shmutils.cc:70,1
    - Dst: strerror
      Src: /src/nccl/src/misc/shmutils.cc:70,1
    - Dst: WARN
      Src: /src/nccl/src/misc/shmutils.cc:73,1
    - Dst: strerror
      Src: /src/nccl/src/misc/shmutils.cc:73,1
    - Dst: SYSCHECKGOTO
      Src: /src/nccl/src/misc/shmutils.cc:78,1
    - Dst: open
      Src: /src/nccl/src/misc/shmutils.cc:78,1
    - Dst: fallocate
      Src: /src/nccl/src/misc/shmutils.cc:82,1
    - Dst: INFO
      Src: /src/nccl/src/misc/shmutils.cc:84,1
    - Dst: strerror
      Src: /src/nccl/src/misc/shmutils.cc:84,1
    - Dst: WARN
      Src: /src/nccl/src/misc/shmutils.cc:87,1
    - Dst: strerror
      Src: /src/nccl/src/misc/shmutils.cc:87,1
    - Dst: INFO
      Src: /src/nccl/src/misc/shmutils.cc:91,1
    - Dst: SYSCHECKGOTO
      Src: /src/nccl/src/misc/shmutils.cc:93,1
    - Dst: open
      Src: /src/nccl/src/misc/shmutils.cc:93,1
    - Dst: mmap
      Src: /src/nccl/src/misc/shmutils.cc:96,1
    - Dst: WARN
      Src: /src/nccl/src/misc/shmutils.cc:98,1
    - Dst: strerror
      Src: /src/nccl/src/misc/shmutils.cc:98,1
    - Dst: ncclAtomicRefCountDecrement
      Src: /src/nccl/src/misc/shmutils.cc:107,1
    - Dst: unlink
      Src: /src/nccl/src/misc/shmutils.cc:110,1
    - Dst: INFO
      Src: /src/nccl/src/misc/shmutils.cc:111,1
    - Dst: strerror
      Src: /src/nccl/src/misc/shmutils.cc:111,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/misc/shmutils.cc:117,1
    - Dst: cudaHostRegister
      Src: /src/nccl/src/misc/shmutils.cc:117,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/misc/shmutils.cc:118,1
    - Dst: cudaHostGetDevicePointer
      Src: /src/nccl/src/misc/shmutils.cc:118,1
    - Dst: shmHandleInit
      Src: /src/nccl/src/misc/shmutils.cc:121,1
    - Dst: WARN
      Src: /src/nccl/src/misc/shmutils.cc:128,1
    - Dst: strerror
      Src: /src/nccl/src/misc/shmutils.cc:129,1
    - Dst: shmHandleInit
      Src: /src/nccl/src/misc/shmutils.cc:131,1
    - Dst: ncclShmClose
      Src: /src/nccl/src/misc/shmutils.cc:132,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 81
    argCount: 7
    argNames:
    - shmPath
    - shmPathSize
    - shmSize
    - shmPtr
    - devShmPtr
    - refcount
    - handle
    argTypes:
    - char*
    - size_t
    - size_t
    - void**
    - void**
    - int
    - ncclShmHandle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 138
    functionName: ncclShmOpen
    functionSourceFile: /src/nccl/src/misc/shmutils.cc
    functionUses: 5
    functionsReached:
    - INFO
    - WARN
    - mmap
    - ncclAtomicRefCountDecrement
    - calloc
    - open
    - CUDACHECKGOTO
    - shmHandleInit
    - ncclShmClose
    - EQCHECKGOTO
    - cudaHostRegister
    - unlink
    - fallocate
    - strerror
    - SYSCHECKGOTO
    - cudaHostGetDevicePointer
    - mkstemp
    - snprintf
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclShmOpen(char* shmPath, size_t shmPathSize, size_t
      shmSize, void** shmPtr, void** devShmPtr, int refcount, ncclShmHandle_t* handle)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/nccl/src/misc/shmutils.cc:145,1
    - Dst: unlink
      Src: /src/nccl/src/misc/shmutils.cc:147,1
    - Dst: WARN
      Src: /src/nccl/src/misc/shmutils.cc:148,1
    - Dst: strerror
      Src: /src/nccl/src/misc/shmutils.cc:148,1
    - Dst: free
      Src: /src/nccl/src/misc/shmutils.cc:152,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/misc/shmutils.cc:156,1
    - Dst: cudaHostUnregister
      Src: /src/nccl/src/misc/shmutils.cc:156,1
    - Dst: munmap
      Src: /src/nccl/src/misc/shmutils.cc:157,1
    - Dst: WARN
      Src: /src/nccl/src/misc/shmutils.cc:158,1
    - Dst: strerror
      Src: /src/nccl/src/misc/shmutils.cc:158,1
    - Dst: free
      Src: /src/nccl/src/misc/shmutils.cc:162,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 1
    argNames:
    - handle
    argTypes:
    - ncclShmHandle_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 165
    functionName: ncclShmClose
    functionSourceFile: /src/nccl/src/misc/shmutils.cc
    functionUses: 5
    functionsReached:
    - WARN
    - munmap
    - free
    - CUDACHECK
    - close
    - unlink
    - strerror
    - cudaHostUnregister
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclShmClose(ncclShmHandle_t handle)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: unlink
      Src: /src/nccl/src/misc/shmutils.cc:172,1
    - Dst: WARN
      Src: /src/nccl/src/misc/shmutils.cc:173,1
    - Dst: strerror
      Src: /src/nccl/src/misc/shmutils.cc:173,1
    - Dst: free
      Src: /src/nccl/src/misc/shmutils.cc:176,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - handle
    argTypes:
    - ncclShmHandle_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 181
    functionName: ncclShmUnlink
    functionSourceFile: /src/nccl/src/misc/shmutils.cc
    functionUses: 1
    functionsReached:
    - WARN
    - strerror
    - free
    - unlink
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclShmUnlink(ncclShmHandle_t handle)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nccl/src/misc/shmutils.cc:194,1
    - Dst: __atomic_add_fetch
      Src: /src/nccl/src/misc/shmutils.cc:196,1
    - Dst: __atomic_store_n
      Src: /src/nccl/src/misc/shmutils.cc:199,1
    - Dst: clockNano
      Src: /src/nccl/src/misc/shmutils.cc:201,1
    - Dst: __atomic_load_n
      Src: /src/nccl/src/misc/shmutils.cc:202,1
    - Dst: clockNano
      Src: /src/nccl/src/misc/shmutils.cc:203,1
    - Dst: sched_yield
      Src: /src/nccl/src/misc/shmutils.cc:203,1
    - Dst: __atomic_load_n
      Src: /src/nccl/src/misc/shmutils.cc:204,1
    - Dst: memcpy
      Src: /src/nccl/src/misc/shmutils.cc:211,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 5
    argNames:
    - comm
    - shmem
    - sendbuff
    - recvbuff
    - typeSize
    argTypes:
    - struct ncclComm*
    - struct ncclShmemCollBuff*
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 216
    functionName: ncclShmemAllgather
    functionSourceFile: /src/nccl/src/misc/shmutils.cc
    functionUses: 2
    functionsReached:
    - clockNano
    - __atomic_load_n
    - memcpy
    - sched_yield
    - __atomic_add_fetch
    - __atomic_store_n
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclShmemAllgather(struct ncclComm *comm, struct ncclShmemCollBuff
      *shmem, void *sendbuff, void *recvbuff, size_t typeSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getpwuid
      Src: /src/nccl/src/misc/param.cc:21,1
    - Dst: getuid
      Src: /src/nccl/src/misc/param.cc:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 23
    functionName: userHomeDir
    functionSourceFile: /src/nccl/src/misc/param.cc
    functionUses: 0
    functionsReached:
    - getuid
    - getpwuid
    linkageType: ''
    returnType: char
    signature: char * userHomeDir()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/nccl/src/misc/param.cc:26,1
    - Dst: getline
      Src: /src/nccl/src/misc/param.cc:34,1
    - Dst: strncpy
      Src: /src/nccl/src/misc/param.cc:40,1
    - Dst: min
      Src: /src/nccl/src/misc/param.cc:40,1
    - Dst: min
      Src: /src/nccl/src/misc/param.cc:41,1
    - Dst: strncpy
      Src: /src/nccl/src/misc/param.cc:43,1
    - Dst: setenv
      Src: /src/nccl/src/misc/param.cc:45,1
    - Dst: free
      Src: /src/nccl/src/misc/param.cc:48,1
    - Dst: fclose
      Src: /src/nccl/src/misc/param.cc:49,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 1
    argNames:
    - fileName
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 25
    functionDepth: 1
    functionLinenumber: 25
    functionLinenumberEnd: 50
    functionName: setEnvFile
    functionSourceFile: /src/nccl/src/misc/param.cc
    functionUses: 0
    functionsReached:
    - min
    - free
    - strncpy
    - fclose
    - fopen
    - getline
    - setenv
    linkageType: ''
    returnType: void
    signature: void setEnvFile(const char* fileName)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/nccl/src/misc/param.cc:54,1
    - Dst: strlen
      Src: /src/nccl/src/misc/param.cc:55,1
    - Dst: snprintf
      Src: /src/nccl/src/misc/param.cc:56,1
    - Dst: setEnvFile
      Src: /src/nccl/src/misc/param.cc:57,1
    - Dst: userHomeDir
      Src: /src/nccl/src/misc/param.cc:59,1
    - Dst: snprintf
      Src: /src/nccl/src/misc/param.cc:61,1
    - Dst: setEnvFile
      Src: /src/nccl/src/misc/param.cc:62,1
    - Dst: snprintf
      Src: /src/nccl/src/misc/param.cc:65,1
    - Dst: setEnvFile
      Src: /src/nccl/src/misc/param.cc:66,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 52
    functionDepth: 2
    functionLinenumber: 52
    functionLinenumberEnd: 67
    functionName: initEnvFunc
    functionSourceFile: /src/nccl/src/misc/param.cc
    functionUses: 0
    functionsReached:
    - setEnvFile
    - strlen
    - userHomeDir
    - getenv
    - snprintf
    linkageType: ''
    returnType: void
    signature: void initEnvFunc()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_once
      Src: /src/nccl/src/misc/param.cc:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 72
    functionName: initEnv
    functionSourceFile: /src/nccl/src/misc/param.cc
    functionUses: 1
    functionsReached:
    - pthread_once
    linkageType: ''
    returnType: void
    signature: void initEnv()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/nccl/src/misc/param.cc:76,1
    - Dst: __atomic_load_n
      Src: /src/nccl/src/misc/param.cc:77,1
    - Dst: ncclGetEnv
      Src: /src/nccl/src/misc/param.cc:78,1
    - Dst: strlen
      Src: /src/nccl/src/misc/param.cc:80,1
    - Dst: strtoll
      Src: /src/nccl/src/misc/param.cc:82,1
    - Dst: INFO
      Src: /src/nccl/src/misc/param.cc:85,1
    - Dst: INFO
      Src: /src/nccl/src/misc/param.cc:87,1
    - Dst: __atomic_store_n
      Src: /src/nccl/src/misc/param.cc:90,1
    - Dst: pthread_mutex_unlock
      Src: /src/nccl/src/misc/param.cc:92,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - env
    - deftVal
    - uninitialized
    - cache
    argTypes:
    - char*
    - int64_t
    - int64_t
    - int64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 93
    functionName: ncclLoadParam
    functionSourceFile: /src/nccl/src/misc/param.cc
    functionUses: 0
    functionsReached:
    - __atomic_load_n
    - INFO
    - strlen
    - strtoll
    - ncclGetEnv
    - pthread_mutex_unlock
    - pthread_mutex_lock
    - __atomic_store_n
    linkageType: ''
    returnType: void
    signature: void ncclLoadParam(char const* env, int64_t deftVal, int64_t uninitialized,
      int64_t* cache)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: initEnv
      Src: /src/nccl/src/misc/param.cc:96,1
    - Dst: getenv
      Src: /src/nccl/src/misc/param.cc:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 98
    functionName: ncclGetEnv
    functionSourceFile: /src/nccl/src/misc/param.cc
    functionUses: 19
    functionsReached:
    - initEnv
    - getenv
    linkageType: ''
    returnType: char
    signature: char * ncclGetEnv(const char* name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - container
    - ','
    - symbol
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 10
    functionName: ASSIGN_SYM
    functionSourceFile: /src/nccl/src/misc/ibvsymbols.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASSIGN_SYM(container, symbol, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ibv_reg_mr
      Src: /src/nccl/src/misc/ibvsymbols.cc:17,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - pd
    - addr
    - length
    - access
    argTypes:
    - struct ibv_pd*
    - void*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 18
    functionName: ibv_internal_reg_mr
    functionSourceFile: /src/nccl/src/misc/ibvsymbols.cc
    functionUses: 0
    functionsReached:
    - ibv_reg_mr
    linkageType: ''
    returnType: struct ibv_mr
    signature: "struct ibv_mr * ibv_internal_reg_mr(\n      struct ibv_pd* pd,\n      void*
      addr,\n      size_t length,\n      int access)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ibv_query_port
      Src: /src/nccl/src/misc/ibvsymbols.cc:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - context
    - port_num
    - port_attr
    argTypes:
    - struct ibv_context*
    - uint8_t
    - struct ibv_port_attr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 26
    functionName: ibv_internal_query_port
    functionSourceFile: /src/nccl/src/misc/ibvsymbols.cc
    functionUses: 0
    functionsReached:
    - ibv_query_port
    linkageType: ''
    returnType: int
    signature: "int ibv_internal_query_port(\n      struct ibv_context* context,\n
      \     uint8_t port_num,\n      struct ibv_port_attr* port_attr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSIGN_SYM
      Src: /src/nccl/src/misc/ibvsymbols.cc:29,1
    - Dst: ASSIGN_SYM
      Src: /src/nccl/src/misc/ibvsymbols.cc:30,1
    - Dst: ASSIGN_SYM
      Src: /src/nccl/src/misc/ibvsymbols.cc:31,1
    - Dst: ASSIGN_SYM
      Src: /src/nccl/src/misc/ibvsymbols.cc:32,1
    - Dst: ASSIGN_SYM
      Src: /src/nccl/src/misc/ibvsymbols.cc:33,1
    - Dst: ASSIGN_SYM
      Src: /src/nccl/src/misc/ibvsymbols.cc:34,1
    - Dst: ASSIGN_SYM
      Src: /src/nccl/src/misc/ibvsymbols.cc:35,1
    - Dst: ASSIGN_SYM
      Src: /src/nccl/src/misc/ibvsymbols.cc:36,1
    - Dst: ASSIGN_SYM
      Src: /src/nccl/src/misc/ibvsymbols.cc:37,1
    - Dst: ASSIGN_SYM
      Src: /src/nccl/src/misc/ibvsymbols.cc:38,1
    - Dst: ASSIGN_SYM
      Src: /src/nccl/src/misc/ibvsymbols.cc:39,1
    - Dst: ASSIGN_SYM
      Src: /src/nccl/src/misc/ibvsymbols.cc:40,1
    - Dst: ASSIGN_SYM
      Src: /src/nccl/src/misc/ibvsymbols.cc:42,1
    - Dst: ASSIGN_SYM
      Src: /src/nccl/src/misc/ibvsymbols.cc:43,1
    - Dst: ASSIGN_SYM
      Src: /src/nccl/src/misc/ibvsymbols.cc:45,1
    - Dst: ASSIGN_SYM
      Src: /src/nccl/src/misc/ibvsymbols.cc:46,1
    - Dst: ASSIGN_SYM
      Src: /src/nccl/src/misc/ibvsymbols.cc:47,1
    - Dst: ASSIGN_SYM
      Src: /src/nccl/src/misc/ibvsymbols.cc:48,1
    - Dst: ASSIGN_SYM
      Src: /src/nccl/src/misc/ibvsymbols.cc:49,1
    - Dst: ASSIGN_SYM
      Src: /src/nccl/src/misc/ibvsymbols.cc:50,1
    - Dst: ASSIGN_SYM
      Src: /src/nccl/src/misc/ibvsymbols.cc:51,1
    - Dst: ASSIGN_SYM
      Src: /src/nccl/src/misc/ibvsymbols.cc:52,1
    - Dst: ASSIGN_SYM
      Src: /src/nccl/src/misc/ibvsymbols.cc:54,1
    - Dst: ASSIGN_SYM
      Src: /src/nccl/src/misc/ibvsymbols.cc:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 1
    argNames:
    - ibvSymbols
    argTypes:
    - struct ncclIbvSymbols*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 28
    functionDepth: 0
    functionLinenumber: 28
    functionLinenumberEnd: 61
    functionName: buildIbvSymbols
    functionSourceFile: /src/nccl/src/misc/ibvsymbols.cc
    functionUses: 0
    functionsReached:
    - ASSIGN_SYM
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t buildIbvSymbols(struct ncclIbvSymbols* ibvSymbols)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dlopen
      Src: /src/nccl/src/misc/ibvsymbols.cc:77,1
    - Dst: dlopen
      Src: /src/nccl/src/misc/ibvsymbols.cc:79,1
    - Dst: INFO
      Src: /src/nccl/src/misc/ibvsymbols.cc:81,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/ibvsymbols.cc:102,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/ibvsymbols.cc:103,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/ibvsymbols.cc:104,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/ibvsymbols.cc:105,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/ibvsymbols.cc:106,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/ibvsymbols.cc:107,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/ibvsymbols.cc:108,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/ibvsymbols.cc:109,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/ibvsymbols.cc:110,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/ibvsymbols.cc:111,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/ibvsymbols.cc:112,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/ibvsymbols.cc:113,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/ibvsymbols.cc:114,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/ibvsymbols.cc:115,1
    - Dst: LOAD_SYM_VERSION
      Src: /src/nccl/src/misc/ibvsymbols.cc:117,1
    - Dst: LOAD_SYM_VERSION
      Src: /src/nccl/src/misc/ibvsymbols.cc:119,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/ibvsymbols.cc:120,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/ibvsymbols.cc:121,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/ibvsymbols.cc:122,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/ibvsymbols.cc:123,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/ibvsymbols.cc:124,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/ibvsymbols.cc:125,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/ibvsymbols.cc:126,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/ibvsymbols.cc:127,1
    - Dst: LOAD_SYM_VERSION
      Src: /src/nccl/src/misc/ibvsymbols.cc:129,1
    - Dst: LOAD_SYM_VERSION
      Src: /src/nccl/src/misc/ibvsymbols.cc:130,1
    - Dst: dlclose
      Src: /src/nccl/src/misc/ibvsymbols.cc:162,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 68
    argCount: 1
    argNames:
    - ibvSymbols
    argTypes:
    - struct ncclIbvSymbols*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 164
    functionName: buildIbvSymbols
    functionSourceFile: /src/nccl/src/misc/ibvsymbols.cc
    functionUses: 0
    functionsReached:
    - INFO
    - LOAD_SYM
    - dlopen
    - dlclose
    - LOAD_SYM_VERSION
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t buildIbvSymbols(struct ncclIbvSymbols* ibvSymbols)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - handle
    - ','
    - symbol
    - ','
    - funcptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 95
    functionName: LOAD_SYM
    functionSourceFile: /src/nccl/src/misc/ibvsymbols.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_SYM(handle, symbol, funcptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - handle
    - ','
    - symbol
    - ','
    - funcptr
    - ','
    - version
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 101
    functionName: LOAD_SYM_VERSION
    functionSourceFile: /src/nccl/src/misc/ibvsymbols.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_SYM_VERSION(handle, symbol, funcptr, version)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/misc/cudawrap.cc:31,1
    - Dst: cudaDriverGetVersion
      Src: /src/nccl/src/misc/cudawrap.cc:31,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/misc/cudawrap.cc:33,1
    - Dst: cudaGetDevice
      Src: /src/nccl/src/misc/cudawrap.cc:33,1
    - Dst: CUPFN
      Src: /src/nccl/src/misc/cudawrap.cc:34,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/misc/cudawrap.cc:35,1
    - Dst: cuDeviceGet
      Src: /src/nccl/src/misc/cudawrap.cc:35,1
    - Dst: CUCHECKGOTO
      Src: /src/nccl/src/misc/cudawrap.cc:37,1
    - Dst: cuDeviceGetAttribute
      Src: /src/nccl/src/misc/cudawrap.cc:37,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 42
    functionName: ncclIsCuMemSupported
    functionSourceFile: /src/nccl/src/misc/cudawrap.cc
    functionUses: 0
    functionsReached:
    - CUDACHECKGOTO
    - cudaDriverGetVersion
    - cuDeviceGetAttribute
    - CUPFN
    - cudaGetDevice
    - CUCHECKGOTO
    - cuDeviceGet
    linkageType: ''
    returnType: int
    signature: int ncclIsCuMemSupported()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclParamCuMemEnable
      Src: /src/nccl/src/misc/cudawrap.cc:46,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 48
    functionName: ncclCuMemEnable
    functionSourceFile: /src/nccl/src/misc/cudawrap.cc
    functionUses: 38
    functionsReached:
    - ncclParamCuMemEnable
    linkageType: ''
    returnType: int
    signature: int ncclCuMemEnable()
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/misc/cudawrap.cc:61,1
    - Dst: cudaDriverGetVersion
      Src: /src/nccl/src/misc/cudawrap.cc:61,1
    - Dst: ncclParamCuMemHostEnable
      Src: /src/nccl/src/misc/cudawrap.cc:66,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/misc/cudawrap.cc:81,1
    - Dst: cudaGetDevice
      Src: /src/nccl/src/misc/cudawrap.cc:81,1
    - Dst: CUCHECK
      Src: /src/nccl/src/misc/cudawrap.cc:82,1
    - Dst: cuDeviceGet
      Src: /src/nccl/src/misc/cudawrap.cc:82,1
    - Dst: CUCHECK
      Src: /src/nccl/src/misc/cudawrap.cc:83,1
    - Dst: cuDeviceGetAttribute
      Src: /src/nccl/src/misc/cudawrap.cc:83,1
    - Dst: CUCHECK
      Src: /src/nccl/src/misc/cudawrap.cc:89,1
    - Dst: cuMemGetAllocationGranularity
      Src: /src/nccl/src/misc/cudawrap.cc:89,1
    - Dst: ALIGN_SIZE
      Src: /src/nccl/src/misc/cudawrap.cc:91,1
    - Dst: CUPFN
      Src: /src/nccl/src/misc/cudawrap.cc:92,1
    - Dst: cuMemCreate
      Src: /src/nccl/src/misc/cudawrap.cc:92,1
    - Dst: INFO
      Src: /src/nccl/src/misc/cudawrap.cc:93,1
    - Dst: CUCHECK
      Src: /src/nccl/src/misc/cudawrap.cc:98,1
    - Dst: cuMemRelease
      Src: /src/nccl/src/misc/cudawrap.cc:98,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 106
    functionName: ncclCuMemHostEnable
    functionSourceFile: /src/nccl/src/misc/cudawrap.cc
    functionUses: 4
    functionsReached:
    - INFO
    - CUDACHECKGOTO
    - cudaDriverGetVersion
    - CUDACHECK
    - cuDeviceGetAttribute
    - ALIGN_SIZE
    - cuMemGetAllocationGranularity
    - CUPFN
    - cuMemRelease
    - cuMemCreate
    - cudaGetDevice
    - CUCHECK
    - ncclParamCuMemHostEnable
    - cuDeviceGet
    linkageType: ''
    returnType: int
    signature: int ncclCuMemHostEnable()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - symbol
    - ','
    - version
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 109
    functionName: DECLARE_CUDA_PFN
    functionSourceFile: /src/nccl/src/misc/cudawrap.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: DECLARE_CUDA_PFN(symbol,version)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - symbol
    - ','
    - version
    - ','
    - ignore
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 174
    functionName: LOAD_SYM
    functionSourceFile: /src/nccl/src/misc/cudawrap.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_SYM(symbol, version, ignore)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - symbol
    - ','
    - version
    - ','
    - ignore
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 183
    functionName: LOAD_SYM
    functionSourceFile: /src/nccl/src/misc/cudawrap.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_SYM(symbol, version, ignore)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - symbol
    - ','
    - version
    - ','
    - ignore
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 191
    functionName: LOAD_SYM
    functionSourceFile: /src/nccl/src/misc/cudawrap.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_SYM(symbol, version, ignore)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/cudawrap.cc:200,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/cudawrap.cc:201,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/cudawrap.cc:202,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/cudawrap.cc:203,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/cudawrap.cc:204,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/cudawrap.cc:205,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/cudawrap.cc:206,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/cudawrap.cc:207,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/cudawrap.cc:208,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/cudawrap.cc:209,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/cudawrap.cc:210,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/cudawrap.cc:212,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/cudawrap.cc:215,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/cudawrap.cc:216,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/cudawrap.cc:217,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/cudawrap.cc:218,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/cudawrap.cc:219,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/cudawrap.cc:220,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/cudawrap.cc:221,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/cudawrap.cc:222,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/cudawrap.cc:223,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/cudawrap.cc:224,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/cudawrap.cc:225,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/cudawrap.cc:226,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/cudawrap.cc:228,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/cudawrap.cc:230,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/cudawrap.cc:234,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/cudawrap.cc:235,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/cudawrap.cc:236,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/cudawrap.cc:237,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/cudawrap.cc:238,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/cudawrap.cc:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 242
    functionName: cudaPfnFuncLoader
    functionSourceFile: /src/nccl/src/misc/cudawrap.cc
    functionUses: 0
    functionsReached:
    - LOAD_SYM
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t cudaPfnFuncLoader(void)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ncclGetEnv
      Src: /src/nccl/src/misc/cudawrap.cc:250,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/misc/cudawrap.cc:257,1
    - Dst: cudaGetDevice
      Src: /src/nccl/src/misc/cudawrap.cc:257,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/misc/cudawrap.cc:259,1
    - Dst: cudaDriverGetVersion
      Src: /src/nccl/src/misc/cudawrap.cc:259,1
    - Dst: INFO
      Src: /src/nccl/src/misc/cudawrap.cc:260,1
    - Dst: cudaPfnFuncLoader
      Src: /src/nccl/src/misc/cudawrap.cc:269,1
    - Dst: WARN
      Src: /src/nccl/src/misc/cudawrap.cc:270,1
    - Dst: ncclIsCuMemSupported
      Src: /src/nccl/src/misc/cudawrap.cc:276,1
    - Dst: ncclCuMemHostEnable
      Src: /src/nccl/src/misc/cudawrap.cc:280,1
    - Dst: cudaGetDevice
      Src: /src/nccl/src/misc/cudawrap.cc:282,1
    - Dst: cudaGetDeviceCount
      Src: /src/nccl/src/misc/cudawrap.cc:283,1
    - Dst: cudaSetDevice
      Src: /src/nccl/src/misc/cudawrap.cc:285,1
    - Dst: cudaFree
      Src: /src/nccl/src/misc/cudawrap.cc:286,1
    - Dst: cudaSetDevice
      Src: /src/nccl/src/misc/cudawrap.cc:288,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 248
    functionDepth: 2
    functionLinenumber: 248
    functionLinenumberEnd: 295
    functionName: initOnceFunc
    functionSourceFile: /src/nccl/src/misc/cudawrap.cc
    functionUses: 0
    functionsReached:
    - INFO
    - WARN
    - CUDACHECKGOTO
    - cudaDriverGetVersion
    - ncclGetEnv
    - ncclCuMemHostEnable
    - cudaSetDevice
    - cudaFree
    - cudaGetDevice
    - cudaGetDeviceCount
    - cudaPfnFuncLoader
    - ncclIsCuMemSupported
    linkageType: ''
    returnType: void
    signature: void initOnceFunc()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_once
      Src: /src/nccl/src/misc/cudawrap.cc:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 300
    functionName: ncclCudaLibraryInit
    functionSourceFile: /src/nccl/src/misc/cudawrap.cc
    functionUses: 7
    functionsReached:
    - pthread_once
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCudaLibraryInit()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - container
    - ','
    - symbol
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 10
    functionName: ASSIGN_SYM
    functionSourceFile: /src/nccl/src/misc/mlx5dvsymbols.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ASSIGN_SYM(container, symbol, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ASSIGN_SYM
      Src: /src/nccl/src/misc/mlx5dvsymbols.cc:12,1
    - Dst: ASSIGN_SYM
      Src: /src/nccl/src/misc/mlx5dvsymbols.cc:13,1
    - Dst: ASSIGN_SYM
      Src: /src/nccl/src/misc/mlx5dvsymbols.cc:14,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - mlx5dvSymbols
    argTypes:
    - struct ncclMlx5dvSymbols*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 16
    functionName: buildMlx5dvSymbols
    functionSourceFile: /src/nccl/src/misc/mlx5dvsymbols.cc
    functionUses: 0
    functionsReached:
    - ASSIGN_SYM
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t buildMlx5dvSymbols(struct ncclMlx5dvSymbols* mlx5dvSymbols)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dlopen
      Src: /src/nccl/src/misc/mlx5dvsymbols.cc:32,1
    - Dst: dlopen
      Src: /src/nccl/src/misc/mlx5dvsymbols.cc:34,1
    - Dst: INFO
      Src: /src/nccl/src/misc/mlx5dvsymbols.cc:36,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/mlx5dvsymbols.cc:60,1
    - Dst: LOAD_SYM_VERSION
      Src: /src/nccl/src/misc/mlx5dvsymbols.cc:62,1
    - Dst: LOAD_SYM_VERSION
      Src: /src/nccl/src/misc/mlx5dvsymbols.cc:64,1
    - Dst: dlclose
      Src: /src/nccl/src/misc/mlx5dvsymbols.cc:73,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 1
    argNames:
    - mlx5dvSymbols
    argTypes:
    - struct ncclMlx5dvSymbols*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 75
    functionName: buildMlx5dvSymbols
    functionSourceFile: /src/nccl/src/misc/mlx5dvsymbols.cc
    functionUses: 0
    functionsReached:
    - INFO
    - LOAD_SYM
    - dlopen
    - dlclose
    - LOAD_SYM_VERSION
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t buildMlx5dvSymbols(struct ncclMlx5dvSymbols* mlx5dvSymbols)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - handle
    - ','
    - symbol
    - ','
    - funcptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 50
    functionName: LOAD_SYM
    functionSourceFile: /src/nccl/src/misc/mlx5dvsymbols.cc
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_SYM(handle, symbol, funcptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - handle
    - ','
    - symbol
    - ','
    - funcptr
    - ','
    - version
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 59
    functionName: LOAD_SYM_VERSION
    functionSourceFile: /src/nccl/src/misc/mlx5dvsymbols.cc
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_SYM_VERSION(handle, symbol, funcptr, version)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CUCHECK
      Src: /src/nccl/src/misc/strongstream.cc:35,1
    - Dst: cuCtxGetCurrent
      Src: /src/nccl/src/misc/strongstream.cc:35,1
    - Dst: pthread_mutex_lock
      Src: /src/nccl/src/misc/strongstream.cc:37,1
    - Dst: calloc
      Src: /src/nccl/src/misc/strongstream.cc:41,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/misc/strongstream.cc:46,1
    - Dst: ncclStrongStreamConstruct
      Src: /src/nccl/src/misc/strongstream.cc:46,1
    - Dst: pthread_mutex_unlock
      Src: /src/nccl/src/misc/strongstream.cc:56,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 1
    argNames:
    - out
    argTypes:
    - struct ncclCudaContext**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 59
    functionName: ncclCudaContextTrack
    functionSourceFile: /src/nccl/src/misc/strongstream.cc
    functionUses: 1
    functionsReached:
    - NCCLCHECKGOTO
    - calloc
    - ncclStrongStreamConstruct
    - pthread_mutex_unlock
    - pthread_mutex_lock
    - cuCtxGetCurrent
    - CUCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCudaContextTrack(struct ncclCudaContext** out)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/nccl/src/misc/strongstream.cc:62,1
    - Dst: ncclStrongStreamDestruct
      Src: /src/nccl/src/misc/strongstream.cc:68,1
    - Dst: free
      Src: /src/nccl/src/misc/strongstream.cc:69,1
    - Dst: pthread_mutex_unlock
      Src: /src/nccl/src/misc/strongstream.cc:71,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - cxt
    argTypes:
    - struct ncclCudaContext*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 72
    functionName: ncclCudaContextDrop
    functionSourceFile: /src/nccl/src/misc/strongstream.cc
    functionUses: 1
    functionsReached:
    - ncclStrongStreamDestruct
    - pthread_mutex_unlock
    - free
    - pthread_mutex_lock
    linkageType: ''
    returnType: void
    signature: void ncclCudaContextDrop(struct ncclCudaContext* cxt)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/misc/strongstream.cc:81,1
    - Dst: ncclCudaDriverVersion
      Src: /src/nccl/src/misc/strongstream.cc:81,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/misc/strongstream.cc:84,1
    - Dst: cudaStreamGetCaptureInfo
      Src: /src/nccl/src/misc/strongstream.cc:84,1
    - Dst: WARN
      Src: /src/nccl/src/misc/strongstream.cc:91,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/misc/strongstream.cc:98,1
    - Dst: cudaStreamGetCaptureInfo_v3
      Src: /src/nccl/src/misc/strongstream.cc:98,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/misc/strongstream.cc:100,1
    - Dst: cudaStreamGetCaptureInfo_v2
      Src: /src/nccl/src/misc/strongstream.cc:100,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 2
    argNames:
    - graph
    - stream
    argTypes:
    - struct ncclCudaGraph*
    - cudaStream_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 76
    functionDepth: 2
    functionLinenumber: 76
    functionLinenumberEnd: 113
    functionName: ncclCudaGetCapturingGraph
    functionSourceFile: /src/nccl/src/misc/strongstream.cc
    functionUses: 1
    functionsReached:
    - WARN
    - cudaStreamGetCaptureInfo
    - CUDACHECK
    - cudaStreamGetCaptureInfo_v3
    - cudaStreamGetCaptureInfo_v2
    - ncclCudaDriverVersion
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclCudaGetCapturingGraph(\n    struct ncclCudaGraph*
      graph, cudaStream_t stream\n  )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CUDACHECK
      Src: /src/nccl/src/misc/strongstream.cc:118,1
    - Dst: cudaUserObjectCreate
      Src: /src/nccl/src/misc/strongstream.cc:118,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/misc/strongstream.cc:122,1
    - Dst: cudaGraphRetainUserObject
      Src: /src/nccl/src/misc/strongstream.cc:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - graph
    - fn
    - arg
    argTypes:
    - struct ncclCudaGraph
    - cudaHostFn_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 127
    functionName: ncclCudaGraphAddDestructor
    functionSourceFile: /src/nccl/src/misc/strongstream.cc
    functionUses: 1
    functionsReached:
    - CUDACHECK
    - cudaGraphRetainUserObject
    - cudaUserObjectCreate
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclCudaGraphAddDestructor(struct ncclCudaGraph graph,
      cudaHostFn_t fn, void* arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CUDACHECK
      Src: /src/nccl/src/misc/strongstream.cc:132,1
    - Dst: cudaStreamCreateWithFlags
      Src: /src/nccl/src/misc/strongstream.cc:132,1
    - Dst: pthread_mutex_init
      Src: /src/nccl/src/misc/strongstream.cc:136,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/misc/strongstream.cc:137,1
    - Dst: cudaEventCreateWithFlags
      Src: /src/nccl/src/misc/strongstream.cc:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ss
    argTypes:
    - struct ncclStrongStream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 131
    functionDepth: 1
    functionLinenumber: 131
    functionLinenumberEnd: 140
    functionName: ncclStrongStreamConstruct
    functionSourceFile: /src/nccl/src/misc/strongstream.cc
    functionUses: 2
    functionsReached:
    - CUDACHECK
    - cudaEventCreateWithFlags
    - pthread_mutex_init
    - cudaStreamCreateWithFlags
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclStrongStreamConstruct(struct ncclStrongStream* ss)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CUDACHECK
      Src: /src/nccl/src/misc/strongstream.cc:143,1
    - Dst: cudaStreamDestroy
      Src: /src/nccl/src/misc/strongstream.cc:143,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/misc/strongstream.cc:148,1
    - Dst: cudaStreamDestroy
      Src: /src/nccl/src/misc/strongstream.cc:148,1
    - Dst: free
      Src: /src/nccl/src/misc/strongstream.cc:149,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/misc/strongstream.cc:152,1
    - Dst: cudaEventDestroy
      Src: /src/nccl/src/misc/strongstream.cc:152,1
    - Dst: pthread_mutex_destroy
      Src: /src/nccl/src/misc/strongstream.cc:153,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - ss
    argTypes:
    - struct ncclStrongStream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 142
    functionDepth: 1
    functionLinenumber: 142
    functionLinenumberEnd: 156
    functionName: ncclStrongStreamDestruct
    functionSourceFile: /src/nccl/src/misc/strongstream.cc
    functionUses: 2
    functionsReached:
    - free
    - CUDACHECK
    - cudaEventDestroy
    - cudaStreamDestroy
    - pthread_mutex_destroy
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclStrongStreamDestruct(struct ncclStrongStream* ss)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 163
    functionName: localThreadId
    functionSourceFile: /src/nccl/src/misc/strongstream.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void * localThreadId()
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: ncclParamGraphMixingSupport
      Src: /src/nccl/src/misc/strongstream.cc:170,1
    - Dst: localThreadId
      Src: /src/nccl/src/misc/strongstream.cc:173,1
    - Dst: __atomic_load_n
      Src: /src/nccl/src/misc/strongstream.cc:174,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/misc/strongstream.cc:175,1
    - Dst: cudaStreamWaitEvent
      Src: /src/nccl/src/misc/strongstream.cc:175,1
    - Dst: __atomic_store_n
      Src: /src/nccl/src/misc/strongstream.cc:179,1
    - Dst: pthread_mutex_lock
      Src: /src/nccl/src/misc/strongstream.cc:182,1
    - Dst: localThreadId
      Src: /src/nccl/src/misc/strongstream.cc:192,1
    - Dst: pthread_mutex_unlock
      Src: /src/nccl/src/misc/strongstream.cc:193,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/misc/strongstream.cc:197,1
    - Dst: cudaStreamIsCapturing
      Src: /src/nccl/src/misc/strongstream.cc:197,1
    - Dst: cudaStreamDestroy
      Src: /src/nccl/src/misc/strongstream.cc:205,1
    - Dst: free
      Src: /src/nccl/src/misc/strongstream.cc:206,1
    - Dst: calloc
      Src: /src/nccl/src/misc/strongstream.cc:214,1
    - Dst: CUDACHECKGOTO
      Src: /src/nccl/src/misc/strongstream.cc:215,1
    - Dst: cudaStreamCreateWithFlags
      Src: /src/nccl/src/misc/strongstream.cc:215,1
    - Dst: localThreadId
      Src: /src/nccl/src/misc/strongstream.cc:218,1
    - Dst: pthread_mutex_unlock
      Src: /src/nccl/src/misc/strongstream.cc:224,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/misc/strongstream.cc:231,1
    - Dst: cudaEventCreateWithFlags
      Src: /src/nccl/src/misc/strongstream.cc:231,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/misc/strongstream.cc:232,1
    - Dst: cudaEventRecord
      Src: /src/nccl/src/misc/strongstream.cc:232,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/misc/strongstream.cc:233,1
    - Dst: cudaStreamWaitEvent
      Src: /src/nccl/src/misc/strongstream.cc:233,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/misc/strongstream.cc:234,1
    - Dst: cudaEventDestroy
      Src: /src/nccl/src/misc/strongstream.cc:234,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/misc/strongstream.cc:236,1
    - Dst: cudaStreamUpdateCaptureDependencies_v2
      Src: /src/nccl/src/misc/strongstream.cc:236,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/misc/strongstream.cc:238,1
    - Dst: cudaStreamUpdateCaptureDependencies
      Src: /src/nccl/src/misc/strongstream.cc:238,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/misc/strongstream.cc:242,1
    - Dst: cudaEventRecord
      Src: /src/nccl/src/misc/strongstream.cc:242,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/misc/strongstream.cc:246,1
    - Dst: cudaStreamWaitEvent
      Src: /src/nccl/src/misc/strongstream.cc:246,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 64
    argCount: 4
    argNames:
    - graph
    - ss
    - concurrent
    - workStream
    argTypes:
    - struct ncclCudaGraph
    - struct ncclStrongStream*
    - bool
    - cudaStream_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 251
    functionName: ncclStrongStreamAcquire
    functionSourceFile: /src/nccl/src/misc/strongstream.cc
    functionUses: 11
    functionsReached:
    - cudaEventRecord
    - cudaStreamUpdateCaptureDependencies_v2
    - pthread_mutex_lock
    - cudaEventDestroy
    - cudaStreamCreateWithFlags
    - __atomic_load_n
    - pthread_mutex_unlock
    - cudaStreamIsCapturing
    - ncclParamGraphMixingSupport
    - localThreadId
    - CUDACHECKGOTO
    - CUDACHECK
    - cudaStreamUpdateCaptureDependencies
    - calloc
    - cudaEventCreateWithFlags
    - free
    - cudaStreamWaitEvent
    - cudaStreamDestroy
    - __atomic_store_n
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclStrongStreamAcquire(\n   struct ncclCudaGraph graph,
      struct ncclStrongStream* ss, bool concurrent,\n   cudaStream_t* workStream\n
      \ )"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/nccl/src/misc/strongstream.cc:261,1
    - Dst: pthread_mutex_unlock
      Src: /src/nccl/src/misc/strongstream.cc:265,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - graph
    - ss
    - concurrent
    - workStream
    argTypes:
    - struct ncclCudaGraph
    - struct ncclStrongStream*
    - bool
    - cudaStream_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 271
    functionName: ncclStrongStreamAcquiredWorkStream
    functionSourceFile: /src/nccl/src/misc/strongstream.cc
    functionUses: 1
    functionsReached:
    - pthread_mutex_unlock
    - pthread_mutex_lock
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclStrongStreamAcquiredWorkStream(\n    struct ncclCudaGraph
      graph, struct ncclStrongStream* ss, bool concurrent,\n    cudaStream_t* workStream\n
      \ )"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ncclParamGraphMixingSupport
      Src: /src/nccl/src/misc/strongstream.cc:277,1
    - Dst: __atomic_load_n
      Src: /src/nccl/src/misc/strongstream.cc:280,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/misc/strongstream.cc:281,1
    - Dst: cudaEventRecord
      Src: /src/nccl/src/misc/strongstream.cc:281,1
    - Dst: localThreadId
      Src: /src/nccl/src/misc/strongstream.cc:283,1
    - Dst: ncclParamLaunchRaceFatal
      Src: /src/nccl/src/misc/strongstream.cc:283,1
    - Dst: WARN
      Src: /src/nccl/src/misc/strongstream.cc:284,1
    - Dst: pthread_mutex_lock
      Src: /src/nccl/src/misc/strongstream.cc:288,1
    - Dst: pthread_mutex_unlock
      Src: /src/nccl/src/misc/strongstream.cc:291,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/misc/strongstream.cc:295,1
    - Dst: cudaGraphAddEventRecordNode
      Src: /src/nccl/src/misc/strongstream.cc:295,1
    - Dst: cudaStreamGetCaptureInfo_v3
      Src: /src/nccl/src/misc/strongstream.cc:302,1
    - Dst: cudaStreamGetCaptureInfo_v2
      Src: /src/nccl/src/misc/strongstream.cc:304,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/misc/strongstream.cc:310,1
    - Dst: cudaStreamGetCaptureInfo_v3
      Src: /src/nccl/src/misc/strongstream.cc:310,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/misc/strongstream.cc:312,1
    - Dst: cudaGraphAddDependencies_v2
      Src: /src/nccl/src/misc/strongstream.cc:312,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/misc/strongstream.cc:319,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/misc/strongstream.cc:322,1
    - Dst: cudaGraphAddDependencies_v2
      Src: /src/nccl/src/misc/strongstream.cc:322,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/misc/strongstream.cc:324,1
    - Dst: cudaGraphAddDependencies
      Src: /src/nccl/src/misc/strongstream.cc:324,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/misc/strongstream.cc:331,1
    - Dst: cudaStreamUpdateCaptureDependencies_v2
      Src: /src/nccl/src/misc/strongstream.cc:331,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/misc/strongstream.cc:338,1
    - Dst: cudaStreamUpdateCaptureDependencies
      Src: /src/nccl/src/misc/strongstream.cc:338,1
    - Dst: localThreadId
      Src: /src/nccl/src/misc/strongstream.cc:345,1
    - Dst: ncclParamLaunchRaceFatal
      Src: /src/nccl/src/misc/strongstream.cc:345,1
    - Dst: WARN
      Src: /src/nccl/src/misc/strongstream.cc:346,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 40
    argCount: 3
    argNames:
    - graph
    - ss
    - concurrent
    argTypes:
    - struct ncclCudaGraph
    - struct ncclStrongStream*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 273
    functionDepth: 1
    functionLinenumber: 273
    functionLinenumberEnd: 353
    functionName: ncclStrongStreamRelease
    functionSourceFile: /src/nccl/src/misc/strongstream.cc
    functionUses: 12
    functionsReached:
    - __atomic_load_n
    - ncclParamGraphMixingSupport
    - WARN
    - localThreadId
    - cudaGraphAddDependencies_v2
    - cudaEventRecord
    - CUDACHECK
    - cudaStreamUpdateCaptureDependencies_v2
    - pthread_mutex_unlock
    - ncclParamLaunchRaceFatal
    - pthread_mutex_lock
    - cudaStreamGetCaptureInfo_v3
    - cudaStreamUpdateCaptureDependencies
    - cudaStreamGetCaptureInfo_v2
    - cudaGraphAddDependencies
    - cudaGraphAddEventRecordNode
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclStrongStreamRelease(\n    struct ncclCudaGraph graph,
      struct ncclStrongStream* ss, bool concurrent\n  )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CUDACHECK
      Src: /src/nccl/src/misc/strongstream.cc:356,1
    - Dst: cudaEventRecord
      Src: /src/nccl/src/misc/strongstream.cc:356,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/misc/strongstream.cc:357,1
    - Dst: cudaStreamWaitEvent
      Src: /src/nccl/src/misc/strongstream.cc:357,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - a
    - b
    - scratchEvent
    argTypes:
    - cudaStream_t
    - cudaStream_t
    - cudaEvent_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 355
    functionDepth: 1
    functionLinenumber: 355
    functionLinenumberEnd: 359
    functionName: ncclStreamWaitStream
    functionSourceFile: /src/nccl/src/misc/strongstream.cc
    functionUses: 5
    functionsReached:
    - CUDACHECK
    - cudaStreamWaitEvent
    - cudaEventRecord
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclStreamWaitStream(cudaStream_t a, cudaStream_t b, cudaEvent_t
      scratchEvent)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: CUDACHECK
      Src: /src/nccl/src/misc/strongstream.cc:363,1
    - Dst: cudaStreamWaitEvent
      Src: /src/nccl/src/misc/strongstream.cc:363,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/misc/strongstream.cc:366,1
    - Dst: cudaStreamCreateWithFlags
      Src: /src/nccl/src/misc/strongstream.cc:366,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/misc/strongstream.cc:367,1
    - Dst: cudaStreamWaitEvent
      Src: /src/nccl/src/misc/strongstream.cc:367,1
    - Dst: cudaStreamGetCaptureInfo_v3
      Src: /src/nccl/src/misc/strongstream.cc:373,1
    - Dst: cudaStreamGetCaptureInfo_v2
      Src: /src/nccl/src/misc/strongstream.cc:375,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/misc/strongstream.cc:381,1
    - Dst: cudaStreamGetCaptureInfo_v3
      Src: /src/nccl/src/misc/strongstream.cc:381,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/misc/strongstream.cc:382,1
    - Dst: cudaStreamUpdateCaptureDependencies_v2
      Src: /src/nccl/src/misc/strongstream.cc:382,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/misc/strongstream.cc:388,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/misc/strongstream.cc:390,1
    - Dst: cudaStreamUpdateCaptureDependencies_v2
      Src: /src/nccl/src/misc/strongstream.cc:390,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/misc/strongstream.cc:392,1
    - Dst: cudaStreamUpdateCaptureDependencies
      Src: /src/nccl/src/misc/strongstream.cc:392,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/misc/strongstream.cc:396,1
    - Dst: cudaStreamDestroy
      Src: /src/nccl/src/misc/strongstream.cc:396,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - g
    - s
    - e
    argTypes:
    - struct ncclCudaGraph
    - cudaStream_t
    - cudaEvent_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 397
      start: 361
    functionDepth: 1
    functionLinenumber: 361
    functionLinenumberEnd: 397
    functionName: ncclStreamAdvanceToEvent
    functionSourceFile: /src/nccl/src/misc/strongstream.cc
    functionUses: 1
    functionsReached:
    - CUDACHECK
    - cudaStreamUpdateCaptureDependencies_v2
    - cudaStreamGetCaptureInfo_v3
    - cudaStreamUpdateCaptureDependencies
    - cudaStreamWaitEvent
    - cudaStreamGetCaptureInfo_v2
    - cudaStreamCreateWithFlags
    - cudaStreamDestroy
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclStreamAdvanceToEvent(struct ncclCudaGraph g, cudaStream_t
      s, cudaEvent_t e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CUDACHECK
      Src: /src/nccl/src/misc/strongstream.cc:403,1
    - Dst: cudaStreamWaitEvent
      Src: /src/nccl/src/misc/strongstream.cc:403,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/misc/strongstream.cc:405,1
    - Dst: cudaStreamSynchronize
      Src: /src/nccl/src/misc/strongstream.cc:405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ss
    argTypes:
    - struct ncclStrongStream*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 401
    functionDepth: 1
    functionLinenumber: 401
    functionLinenumberEnd: 407
    functionName: ncclStrongStreamSynchronize
    functionSourceFile: /src/nccl/src/misc/strongstream.cc
    functionUses: 6
    functionsReached:
    - CUDACHECK
    - cudaStreamWaitEvent
    - cudaStreamSynchronize
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclStrongStreamSynchronize(struct ncclStrongStream* ss)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cudaGetDevice
      Src: /src/nccl/src/misc/utils.cc:17,1
    - Dst: cudaDeviceGetAttribute
      Src: /src/nccl/src/misc/utils.cc:19,1
    - Dst: cudaDeviceGetAttribute
      Src: /src/nccl/src/misc/utils.cc:20,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 22
    functionName: ncclCudaCompCap
    functionSourceFile: /src/nccl/src/misc/utils.cc
    functionUses: 1
    functionsReached:
    - cudaDeviceGetAttribute
    - cudaGetDevice
    linkageType: ''
    returnType: int
    signature: int ncclCudaCompCap()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sprintf
      Src: /src/nccl/src/misc/utils.cc:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - id
    - busId
    argTypes:
    - int64_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 27
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 27
    functionName: int64ToBusId
    functionSourceFile: /src/nccl/src/misc/utils.cc
    functionUses: 2
    functionsReached:
    - sprintf
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t int64ToBusId(int64_t id, char* busId)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strtol
      Src: /src/nccl/src/misc/utils.cc:42,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 12
    argCount: 2
    argNames:
    - busId
    - id
    argTypes:
    - char*
    - int64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 44
    functionName: busIdToInt64
    functionSourceFile: /src/nccl/src/misc/utils.cc
    functionUses: 1
    functionsReached:
    - strtol
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t busIdToInt64(const char* busId, int64_t* id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CUDACHECK
      Src: /src/nccl/src/misc/utils.cc:52,1
    - Dst: cudaDeviceGetPCIBusId
      Src: /src/nccl/src/misc/utils.cc:52,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/misc/utils.cc:53,1
    - Dst: busIdToInt64
      Src: /src/nccl/src/misc/utils.cc:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - cudaDev
    - busId
    argTypes:
    - int
    - int64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 55
    functionName: getBusId
    functionSourceFile: /src/nccl/src/misc/utils.cc
    functionUses: 1
    functionsReached:
    - CUDACHECK
    - busIdToInt64
    - cudaDeviceGetPCIBusId
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t getBusId(int cudaDev, int64_t *busId)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gethostname
      Src: /src/nccl/src/misc/utils.cc:58,1
    - Dst: strncpy
      Src: /src/nccl/src/misc/utils.cc:59,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - hostname
    - maxlen
    - delim
    argTypes:
    - char*
    - int
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 66
    functionName: getHostName
    functionSourceFile: /src/nccl/src/misc/utils.cc
    functionUses: 1
    functionsReached:
    - strncpy
    - gethostname
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t getHostName(char* hostname, int maxlen, const char delim)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: getHostName
      Src: /src/nccl/src/misc/utils.cc:83,1
    - Dst: strlen
      Src: /src/nccl/src/misc/utils.cc:84,1
    - Dst: ncclGetEnv
      Src: /src/nccl/src/misc/utils.cc:86,1
    - Dst: INFO
      Src: /src/nccl/src/misc/utils.cc:87,1
    - Dst: strncpy
      Src: /src/nccl/src/misc/utils.cc:88,1
    - Dst: fopen
      Src: /src/nccl/src/misc/utils.cc:91,1
    - Dst: fscanf
      Src: /src/nccl/src/misc/utils.cc:94,1
    - Dst: strncpy
      Src: /src/nccl/src/misc/utils.cc:95,1
    - Dst: free
      Src: /src/nccl/src/misc/utils.cc:96,1
    - Dst: fclose
      Src: /src/nccl/src/misc/utils.cc:98,1
    - Dst: TRACE
      Src: /src/nccl/src/misc/utils.cc:105,1
    - Dst: getHash
      Src: /src/nccl/src/misc/utils.cc:107,1
    - Dst: strlen
      Src: /src/nccl/src/misc/utils.cc:107,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 108
    functionName: getHostHashOnce
    functionSourceFile: /src/nccl/src/misc/utils.cc
    functionUses: 0
    functionsReached:
    - INFO
    - getHostName
    - TRACE
    - strlen
    - free
    - ncclGetEnv
    - strncpy
    - fclose
    - getHash
    - fopen
    - fscanf
    linkageType: ''
    returnType: void
    signature: void getHostHashOnce()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_once
      Src: /src/nccl/src/misc/utils.cc:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 113
    functionName: getHostHash
    functionSourceFile: /src/nccl/src/misc/utils.cc
    functionUses: 2
    functionsReached:
    - pthread_once
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t getHostHash(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sprintf
      Src: /src/nccl/src/misc/utils.cc:124,1
    - Dst: getpid
      Src: /src/nccl/src/misc/utils.cc:124,1
    - Dst: strlen
      Src: /src/nccl/src/misc/utils.cc:125,1
    - Dst: readlink
      Src: /src/nccl/src/misc/utils.cc:126,1
    - Dst: TRACE
      Src: /src/nccl/src/misc/utils.cc:130,1
    - Dst: getHash
      Src: /src/nccl/src/misc/utils.cc:132,1
    - Dst: strlen
      Src: /src/nccl/src/misc/utils.cc:132,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 121
    functionDepth: 2
    functionLinenumber: 121
    functionLinenumberEnd: 133
    functionName: getPidHash
    functionSourceFile: /src/nccl/src/misc/utils.cc
    functionUses: 3
    functionsReached:
    - TRACE
    - strlen
    - getHash
    - getpid
    - readlink
    - sprintf
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t getPidHash(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: atoi
      Src: /src/nccl/src/misc/utils.cc:148,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 29
    argCount: 3
    argNames:
    - string
    - ifList
    - maxList
    argTypes:
    - char*
    - struct netIf*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 165
    functionName: parseStringList
    functionSourceFile: /src/nccl/src/misc/utils.cc
    functionUses: 4
    functionsReached:
    - atoi
    linkageType: ''
    returnType: int
    signature: int parseStringList(const char* string, struct netIf* ifList, int maxList)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/nccl/src/misc/utils.cc:169,1
    - Dst: strlen
      Src: /src/nccl/src/misc/utils.cc:169,1
    - Dst: strncmp
      Src: /src/nccl/src/misc/utils.cc:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - string
    - ref
    - matchExact
    argTypes:
    - char*
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 171
    functionName: matchIf
    functionSourceFile: /src/nccl/src/misc/utils.cc
    functionUses: 0
    functionsReached:
    - strncmp
    - strlen
    linkageType: ''
    returnType: bool
    signature: bool matchIf(const char* string, const char* ref, bool matchExact)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - port1
    - port2
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 178
    functionName: matchPort
    functionSourceFile: /src/nccl/src/misc/utils.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool matchPort(const int port1, const int port2)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: matchIf
      Src: /src/nccl/src/misc/utils.cc:186,1
    - Dst: matchPort
      Src: /src/nccl/src/misc/utils.cc:187,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 5
    argNames:
    - string
    - port
    - ifList
    - listSize
    - matchExact
    argTypes:
    - char*
    - int
    - struct netIf*
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 192
    functionName: matchIfList
    functionSourceFile: /src/nccl/src/misc/utils.cc
    functionUses: 3
    functionsReached:
    - matchIf
    - matchPort
    linkageType: ''
    returnType: bool
    signature: bool matchIfList(const char* string, int port, struct netIf* ifList,
      int listSize, bool matchExact)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/misc/utils.cc:211,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/misc/utils.cc:212,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/misc/utils.cc:215,1
    - Dst: reinterpret_cast<void*>
      Src: /src/nccl/src/misc/utils.cc:216,1
    - Dst: INFO
      Src: /src/nccl/src/misc/utils.cc:233,1
    - Dst: malloc
      Src: /src/nccl/src/misc/utils.cc:234,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/misc/utils.cc:241,1
    - Dst: reinterpret_cast<uintptr_t>
      Src: /src/nccl/src/misc/utils.cc:242,1
    - Dst: reinterpret_cast<void*>
      Src: /src/nccl/src/misc/utils.cc:249,1
    - Dst: reinterpret_cast<Unhunk*>
      Src: /src/nccl/src/misc/utils.cc:257,1
    - Dst: malloc
      Src: /src/nccl/src/misc/utils.cc:262,1
    - Dst: INFO
      Src: /src/nccl/src/misc/utils.cc:263,1
    - Dst: WARN
      Src: /src/nccl/src/misc/utils.cc:269,1
    - Dst: abort
      Src: /src/nccl/src/misc/utils.cc:270,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 53
    argCount: 3
    argNames:
    - me
    - size
    - align
    argTypes:
    - struct ncclMemoryStack*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 271
    functionName: ncclMemoryStack::allocateSpilled
    functionSourceFile: /src/nccl/src/misc/utils.cc
    functionUses: 1
    functionsReached:
    - INFO
    - malloc
    - WARN
    - reinterpret_cast<Unhunk*>
    - reinterpret_cast<void*>
    - reinterpret_cast<uintptr_t>
    - abort
    linkageType: ''
    returnType: void
    signature: void * ncclMemoryStack::allocateSpilled(struct ncclMemoryStack* me,
      size_t size, size_t align)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/nccl/src/misc/utils.cc:279,1
    - Dst: free
      Src: /src/nccl/src/misc/utils.cc:288,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - me
    argTypes:
    - struct ncclMemoryStack*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 291
    functionName: ncclMemoryStackDestruct
    functionSourceFile: /src/nccl/src/misc/utils.cc
    functionUses: 1
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void ncclMemoryStackDestruct(struct ncclMemoryStack* me)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_once
      Src: /src/nccl/src/misc/mlx5dvwrap.cc:23,1
    - Dst: buildMlx5dvSymbols
      Src: /src/nccl/src/misc/mlx5dvwrap.cc:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 26
    functionName: wrap_mlx5dv_symbols
    functionSourceFile: /src/nccl/src/misc/mlx5dvwrap.cc
    functionUses: 1
    functionsReached:
    - pthread_once
    - buildMlx5dvSymbols
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t wrap_mlx5dv_symbols(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - container
    - ','
    - internal_name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 34
    functionName: CHECK_NOT_NULL
    functionSourceFile: /src/nccl/src/misc/mlx5dvwrap.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_NOT_NULL(container, internal_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - container
    - ','
    - internal_name
    - ','
    - call
    - ','
    - retval
    - ','
    - error_retval
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 43
    functionName: MLX5DV_PTR_CHECK_ERRNO
    functionSourceFile: /src/nccl/src/misc/mlx5dvwrap.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MLX5DV_PTR_CHECK_ERRNO(container, internal_name, call, retval, error_retval,
      name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - container
    - ','
    - internal_name
    - ','
    - call
    - ','
    - success_retval
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 52
    functionName: MLX5DV_INT_CHECK_RET_ERRNO
    functionSourceFile: /src/nccl/src/misc/mlx5dvwrap.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: MLX5DV_INT_CHECK_RET_ERRNO(container, internal_name, call, success_retval,
      name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mlx5dv_internal_is_supported
      Src: /src/nccl/src/misc/mlx5dvwrap.cc:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - device
    argTypes:
    - struct ibv_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 58
    functionName: wrap_mlx5dv_is_supported
    functionSourceFile: /src/nccl/src/misc/mlx5dvwrap.cc
    functionUses: 1
    functionsReached:
    - mlx5dv_internal_is_supported
    linkageType: ''
    returnType: bool
    signature: bool wrap_mlx5dv_is_supported(struct ibv_device *device)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MLX5DV_INT_CHECK_RET_ERRNO
      Src: /src/nccl/src/misc/mlx5dvwrap.cc:61,1
    - Dst: mlx5dv_internal_get_data_direct_sysfs_path
      Src: /src/nccl/src/misc/mlx5dvwrap.cc:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - context
    - buf
    - buf_len
    argTypes:
    - struct ibv_context*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 62
    functionName: wrap_mlx5dv_get_data_direct_sysfs_path
    functionSourceFile: /src/nccl/src/misc/mlx5dvwrap.cc
    functionUses: 1
    functionsReached:
    - MLX5DV_INT_CHECK_RET_ERRNO
    - mlx5dv_internal_get_data_direct_sysfs_path
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t wrap_mlx5dv_get_data_direct_sysfs_path(struct ibv_context
      *context, char *buf, size_t buf_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: MLX5DV_PTR_CHECK_ERRNO
      Src: /src/nccl/src/misc/mlx5dvwrap.cc:66,1
    - Dst: mlx5dv_internal_reg_dmabuf_mr
      Src: /src/nccl/src/misc/mlx5dvwrap.cc:66,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 8
    argNames:
    - ret
    - pd
    - offset
    - length
    - iova
    - fd
    - access
    - mlx5_access
    argTypes:
    - struct ibv_mr**
    - struct ibv_pd*
    - uint64_t
    - size_t
    - uint64_t
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 67
    functionName: wrap_mlx5dv_reg_dmabuf_mr
    functionSourceFile: /src/nccl/src/misc/mlx5dvwrap.cc
    functionUses: 1
    functionsReached:
    - MLX5DV_PTR_CHECK_ERRNO
    - mlx5dv_internal_reg_dmabuf_mr
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t wrap_mlx5dv_reg_dmabuf_mr(struct ibv_mr **ret, struct
      ibv_pd *pd, uint64_t offset, size_t length, uint64_t iova, int fd, int access,
      int mlx5_access)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mlx5dv_internal_reg_dmabuf_mr
      Src: /src/nccl/src/misc/mlx5dvwrap.cc:74,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 7
    argNames:
    - pd
    - offset
    - length
    - iova
    - fd
    - access
    - mlx5_access
    argTypes:
    - struct ibv_pd*
    - uint64_t
    - size_t
    - uint64_t
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 75
    functionName: wrap_direct_mlx5dv_reg_dmabuf_mr
    functionSourceFile: /src/nccl/src/misc/mlx5dvwrap.cc
    functionUses: 1
    functionsReached:
    - mlx5dv_internal_reg_dmabuf_mr
    linkageType: ''
    returnType: struct ibv_mr
    signature: struct ibv_mr * wrap_direct_mlx5dv_reg_dmabuf_mr(struct ibv_pd *pd,
      uint64_t offset, size_t length, uint64_t iova, int fd, int access, int mlx5_access)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - handle
    - ','
    - symbol
    - ','
    - funcptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 40
    functionName: LOAD_SYM
    functionSourceFile: /src/nccl/src/misc/gdrwrap.cc
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_SYM(handle, symbol, funcptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - handle
    - ','
    - symbol
    - ','
    - funcptr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 49
    functionName: LOAD_SYM_OPTIONAL
    functionSourceFile: /src/nccl/src/misc/gdrwrap.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: LOAD_SYM_OPTIONAL(handle, symbol, funcptr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dlopen
      Src: /src/nccl/src/misc/gdrwrap.cc:58,1
    - Dst: WARN
      Src: /src/nccl/src/misc/gdrwrap.cc:60,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/gdrwrap.cc:65,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/gdrwrap.cc:66,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/gdrwrap.cc:67,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/gdrwrap.cc:68,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/gdrwrap.cc:69,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/gdrwrap.cc:70,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/gdrwrap.cc:71,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/gdrwrap.cc:72,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/gdrwrap.cc:73,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/gdrwrap.cc:74,1
    - Dst: LOAD_SYM
      Src: /src/nccl/src/misc/gdrwrap.cc:75,1
    - Dst: dlclose
      Src: /src/nccl/src/misc/gdrwrap.cc:93,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 96
    functionName: initOnceFunc
    functionSourceFile: /src/nccl/src/misc/gdrwrap.cc
    functionUses: 0
    functionsReached:
    - WARN
    - dlopen
    - dlclose
    - LOAD_SYM
    linkageType: ''
    returnType: void
    signature: void initOnceFunc(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_once
      Src: /src/nccl/src/misc/gdrwrap.cc:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 102
    functionName: wrap_gdr_symbols
    functionSourceFile: /src/nccl/src/misc/gdrwrap.cc
    functionUses: 1
    functionsReached:
    - pthread_once
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t wrap_gdr_symbols(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/misc/gdrwrap.cc:106,1
    - Dst: gdr_internal_open
      Src: /src/nccl/src/misc/gdrwrap.cc:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 110
    functionName: wrap_gdr_open
    functionSourceFile: /src/nccl/src/misc/gdrwrap.cc
    functionUses: 1
    functionsReached:
    - WARN
    - gdr_internal_open
    linkageType: ''
    returnType: gdr_t
    signature: gdr_t wrap_gdr_open(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/misc/gdrwrap.cc:114,1
    - Dst: gdr_internal_close
      Src: /src/nccl/src/misc/gdrwrap.cc:117,1
    - Dst: WARN
      Src: /src/nccl/src/misc/gdrwrap.cc:119,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - g
    argTypes:
    - gdr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 123
    functionName: wrap_gdr_close
    functionSourceFile: /src/nccl/src/misc/gdrwrap.cc
    functionUses: 1
    functionsReached:
    - WARN
    - gdr_internal_close
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t wrap_gdr_close(gdr_t g)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/misc/gdrwrap.cc:127,1
    - Dst: GDRLOCKCALL
      Src: /src/nccl/src/misc/gdrwrap.cc:131,1
    - Dst: gdr_internal_pin_buffer
      Src: /src/nccl/src/misc/gdrwrap.cc:131,1
    - Dst: WARN
      Src: /src/nccl/src/misc/gdrwrap.cc:133,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 6
    argNames:
    - g
    - addr
    - size
    - p2p_token
    - va_space
    - handle
    argTypes:
    - gdr_t
    - unsigned long
    - size_t
    - uint64_t
    - uint32_t
    - gdr_mh_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 137
    functionName: wrap_gdr_pin_buffer
    functionSourceFile: /src/nccl/src/misc/gdrwrap.cc
    functionUses: 1
    functionsReached:
    - WARN
    - gdr_internal_pin_buffer
    - GDRLOCKCALL
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t wrap_gdr_pin_buffer(gdr_t g, unsigned long addr, size_t
      size, uint64_t p2p_token, uint32_t va_space, gdr_mh_t *handle)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/misc/gdrwrap.cc:141,1
    - Dst: GDRLOCKCALL
      Src: /src/nccl/src/misc/gdrwrap.cc:145,1
    - Dst: gdr_internal_unpin_buffer
      Src: /src/nccl/src/misc/gdrwrap.cc:145,1
    - Dst: WARN
      Src: /src/nccl/src/misc/gdrwrap.cc:147,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - g
    - handle
    argTypes:
    - gdr_t
    - gdr_mh_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 151
    functionName: wrap_gdr_unpin_buffer
    functionSourceFile: /src/nccl/src/misc/gdrwrap.cc
    functionUses: 1
    functionsReached:
    - WARN
    - GDRLOCKCALL
    - gdr_internal_unpin_buffer
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t wrap_gdr_unpin_buffer(gdr_t g, gdr_mh_t handle)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/misc/gdrwrap.cc:155,1
    - Dst: GDRLOCKCALL
      Src: /src/nccl/src/misc/gdrwrap.cc:159,1
    - Dst: gdr_internal_get_info
      Src: /src/nccl/src/misc/gdrwrap.cc:159,1
    - Dst: WARN
      Src: /src/nccl/src/misc/gdrwrap.cc:161,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - g
    - handle
    - info
    argTypes:
    - gdr_t
    - gdr_mh_t
    - gdr_info_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 165
    functionName: wrap_gdr_get_info
    functionSourceFile: /src/nccl/src/misc/gdrwrap.cc
    functionUses: 1
    functionsReached:
    - WARN
    - gdr_internal_get_info
    - GDRLOCKCALL
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t wrap_gdr_get_info(gdr_t g, gdr_mh_t handle, gdr_info_t
      *info)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/misc/gdrwrap.cc:169,1
    - Dst: GDRLOCKCALL
      Src: /src/nccl/src/misc/gdrwrap.cc:173,1
    - Dst: gdr_internal_map
      Src: /src/nccl/src/misc/gdrwrap.cc:173,1
    - Dst: WARN
      Src: /src/nccl/src/misc/gdrwrap.cc:175,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - g
    - handle
    - va
    - size
    argTypes:
    - gdr_t
    - gdr_mh_t
    - void**
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 179
    functionName: wrap_gdr_map
    functionSourceFile: /src/nccl/src/misc/gdrwrap.cc
    functionUses: 1
    functionsReached:
    - WARN
    - GDRLOCKCALL
    - gdr_internal_map
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t wrap_gdr_map(gdr_t g, gdr_mh_t handle, void **va, size_t
      size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/misc/gdrwrap.cc:183,1
    - Dst: GDRLOCKCALL
      Src: /src/nccl/src/misc/gdrwrap.cc:187,1
    - Dst: gdr_internal_unmap
      Src: /src/nccl/src/misc/gdrwrap.cc:187,1
    - Dst: WARN
      Src: /src/nccl/src/misc/gdrwrap.cc:189,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - g
    - handle
    - va
    - size
    argTypes:
    - gdr_t
    - gdr_mh_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 193
    functionName: wrap_gdr_unmap
    functionSourceFile: /src/nccl/src/misc/gdrwrap.cc
    functionUses: 1
    functionsReached:
    - WARN
    - gdr_internal_unmap
    - GDRLOCKCALL
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t wrap_gdr_unmap(gdr_t g, gdr_mh_t handle, void *va, size_t
      size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/misc/gdrwrap.cc:197,1
    - Dst: gdr_internal_runtime_get_version
      Src: /src/nccl/src/misc/gdrwrap.cc:200,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - major
    - minor
    argTypes:
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 202
    functionName: wrap_gdr_runtime_get_version
    functionSourceFile: /src/nccl/src/misc/gdrwrap.cc
    functionUses: 1
    functionsReached:
    - WARN
    - gdr_internal_runtime_get_version
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t wrap_gdr_runtime_get_version(int *major, int *minor)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/misc/gdrwrap.cc:206,1
    - Dst: gdr_internal_driver_get_version
      Src: /src/nccl/src/misc/gdrwrap.cc:209,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - g
    - major
    - minor
    argTypes:
    - gdr_t
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 211
    functionName: wrap_gdr_driver_get_version
    functionSourceFile: /src/nccl/src/misc/gdrwrap.cc
    functionUses: 1
    functionsReached:
    - WARN
    - gdr_internal_driver_get_version
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t wrap_gdr_driver_get_version(gdr_t g, int *major, int *minor)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/misc/gdrwrap.cc:215,1
    - Dst: GDRLOCKCALL
      Src: /src/nccl/src/misc/gdrwrap.cc:219,1
    - Dst: gdr_internal_copy_to_mapping
      Src: /src/nccl/src/misc/gdrwrap.cc:219,1
    - Dst: WARN
      Src: /src/nccl/src/misc/gdrwrap.cc:221,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - handle
    - map_d_ptr
    - h_ptr
    - size
    argTypes:
    - gdr_mh_t
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 225
    functionName: wrap_gdr_copy_to_mapping
    functionSourceFile: /src/nccl/src/misc/gdrwrap.cc
    functionUses: 1
    functionsReached:
    - WARN
    - gdr_internal_copy_to_mapping
    - GDRLOCKCALL
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t wrap_gdr_copy_to_mapping(gdr_mh_t handle, void *map_d_ptr,
      const void *h_ptr, size_t size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/misc/gdrwrap.cc:229,1
    - Dst: GDRLOCKCALL
      Src: /src/nccl/src/misc/gdrwrap.cc:233,1
    - Dst: gdr_internal_copy_from_mapping
      Src: /src/nccl/src/misc/gdrwrap.cc:233,1
    - Dst: WARN
      Src: /src/nccl/src/misc/gdrwrap.cc:235,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - handle
    - h_ptr
    - map_d_ptr
    - size
    argTypes:
    - gdr_mh_t
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 239
    functionName: wrap_gdr_copy_from_mapping
    functionSourceFile: /src/nccl/src/misc/gdrwrap.cc
    functionUses: 0
    functionsReached:
    - WARN
    - gdr_internal_copy_from_mapping
    - GDRLOCKCALL
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t wrap_gdr_copy_from_mapping(gdr_mh_t handle, void *h_ptr,
      const void *map_d_ptr, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - rettype
    - ','
    - arglist
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 20
    functionDepth: 0
    functionLinenumber: 20
    functionLinenumberEnd: 21
    functionName: NCCL_NVML_FN
    functionSourceFile: /src/nccl/src/misc/nvmlwrap.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NCCL_NVML_FN(name, rettype, arglist)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - name
    - ','
    - rettype
    - ','
    - arglist
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 24
    functionName: NCCL_NVML_FN
    functionSourceFile: /src/nccl/src/misc/nvmlwrap.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NCCL_NVML_FN(name, rettype, arglist)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: dlopen
      Src: /src/nccl/src/misc/nvmlwrap.cc:72,1
    - Dst: WARN
      Src: /src/nccl/src/misc/nvmlwrap.cc:74,1
    - Dst: dlsym
      Src: /src/nccl/src/misc/nvmlwrap.cc:103,1
    - Dst: WARN
      Src: /src/nccl/src/misc/nvmlwrap.cc:119,1
    - Dst: pfn_nvmlErrorString
      Src: /src/nccl/src/misc/nvmlwrap.cc:119,1
    - Dst: WARN
      Src: /src/nccl/src/misc/nvmlwrap.cc:127,1
    - Dst: pfn_nvmlErrorString
      Src: /src/nccl/src/misc/nvmlwrap.cc:127,1
    - Dst: WARN
      Src: /src/nccl/src/misc/nvmlwrap.cc:134,1
    - Dst: pfn_nvmlDeviceGetHandleByIndex
      Src: /src/nccl/src/misc/nvmlwrap.cc:140,1
    - Dst: WARN
      Src: /src/nccl/src/misc/nvmlwrap.cc:142,1
    - Dst: pfn_nvmlErrorString
      Src: /src/nccl/src/misc/nvmlwrap.cc:142,1
    - Dst: pfn_nvmlDeviceGetCudaComputeCapability
      Src: /src/nccl/src/misc/nvmlwrap.cc:147,1
    - Dst: WARN
      Src: /src/nccl/src/misc/nvmlwrap.cc:149,1
    - Dst: pfn_nvmlErrorString
      Src: /src/nccl/src/misc/nvmlwrap.cc:149,1
    - Dst: pfn_nvmlDeviceGetP2PStatus
      Src: /src/nccl/src/misc/nvmlwrap.cc:160,1
    - Dst: WARN
      Src: /src/nccl/src/misc/nvmlwrap.cc:162,1
    - Dst: pfn_nvmlErrorString
      Src: /src/nccl/src/misc/nvmlwrap.cc:162,1
    - Dst: pfn_nvmlDeviceGetP2PStatus
      Src: /src/nccl/src/misc/nvmlwrap.cc:167,1
    - Dst: WARN
      Src: /src/nccl/src/misc/nvmlwrap.cc:169,1
    - Dst: pfn_nvmlErrorString
      Src: /src/nccl/src/misc/nvmlwrap.cc:169,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 65
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 178
    functionName: ncclNvmlEnsureInitialized
    functionSourceFile: /src/nccl/src/misc/nvmlwrap.cc
    functionUses: 0
    functionsReached:
    - WARN
    - pfn_nvmlErrorString
    - dlsym
    - dlopen
    - pfn_nvmlDeviceGetHandleByIndex
    - pfn_nvmlDeviceGetCudaComputeCapability
    - pfn_nvmlDeviceGetP2PStatus
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNvmlEnsureInitialized()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - name
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 187
    functionName: NVMLCHECK
    functionSourceFile: /src/nccl/src/misc/nvmlwrap.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NVMLCHECK(name, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/misc/nvmlwrap.cc:200,1
    - Dst: ncclNvmlEnsureInitialized
      Src: /src/nccl/src/misc/nvmlwrap.cc:200,1
    - Dst: NVMLCHECK
      Src: /src/nccl/src/misc/nvmlwrap.cc:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - pciBusId
    - device
    argTypes:
    - char*
    - nvmlDevice_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 199
    functionDepth: 2
    functionLinenumber: 199
    functionLinenumberEnd: 204
    functionName: ncclNvmlDeviceGetHandleByPciBusId
    functionSourceFile: /src/nccl/src/misc/nvmlwrap.cc
    functionUses: 2
    functionsReached:
    - NVMLCHECK
    - ncclNvmlEnsureInitialized
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNvmlDeviceGetHandleByPciBusId(const char* pciBusId,
      nvmlDevice_t* device)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/misc/nvmlwrap.cc:207,1
    - Dst: ncclNvmlEnsureInitialized
      Src: /src/nccl/src/misc/nvmlwrap.cc:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - index
    - device
    argTypes:
    - unsigned int
    - nvmlDevice_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 206
    functionDepth: 2
    functionLinenumber: 206
    functionLinenumberEnd: 210
    functionName: ncclNvmlDeviceGetHandleByIndex
    functionSourceFile: /src/nccl/src/misc/nvmlwrap.cc
    functionUses: 0
    functionsReached:
    - ncclNvmlEnsureInitialized
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNvmlDeviceGetHandleByIndex(unsigned int index, nvmlDevice_t
      *device)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/misc/nvmlwrap.cc:213,1
    - Dst: ncclNvmlEnsureInitialized
      Src: /src/nccl/src/misc/nvmlwrap.cc:213,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - device
    - index
    argTypes:
    - nvmlDevice_t
    - unsigned*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 212
    functionDepth: 2
    functionLinenumber: 212
    functionLinenumberEnd: 221
    functionName: ncclNvmlDeviceGetIndex
    functionSourceFile: /src/nccl/src/misc/nvmlwrap.cc
    functionUses: 1
    functionsReached:
    - ncclNvmlEnsureInitialized
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNvmlDeviceGetIndex(nvmlDevice_t device, unsigned*
      index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/misc/nvmlwrap.cc:224,1
    - Dst: ncclNvmlEnsureInitialized
      Src: /src/nccl/src/misc/nvmlwrap.cc:224,1
    - Dst: NVMLTRY
      Src: /src/nccl/src/misc/nvmlwrap.cc:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - device
    - link
    - isActive
    argTypes:
    - nvmlDevice_t
    - unsigned int
    - nvmlEnableState_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 223
    functionDepth: 2
    functionLinenumber: 223
    functionLinenumberEnd: 228
    functionName: ncclNvmlDeviceGetNvLinkState
    functionSourceFile: /src/nccl/src/misc/nvmlwrap.cc
    functionUses: 0
    functionsReached:
    - ncclNvmlEnsureInitialized
    - NVMLTRY
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNvmlDeviceGetNvLinkState(nvmlDevice_t device, unsigned
      int link, nvmlEnableState_t *isActive)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/misc/nvmlwrap.cc:231,1
    - Dst: ncclNvmlEnsureInitialized
      Src: /src/nccl/src/misc/nvmlwrap.cc:231,1
    - Dst: NVMLTRY
      Src: /src/nccl/src/misc/nvmlwrap.cc:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - device
    - link
    - pci
    argTypes:
    - nvmlDevice_t
    - unsigned int
    - nvmlPciInfo_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 230
    functionDepth: 2
    functionLinenumber: 230
    functionLinenumberEnd: 235
    functionName: ncclNvmlDeviceGetNvLinkRemotePciInfo
    functionSourceFile: /src/nccl/src/misc/nvmlwrap.cc
    functionUses: 0
    functionsReached:
    - ncclNvmlEnsureInitialized
    - NVMLTRY
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNvmlDeviceGetNvLinkRemotePciInfo(nvmlDevice_t device,
      unsigned int link, nvmlPciInfo_t *pci)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/misc/nvmlwrap.cc:241,1
    - Dst: ncclNvmlEnsureInitialized
      Src: /src/nccl/src/misc/nvmlwrap.cc:241,1
    - Dst: NVMLTRY
      Src: /src/nccl/src/misc/nvmlwrap.cc:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - device
    - link
    - capability
    - capResult
    argTypes:
    - nvmlDevice_t
    - unsigned int
    - nvmlNvLinkCapability_t
    - unsigned int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 237
    functionDepth: 2
    functionLinenumber: 237
    functionLinenumberEnd: 245
    functionName: ncclNvmlDeviceGetNvLinkCapability
    functionSourceFile: /src/nccl/src/misc/nvmlwrap.cc
    functionUses: 0
    functionsReached:
    - ncclNvmlEnsureInitialized
    - NVMLTRY
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclNvmlDeviceGetNvLinkCapability(\n    nvmlDevice_t
      device, unsigned int link, nvmlNvLinkCapability_t capability,\n    unsigned
      int *capResult\n  )"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/misc/nvmlwrap.cc:248,1
    - Dst: ncclNvmlEnsureInitialized
      Src: /src/nccl/src/misc/nvmlwrap.cc:248,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - device
    - major
    - minor
    argTypes:
    - nvmlDevice_t
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 247
    functionDepth: 2
    functionLinenumber: 247
    functionLinenumberEnd: 258
    functionName: ncclNvmlDeviceGetCudaComputeCapability
    functionSourceFile: /src/nccl/src/misc/nvmlwrap.cc
    functionUses: 0
    functionsReached:
    - ncclNvmlEnsureInitialized
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNvmlDeviceGetCudaComputeCapability(nvmlDevice_t device,
      int* major, int* minor)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/misc/nvmlwrap.cc:264,1
    - Dst: ncclNvmlEnsureInitialized
      Src: /src/nccl/src/misc/nvmlwrap.cc:264,1
    - Dst: NVMLCHECK
      Src: /src/nccl/src/misc/nvmlwrap.cc:280,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 4
    argNames:
    - device1
    - device2
    - p2pIndex
    - p2pStatus
    argTypes:
    - nvmlDevice_t
    - nvmlDevice_t
    - nvmlGpuP2PCapsIndex_t
    - nvmlGpuP2PStatus_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 283
      start: 260
    functionDepth: 2
    functionLinenumber: 260
    functionLinenumberEnd: 283
    functionName: ncclNvmlDeviceGetP2PStatus
    functionSourceFile: /src/nccl/src/misc/nvmlwrap.cc
    functionUses: 0
    functionsReached:
    - NVMLCHECK
    - ncclNvmlEnsureInitialized
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclNvmlDeviceGetP2PStatus(\n    nvmlDevice_t device1,
      nvmlDevice_t device2, nvmlGpuP2PCapsIndex_t p2pIndex,\n    nvmlGpuP2PStatus_t*
      p2pStatus\n  )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/misc/nvmlwrap.cc:286,1
    - Dst: ncclNvmlEnsureInitialized
      Src: /src/nccl/src/misc/nvmlwrap.cc:286,1
    - Dst: NVMLTRY
      Src: /src/nccl/src/misc/nvmlwrap.cc:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - device
    - valuesCount
    - values
    argTypes:
    - nvmlDevice_t
    - int
    - nvmlFieldValue_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 285
    functionDepth: 2
    functionLinenumber: 285
    functionLinenumberEnd: 290
    functionName: ncclNvmlDeviceGetFieldValues
    functionSourceFile: /src/nccl/src/misc/nvmlwrap.cc
    functionUses: 0
    functionsReached:
    - ncclNvmlEnsureInitialized
    - NVMLTRY
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNvmlDeviceGetFieldValues(nvmlDevice_t device, int
      valuesCount, nvmlFieldValue_t *values)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/misc/nvmlwrap.cc:294,1
    - Dst: ncclNvmlEnsureInitialized
      Src: /src/nccl/src/misc/nvmlwrap.cc:294,1
    - Dst: NVMLTRY
      Src: /src/nccl/src/misc/nvmlwrap.cc:297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - device
    - gpuFabricInfo
    argTypes:
    - nvmlDevice_t
    - nvmlGpuFabricInfoV_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 293
    functionDepth: 2
    functionLinenumber: 293
    functionLinenumberEnd: 299
    functionName: ncclNvmlDeviceGetGpuFabricInfoV
    functionSourceFile: /src/nccl/src/misc/nvmlwrap.cc
    functionUses: 1
    functionsReached:
    - ncclNvmlEnsureInitialized
    - NVMLTRY
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNvmlDeviceGetGpuFabricInfoV(nvmlDevice_t device, nvmlGpuFabricInfoV_t
      *gpuFabricInfo)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/misc/nvmlwrap.cc:302,1
    - Dst: ncclNvmlEnsureInitialized
      Src: /src/nccl/src/misc/nvmlwrap.cc:302,1
    - Dst: NVMLTRY
      Src: /src/nccl/src/misc/nvmlwrap.cc:307,1
    - Dst: NVMLTRY
      Src: /src/nccl/src/misc/nvmlwrap.cc:318,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 1
    argNames:
    - status
    argTypes:
    - struct ncclNvmlCCStatus*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 301
    functionDepth: 2
    functionLinenumber: 301
    functionLinenumberEnd: 329
    functionName: ncclNvmlGetCCStatus
    functionSourceFile: /src/nccl/src/misc/nvmlwrap.cc
    functionUses: 1
    functionsReached:
    - ncclNvmlEnsureInitialized
    - NVMLTRY
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclNvmlGetCCStatus(struct ncclNvmlCCStatus *status)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: socket
      Src: /src/nccl/src/misc/ipcsocket.cc:32,1
    - Dst: WARN
      Src: /src/nccl/src/misc/ipcsocket.cc:33,1
    - Dst: strerror
      Src: /src/nccl/src/misc/ipcsocket.cc:33,1
    - Dst: bzero
      Src: /src/nccl/src/misc/ipcsocket.cc:37,1
    - Dst: snprintf
      Src: /src/nccl/src/misc/ipcsocket.cc:41,1
    - Dst: WARN
      Src: /src/nccl/src/misc/ipcsocket.cc:43,1
    - Dst: close
      Src: /src/nccl/src/misc/ipcsocket.cc:44,1
    - Dst: unlink
      Src: /src/nccl/src/misc/ipcsocket.cc:48,1
    - Dst: TRACE
      Src: /src/nccl/src/misc/ipcsocket.cc:51,1
    - Dst: strncpy
      Src: /src/nccl/src/misc/ipcsocket.cc:53,1
    - Dst: bind
      Src: /src/nccl/src/misc/ipcsocket.cc:57,1
    - Dst: WARN
      Src: /src/nccl/src/misc/ipcsocket.cc:58,1
    - Dst: strerror
      Src: /src/nccl/src/misc/ipcsocket.cc:58,1
    - Dst: close
      Src: /src/nccl/src/misc/ipcsocket.cc:59,1
    - Dst: strcpy
      Src: /src/nccl/src/misc/ipcsocket.cc:64,1
    - Dst: SYSCHECK
      Src: /src/nccl/src/misc/ipcsocket.cc:70,1
    - Dst: fcntl
      Src: /src/nccl/src/misc/ipcsocket.cc:70,1
    - Dst: SYSCHECK
      Src: /src/nccl/src/misc/ipcsocket.cc:71,1
    - Dst: fcntl
      Src: /src/nccl/src/misc/ipcsocket.cc:71,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 34
    argCount: 4
    argNames:
    - handle
    - rank
    - hash
    - abortFlag
    argTypes:
    - ncclIpcSocket*
    - int
    - uint64_t
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 75
    functionName: ncclIpcSocketInit
    functionSourceFile: /src/nccl/src/misc/ipcsocket.cc
    functionUses: 4
    functionsReached:
    - WARN
    - TRACE
    - socket
    - strncpy
    - fcntl
    - close
    - SYSCHECK
    - strcpy
    - unlink
    - bzero
    - strerror
    - bind
    - snprintf
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIpcSocketInit(ncclIpcSocket *handle, int rank, uint64_t
      hash, volatile uint32_t* abortFlag)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/misc/ipcsocket.cc:79,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - handle
    - fd
    argTypes:
    - struct ncclIpcSocket*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 84
    functionName: ncclIpcSocketGetFd
    functionSourceFile: /src/nccl/src/misc/ipcsocket.cc
    functionUses: 2
    functionsReached:
    - WARN
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIpcSocketGetFd(struct ncclIpcSocket* handle, int*
      fd)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: unlink
      Src: /src/nccl/src/misc/ipcsocket.cc:95,1
    - Dst: close
      Src: /src/nccl/src/misc/ipcsocket.cc:98,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - handle
    argTypes:
    - ncclIpcSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 101
    functionName: ncclIpcSocketClose
    functionSourceFile: /src/nccl/src/misc/ipcsocket.cc
    functionUses: 4
    functionsReached:
    - close
    - unlink
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIpcSocketClose(ncclIpcSocket *handle)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: CMSG_SPACE
      Src: /src/nccl/src/misc/ipcsocket.cc:110,1
    - Dst: recvmsg
      Src: /src/nccl/src/misc/ipcsocket.cc:131,1
    - Dst: WARN
      Src: /src/nccl/src/misc/ipcsocket.cc:133,1
    - Dst: __atomic_load_n
      Src: /src/nccl/src/misc/ipcsocket.cc:136,1
    - Dst: CMSG_FIRSTHDR
      Src: /src/nccl/src/misc/ipcsocket.cc:140,1
    - Dst: CMSG_LEN
      Src: /src/nccl/src/misc/ipcsocket.cc:140,1
    - Dst: WARN
      Src: /src/nccl/src/misc/ipcsocket.cc:142,1
    - Dst: memmove
      Src: /src/nccl/src/misc/ipcsocket.cc:146,1
    - Dst: CMSG_DATA
      Src: /src/nccl/src/misc/ipcsocket.cc:146,1
    - Dst: WARN
      Src: /src/nccl/src/misc/ipcsocket.cc:148,1
    - Dst: TRACE
      Src: /src/nccl/src/misc/ipcsocket.cc:151,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 34
    argCount: 4
    argNames:
    - handle
    - hdr
    - hdrLen
    - recvFd
    argTypes:
    - ncclIpcSocket*
    - void*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 155
    functionName: ncclIpcSocketRecvMsg
    functionSourceFile: /src/nccl/src/misc/ipcsocket.cc
    functionUses: 2
    functionsReached:
    - WARN
    - CMSG_SPACE
    - __atomic_load_n
    - TRACE
    - recvmsg
    - CMSG_DATA
    - memmove
    - CMSG_FIRSTHDR
    - CMSG_LEN
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIpcSocketRecvMsg(ncclIpcSocket *handle, void *hdr,
      int hdrLen, int *recvFd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclIpcSocketRecvMsg
      Src: /src/nccl/src/misc/ipcsocket.cc:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - handle
    - recvFd
    argTypes:
    - ncclIpcSocket*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 157
    functionDepth: 2
    functionLinenumber: 157
    functionLinenumberEnd: 159
    functionName: ncclIpcSocketRecvFd
    functionSourceFile: /src/nccl/src/misc/ipcsocket.cc
    functionUses: 0
    functionsReached:
    - ncclIpcSocketRecvMsg
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIpcSocketRecvFd(ncclIpcSocket *handle, int *recvFd)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: CMSG_SPACE
      Src: /src/nccl/src/misc/ipcsocket.cc:168,1
    - Dst: bzero
      Src: /src/nccl/src/misc/ipcsocket.cc:176,1
    - Dst: snprintf
      Src: /src/nccl/src/misc/ipcsocket.cc:179,1
    - Dst: WARN
      Src: /src/nccl/src/misc/ipcsocket.cc:181,1
    - Dst: strncpy
      Src: /src/nccl/src/misc/ipcsocket.cc:184,1
    - Dst: TRACE
      Src: /src/nccl/src/misc/ipcsocket.cc:190,1
    - Dst: memset
      Src: /src/nccl/src/misc/ipcsocket.cc:193,1
    - Dst: CMSG_FIRSTHDR
      Src: /src/nccl/src/misc/ipcsocket.cc:197,1
    - Dst: CMSG_LEN
      Src: /src/nccl/src/misc/ipcsocket.cc:198,1
    - Dst: memmove
      Src: /src/nccl/src/misc/ipcsocket.cc:201,1
    - Dst: CMSG_DATA
      Src: /src/nccl/src/misc/ipcsocket.cc:201,1
    - Dst: sendmsg
      Src: /src/nccl/src/misc/ipcsocket.cc:219,1
    - Dst: WARN
      Src: /src/nccl/src/misc/ipcsocket.cc:221,1
    - Dst: strerror
      Src: /src/nccl/src/misc/ipcsocket.cc:221,1
    - Dst: __atomic_load_n
      Src: /src/nccl/src/misc/ipcsocket.cc:224,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 41
    argCount: 6
    argNames:
    - handle
    - hdr
    - hdrLen
    - sendFd
    - rank
    - hash
    argTypes:
    - ncclIpcSocket*
    - void*
    - int
    - int
    - int
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 228
    functionName: ncclIpcSocketSendMsg
    functionSourceFile: /src/nccl/src/misc/ipcsocket.cc
    functionUses: 2
    functionsReached:
    - WARN
    - CMSG_SPACE
    - TRACE
    - __atomic_load_n
    - sendmsg
    - strncpy
    - memmove
    - CMSG_DATA
    - CMSG_FIRSTHDR
    - memset
    - CMSG_LEN
    - bzero
    - strerror
    - snprintf
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIpcSocketSendMsg(ncclIpcSocket *handle, void *hdr,
      int hdrLen, const int sendFd, int rank, uint64_t hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclIpcSocketSendMsg
      Src: /src/nccl/src/misc/ipcsocket.cc:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - handle
    - sendFd
    - rank
    - hash
    argTypes:
    - ncclIpcSocket*
    - int
    - int
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 230
    functionDepth: 2
    functionLinenumber: 230
    functionLinenumberEnd: 232
    functionName: ncclIpcSocketSendFd
    functionSourceFile: /src/nccl/src/misc/ipcsocket.cc
    functionUses: 1
    functionsReached:
    - ncclIpcSocketSendMsg
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclIpcSocketSendFd(ncclIpcSocket *handle, const int sendFd,
      int rank, uint64_t hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pthread_once
      Src: /src/nccl/src/misc/ibvwrap.cc:23,1
    - Dst: buildIbvSymbols
      Src: /src/nccl/src/misc/ibvwrap.cc:24,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 22
    functionDepth: 1
    functionLinenumber: 22
    functionLinenumberEnd: 26
    functionName: wrap_ibv_symbols
    functionSourceFile: /src/nccl/src/misc/ibvwrap.cc
    functionUses: 1
    functionsReached:
    - pthread_once
    - buildIbvSymbols
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t wrap_ibv_symbols(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - container
    - ','
    - internal_name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 34
    functionName: CHECK_NOT_NULL
    functionSourceFile: /src/nccl/src/misc/ibvwrap.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_NOT_NULL(container, internal_name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - container
    - ','
    - internal_name
    - ','
    - call
    - ','
    - retval
    - ','
    - error_retval
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 43
    functionName: IBV_PTR_CHECK_ERRNO
    functionSourceFile: /src/nccl/src/misc/ibvwrap.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IBV_PTR_CHECK_ERRNO(container, internal_name, call, retval, error_retval,
      name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - container
    - ','
    - internal_name
    - ','
    - call
    - ','
    - retval
    - ','
    - error_retval
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 52
    functionName: IBV_PTR_CHECK
    functionSourceFile: /src/nccl/src/misc/ibvwrap.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IBV_PTR_CHECK(container, internal_name, call, retval, error_retval,
      name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - container
    - ','
    - internal_name
    - ','
    - call
    - ','
    - success_retval
    - ','
    - name
    - ','
    - supported
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 71
    functionName: IBV_INT_CHECK_RET_ERRNO_OPTIONAL
    functionSourceFile: /src/nccl/src/misc/ibvwrap.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IBV_INT_CHECK_RET_ERRNO_OPTIONAL(container, internal_name, call, success_retval,
      name, supported)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - container
    - ','
    - internal_name
    - ','
    - call
    - ','
    - success_retval
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 80
    functionName: IBV_INT_CHECK_RET_ERRNO
    functionSourceFile: /src/nccl/src/misc/ibvwrap.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IBV_INT_CHECK_RET_ERRNO(container, internal_name, call, success_retval,
      name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - container
    - ','
    - internal_name
    - ','
    - call
    - ','
    - error_retval
    - ','
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 89
    functionName: IBV_INT_CHECK
    functionSourceFile: /src/nccl/src/misc/ibvwrap.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IBV_INT_CHECK(container, internal_name, call, error_retval, name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - container
    - ','
    - internal_name
    - ','
    - call
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 94
    functionName: IBV_PASSTHRU
    functionSourceFile: /src/nccl/src/misc/ibvwrap.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IBV_PASSTHRU(container, internal_name, call)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - e
    - ','
    - code
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 100
    functionName: IBV_ERR_EQ
    functionSourceFile: /src/nccl/src/misc/ibvwrap.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IBV_ERR_EQ(e, code)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 101
    functionName: IBV_MQP_RETRY_ERRNO
    functionSourceFile: /src/nccl/src/misc/ibvwrap.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IBV_MQP_RETRY_ERRNO(e)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - e
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 102
    functionName: IBV_MQP_RETRY_ERRNO_ALL
    functionSourceFile: /src/nccl/src/misc/ibvwrap.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: IBV_MQP_RETRY_ERRNO_ALL(e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IBV_INT_CHECK
      Src: /src/nccl/src/misc/ibvwrap.cc:104,1
    - Dst: ibv_internal_fork_init
      Src: /src/nccl/src/misc/ibvwrap.cc:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 105
    functionName: wrap_ibv_fork_init
    functionSourceFile: /src/nccl/src/misc/ibvwrap.cc
    functionUses: 1
    functionsReached:
    - ibv_internal_fork_init
    - IBV_INT_CHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t wrap_ibv_fork_init()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ibv_internal_get_device_list
      Src: /src/nccl/src/misc/ibvwrap.cc:108,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ret
    - num_devices
    argTypes:
    - struct ibv_device***
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 111
    functionName: wrap_ibv_get_device_list
    functionSourceFile: /src/nccl/src/misc/ibvwrap.cc
    functionUses: 1
    functionsReached:
    - ibv_internal_get_device_list
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t wrap_ibv_get_device_list(struct ibv_device ***ret, int
      *num_devices)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IBV_PASSTHRU
      Src: /src/nccl/src/misc/ibvwrap.cc:114,1
    - Dst: ibv_internal_free_device_list
      Src: /src/nccl/src/misc/ibvwrap.cc:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - list
    argTypes:
    - struct ibv_device**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 115
    functionName: wrap_ibv_free_device_list
    functionSourceFile: /src/nccl/src/misc/ibvwrap.cc
    functionUses: 1
    functionsReached:
    - ibv_internal_free_device_list
    - IBV_PASSTHRU
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t wrap_ibv_free_device_list(struct ibv_device **list)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/misc/ibvwrap.cc:119,1
    - Dst: exit
      Src: /src/nccl/src/misc/ibvwrap.cc:120,1
    - Dst: ibv_internal_get_device_name
      Src: /src/nccl/src/misc/ibvwrap.cc:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - device
    argTypes:
    - struct ibv_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 123
    functionName: wrap_ibv_get_device_name
    functionSourceFile: /src/nccl/src/misc/ibvwrap.cc
    functionUses: 1
    functionsReached:
    - WARN
    - exit
    - ibv_internal_get_device_name
    linkageType: ''
    returnType: char
    signature: char *wrap_ibv_get_device_name(struct ibv_device *device)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IBV_PTR_CHECK
      Src: /src/nccl/src/misc/ibvwrap.cc:126,1
    - Dst: ibv_internal_open_device
      Src: /src/nccl/src/misc/ibvwrap.cc:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ret
    - device
    argTypes:
    - struct ibv_context**
    - struct ibv_device*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 127
    functionName: wrap_ibv_open_device
    functionSourceFile: /src/nccl/src/misc/ibvwrap.cc
    functionUses: 1
    functionsReached:
    - ibv_internal_open_device
    - IBV_PTR_CHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t wrap_ibv_open_device(struct ibv_context **ret, struct
      ibv_device *device)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IBV_INT_CHECK
      Src: /src/nccl/src/misc/ibvwrap.cc:130,1
    - Dst: ibv_internal_close_device
      Src: /src/nccl/src/misc/ibvwrap.cc:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - context
    argTypes:
    - struct ibv_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 131
    functionName: wrap_ibv_close_device
    functionSourceFile: /src/nccl/src/misc/ibvwrap.cc
    functionUses: 1
    functionsReached:
    - ibv_internal_close_device
    - IBV_INT_CHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t wrap_ibv_close_device(struct ibv_context *context)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IBV_INT_CHECK
      Src: /src/nccl/src/misc/ibvwrap.cc:134,1
    - Dst: ibv_internal_get_async_event
      Src: /src/nccl/src/misc/ibvwrap.cc:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - context
    - event
    argTypes:
    - struct ibv_context*
    - struct ibv_async_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 135
    functionName: wrap_ibv_get_async_event
    functionSourceFile: /src/nccl/src/misc/ibvwrap.cc
    functionUses: 1
    functionsReached:
    - ibv_internal_get_async_event
    - IBV_INT_CHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t wrap_ibv_get_async_event(struct ibv_context *context,
      struct ibv_async_event *event)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IBV_PASSTHRU
      Src: /src/nccl/src/misc/ibvwrap.cc:138,1
    - Dst: ibv_internal_ack_async_event
      Src: /src/nccl/src/misc/ibvwrap.cc:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - event
    argTypes:
    - struct ibv_async_event*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 139
    functionName: wrap_ibv_ack_async_event
    functionSourceFile: /src/nccl/src/misc/ibvwrap.cc
    functionUses: 1
    functionsReached:
    - ibv_internal_ack_async_event
    - IBV_PASSTHRU
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t wrap_ibv_ack_async_event(struct ibv_async_event *event)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IBV_INT_CHECK_RET_ERRNO
      Src: /src/nccl/src/misc/ibvwrap.cc:142,1
    - Dst: ibv_internal_query_device
      Src: /src/nccl/src/misc/ibvwrap.cc:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - context
    - device_attr
    argTypes:
    - struct ibv_context*
    - struct ibv_device_attr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 143
    functionName: wrap_ibv_query_device
    functionSourceFile: /src/nccl/src/misc/ibvwrap.cc
    functionUses: 1
    functionsReached:
    - IBV_INT_CHECK_RET_ERRNO
    - ibv_internal_query_device
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t wrap_ibv_query_device(struct ibv_context *context, struct
      ibv_device_attr *device_attr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ibv_query_port_ex
      Src: /src/nccl/src/misc/ibvwrap.cc:147,1
    - Dst: memset
      Src: /src/nccl/src/misc/ibvwrap.cc:149,1
    - Dst: IBV_INT_CHECK_RET_ERRNO
      Src: /src/nccl/src/misc/ibvwrap.cc:150,1
    - Dst: ibv_internal_query_port
      Src: /src/nccl/src/misc/ibvwrap.cc:150,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - context
    - port_num
    - port_attr
    argTypes:
    - struct ibv_context*
    - uint8_t
    - struct ibv_port_attr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 145
    functionDepth: 2
    functionLinenumber: 145
    functionLinenumberEnd: 153
    functionName: wrap_ibv_query_port
    functionSourceFile: /src/nccl/src/misc/ibvwrap.cc
    functionUses: 1
    functionsReached:
    - memset
    - IBV_INT_CHECK_RET_ERRNO
    - ibv_internal_query_port
    - ibv_query_port_ex
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t wrap_ibv_query_port(struct ibv_context *context, uint8_t
      port_num, struct ibv_port_attr *port_attr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IBV_INT_CHECK_RET_ERRNO
      Src: /src/nccl/src/misc/ibvwrap.cc:156,1
    - Dst: ibv_internal_query_gid
      Src: /src/nccl/src/misc/ibvwrap.cc:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - context
    - port_num
    - index
    - gid
    argTypes:
    - struct ibv_context*
    - uint8_t
    - int
    - union ibv_gid*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 157
    functionName: wrap_ibv_query_gid
    functionSourceFile: /src/nccl/src/misc/ibvwrap.cc
    functionUses: 4
    functionsReached:
    - IBV_INT_CHECK_RET_ERRNO
    - ibv_internal_query_gid
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t wrap_ibv_query_gid(struct ibv_context *context, uint8_t
      port_num, int index, union ibv_gid *gid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IBV_INT_CHECK_RET_ERRNO
      Src: /src/nccl/src/misc/ibvwrap.cc:160,1
    - Dst: ibv_internal_query_qp
      Src: /src/nccl/src/misc/ibvwrap.cc:160,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - qp
    - attr
    - attr_mask
    - init_attr
    argTypes:
    - struct ibv_qp*
    - struct ibv_qp_attr*
    - int
    - struct ibv_qp_init_attr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 161
    functionName: wrap_ibv_query_qp
    functionSourceFile: /src/nccl/src/misc/ibvwrap.cc
    functionUses: 0
    functionsReached:
    - IBV_INT_CHECK_RET_ERRNO
    - ibv_internal_query_qp
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t wrap_ibv_query_qp(struct ibv_qp *qp, struct ibv_qp_attr
      *attr, int attr_mask, struct ibv_qp_init_attr *init_attr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IBV_PTR_CHECK_ERRNO
      Src: /src/nccl/src/misc/ibvwrap.cc:164,1
    - Dst: ibv_internal_alloc_pd
      Src: /src/nccl/src/misc/ibvwrap.cc:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ret
    - context
    argTypes:
    - struct ibv_pd**
    - struct ibv_context*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 165
    functionName: wrap_ibv_alloc_pd
    functionSourceFile: /src/nccl/src/misc/ibvwrap.cc
    functionUses: 3
    functionsReached:
    - IBV_PTR_CHECK_ERRNO
    - ibv_internal_alloc_pd
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t wrap_ibv_alloc_pd(struct ibv_pd **ret, struct ibv_context
      *context)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IBV_INT_CHECK_RET_ERRNO
      Src: /src/nccl/src/misc/ibvwrap.cc:168,1
    - Dst: ibv_internal_dealloc_pd
      Src: /src/nccl/src/misc/ibvwrap.cc:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pd
    argTypes:
    - struct ibv_pd*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 167
    functionDepth: 1
    functionLinenumber: 167
    functionLinenumberEnd: 169
    functionName: wrap_ibv_dealloc_pd
    functionSourceFile: /src/nccl/src/misc/ibvwrap.cc
    functionUses: 3
    functionsReached:
    - IBV_INT_CHECK_RET_ERRNO
    - ibv_internal_dealloc_pd
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t wrap_ibv_dealloc_pd(struct ibv_pd *pd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IBV_PTR_CHECK_ERRNO
      Src: /src/nccl/src/misc/ibvwrap.cc:172,1
    - Dst: ibv_internal_reg_mr
      Src: /src/nccl/src/misc/ibvwrap.cc:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ret
    - pd
    - addr
    - length
    - access
    argTypes:
    - struct ibv_mr**
    - struct ibv_pd*
    - void*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 173
    functionName: wrap_ibv_reg_mr
    functionSourceFile: /src/nccl/src/misc/ibvwrap.cc
    functionUses: 3
    functionsReached:
    - IBV_PTR_CHECK_ERRNO
    - ibv_internal_reg_mr
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t wrap_ibv_reg_mr(struct ibv_mr **ret, struct ibv_pd *pd,
      void *addr, size_t length, int access)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/misc/ibvwrap.cc:177,1
    - Dst: ibv_internal_reg_mr
      Src: /src/nccl/src/misc/ibvwrap.cc:180,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - pd
    - addr
    - length
    - access
    argTypes:
    - struct ibv_pd*
    - void*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 181
    functionName: wrap_direct_ibv_reg_mr
    functionSourceFile: /src/nccl/src/misc/ibvwrap.cc
    functionUses: 0
    functionsReached:
    - WARN
    - ibv_internal_reg_mr
    linkageType: ''
    returnType: struct ibv_mr
    signature: struct ibv_mr * wrap_direct_ibv_reg_mr(struct ibv_pd *pd, void *addr,
      size_t length, int access)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: IBV_PTR_CHECK_ERRNO
      Src: /src/nccl/src/misc/ibvwrap.cc:188,1
    - Dst: ibv_internal_reg_mr_iova2
      Src: /src/nccl/src/misc/ibvwrap.cc:188,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 6
    argNames:
    - ret
    - pd
    - addr
    - length
    - iova
    - access
    argTypes:
    - struct ibv_mr**
    - struct ibv_pd*
    - void*
    - size_t
    - uint64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 189
    functionName: wrap_ibv_reg_mr_iova2
    functionSourceFile: /src/nccl/src/misc/ibvwrap.cc
    functionUses: 2
    functionsReached:
    - IBV_PTR_CHECK_ERRNO
    - ibv_internal_reg_mr_iova2
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t wrap_ibv_reg_mr_iova2(struct ibv_mr **ret, struct ibv_pd
      *pd, void *addr, size_t length, uint64_t iova, int access)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IBV_PTR_CHECK_ERRNO
      Src: /src/nccl/src/misc/ibvwrap.cc:193,1
    - Dst: ibv_internal_reg_dmabuf_mr
      Src: /src/nccl/src/misc/ibvwrap.cc:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - ret
    - pd
    - offset
    - length
    - iova
    - fd
    - access
    argTypes:
    - struct ibv_mr**
    - struct ibv_pd*
    - uint64_t
    - size_t
    - uint64_t
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 194
    functionName: wrap_ibv_reg_dmabuf_mr
    functionSourceFile: /src/nccl/src/misc/ibvwrap.cc
    functionUses: 1
    functionsReached:
    - IBV_PTR_CHECK_ERRNO
    - ibv_internal_reg_dmabuf_mr
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t wrap_ibv_reg_dmabuf_mr(struct ibv_mr **ret, struct ibv_pd
      *pd, uint64_t offset, size_t length, uint64_t iova, int fd, int access)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ibv_internal_reg_dmabuf_mr
      Src: /src/nccl/src/misc/ibvwrap.cc:201,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 6
    argNames:
    - pd
    - offset
    - length
    - iova
    - fd
    - access
    argTypes:
    - struct ibv_pd*
    - uint64_t
    - size_t
    - uint64_t
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 202
    functionName: wrap_direct_ibv_reg_dmabuf_mr
    functionSourceFile: /src/nccl/src/misc/ibvwrap.cc
    functionUses: 2
    functionsReached:
    - ibv_internal_reg_dmabuf_mr
    linkageType: ''
    returnType: struct ibv_mr
    signature: struct ibv_mr * wrap_direct_ibv_reg_dmabuf_mr(struct ibv_pd *pd, uint64_t
      offset, size_t length, uint64_t iova, int fd, int access)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IBV_INT_CHECK_RET_ERRNO
      Src: /src/nccl/src/misc/ibvwrap.cc:205,1
    - Dst: ibv_internal_dereg_mr
      Src: /src/nccl/src/misc/ibvwrap.cc:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mr
    argTypes:
    - struct ibv_mr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 206
    functionName: wrap_ibv_dereg_mr
    functionSourceFile: /src/nccl/src/misc/ibvwrap.cc
    functionUses: 3
    functionsReached:
    - ibv_internal_dereg_mr
    - IBV_INT_CHECK_RET_ERRNO
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t wrap_ibv_dereg_mr(struct ibv_mr *mr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IBV_PTR_CHECK_ERRNO
      Src: /src/nccl/src/misc/ibvwrap.cc:209,1
    - Dst: ibv_internal_create_cq
      Src: /src/nccl/src/misc/ibvwrap.cc:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - ret
    - context
    - cqe
    - cq_context
    - channel
    - comp_vector
    argTypes:
    - struct ibv_cq**
    - struct ibv_context*
    - int
    - void*
    - struct ibv_comp_channel*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 210
    functionName: wrap_ibv_create_cq
    functionSourceFile: /src/nccl/src/misc/ibvwrap.cc
    functionUses: 1
    functionsReached:
    - IBV_PTR_CHECK_ERRNO
    - ibv_internal_create_cq
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t wrap_ibv_create_cq(struct ibv_cq **ret, struct ibv_context
      *context, int cqe, void *cq_context, struct ibv_comp_channel *channel, int comp_vector)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IBV_INT_CHECK_RET_ERRNO
      Src: /src/nccl/src/misc/ibvwrap.cc:213,1
    - Dst: ibv_internal_destroy_cq
      Src: /src/nccl/src/misc/ibvwrap.cc:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cq
    argTypes:
    - struct ibv_cq*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 214
    functionName: wrap_ibv_destroy_cq
    functionSourceFile: /src/nccl/src/misc/ibvwrap.cc
    functionUses: 1
    functionsReached:
    - IBV_INT_CHECK_RET_ERRNO
    - ibv_internal_destroy_cq
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t wrap_ibv_destroy_cq(struct ibv_cq *cq)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IBV_INT_CHECK_RET_ERRNO
      Src: /src/nccl/src/misc/ibvwrap.cc:217,1
    - Dst: ibv_internal_destroy_qp
      Src: /src/nccl/src/misc/ibvwrap.cc:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - qp
    argTypes:
    - struct ibv_qp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 218
    functionName: wrap_ibv_destroy_qp
    functionSourceFile: /src/nccl/src/misc/ibvwrap.cc
    functionUses: 2
    functionsReached:
    - IBV_INT_CHECK_RET_ERRNO
    - ibv_internal_destroy_qp
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t wrap_ibv_destroy_qp(struct ibv_qp *qp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IBV_PTR_CHECK_ERRNO
      Src: /src/nccl/src/misc/ibvwrap.cc:221,1
    - Dst: ibv_internal_create_qp
      Src: /src/nccl/src/misc/ibvwrap.cc:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ret
    - pd
    - qp_init_attr
    argTypes:
    - struct ibv_qp**
    - struct ibv_pd*
    - struct ibv_qp_init_attr*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 222
    functionName: wrap_ibv_create_qp
    functionSourceFile: /src/nccl/src/misc/ibvwrap.cc
    functionUses: 1
    functionsReached:
    - IBV_PTR_CHECK_ERRNO
    - ibv_internal_create_qp
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t wrap_ibv_create_qp(struct ibv_qp **ret, struct ibv_pd
      *pd, struct ibv_qp_init_attr *qp_init_attr)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/nccl/src/misc/ibvwrap.cc:226,1
    - Dst: snprintf
      Src: /src/nccl/src/misc/ibvwrap.cc:227,1
    - Dst: snprintf
      Src: /src/nccl/src/misc/ibvwrap.cc:228,1
    - Dst: snprintf
      Src: /src/nccl/src/misc/ibvwrap.cc:229,1
    - Dst: snprintf
      Src: /src/nccl/src/misc/ibvwrap.cc:230,1
    - Dst: snprintf
      Src: /src/nccl/src/misc/ibvwrap.cc:231,1
    - Dst: snprintf
      Src: /src/nccl/src/misc/ibvwrap.cc:232,1
    - Dst: snprintf
      Src: /src/nccl/src/misc/ibvwrap.cc:233,1
    - Dst: snprintf
      Src: /src/nccl/src/misc/ibvwrap.cc:234,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 3
    argNames:
    - state
    - msg
    - len
    argTypes:
    - enum ibv_qp_state
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 236
    functionName: ibvQpStateName
    functionSourceFile: /src/nccl/src/misc/ibvwrap.cc
    functionUses: 0
    functionsReached:
    - snprintf
    linkageType: ''
    returnType: void
    signature: void ibvQpStateName(enum ibv_qp_state state, char* msg, const size_t
      len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - attr
    - ','
    - userAttr
    - ','
    - userFlag
    - ','
    - mask
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 238
    functionDepth: 0
    functionLinenumber: 238
    functionLinenumberEnd: 239
    functionName: QP_ATTR
    functionSourceFile: /src/nccl/src/misc/ibvwrap.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: QP_ATTR(attr, userAttr, userFlag, mask)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ibvQpStateName
      Src: /src/nccl/src/misc/ibvwrap.cc:247,1
    - Dst: ibvQpStateName
      Src: /src/nccl/src/misc/ibvwrap.cc:248,1
    - Dst: snprintf
      Src: /src/nccl/src/misc/ibvwrap.cc:250,1
    - Dst: wrap_ibv_get_device_name
      Src: /src/nccl/src/misc/ibvwrap.cc:250,1
    - Dst: wrap_ibv_query_qp
      Src: /src/nccl/src/misc/ibvwrap.cc:255,1
    - Dst: QP_ATTR
      Src: /src/nccl/src/misc/ibvwrap.cc:259,1
    - Dst: QP_ATTR
      Src: /src/nccl/src/misc/ibvwrap.cc:263,1
    - Dst: ibvGetGidStr
      Src: /src/nccl/src/misc/ibvwrap.cc:266,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/misc/ibvwrap.cc:271,1
    - Dst: wrap_ibv_query_gid
      Src: /src/nccl/src/misc/ibvwrap.cc:271,1
    - Dst: ibvGetGidStr
      Src: /src/nccl/src/misc/ibvwrap.cc:272,1
    - Dst: snprintf
      Src: /src/nccl/src/misc/ibvwrap.cc:276,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 6
    argNames:
    - qp
    - qpState
    - userAttr
    - userFlag
    - msg
    - msgLen
    argTypes:
    - struct ibv_qp*
    - enum ibv_qp_state
    - struct ibv_qp_attr*
    - int
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 240
    functionDepth: 2
    functionLinenumber: 240
    functionLinenumberEnd: 279
    functionName: ibvModifyQpLog
    functionSourceFile: /src/nccl/src/misc/ibvwrap.cc
    functionUses: 0
    functionsReached:
    - NCCLCHECKGOTO
    - QP_ATTR
    - wrap_ibv_query_gid
    - ibvQpStateName
    - ibvGetGidStr
    - snprintf
    - wrap_ibv_query_qp
    - wrap_ibv_get_device_name
    linkageType: ''
    returnType: void
    signature: void ibvModifyQpLog(struct ibv_qp* qp, enum ibv_qp_state qpState, struct
      ibv_qp_attr* userAttr, int userFlag, char* msg, size_t msgLen)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ncclParamIbMQpRetryCnt
      Src: /src/nccl/src/misc/ibvwrap.cc:284,1
    - Dst: ncclParamIbMQpRetryTimeout
      Src: /src/nccl/src/misc/ibvwrap.cc:285,1
    - Dst: CHECK_NOT_NULL
      Src: /src/nccl/src/misc/ibvwrap.cc:286,1
    - Dst: ibvModifyQpLog
      Src: /src/nccl/src/misc/ibvwrap.cc:290,1
    - Dst: INFO
      Src: /src/nccl/src/misc/ibvwrap.cc:291,1
    - Dst: strerror
      Src: /src/nccl/src/misc/ibvwrap.cc:291,1
    - Dst: nanosleep
      Src: /src/nccl/src/misc/ibvwrap.cc:294,1
    - Dst: ibv_internal_modify_qp
      Src: /src/nccl/src/misc/ibvwrap.cc:296,1
    - Dst: IBV_MQP_RETRY_ERRNO_ALL
      Src: /src/nccl/src/misc/ibvwrap.cc:298,1
    - Dst: ibvModifyQpLog
      Src: /src/nccl/src/misc/ibvwrap.cc:300,1
    - Dst: WARN
      Src: /src/nccl/src/misc/ibvwrap.cc:301,1
    - Dst: strerror
      Src: /src/nccl/src/misc/ibvwrap.cc:301,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - qp
    - attr
    - attr_mask
    argTypes:
    - struct ibv_qp*
    - struct ibv_qp_attr*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 281
    functionDepth: 3
    functionLinenumber: 281
    functionLinenumberEnd: 305
    functionName: wrap_ibv_modify_qp
    functionSourceFile: /src/nccl/src/misc/ibvwrap.cc
    functionUses: 3
    functionsReached:
    - INFO
    - WARN
    - nanosleep
    - ibv_internal_modify_qp
    - CHECK_NOT_NULL
    - ncclParamIbMQpRetryCnt
    - IBV_MQP_RETRY_ERRNO_ALL
    - ncclParamIbMQpRetryTimeout
    - strerror
    - ibvModifyQpLog
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t wrap_ibv_modify_qp(struct ibv_qp* qp, struct ibv_qp_attr*
      attr, int attr_mask)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IBV_INT_CHECK_RET_ERRNO_OPTIONAL
      Src: /src/nccl/src/misc/ibvwrap.cc:308,1
    - Dst: ibv_internal_query_ece
      Src: /src/nccl/src/misc/ibvwrap.cc:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - qp
    - ece
    - supported
    argTypes:
    - struct ibv_qp*
    - struct ibv_ece*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 307
    functionDepth: 1
    functionLinenumber: 307
    functionLinenumberEnd: 309
    functionName: wrap_ibv_query_ece
    functionSourceFile: /src/nccl/src/misc/ibvwrap.cc
    functionUses: 2
    functionsReached:
    - ibv_internal_query_ece
    - IBV_INT_CHECK_RET_ERRNO_OPTIONAL
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t wrap_ibv_query_ece(struct ibv_qp *qp, struct ibv_ece *ece,
      int* supported)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: IBV_INT_CHECK_RET_ERRNO_OPTIONAL
      Src: /src/nccl/src/misc/ibvwrap.cc:312,1
    - Dst: ibv_internal_set_ece
      Src: /src/nccl/src/misc/ibvwrap.cc:312,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - qp
    - ece
    - supported
    argTypes:
    - struct ibv_qp*
    - struct ibv_ece*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 311
    functionDepth: 1
    functionLinenumber: 311
    functionLinenumberEnd: 313
    functionName: wrap_ibv_set_ece
    functionSourceFile: /src/nccl/src/misc/ibvwrap.cc
    functionUses: 2
    functionsReached:
    - ibv_internal_set_ece
    - IBV_INT_CHECK_RET_ERRNO_OPTIONAL
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t wrap_ibv_set_ece(struct ibv_qp *qp, struct ibv_ece *ece,
      int* supported)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ibv_internal_event_type_str
      Src: /src/nccl/src/misc/ibvwrap.cc:316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ret
    - event
    argTypes:
    - char**
    - enum ibv_event_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 318
    functionName: wrap_ibv_event_type_str
    functionSourceFile: /src/nccl/src/misc/ibvwrap.cc
    functionUses: 1
    functionsReached:
    - ibv_internal_event_type_str
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t wrap_ibv_event_type_str(char **ret, enum ibv_event_type
      event)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/misc/argcheck.cc:30,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ptr
    - opname
    - ptrname
    argTypes:
    - void*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 34
    functionName: PtrCheck
    functionSourceFile: /src/nccl/src/misc/argcheck.cc
    functionUses: 9
    functionsReached:
    - WARN
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t PtrCheck(void* ptr, const char* opname, const char* ptrname)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/misc/argcheck.cc:37,1
    - Dst: PtrCheck
      Src: /src/nccl/src/misc/argcheck.cc:37,1
    - Dst: WARN
      Src: /src/nccl/src/misc/argcheck.cc:39,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - comm
    - opname
    - ptrname
    argTypes:
    - struct ncclComm*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 36
    functionDepth: 2
    functionLinenumber: 36
    functionLinenumberEnd: 43
    functionName: CommCheck
    functionSourceFile: /src/nccl/src/misc/argcheck.cc
    functionUses: 9
    functionsReached:
    - WARN
    - PtrCheck
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t CommCheck(struct ncclComm* comm, const char* opname, const
      char* ptrname)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/misc/argcheck.cc:48,1
    - Dst: WARN
      Src: /src/nccl/src/misc/argcheck.cc:52,1
    - Dst: WARN
      Src: /src/nccl/src/misc/argcheck.cc:61,1
    - Dst: ncclUserRedOpMangle
      Src: /src/nccl/src/misc/argcheck.cc:64,1
    - Dst: WARN
      Src: /src/nccl/src/misc/argcheck.cc:67,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/misc/argcheck.cc:74,1
    - Dst: CudaPtrCheck
      Src: /src/nccl/src/misc/argcheck.cc:74,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/misc/argcheck.cc:78,1
    - Dst: CudaPtrCheck
      Src: /src/nccl/src/misc/argcheck.cc:78,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/misc/argcheck.cc:81,1
    - Dst: CudaPtrCheck
      Src: /src/nccl/src/misc/argcheck.cc:81,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 31
    argCount: 1
    argNames:
    - info
    argTypes:
    - struct ncclInfo*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 86
    functionName: ArgsCheck
    functionSourceFile: /src/nccl/src/misc/argcheck.cc
    functionUses: 1
    functionsReached:
    - WARN
    - CudaPtrCheck
    - ncclUserRedOpMangle
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ArgsCheck(struct ncclInfo* info)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INFO
      Src: /src/nccl/src/ras/peers.cc:75,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/peers.cc:81,1
    - Dst: rasRanksConvertToPeers
      Src: /src/nccl/src/ras/peers.cc:81,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/peers.cc:84,1
    - Dst: rasPeersUpdate
      Src: /src/nccl/src/ras/peers.cc:84,1
    - Dst: INFO
      Src: /src/nccl/src/ras/peers.cc:86,1
    - Dst: memcmp
      Src: /src/nccl/src/ras/peers.cc:89,1
    - Dst: rasPeersDump
      Src: /src/nccl/src/ras/peers.cc:90,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/peers.cc:93,1
    - Dst: rasNetUpdatePeers
      Src: /src/nccl/src/ras/peers.cc:93,1
    - Dst: free
      Src: /src/nccl/src/ras/peers.cc:97,1
    - Dst: free
      Src: /src/nccl/src/ras/peers.cc:98,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - ranks
    - nranks
    argTypes:
    - struct rasRankInit*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 102
    functionName: rasLocalHandleAddRanks
    functionSourceFile: /src/nccl/src/ras/peers.cc
    functionUses: 0
    functionsReached:
    - INFO
    - NCCLCHECKGOTO
    - memcmp
    - free
    - rasPeersDump
    - rasPeersUpdate
    - rasNetUpdatePeers
    - rasRanksConvertToPeers
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t rasLocalHandleAddRanks(struct rasRankInit* ranks, int
      nranks)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nccl/src/ras/peers.cc:114,1
    - Dst: qsort
      Src: /src/nccl/src/ras/peers.cc:117,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/peers.cc:122,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/ras/peers.cc:122,1
    - Dst: memcmp
      Src: /src/nccl/src/ras/peers.cc:130,1
    - Dst: memcmp
      Src: /src/nccl/src/ras/peers.cc:137,1
    - Dst: assert
      Src: /src/nccl/src/ras/peers.cc:145,1
    - Dst: memcpy
      Src: /src/nccl/src/ras/peers.cc:146,1
    - Dst: ncclSocketsCompare
      Src: /src/nccl/src/ras/peers.cc:159,1
    - Dst: assert
      Src: /src/nccl/src/ras/peers.cc:175,1
    - Dst: assert
      Src: /src/nccl/src/ras/peers.cc:178,1
    - Dst: free
      Src: /src/nccl/src/ras/peers.cc:185,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 54
    argCount: 5
    argNames:
    - ranks
    - nranks
    - rankPeers
    - nRankPeers
    - newNRasPeers
    argTypes:
    - struct rasRankInit*
    - int
    - struct rasPeerInfo**
    - int*
    - int*
    assertStmts:
    - condition: (rankPeerIdx < nranks)
      pos:
        line_end: 144
        line_start: 144
        source_file: /src/nccl/src/ras/peers.cc
    - condition: (rank->pid == rasPeer->pid)
      pos:
        line_end: 174
        line_start: 174
        source_file: /src/nccl/src/ras/peers.cc
    - condition: (peerIdx <= nRasPeers)
      pos:
        line_end: 177
        line_start: 177
        source_file: /src/nccl/src/ras/peers.cc
    constantsTouched: []
    func_position:
      end: 189
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 189
    functionName: rasRanksConvertToPeers
    functionSourceFile: /src/nccl/src/ras/peers.cc
    functionUses: 1
    functionsReached:
    - NCCLCHECKGOTO
    - memcpy
    - memcmp
    - ncclSocketsCompare
    - free
    - qsort
    - assert
    - ncclCalloc
    - memset
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t rasRanksConvertToPeers(struct rasRankInit* ranks, int
      nranks,\n                                           struct rasPeerInfo** rankPeers,
      int *nRankPeers, int* newNRasPeers)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: ncclSocketsCompare
      Src: /src/nccl/src/ras/peers.cc:208,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/peers.cc:231,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/ras/peers.cc:231,1
    - Dst: ncclSocketsCompare
      Src: /src/nccl/src/ras/peers.cc:247,1
    - Dst: assert
      Src: /src/nccl/src/ras/peers.cc:251,1
    - Dst: assert
      Src: /src/nccl/src/ras/peers.cc:253,1
    - Dst: memcpy
      Src: /src/nccl/src/ras/peers.cc:254,1
    - Dst: assert
      Src: /src/nccl/src/ras/peers.cc:261,1
    - Dst: memcpy
      Src: /src/nccl/src/ras/peers.cc:262,1
    - Dst: assert
      Src: /src/nccl/src/ras/peers.cc:265,1
    - Dst: assert
      Src: /src/nccl/src/ras/peers.cc:289,1
    - Dst: memcpy
      Src: /src/nccl/src/ras/peers.cc:290,1
    - Dst: memcmp
      Src: /src/nccl/src/ras/peers.cc:293,1
    - Dst: assert
      Src: /src/nccl/src/ras/peers.cc:301,1
    - Dst: memcpy
      Src: /src/nccl/src/ras/peers.cc:302,1
    - Dst: assert
      Src: /src/nccl/src/ras/peers.cc:305,1
    - Dst: assert
      Src: /src/nccl/src/ras/peers.cc:313,1
    - Dst: free
      Src: /src/nccl/src/ras/peers.cc:317,1
    - Dst: assert
      Src: /src/nccl/src/ras/peers.cc:320,1
    - Dst: assert
      Src: /src/nccl/src/ras/peers.cc:323,1
    - Dst: getHash
      Src: /src/nccl/src/ras/peers.cc:325,1
    - Dst: memcpy
      Src: /src/nccl/src/ras/peers.cc:332,1
    - Dst: assert
      Src: /src/nccl/src/ras/peers.cc:337,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 104
    argCount: 3
    argNames:
    - rankPeers
    - nRankPeers
    - newNRasPeers
    argTypes:
    - struct rasPeerInfo*
    - int*
    - int
    assertStmts:
    - condition: (newRasPeer == rasPeer)
      pos:
        line_end: 304
        line_start: 304
        source_file: /src/nccl/src/ras/peers.cc
    - condition: (newPeerIdx < newNRasPeers)
      pos:
        line_end: 288
        line_start: 288
        source_file: /src/nccl/src/ras/peers.cc
    - condition: (newPeerIdx == newNRasPeers)
      pos:
        line_end: 312
        line_start: 312
        source_file: /src/nccl/src/ras/peers.cc
    - condition: (rankPeerIdxDst <= *nRankPeers)
      pos:
        line_end: 336
        line_start: 336
        source_file: /src/nccl/src/ras/peers.cc
    - condition: (newRasPeers != rasPeers)
      pos:
        line_end: 250
        line_start: 250
        source_file: /src/nccl/src/ras/peers.cc
    - condition: (newPeerIdx < newNRasPeers)
      pos:
        line_end: 252
        line_start: 252
        source_file: /src/nccl/src/ras/peers.cc
    - condition: (newPeerIdx < newNRasPeers)
      pos:
        line_end: 300
        line_start: 300
        source_file: /src/nccl/src/ras/peers.cc
    - condition: (myNewPeerIdx == myPeerIdx)
      pos:
        line_end: 322
        line_start: 322
        source_file: /src/nccl/src/ras/peers.cc
    - condition: (newPeerIdx < newNRasPeers)
      pos:
        line_end: 260
        line_start: 260
        source_file: /src/nccl/src/ras/peers.cc
    - condition: (newRasPeer == rasPeer)
      pos:
        line_end: 264
        line_start: 264
        source_file: /src/nccl/src/ras/peers.cc
    - condition: (myNewPeerIdx != -1)
      pos:
        line_end: 319
        line_start: 319
        source_file: /src/nccl/src/ras/peers.cc
    constantsTouched: []
    func_position:
      end: 344
      start: 194
    functionDepth: 2
    functionLinenumber: 194
    functionLinenumberEnd: 344
    functionName: rasPeersUpdate
    functionSourceFile: /src/nccl/src/ras/peers.cc
    functionUses: 1
    functionsReached:
    - NCCLCHECKGOTO
    - memcpy
    - ncclSocketsCompare
    - memcmp
    - free
    - getHash
    - assert
    - ncclCalloc
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t rasPeersUpdate(struct rasPeerInfo* rankPeers, int* nRankPeers,
      int newNRasPeers)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bsearch
      Src: /src/nccl/src/ras/peers.cc:349,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - addr
    argTypes:
    - union ncclSocketAddress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 352
    functionName: rasPeerFind
    functionSourceFile: /src/nccl/src/ras/peers.cc
    functionUses: 0
    functionsReached:
    - bsearch
    linkageType: ''
    returnType: int
    signature: int rasPeerFind(const union ncclSocketAddress* addr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rasLinkPropagateUpdate
      Src: /src/nccl/src/ras/peers.cc:377,1
    - Dst: rasLinkPropagateUpdate
      Src: /src/nccl/src/ras/peers.cc:378,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/peers.cc:381,1
    - Dst: rasLinkReinitConns
      Src: /src/nccl/src/ras/peers.cc:381,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/peers.cc:382,1
    - Dst: rasLinkReinitConns
      Src: /src/nccl/src/ras/peers.cc:382,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 6
    argNames:
    - newPeers
    - nNewPeers
    - updateDeadPeers
    - ranks
    - nranks
    - fromConn
    argTypes:
    - struct rasPeerInfo*
    - int
    - bool
    - struct rasRankInit*
    - int
    - struct rasConnection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 367
    functionDepth: 1
    functionLinenumber: 367
    functionLinenumberEnd: 388
    functionName: rasNetUpdatePeers
    functionSourceFile: /src/nccl/src/ras/peers.cc
    functionUses: 1
    functionsReached:
    - rasLinkReinitConns
    - NCCLCHECKGOTO
    - rasLinkPropagateUpdate
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t rasNetUpdatePeers(const struct rasPeerInfo* newPeers,
      int nNewPeers, bool updateDeadPeers,\n                                      struct
      rasRankInit* ranks, int nranks, struct rasConnection* fromConn)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rasConnPropagateUpdate
      Src: /src/nccl/src/ras/peers.cc:400,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 7
    argNames:
    - link
    - newPeers
    - nNewPeers
    - updateDeadPeers
    - ranks
    - nranks
    - fromConn
    argTypes:
    - struct rasLink*
    - struct rasPeerInfo*
    - int
    - bool
    - struct rasRankInit*
    - int
    - struct rasConnection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 392
    functionDepth: 1
    functionLinenumber: 392
    functionLinenumberEnd: 405
    functionName: rasLinkPropagateUpdate
    functionSourceFile: /src/nccl/src/ras/peers.cc
    functionUses: 1
    functionsReached:
    - rasConnPropagateUpdate
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t rasLinkPropagateUpdate(struct rasLink* link, const struct
      rasPeerInfo* newPeers, int nNewPeers,\n                                           bool
      updateDeadPeers, struct rasRankInit* ranks, int nranks,\n                                           struct
      rasConnection* fromConn)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: bsearch
      Src: /src/nccl/src/ras/peers.cc:416,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/ras/peers.cc:423,1
    - Dst: rasConnSendPeersUpdate
      Src: /src/nccl/src/ras/peers.cc:423,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 6
    argNames:
    - conn
    - newPeers
    - nNewPeers
    - updateDeadPeers
    - ranks
    - nranks
    argTypes:
    - struct rasConnection*
    - struct rasPeerInfo*
    - int
    - bool
    - struct rasRankInit*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 409
    functionDepth: 1
    functionLinenumber: 409
    functionLinenumberEnd: 428
    functionName: rasConnPropagateUpdate
    functionSourceFile: /src/nccl/src/ras/peers.cc
    functionUses: 1
    functionsReached:
    - rasConnSendPeersUpdate
    - NCCLCHECK
    - bsearch
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t rasConnPropagateUpdate(struct rasConnection* conn, const
      struct rasPeerInfo* newPeers,\n                                           int
      nNewPeers, bool updateDeadPeers, struct rasRankInit* ranks, int nranks)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: rasMsgLength
      Src: /src/nccl/src/ras/peers.cc:452,1
    - Dst: ALIGN_SIZE
      Src: /src/nccl/src/ras/peers.cc:454,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/ras/peers.cc:459,1
    - Dst: rasMsgAlloc
      Src: /src/nccl/src/ras/peers.cc:459,1
    - Dst: memcpy
      Src: /src/nccl/src/ras/peers.cc:465,1
    - Dst: memcpy
      Src: /src/nccl/src/ras/peers.cc:467,1
    - Dst: INFO
      Src: /src/nccl/src/ras/peers.cc:474,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/peers.cc:475,1
    - Dst: rasConnEnqueueMsg
      Src: /src/nccl/src/ras/peers.cc:477,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 36
    argCount: 3
    argNames:
    - conn
    - peers
    - nPeers
    argTypes:
    - struct rasConnection*
    - struct rasPeerInfo*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 433
    functionDepth: 1
    functionLinenumber: 433
    functionLinenumberEnd: 480
    functionName: rasConnSendPeersUpdate
    functionSourceFile: /src/nccl/src/ras/peers.cc
    functionUses: 1
    functionsReached:
    - INFO
    - ncclSocketToString
    - memcpy
    - rasMsgLength
    - rasMsgAlloc
    - ALIGN_SIZE
    - rasConnEnqueueMsg
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t rasConnSendPeersUpdate(struct rasConnection* conn, const
      struct rasPeerInfo* peers, int nPeers)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/src/ras/peers.cc:490,1
    - Dst: INFO
      Src: /src/nccl/src/ras/peers.cc:495,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/peers.cc:496,1
    - Dst: INFO
      Src: /src/nccl/src/ras/peers.cc:498,1
    - Dst: rasMsgLength
      Src: /src/nccl/src/ras/peers.cc:512,1
    - Dst: ALIGN_SIZE
      Src: /src/nccl/src/ras/peers.cc:514,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/peers.cc:517,1
    - Dst: rasMsgAlloc
      Src: /src/nccl/src/ras/peers.cc:517,1
    - Dst: memcpy
      Src: /src/nccl/src/ras/peers.cc:520,1
    - Dst: rasMsgLength
      Src: /src/nccl/src/ras/peers.cc:526,1
    - Dst: ALIGN_SIZE
      Src: /src/nccl/src/ras/peers.cc:527,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/peers.cc:531,1
    - Dst: rasPeersUpdate
      Src: /src/nccl/src/ras/peers.cc:531,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/peers.cc:535,1
    - Dst: rasDeadPeersUpdate
      Src: /src/nccl/src/ras/peers.cc:535,1
    - Dst: INFO
      Src: /src/nccl/src/ras/peers.cc:540,1
    - Dst: rasPeersDump
      Src: /src/nccl/src/ras/peers.cc:544,1
    - Dst: rasDeadPeersDump
      Src: /src/nccl/src/ras/peers.cc:546,1
    - Dst: assert
      Src: /src/nccl/src/ras/peers.cc:556,1
    - Dst: rasMsgLength
      Src: /src/nccl/src/ras/peers.cc:564,1
    - Dst: assert
      Src: /src/nccl/src/ras/peers.cc:567,1
    - Dst: ALIGN_SIZE
      Src: /src/nccl/src/ras/peers.cc:570,1
    - Dst: memcpy
      Src: /src/nccl/src/ras/peers.cc:574,1
    - Dst: INFO
      Src: /src/nccl/src/ras/peers.cc:581,1
    - Dst: rasConnEnqueueMsg
      Src: /src/nccl/src/ras/peers.cc:584,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/peers.cc:589,1
    - Dst: rasNetUpdatePeers
      Src: /src/nccl/src/ras/peers.cc:589,1
    - Dst: rasMsgFree
      Src: /src/nccl/src/ras/peers.cc:594,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 71
    argCount: 2
    argNames:
    - msg
    - sock
    argTypes:
    - struct rasMsg*
    - struct rasSocket*
    assertStmts:
    - condition: (sock->conn)
      pos:
        line_end: 489
        line_start: 489
        source_file: /src/nccl/src/ras/peers.cc
    - condition: (nRasDeadPeers > 0)
      pos:
        line_end: 566
        line_start: 566
        source_file: /src/nccl/src/ras/peers.cc
    - condition: (nPeers > 0)
      pos:
        line_end: 555
        line_start: 555
        source_file: /src/nccl/src/ras/peers.cc
    constantsTouched: []
    func_position:
      end: 598
      start: 486
    functionDepth: 3
    functionLinenumber: 486
    functionLinenumberEnd: 598
    functionName: rasMsgHandlePeersUpdate
    functionSourceFile: /src/nccl/src/ras/peers.cc
    functionUses: 0
    functionsReached:
    - INFO
    - ncclSocketToString
    - NCCLCHECKGOTO
    - memcpy
    - rasMsgLength
    - rasMsgAlloc
    - rasPeersDump
    - ALIGN_SIZE
    - rasPeersUpdate
    - assert
    - rasDeadPeersUpdate
    - rasNetUpdatePeers
    - rasMsgFree
    - rasDeadPeersDump
    - rasConnEnqueueMsg
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t rasMsgHandlePeersUpdate(struct rasMsg* msg, struct rasSocket*
      sock)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/nccl/src/ras/peers.cc:621,1
    - Dst: memset
      Src: /src/nccl/src/ras/peers.cc:624,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/ras/peers.cc:627,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/ras/peers.cc:627,1
    - Dst: rasLinkCalculatePeer
      Src: /src/nccl/src/ras/peers.cc:632,1
    - Dst: rasConnFind
      Src: /src/nccl/src/ras/peers.cc:633,1
    - Dst: INFO
      Src: /src/nccl/src/ras/peers.cc:640,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/peers.cc:642,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/ras/peers.cc:644,1
    - Dst: rasConnCreate
      Src: /src/nccl/src/ras/peers.cc:644,1
    - Dst: clockNano
      Src: /src/nccl/src/ras/peers.cc:647,1
    - Dst: INFO
      Src: /src/nccl/src/ras/peers.cc:651,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/peers.cc:652,1
    - Dst: INFO
      Src: /src/nccl/src/ras/peers.cc:656,1
    - Dst: clockNano
      Src: /src/nccl/src/ras/peers.cc:657,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/ras/peers.cc:659,1
    - Dst: rasLinkAddFallback
      Src: /src/nccl/src/ras/peers.cc:659,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 1
    argNames:
    - link
    argTypes:
    - struct rasLink*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 613
    functionDepth: 1
    functionLinenumber: 613
    functionLinenumberEnd: 663
    functionName: rasLinkReinitConns
    functionSourceFile: /src/nccl/src/ras/peers.cc
    functionUses: 1
    functionsReached:
    - INFO
    - ncclSocketToString
    - clockNano
    - free
    - rasConnFind
    - rasLinkCalculatePeer
    - rasConnCreate
    - ncclCalloc
    - rasLinkAddFallback
    - NCCLCHECK
    - memset
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t rasLinkReinitConns(struct rasLink* link)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ncclSocketsSameNode
      Src: /src/nccl/src/ras/peers.cc:676,1
    - Dst: ncclSocketsSameNode
      Src: /src/nccl/src/ras/peers.cc:684,1
    - Dst: rasPeerIsDead
      Src: /src/nccl/src/ras/peers.cc:685,1
    - Dst: rasConnFind
      Src: /src/nccl/src/ras/peers.cc:686,1
    - Dst: rasPeerIsDead
      Src: /src/nccl/src/ras/peers.cc:710,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 28
    argCount: 3
    argNames:
    - link
    - peerIdx
    - isFallback
    argTypes:
    - struct rasLink*
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 718
      start: 673
    functionDepth: 1
    functionLinenumber: 673
    functionLinenumberEnd: 718
    functionName: rasLinkCalculatePeer
    functionSourceFile: /src/nccl/src/ras/peers.cc
    functionUses: 1
    functionsReached:
    - rasPeerIsDead
    - rasConnFind
    - ncclSocketsSameNode
    linkageType: ''
    returnType: int
    signature: int rasLinkCalculatePeer(const struct rasLink* link, int peerIdx, bool
      isFallback)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rasPeerIsDead
      Src: /src/nccl/src/ras/peers.cc:730,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/ras/peers.cc:731,1
    - Dst: getNewDeadEntry
      Src: /src/nccl/src/ras/peers.cc:731,1
    - Dst: memcpy
      Src: /src/nccl/src/ras/peers.cc:732,1
    - Dst: qsort
      Src: /src/nccl/src/ras/peers.cc:733,1
    - Dst: getHash
      Src: /src/nccl/src/ras/peers.cc:735,1
    - Dst: INFO
      Src: /src/nccl/src/ras/peers.cc:737,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/peers.cc:738,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - addr
    argTypes:
    - union ncclSocketAddress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 741
      start: 727
    functionDepth: 2
    functionLinenumber: 727
    functionLinenumberEnd: 741
    functionName: rasPeerDeclareDead
    functionSourceFile: /src/nccl/src/ras/peers.cc
    functionUses: 0
    functionsReached:
    - INFO
    - ncclSocketToString
    - memcpy
    - getHash
    - qsort
    - rasPeerIsDead
    - getNewDeadEntry
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t rasPeerDeclareDead(const union ncclSocketAddress* addr)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ROUNDUP
      Src: /src/nccl/src/ras/peers.cc:757,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/ras/peers.cc:759,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/ras/peers.cc:759,1
    - Dst: memmove
      Src: /src/nccl/src/ras/peers.cc:765,1
    - Dst: ncclSocketsCompare
      Src: /src/nccl/src/ras/peers.cc:774,1
    - Dst: memmove
      Src: /src/nccl/src/ras/peers.cc:779,1
    - Dst: rasConnDisconnect
      Src: /src/nccl/src/ras/peers.cc:783,1
    - Dst: free
      Src: /src/nccl/src/ras/peers.cc:792,1
    - Dst: getHash
      Src: /src/nccl/src/ras/peers.cc:797,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 36
    argCount: 2
    argNames:
    - updatePeers
    - nUpdatePeers
    argTypes:
    - union ncclSocketAddress*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 800
      start: 747
    functionDepth: 2
    functionLinenumber: 747
    functionLinenumberEnd: 800
    functionName: rasDeadPeersUpdate
    functionSourceFile: /src/nccl/src/ras/peers.cc
    functionUses: 1
    functionsReached:
    - rasConnDisconnect
    - ROUNDUP
    - ncclSocketsCompare
    - free
    - memmove
    - getHash
    - ncclCalloc
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t rasDeadPeersUpdate(union ncclSocketAddress* updatePeers,
      int* nUpdatePeers)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/ras/peers.cc:805,1
    - Dst: ncclRealloc
      Src: /src/nccl/src/ras/peers.cc:805,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - pAddr
    argTypes:
    - union ncclSocketAddress**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 811
      start: 803
    functionDepth: 2
    functionLinenumber: 803
    functionLinenumberEnd: 811
    functionName: getNewDeadEntry
    functionSourceFile: /src/nccl/src/ras/peers.cc
    functionUses: 1
    functionsReached:
    - ncclRealloc
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t getNewDeadEntry(union ncclSocketAddress** pAddr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bsearch
      Src: /src/nccl/src/ras/peers.cc:816,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - addr
    argTypes:
    - union ncclSocketAddress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 817
      start: 814
    functionDepth: 0
    functionLinenumber: 814
    functionLinenumberEnd: 817
    functionName: rasPeerIsDead
    functionSourceFile: /src/nccl/src/ras/peers.cc
    functionUses: 2
    functionsReached:
    - bsearch
    linkageType: ''
    returnType: bool
    signature: bool rasPeerIsDead(const union ncclSocketAddress* addr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclSocketsCompare
      Src: /src/nccl/src/ras/peers.cc:829,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - k
    - e
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 830
      start: 825
    functionDepth: 1
    functionLinenumber: 825
    functionLinenumberEnd: 830
    functionName: rasAddrRankInitCompare
    functionSourceFile: /src/nccl/src/ras/peers.cc
    functionUses: 0
    functionsReached:
    - ncclSocketsCompare
    linkageType: ''
    returnType: int
    signature: int rasAddrRankInitCompare(const void* k, const void* e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclSocketsCompare
      Src: /src/nccl/src/ras/peers.cc:837,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - k
    - e
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 838
      start: 833
    functionDepth: 1
    functionLinenumber: 833
    functionLinenumberEnd: 838
    functionName: rasAddrPeerInfoCompare
    functionSourceFile: /src/nccl/src/ras/peers.cc
    functionUses: 0
    functionsReached:
    - ncclSocketsCompare
    linkageType: ''
    returnType: int
    signature: int rasAddrPeerInfoCompare(const void* k, const void* e)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ncclSocketsCompare
      Src: /src/nccl/src/ras/peers.cc:844,1
    - Dst: assert
      Src: /src/nccl/src/ras/peers.cc:848,1
    - Dst: assert
      Src: /src/nccl/src/ras/peers.cc:850,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - e1
    - e2
    argTypes:
    - void*
    - void*
    assertStmts:
    - condition: (r1->pid == r2->pid)
      pos:
        line_end: 847
        line_start: 847
        source_file: /src/nccl/src/ras/peers.cc
    - condition: (cmp != 0)
      pos:
        line_end: 849
        line_start: 849
        source_file: /src/nccl/src/ras/peers.cc
    constantsTouched: []
    func_position:
      end: 853
      start: 841
    functionDepth: 1
    functionLinenumber: 841
    functionLinenumberEnd: 853
    functionName: rasRanksCompare
    functionSourceFile: /src/nccl/src/ras/peers.cc
    functionUses: 0
    functionsReached:
    - assert
    - ncclSocketsCompare
    linkageType: ''
    returnType: int
    signature: int rasRanksCompare(const void* e1, const void* e2)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/nccl/src/ras/peers.cc:872,1
    - Dst: memcmp
      Src: /src/nccl/src/ras/peers.cc:873,1
    - Dst: memcmp
      Src: /src/nccl/src/ras/peers.cc:877,1
    - Dst: memcmp
      Src: /src/nccl/src/ras/peers.cc:878,1
    - Dst: assert
      Src: /src/nccl/src/ras/peers.cc:882,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 2
    argNames:
    - p1
    - p2
    argTypes:
    - void*
    - void*
    assertStmts:
    - condition: (family == 0)
      pos:
        line_end: 881
        line_start: 881
        source_file: /src/nccl/src/ras/peers.cc
    constantsTouched: []
    func_position:
      end: 887
      start: 858
    functionDepth: 0
    functionLinenumber: 858
    functionLinenumberEnd: 887
    functionName: ncclSocketsCompare
    functionSourceFile: /src/nccl/src/ras/peers.cc
    functionUses: 6
    functionsReached:
    - assert
    - memcmp
    linkageType: ''
    returnType: int
    signature: int ncclSocketsCompare(const void* p1, const void* p2)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/nccl/src/ras/peers.cc:897,1
    - Dst: memcmp
      Src: /src/nccl/src/ras/peers.cc:899,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - a1
    - a2
    argTypes:
    - union ncclSocketAddress*
    - union ncclSocketAddress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 902
      start: 890
    functionDepth: 0
    functionLinenumber: 890
    functionLinenumberEnd: 902
    functionName: ncclSocketsSameNode
    functionSourceFile: /src/nccl/src/ras/peers.cc
    functionUses: 1
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: bool
    signature: bool ncclSocketsSameNode(const union ncclSocketAddress* a1, const union
      ncclSocketAddress* a2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INFO
      Src: /src/nccl/src/ras/peers.cc:908,1
    - Dst: rasPeerDump
      Src: /src/nccl/src/ras/peers.cc:908,1
    - Dst: INFO
      Src: /src/nccl/src/ras/peers.cc:912,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 913
      start: 905
    functionDepth: 1
    functionLinenumber: 905
    functionLinenumberEnd: 913
    functionName: rasPeersDump
    functionSourceFile: /src/nccl/src/ras/peers.cc
    functionUses: 2
    functionsReached:
    - INFO
    - rasPeerDump
    linkageType: ''
    returnType: void
    signature: void rasPeersDump()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rasPeerFind
      Src: /src/nccl/src/ras/peers.cc:918,1
    - Dst: INFO
      Src: /src/nccl/src/ras/peers.cc:919,1
    - Dst: rasPeerDump
      Src: /src/nccl/src/ras/peers.cc:920,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/peers.cc:921,1
    - Dst: INFO
      Src: /src/nccl/src/ras/peers.cc:924,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 925
      start: 916
    functionDepth: 1
    functionLinenumber: 916
    functionLinenumberEnd: 925
    functionName: rasDeadPeersDump
    functionSourceFile: /src/nccl/src/ras/peers.cc
    functionUses: 1
    functionsReached:
    - INFO
    - ncclSocketToString
    - rasPeerDump
    - rasPeerFind
    linkageType: ''
    returnType: void
    signature: void rasDeadPeersDump()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/nccl/src/ras/peers.cc:930,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/peers.cc:930,1
    - Dst: __builtin_popcountll
      Src: /src/nccl/src/ras/peers.cc:931,1
    - Dst: rasGpuDevsToString
      Src: /src/nccl/src/ras/peers.cc:932,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - peer
    - result
    - nres
    argTypes:
    - struct rasPeerInfo*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 934
      start: 928
    functionDepth: 1
    functionLinenumber: 928
    functionLinenumberEnd: 934
    functionName: rasPeerDump
    functionSourceFile: /src/nccl/src/ras/peers.cc
    functionUses: 2
    functionsReached:
    - ncclSocketToString
    - rasGpuDevsToString
    - __builtin_popcountll
    - snprintf
    linkageType: ''
    returnType: char
    signature: char * rasPeerDump(const struct rasPeerInfo* peer, char* result, size_t
      nres)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/nccl/src/ras/peers.cc:938,1
    - Dst: free
      Src: /src/nccl/src/ras/peers.cc:944,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 948
      start: 937
    functionDepth: 0
    functionLinenumber: 937
    functionLinenumberEnd: 948
    functionName: rasPeersTerminate
    functionSourceFile: /src/nccl/src/ras/peers.cc
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void rasPeersTerminate()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/ras/rasnet.cc:58,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/ras/rasnet.cc:58,1
    - Dst: ncclIntruQueueConstruct
      Src: /src/nccl/src/ras/rasnet.cc:60,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - pConn
    argTypes:
    - struct rasConnection**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 74
    functionName: getNewConnEntry
    functionSourceFile: /src/nccl/src/ras/rasnet.cc
    functionUses: 0
    functionsReached:
    - ncclCalloc
    - ncclIntruQueueConstruct
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t getNewConnEntry(struct rasConnection** pConn)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/nccl/src/ras/rasnet.cc:89,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct rasConnection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 90
    functionName: freeConnEntry
    functionSourceFile: /src/nccl/src/ras/rasnet.cc
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void freeConnEntry(struct rasConnection* conn)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: rasConnFind
      Src: /src/nccl/src/ras/rasnet.cc:98,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/rasnet.cc:108,1
    - Dst: getNewConnEntry
      Src: /src/nccl/src/ras/rasnet.cc:108,1
    - Dst: memcpy
      Src: /src/nccl/src/ras/rasnet.cc:109,1
    - Dst: clockNano
      Src: /src/nccl/src/ras/rasnet.cc:111,1
    - Dst: rasConnOpen
      Src: /src/nccl/src/ras/rasnet.cc:117,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - addr
    - pConn
    argTypes:
    - union ncclSocketAddress*
    - struct rasConnection**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 93
    functionDepth: 2
    functionLinenumber: 93
    functionLinenumberEnd: 121
    functionName: rasConnCreate
    functionSourceFile: /src/nccl/src/ras/rasnet.cc
    functionUses: 1
    functionsReached:
    - clockNano
    - NCCLCHECKGOTO
    - memcpy
    - rasConnOpen
    - rasConnFind
    - getNewConnEntry
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t rasConnCreate(const union ncclSocketAddress* addr, struct
      rasConnection** pConn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/rasnet.cc:130,1
    - Dst: getNewSockEntry
      Src: /src/nccl/src/ras/rasnet.cc:130,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/rasnet.cc:131,1
    - Dst: ncclSocketInit
      Src: /src/nccl/src/ras/rasnet.cc:131,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/rasnet.cc:134,1
    - Dst: ncclSocketConnect
      Src: /src/nccl/src/ras/rasnet.cc:134,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/rasnet.cc:135,1
    - Dst: ncclSocketReady
      Src: /src/nccl/src/ras/rasnet.cc:135,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/rasnet.cc:137,1
    - Dst: rasGetNewPollEntry
      Src: /src/nccl/src/ras/rasnet.cc:137,1
    - Dst: clockNano
      Src: /src/nccl/src/ras/rasnet.cc:152,1
    - Dst: ncclSocketClose
      Src: /src/nccl/src/ras/rasnet.cc:157,1
    - Dst: freeSockEntry
      Src: /src/nccl/src/ras/rasnet.cc:158,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct rasConnection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 124
    functionDepth: 7
    functionLinenumber: 124
    functionLinenumberEnd: 160
    functionName: rasConnOpen
    functionSourceFile: /src/nccl/src/ras/rasnet.cc
    functionUses: 1
    functionsReached:
    - rasGetNewPollEntry
    - clockNano
    - NCCLCHECKGOTO
    - freeSockEntry
    - ncclSocketConnect
    - ncclSocketReady
    - ncclSocketClose
    - ncclSocketInit
    - getNewSockEntry
    linkageType: ''
    returnType: void
    signature: void rasConnOpen(struct rasConnection* conn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rasMsgLength
      Src: /src/nccl/src/ras/rasnet.cc:165,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/ras/rasnet.cc:169,1
    - Dst: rasMsgAlloc
      Src: /src/nccl/src/ras/rasnet.cc:169,1
    - Dst: memcpy
      Src: /src/nccl/src/ras/rasnet.cc:172,1
    - Dst: rasConnEnqueueMsg
      Src: /src/nccl/src/ras/rasnet.cc:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct rasConnection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 163
    functionDepth: 1
    functionLinenumber: 163
    functionLinenumberEnd: 181
    functionName: rasConnPrepare
    functionSourceFile: /src/nccl/src/ras/rasnet.cc
    functionUses: 0
    functionsReached:
    - memcpy
    - rasMsgLength
    - rasMsgAlloc
    - rasConnEnqueueMsg
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t rasConnPrepare(struct rasConnection* conn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/nccl/src/ras/rasnet.cc:186,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - addr
    argTypes:
    - union ncclSocketAddress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 191
    functionName: rasConnFind
    functionSourceFile: /src/nccl/src/ras/rasnet.cc
    functionUses: 3
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: struct rasConnection
    signature: struct rasConnection * rasConnFind(const union ncclSocketAddress* addr)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: ncclSocketReady
      Src: /src/nccl/src/ras/rasnet.cc:208,1
    - Dst: INFO
      Src: /src/nccl/src/ras/rasnet.cc:209,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/rasnet.cc:210,1
    - Dst: rasSocketTerminate
      Src: /src/nccl/src/ras/rasnet.cc:211,1
    - Dst: clockNano
      Src: /src/nccl/src/ras/rasnet.cc:216,1
    - Dst: min
      Src: /src/nccl/src/ras/rasnet.cc:218,1
    - Dst: min
      Src: /src/nccl/src/ras/rasnet.cc:223,1
    - Dst: ncclIntruQueueEmpty
      Src: /src/nccl/src/ras/rasnet.cc:229,1
    - Dst: std::max
      Src: /src/nccl/src/ras/rasnet.cc:230,1
    - Dst: ncclIntruQueueHead
      Src: /src/nccl/src/ras/rasnet.cc:231,1
    - Dst: INFO
      Src: /src/nccl/src/ras/rasnet.cc:232,1
    - Dst: std::max
      Src: /src/nccl/src/ras/rasnet.cc:233,1
    - Dst: ncclIntruQueueHead
      Src: /src/nccl/src/ras/rasnet.cc:233,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/rasnet.cc:234,1
    - Dst: rasSocketTerminate
      Src: /src/nccl/src/ras/rasnet.cc:235,1
    - Dst: min
      Src: /src/nccl/src/ras/rasnet.cc:238,1
    - Dst: std::max
      Src: /src/nccl/src/ras/rasnet.cc:239,1
    - Dst: ncclIntruQueueHead
      Src: /src/nccl/src/ras/rasnet.cc:239,1
    - Dst: INFO
      Src: /src/nccl/src/ras/rasnet.cc:253,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/rasnet.cc:254,1
    - Dst: rasCollReqInit
      Src: /src/nccl/src/ras/rasnet.cc:258,1
    - Dst: memcpy
      Src: /src/nccl/src/ras/rasnet.cc:260,1
    - Dst: rasNetSendCollReq
      Src: /src/nccl/src/ras/rasnet.cc:261,1
    - Dst: min
      Src: /src/nccl/src/ras/rasnet.cc:265,1
    - Dst: INFO
      Src: /src/nccl/src/ras/rasnet.cc:276,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/rasnet.cc:277,1
    - Dst: rasLinkAddFallback
      Src: /src/nccl/src/ras/rasnet.cc:283,1
    - Dst: rasLinkAddFallback
      Src: /src/nccl/src/ras/rasnet.cc:284,1
    - Dst: rasCollsPurgeConn
      Src: /src/nccl/src/ras/rasnet.cc:287,1
    - Dst: min
      Src: /src/nccl/src/ras/rasnet.cc:290,1
    - Dst: INFO
      Src: /src/nccl/src/ras/rasnet.cc:297,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/rasnet.cc:298,1
    - Dst: rasConnOpen
      Src: /src/nccl/src/ras/rasnet.cc:300,1
    - Dst: min
      Src: /src/nccl/src/ras/rasnet.cc:303,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 63
    argCount: 2
    argNames:
    - now
    - nextWakeup
    argTypes:
    - int64_t
    - int64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 198
    functionDepth: 8
    functionLinenumber: 198
    functionLinenumberEnd: 310
    functionName: rasConnsHandleTimeouts
    functionSourceFile: /src/nccl/src/ras/rasnet.cc
    functionUses: 0
    functionsReached:
    - INFO
    - ncclSocketToString
    - clockNano
    - min
    - memcpy
    - rasNetSendCollReq
    - rasConnOpen
    - std::max
    - rasSocketTerminate
    - ncclIntruQueueEmpty
    - rasCollsPurgeConn
    - ncclSocketReady
    - rasCollReqInit
    - ncclIntruQueueHead
    - rasLinkAddFallback
    linkageType: ''
    returnType: void
    signature: void rasConnsHandleTimeouts(int64_t now, int64_t* nextWakeup)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rasConnFind
      Src: /src/nccl/src/ras/rasnet.cc:315,1
    - Dst: rasLinkAddFallback
      Src: /src/nccl/src/ras/rasnet.cc:317,1
    - Dst: rasLinkAddFallback
      Src: /src/nccl/src/ras/rasnet.cc:318,1
    - Dst: rasLinkConnDrop
      Src: /src/nccl/src/ras/rasnet.cc:319,1
    - Dst: rasLinkConnDrop
      Src: /src/nccl/src/ras/rasnet.cc:320,1
    - Dst: rasConnTerminate
      Src: /src/nccl/src/ras/rasnet.cc:322,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - addr
    argTypes:
    - union ncclSocketAddress*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 314
    functionDepth: 1
    functionLinenumber: 314
    functionLinenumberEnd: 324
    functionName: rasConnDisconnect
    functionSourceFile: /src/nccl/src/ras/rasnet.cc
    functionUses: 1
    functionsReached:
    - rasConnTerminate
    - rasConnFind
    - rasLinkConnDrop
    - rasLinkAddFallback
    linkageType: ''
    returnType: void
    signature: void rasConnDisconnect(const union ncclSocketAddress* addr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rasSocketTerminate
      Src: /src/nccl/src/ras/rasnet.cc:332,1
    - Dst: rasCollsPurgeConn
      Src: /src/nccl/src/ras/rasnet.cc:337,1
    - Dst: ncclIntruQueueTryDequeue
      Src: /src/nccl/src/ras/rasnet.cc:339,1
    - Dst: free
      Src: /src/nccl/src/ras/rasnet.cc:340,1
    - Dst: INFO
      Src: /src/nccl/src/ras/rasnet.cc:343,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/rasnet.cc:343,1
    - Dst: freeConnEntry
      Src: /src/nccl/src/ras/rasnet.cc:345,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct rasConnection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 346
    functionName: rasConnTerminate
    functionSourceFile: /src/nccl/src/ras/rasnet.cc
    functionUses: 1
    functionsReached:
    - ncclIntruQueueTryDequeue
    - INFO
    - ncclSocketToString
    - free
    - freeConnEntry
    - rasSocketTerminate
    - rasCollsPurgeConn
    linkageType: ''
    returnType: void
    signature: void rasConnTerminate(struct rasConnection* conn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/rasnet.cc:360,1
    - Dst: getNewSockEntry
      Src: /src/nccl/src/ras/rasnet.cc:360,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/rasnet.cc:362,1
    - Dst: ncclSocketInit
      Src: /src/nccl/src/ras/rasnet.cc:362,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/rasnet.cc:365,1
    - Dst: ncclSocketAccept
      Src: /src/nccl/src/ras/rasnet.cc:365,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/rasnet.cc:366,1
    - Dst: ncclSocketReady
      Src: /src/nccl/src/ras/rasnet.cc:366,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/rasnet.cc:371,1
    - Dst: rasGetNewPollEntry
      Src: /src/nccl/src/ras/rasnet.cc:371,1
    - Dst: INFO
      Src: /src/nccl/src/ras/rasnet.cc:377,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/rasnet.cc:377,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/ras/rasnet.cc:383,1
    - Dst: ncclSocketClose
      Src: /src/nccl/src/ras/rasnet.cc:383,1
    - Dst: freeSockEntry
      Src: /src/nccl/src/ras/rasnet.cc:384,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 355
    functionDepth: 7
    functionLinenumber: 355
    functionLinenumberEnd: 386
    functionName: rasNetAcceptNewSocket
    functionSourceFile: /src/nccl/src/ras/rasnet.cc
    functionUses: 0
    functionsReached:
    - rasGetNewPollEntry
    - INFO
    - ncclSocketToString
    - NCCLCHECKGOTO
    - freeSockEntry
    - ncclSocketAccept
    - ncclSocketReady
    - ncclSocketClose
    - ncclSocketInit
    - getNewSockEntry
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t rasNetAcceptNewSocket()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/ras/rasnet.cc:392,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/ras/rasnet.cc:392,1
    - Dst: clockNano
      Src: /src/nccl/src/ras/rasnet.cc:395,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - pSock
    argTypes:
    - struct rasSocket**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 407
      start: 389
    functionDepth: 1
    functionLinenumber: 389
    functionLinenumberEnd: 407
    functionName: getNewSockEntry
    functionSourceFile: /src/nccl/src/ras/rasnet.cc
    functionUses: 2
    functionsReached:
    - clockNano
    - ncclCalloc
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t getNewSockEntry(struct rasSocket** pSock)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/nccl/src/ras/rasnet.cc:422,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - sock
    argTypes:
    - struct rasSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 423
    functionName: freeSockEntry
    functionSourceFile: /src/nccl/src/ras/rasnet.cc
    functionUses: 2
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void freeSockEntry(struct rasSocket* sock)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: INFO
      Src: /src/nccl/src/ras/rasnet.cc:434,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/rasnet.cc:435,1
    - Dst: INFO
      Src: /src/nccl/src/ras/rasnet.cc:437,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/rasnet.cc:439,1
    - Dst: rasSocketTerminate
      Src: /src/nccl/src/ras/rasnet.cc:443,1
    - Dst: min
      Src: /src/nccl/src/ras/rasnet.cc:446,1
    - Dst: std::max
      Src: /src/nccl/src/ras/rasnet.cc:450,1
    - Dst: INFO
      Src: /src/nccl/src/ras/rasnet.cc:451,1
    - Dst: std::max
      Src: /src/nccl/src/ras/rasnet.cc:452,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/rasnet.cc:453,1
    - Dst: rasSocketTerminate
      Src: /src/nccl/src/ras/rasnet.cc:454,1
    - Dst: min
      Src: /src/nccl/src/ras/rasnet.cc:457,1
    - Dst: std::max
      Src: /src/nccl/src/ras/rasnet.cc:457,1
    - Dst: std::max
      Src: /src/nccl/src/ras/rasnet.cc:463,1
    - Dst: INFO
      Src: /src/nccl/src/ras/rasnet.cc:464,1
    - Dst: std::max
      Src: /src/nccl/src/ras/rasnet.cc:465,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/rasnet.cc:466,1
    - Dst: rasSocketTerminate
      Src: /src/nccl/src/ras/rasnet.cc:467,1
    - Dst: min
      Src: /src/nccl/src/ras/rasnet.cc:470,1
    - Dst: std::max
      Src: /src/nccl/src/ras/rasnet.cc:470,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 2
    argNames:
    - now
    - nextWakeup
    argTypes:
    - int64_t
    - int64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 426
    functionDepth: 1
    functionLinenumber: 426
    functionLinenumberEnd: 476
    functionName: rasSocksHandleTimeouts
    functionSourceFile: /src/nccl/src/ras/rasnet.cc
    functionUses: 0
    functionsReached:
    - INFO
    - ncclSocketToString
    - min
    - std::max
    - rasSocketTerminate
    linkageType: ''
    returnType: void
    signature: void rasSocksHandleTimeouts(int64_t now, int64_t* nextWakeup)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: INFO
      Src: /src/nccl/src/ras/rasnet.cc:485,1
    - Dst: clockNano
      Src: /src/nccl/src/ras/rasnet.cc:499,1
    - Dst: std::max
      Src: /src/nccl/src/ras/rasnet.cc:499,1
    - Dst: rasLinkConnFind
      Src: /src/nccl/src/ras/rasnet.cc:500,1
    - Dst: rasLinkConnFind
      Src: /src/nccl/src/ras/rasnet.cc:500,1
    - Dst: clockNano
      Src: /src/nccl/src/ras/rasnet.cc:505,1
    - Dst: ncclIntruQueueConstruct
      Src: /src/nccl/src/ras/rasnet.cc:513,1
    - Dst: ncclIntruQueueTransfer
      Src: /src/nccl/src/ras/rasnet.cc:514,1
    - Dst: ncclIntruQueueTryDequeue
      Src: /src/nccl/src/ras/rasnet.cc:515,1
    - Dst: ncclIntruQueueEnqueue
      Src: /src/nccl/src/ras/rasnet.cc:523,1
    - Dst: free
      Src: /src/nccl/src/ras/rasnet.cc:525,1
    - Dst: rasCollsPurgeConn
      Src: /src/nccl/src/ras/rasnet.cc:531,1
    - Dst: ncclSocketShutdown
      Src: /src/nccl/src/ras/rasnet.cc:538,1
    - Dst: clockNano
      Src: /src/nccl/src/ras/rasnet.cc:541,1
    - Dst: ncclSocketClose
      Src: /src/nccl/src/ras/rasnet.cc:548,1
    - Dst: free
      Src: /src/nccl/src/ras/rasnet.cc:553,1
    - Dst: freeSockEntry
      Src: /src/nccl/src/ras/rasnet.cc:554,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 43
    argCount: 4
    argNames:
    - sock
    - finalize
    - startRetryOffset
    - retry
    argTypes:
    - struct rasSocket*
    - bool
    - uint64_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 483
    functionDepth: 5
    functionLinenumber: 483
    functionLinenumberEnd: 556
    functionName: rasSocketTerminate
    functionSourceFile: /src/nccl/src/ras/rasnet.cc
    functionUses: 3
    functionsReached:
    - INFO
    - clockNano
    - ncclIntruQueueTryDequeue
    - freeSockEntry
    - free
    - ncclSocketShutdown
    - ncclIntruQueueConstruct
    - std::max
    - rasCollsPurgeConn
    - rasLinkConnFind
    - ncclSocketClose
    - ncclIntruQueueEnqueue
    - ncclIntruQueueTransfer
    linkageType: ''
    returnType: void
    signature: void rasSocketTerminate(struct rasSocket* sock, bool finalize, uint64_t
      startRetryOffset, bool retry)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: ncclSocketReady
      Src: /src/nccl/src/ras/rasnet.cc:563,1
    - Dst: INFO
      Src: /src/nccl/src/ras/rasnet.cc:564,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/rasnet.cc:565,1
    - Dst: rasSocketTerminate
      Src: /src/nccl/src/ras/rasnet.cc:566,1
    - Dst: clockNano
      Src: /src/nccl/src/ras/rasnet.cc:572,1
    - Dst: assert
      Src: /src/nccl/src/ras/rasnet.cc:575,1
    - Dst: rasConnPrepare
      Src: /src/nccl/src/ras/rasnet.cc:577,1
    - Dst: INFO
      Src: /src/nccl/src/ras/rasnet.cc:578,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/rasnet.cc:579,1
    - Dst: rasSocketTerminate
      Src: /src/nccl/src/ras/rasnet.cc:580,1
    - Dst: INFO
      Src: /src/nccl/src/ras/rasnet.cc:586,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/rasnet.cc:587,1
    - Dst: rasSocketTerminate
      Src: /src/nccl/src/ras/rasnet.cc:588,1
    - Dst: assert
      Src: /src/nccl/src/ras/rasnet.cc:602,1
    - Dst: assert
      Src: /src/nccl/src/ras/rasnet.cc:603,1
    - Dst: rasConnSendMsg
      Src: /src/nccl/src/ras/rasnet.cc:604,1
    - Dst: INFO
      Src: /src/nccl/src/ras/rasnet.cc:605,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/rasnet.cc:606,1
    - Dst: rasSocketTerminate
      Src: /src/nccl/src/ras/rasnet.cc:607,1
    - Dst: INFO
      Src: /src/nccl/src/ras/rasnet.cc:610,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/rasnet.cc:611,1
    - Dst: rasSocketTerminate
      Src: /src/nccl/src/ras/rasnet.cc:612,1
    - Dst: clockNano
      Src: /src/nccl/src/ras/rasnet.cc:615,1
    - Dst: rasMsgRecv
      Src: /src/nccl/src/ras/rasnet.cc:625,1
    - Dst: INFO
      Src: /src/nccl/src/ras/rasnet.cc:626,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/rasnet.cc:627,1
    - Dst: rasSocketTerminate
      Src: /src/nccl/src/ras/rasnet.cc:628,1
    - Dst: INFO
      Src: /src/nccl/src/ras/rasnet.cc:640,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/rasnet.cc:641,1
    - Dst: rasSocketTerminate
      Src: /src/nccl/src/ras/rasnet.cc:642,1
    - Dst: clockNano
      Src: /src/nccl/src/ras/rasnet.cc:645,1
    - Dst: rasMsgHandle
      Src: /src/nccl/src/ras/rasnet.cc:647,1
    - Dst: free
      Src: /src/nccl/src/ras/rasnet.cc:648,1
    - Dst: rasConnResume
      Src: /src/nccl/src/ras/rasnet.cc:656,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 76
    argCount: 2
    argNames:
    - sock
    - pollIdx
    argTypes:
    - struct rasSocket*
    - int
    assertStmts:
    - condition: (sock->conn->sock == sock)
      pos:
        line_end: 602
        line_start: 602
        source_file: /src/nccl/src/ras/rasnet.cc
    - condition: (sock->conn)
      pos:
        line_end: 574
        line_start: 574
        source_file: /src/nccl/src/ras/rasnet.cc
    - condition: (sock->conn)
      pos:
        line_end: 601
        line_start: 601
        source_file: /src/nccl/src/ras/rasnet.cc
    constantsTouched: []
    func_position:
      end: 662
      start: 559
    functionDepth: 7
    functionLinenumber: 559
    functionLinenumberEnd: 662
    functionName: rasSockEventLoop
    functionSourceFile: /src/nccl/src/ras/rasnet.cc
    functionUses: 0
    functionsReached:
    - INFO
    - ncclSocketToString
    - clockNano
    - rasMsgRecv
    - free
    - rasSocketTerminate
    - ncclSocketReady
    - assert
    - rasMsgHandle
    - rasConnResume
    - rasConnSendMsg
    - rasConnPrepare
    linkageType: ''
    returnType: void
    signature: void rasSockEventLoop(struct rasSocket* sock, int pollIdx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rasLinkHandleNetTimeouts
      Src: /src/nccl/src/ras/rasnet.cc:677,1
    - Dst: rasLinkHandleNetTimeouts
      Src: /src/nccl/src/ras/rasnet.cc:678,1
    - Dst: ncclIntruQueueEmpty
      Src: /src/nccl/src/ras/rasnet.cc:684,1
    - Dst: rasConnTerminate
      Src: /src/nccl/src/ras/rasnet.cc:685,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - now
    - nextWakeup
    argTypes:
    - int64_t
    - int64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 689
      start: 670
    functionDepth: 2
    functionLinenumber: 670
    functionLinenumberEnd: 689
    functionName: rasNetHandleTimeouts
    functionSourceFile: /src/nccl/src/ras/rasnet.cc
    functionUses: 0
    functionsReached:
    - rasConnTerminate
    - rasLinkHandleNetTimeouts
    - ncclIntruQueueEmpty
    linkageType: ''
    returnType: void
    signature: void rasNetHandleTimeouts(int64_t now, int64_t* nextWakeup)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: rasConnHandleNetTimeouts
      Src: /src/nccl/src/ras/rasnet.cc:696,1
    - Dst: INFO
      Src: /src/nccl/src/ras/rasnet.cc:703,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/rasnet.cc:705,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/ras/rasnet.cc:706,1
    - Dst: rasConnCreate
      Src: /src/nccl/src/ras/rasnet.cc:706,1
    - Dst: min
      Src: /src/nccl/src/ras/rasnet.cc:712,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - link
    - now
    - nextWakeup
    argTypes:
    - struct rasLink*
    - int64_t
    - int64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 718
      start: 692
    functionDepth: 3
    functionLinenumber: 692
    functionLinenumberEnd: 718
    functionName: rasLinkHandleNetTimeouts
    functionSourceFile: /src/nccl/src/ras/rasnet.cc
    functionUses: 1
    functionsReached:
    - INFO
    - ncclSocketToString
    - min
    - rasConnHandleNetTimeouts
    - rasConnCreate
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t rasLinkHandleNetTimeouts(struct rasLink* link, int64_t
      now, int64_t* nextWakeup)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: ncclIntruQueueEmpty
      Src: /src/nccl/src/ras/rasnet.cc:725,1
    - Dst: rasConnSendKeepAlive
      Src: /src/nccl/src/ras/rasnet.cc:727,1
    - Dst: min
      Src: /src/nccl/src/ras/rasnet.cc:729,1
    - Dst: INFO
      Src: /src/nccl/src/ras/rasnet.cc:736,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/rasnet.cc:737,1
    - Dst: rasLinkAddFallback
      Src: /src/nccl/src/ras/rasnet.cc:742,1
    - Dst: rasLinkAddFallback
      Src: /src/nccl/src/ras/rasnet.cc:743,1
    - Dst: rasCollsPurgeConn
      Src: /src/nccl/src/ras/rasnet.cc:746,1
    - Dst: min
      Src: /src/nccl/src/ras/rasnet.cc:749,1
    - Dst: INFO
      Src: /src/nccl/src/ras/rasnet.cc:754,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/rasnet.cc:755,1
    - Dst: rasSocketTerminate
      Src: /src/nccl/src/ras/rasnet.cc:756,1
    - Dst: min
      Src: /src/nccl/src/ras/rasnet.cc:759,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 3
    argNames:
    - conn
    - now
    - nextWakeup
    argTypes:
    - struct rasConnection*
    - int64_t
    - int64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 763
      start: 721
    functionDepth: 6
    functionLinenumber: 721
    functionLinenumberEnd: 763
    functionName: rasConnHandleNetTimeouts
    functionSourceFile: /src/nccl/src/ras/rasnet.cc
    functionUses: 1
    functionsReached:
    - INFO
    - ncclSocketToString
    - min
    - rasSocketTerminate
    - rasConnSendKeepAlive
    - ncclIntruQueueEmpty
    - rasCollsPurgeConn
    - rasLinkAddFallback
    linkageType: ''
    returnType: void
    signature: void rasConnHandleNetTimeouts(struct rasConnection* conn, int64_t now,
      int64_t* nextWakeup)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rasMsgLength
      Src: /src/nccl/src/ras/rasnet.cc:768,1
    - Dst: rasMsgAlloc
      Src: /src/nccl/src/ras/rasnet.cc:769,1
    - Dst: rasLinkConnFind
      Src: /src/nccl/src/ras/rasnet.cc:776,1
    - Dst: rasLinkConnFind
      Src: /src/nccl/src/ras/rasnet.cc:779,1
    - Dst: clock_gettime
      Src: /src/nccl/src/ras/rasnet.cc:783,1
    - Dst: rasConnEnqueueMsg
      Src: /src/nccl/src/ras/rasnet.cc:785,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - conn
    - nack
    argTypes:
    - struct rasConnection*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 787
      start: 766
    functionDepth: 1
    functionLinenumber: 766
    functionLinenumberEnd: 787
    functionName: rasConnSendKeepAlive
    functionSourceFile: /src/nccl/src/ras/rasnet.cc
    functionUses: 1
    functionsReached:
    - clock_gettime
    - rasMsgLength
    - rasMsgAlloc
    - rasLinkConnFind
    - rasConnEnqueueMsg
    linkageType: ''
    returnType: void
    signature: void rasConnSendKeepAlive(struct rasConnection* conn, bool nack)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/src/ras/rasnet.cc:795,1
    - Dst: SYSCHECK
      Src: /src/nccl/src/ras/rasnet.cc:796,1
    - Dst: clock_gettime
      Src: /src/nccl/src/ras/rasnet.cc:796,1
    - Dst: rasPeerFind
      Src: /src/nccl/src/ras/rasnet.cc:810,1
    - Dst: rasLinkConnAddExternal
      Src: /src/nccl/src/ras/rasnet.cc:814,1
    - Dst: rasLinkConnDrop
      Src: /src/nccl/src/ras/rasnet.cc:816,1
    - Dst: rasLinkConnAddExternal
      Src: /src/nccl/src/ras/rasnet.cc:818,1
    - Dst: rasLinkConnDrop
      Src: /src/nccl/src/ras/rasnet.cc:820,1
    - Dst: rasLinkConnFind
      Src: /src/nccl/src/ras/rasnet.cc:827,1
    - Dst: rasLinkConnFind
      Src: /src/nccl/src/ras/rasnet.cc:827,1
    - Dst: rasConnSendKeepAlive
      Src: /src/nccl/src/ras/rasnet.cc:830,1
    - Dst: INFO
      Src: /src/nccl/src/ras/rasnet.cc:846,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/rasnet.cc:847,1
    - Dst: INFO
      Src: /src/nccl/src/ras/rasnet.cc:848,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/ras/rasnet.cc:849,1
    - Dst: rasConnSendPeersUpdate
      Src: /src/nccl/src/ras/rasnet.cc:849,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 34
    argCount: 2
    argNames:
    - msg
    - sock
    argTypes:
    - struct rasMsg*
    - struct rasSocket*
    assertStmts:
    - condition: (sock->conn)
      pos:
        line_end: 794
        line_start: 794
        source_file: /src/nccl/src/ras/rasnet.cc
    constantsTouched: []
    func_position:
      end: 852
      start: 790
    functionDepth: 2
    functionLinenumber: 790
    functionLinenumberEnd: 852
    functionName: rasMsgHandleKeepAlive
    functionSourceFile: /src/nccl/src/ras/rasnet.cc
    functionUses: 0
    functionsReached:
    - INFO
    - ncclSocketToString
    - rasPeerFind
    - rasConnSendKeepAlive
    - rasConnSendPeersUpdate
    - rasLinkConnFind
    - SYSCHECK
    - assert
    - rasLinkConnDrop
    - rasLinkConnAddExternal
    - clock_gettime
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t rasMsgHandleKeepAlive(const struct rasMsg* msg, struct
      rasSocket* sock)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/src/ras/rasnet.cc:912,1
    - Dst: rasLinkCalculatePeer
      Src: /src/nccl/src/ras/rasnet.cc:913,1
    - Dst: rasConnFind
      Src: /src/nccl/src/ras/rasnet.cc:917,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/ras/rasnet.cc:924,1
    - Dst: rasLinkConnAdd
      Src: /src/nccl/src/ras/rasnet.cc:924,1
    - Dst: assert
      Src: /src/nccl/src/ras/rasnet.cc:925,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/ras/rasnet.cc:932,1
    - Dst: rasLinkConnAdd
      Src: /src/nccl/src/ras/rasnet.cc:932,1
    - Dst: INFO
      Src: /src/nccl/src/ras/rasnet.cc:936,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/rasnet.cc:938,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/ras/rasnet.cc:943,1
    - Dst: rasConnCreate
      Src: /src/nccl/src/ras/rasnet.cc:943,1
    - Dst: INFO
      Src: /src/nccl/src/ras/rasnet.cc:950,1
    - Dst: clockNano
      Src: /src/nccl/src/ras/rasnet.cc:951,1
    - Dst: rasLinkCalculatePeer
      Src: /src/nccl/src/ras/rasnet.cc:954,1
    - Dst: INFO
      Src: /src/nccl/src/ras/rasnet.cc:960,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 66
    argCount: 2
    argNames:
    - link
    - conn
    argTypes:
    - struct rasLink*
    - struct rasConnection*
    assertStmts:
    - condition: (foundLinkConn->peerIdx != -1)
      pos:
        line_end: 911
        line_start: 911
        source_file: /src/nccl/src/ras/rasnet.cc
    - condition: (linkIdx != -1)
      pos:
        line_end: 924
        line_start: 924
        source_file: /src/nccl/src/ras/rasnet.cc
    constantsTouched: []
    func_position:
      end: 964
      start: 864
    functionDepth: 3
    functionLinenumber: 864
    functionLinenumberEnd: 964
    functionName: rasLinkAddFallback
    functionSourceFile: /src/nccl/src/ras/rasnet.cc
    functionUses: 4
    functionsReached:
    - rasLinkConnAdd
    - INFO
    - ncclSocketToString
    - clockNano
    - rasConnFind
    - rasLinkCalculatePeer
    - assert
    - rasConnCreate
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t rasLinkAddFallback(struct rasLink* link, const struct
      rasConnection* conn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INFO
      Src: /src/nccl/src/ras/rasnet.cc:970,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/rasnet.cc:972,1
    - Dst: ncclIntruQueueEmpty
      Src: /src/nccl/src/ras/rasnet.cc:972,1
    - Dst: clockNano
      Src: /src/nccl/src/ras/rasnet.cc:973,1
    - Dst: rasLinkSanitizeFallbacks
      Src: /src/nccl/src/ras/rasnet.cc:979,1
    - Dst: rasLinkSanitizeFallbacks
      Src: /src/nccl/src/ras/rasnet.cc:980,1
    - Dst: ncclIntruQueueEmpty
      Src: /src/nccl/src/ras/rasnet.cc:982,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct rasConnection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 985
      start: 968
    functionDepth: 1
    functionLinenumber: 968
    functionLinenumberEnd: 985
    functionName: rasConnResume
    functionSourceFile: /src/nccl/src/ras/rasnet.cc
    functionUses: 1
    functionsReached:
    - INFO
    - ncclSocketToString
    - clockNano
    - ncclIntruQueueEmpty
    - rasLinkSanitizeFallbacks
    linkageType: ''
    returnType: void
    signature: void rasConnResume(struct rasConnection* conn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INFO
      Src: /src/nccl/src/ras/rasnet.cc:997,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/rasnet.cc:999,1
    - Dst: free
      Src: /src/nccl/src/ras/rasnet.cc:1000,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 1
    argNames:
    - link
    argTypes:
    - struct rasLink*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1007
      start: 988
    functionDepth: 1
    functionLinenumber: 988
    functionLinenumberEnd: 1007
    functionName: rasLinkSanitizeFallbacks
    functionSourceFile: /src/nccl/src/ras/rasnet.cc
    functionUses: 1
    functionsReached:
    - INFO
    - ncclSocketToString
    - free
    linkageType: ''
    returnType: void
    signature: void rasLinkSanitizeFallbacks(struct rasLink* link)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/src/ras/rasnet.cc:1026,1
    - Dst: rasLinkConnFind
      Src: /src/nccl/src/ras/rasnet.cc:1029,1
    - Dst: assert
      Src: /src/nccl/src/ras/rasnet.cc:1034,1
    - Dst: assert
      Src: /src/nccl/src/ras/rasnet.cc:1054,1
    - Dst: rasLinkSanitizeFallbacks
      Src: /src/nccl/src/ras/rasnet.cc:1062,1
    - Dst: assert
      Src: /src/nccl/src/ras/rasnet.cc:1099,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/ras/rasnet.cc:1115,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/ras/rasnet.cc:1115,1
    - Dst: assert
      Src: /src/nccl/src/ras/rasnet.cc:1120,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 88
    argCount: 7
    argNames:
    - link
    - conn
    - peerIdx
    - pretend
    - pLinkIdx
    - pLinkConn
    - insert
    argTypes:
    - struct rasLink*
    - struct rasConnection*
    - int
    - bool
    - int*
    - struct rasLinkConn**
    - bool
    assertStmts:
    - condition: (peerIdx != -1)
      pos:
        line_end: 1025
        line_start: 1025
        source_file: /src/nccl/src/ras/rasnet.cc
    - condition: (oldLinkConn->peerIdx == peerIdx)
      pos:
        line_end: 1033
        line_start: 1033
        source_file: /src/nccl/src/ras/rasnet.cc
    - condition: (linkConn->conn == conn)
      pos:
        line_end: 1053
        line_start: 1053
        source_file: /src/nccl/src/ras/rasnet.cc
    - condition: (i < oldLinkIdx)
      pos:
        line_end: 1098
        line_start: 1098
        source_file: /src/nccl/src/ras/rasnet.cc
    - condition: (link->conns == nullptr)
      pos:
        line_end: 1119
        line_start: 1119
        source_file: /src/nccl/src/ras/rasnet.cc
    constantsTouched: []
    func_position:
      end: 1133
      start: 1020
    functionDepth: 2
    functionLinenumber: 1020
    functionLinenumberEnd: 1133
    functionName: rasLinkConnAdd
    functionSourceFile: /src/nccl/src/ras/rasnet.cc
    functionUses: 1
    functionsReached:
    - rasLinkConnFind
    - assert
    - ncclCalloc
    - rasLinkSanitizeFallbacks
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t rasLinkConnAdd(struct rasLink* link, struct rasConnection*
      conn, int peerIdx, bool pretend,\n                                   int* pLinkIdx,
      struct rasLinkConn** pLinkConn, bool insert)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/src/ras/rasnet.cc:1146,1
    - Dst: rasLinkConnFind
      Src: /src/nccl/src/ras/rasnet.cc:1147,1
    - Dst: assert
      Src: /src/nccl/src/ras/rasnet.cc:1150,1
    - Dst: assert
      Src: /src/nccl/src/ras/rasnet.cc:1171,1
    - Dst: rasLinkSanitizeFallbacks
      Src: /src/nccl/src/ras/rasnet.cc:1179,1
    - Dst: assert
      Src: /src/nccl/src/ras/rasnet.cc:1206,1
    - Dst: INFO
      Src: /src/nccl/src/ras/rasnet.cc:1207,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/rasnet.cc:1208,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/ras/rasnet.cc:1224,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/ras/rasnet.cc:1224,1
    - Dst: INFO
      Src: /src/nccl/src/ras/rasnet.cc:1226,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/rasnet.cc:1227,1
    - Dst: INFO
      Src: /src/nccl/src/ras/rasnet.cc:1232,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/rasnet.cc:1233,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 72
    argCount: 3
    argNames:
    - link
    - conn
    - peerIdx
    argTypes:
    - struct rasLink*
    - struct rasConnection*
    - int
    assertStmts:
    - condition: (conn)
      pos:
        line_end: 1145
        line_start: 1145
        source_file: /src/nccl/src/ras/rasnet.cc
    - condition: (linkConn->conn == conn)
      pos:
        line_end: 1170
        line_start: 1170
        source_file: /src/nccl/src/ras/rasnet.cc
    - condition: (oldLinkConn->peerIdx == peerIdx)
      pos:
        line_end: 1149
        line_start: 1149
        source_file: /src/nccl/src/ras/rasnet.cc
    - condition: (i < oldLinkIdx)
      pos:
        line_end: 1205
        line_start: 1205
        source_file: /src/nccl/src/ras/rasnet.cc
    constantsTouched: []
    func_position:
      end: 1244
      start: 1141
    functionDepth: 2
    functionLinenumber: 1141
    functionLinenumberEnd: 1244
    functionName: rasLinkConnAddExternal
    functionSourceFile: /src/nccl/src/ras/rasnet.cc
    functionUses: 1
    functionsReached:
    - INFO
    - ncclSocketToString
    - rasLinkConnFind
    - assert
    - rasLinkSanitizeFallbacks
    - ncclCalloc
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t rasLinkConnAddExternal(struct rasLink* link, struct rasConnection*
      conn, int peerIdx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/src/ras/rasnet.cc:1250,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/ras/rasnet.cc:1252,1
    - Dst: rasLinkConnAdd
      Src: /src/nccl/src/ras/rasnet.cc:1252,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - link
    - conn
    - peerIdx
    argTypes:
    - struct rasLink*
    - struct rasConnection*
    - int
    assertStmts:
    - condition: (conn && peerIdx != -1)
      pos:
        line_end: 1249
        line_start: 1249
        source_file: /src/nccl/src/ras/rasnet.cc
    constantsTouched: []
    func_position:
      end: 1255
      start: 1249
    functionDepth: 3
    functionLinenumber: 1249
    functionLinenumberEnd: 1255
    functionName: rasLinkConnUpdate
    functionSourceFile: /src/nccl/src/ras/rasnet.cc
    functionUses: 0
    functionsReached:
    - rasLinkConnAdd
    - assert
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t rasLinkConnUpdate(struct rasLink* link, struct rasConnection*
      conn, int peerIdx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: INFO
      Src: /src/nccl/src/ras/rasnet.cc:1266,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/rasnet.cc:1268,1
    - Dst: free
      Src: /src/nccl/src/ras/rasnet.cc:1270,1
    - Dst: INFO
      Src: /src/nccl/src/ras/rasnet.cc:1272,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/rasnet.cc:1273,1
    - Dst: INFO
      Src: /src/nccl/src/ras/rasnet.cc:1280,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/rasnet.cc:1281,1
    - Dst: rasLinkSanitizeFallbacks
      Src: /src/nccl/src/ras/rasnet.cc:1282,1
    - Dst: free
      Src: /src/nccl/src/ras/rasnet.cc:1283,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 3
    argNames:
    - link
    - conn
    - external
    argTypes:
    - struct rasLink*
    - struct rasConnection*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1293
      start: 1260
    functionDepth: 2
    functionLinenumber: 1260
    functionLinenumberEnd: 1293
    functionName: rasLinkConnDrop
    functionSourceFile: /src/nccl/src/ras/rasnet.cc
    functionUses: 2
    functionsReached:
    - INFO
    - ncclSocketToString
    - rasLinkSanitizeFallbacks
    - free
    linkageType: ''
    returnType: void
    signature: void rasLinkConnDrop(struct rasLink* link, const struct rasConnection*
      conn, bool external)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - link
    - conn
    - pLinkIdx
    argTypes:
    - struct rasLink*
    - struct rasConnection*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1311
      start: 1298
    functionDepth: 0
    functionLinenumber: 1298
    functionLinenumberEnd: 1311
    functionName: rasLinkConnFind
    functionSourceFile: /src/nccl/src/ras/rasnet.cc
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: struct rasLinkConn
    signature: "struct rasLinkConn * rasLinkConnFind(const struct rasLink* link, const
      struct rasConnection* conn,\n                                           int*
      pLinkIdx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/nccl/src/ras/rasnet.cc:1317,1
    - Dst: free
      Src: /src/nccl/src/ras/rasnet.cc:1322,1
    - Dst: rasConnTerminate
      Src: /src/nccl/src/ras/rasnet.cc:1330,1
    - Dst: rasSocketTerminate
      Src: /src/nccl/src/ras/rasnet.cc:1337,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1341
      start: 1314
    functionDepth: 6
    functionLinenumber: 1314
    functionLinenumberEnd: 1341
    functionName: rasNetTerminate
    functionSourceFile: /src/nccl/src/ras/rasnet.cc
    functionUses: 0
    functionsReached:
    - rasConnTerminate
    - rasSocketTerminate
    - free
    linkageType: ''
    returnType: void
    signature: void rasNetTerminate()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/ras/collectives.cc:73,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/ras/collectives.cc:73,1
    - Dst: clockNano
      Src: /src/nccl/src/ras/collectives.cc:75,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/ras/collectives.cc:81,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/ras/collectives.cc:81,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - pColl
    argTypes:
    - struct rasCollective**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 93
    functionName: getNewCollEntry
    functionSourceFile: /src/nccl/src/ras/collectives.cc
    functionUses: 0
    functionsReached:
    - clockNano
    - ncclCalloc
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t getNewCollEntry(struct rasCollective** pColl)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nccl/src/ras/collectives.cc:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - req
    argTypes:
    - struct rasCollRequest*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 99
    functionName: rasCollReqInit
    functionSourceFile: /src/nccl/src/ras/collectives.cc
    functionUses: 1
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void rasCollReqInit(struct rasCollRequest* req)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/ras/collectives.cc:117,1
    - Dst: getNewCollEntry
      Src: /src/nccl/src/ras/collectives.cc:117,1
    - Dst: memcpy
      Src: /src/nccl/src/ras/collectives.cc:120,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/ras/collectives.cc:125,1
    - Dst: memcpy
      Src: /src/nccl/src/ras/collectives.cc:126,1
    - Dst: rasCollConnsInit
      Src: /src/nccl/src/ras/collectives.cc:132,1
    - Dst: rasCollCommsInit
      Src: /src/nccl/src/ras/collectives.cc:134,1
    - Dst: min
      Src: /src/nccl/src/ras/collectives.cc:137,1
    - Dst: memcpy
      Src: /src/nccl/src/ras/collectives.cc:138,1
    - Dst: rasMsgHandleBCDeadPeer
      Src: /src/nccl/src/ras/collectives.cc:146,1
    - Dst: rasLinkSendCollReq
      Src: /src/nccl/src/ras/collectives.cc:155,1
    - Dst: rasLinkSendCollReq
      Src: /src/nccl/src/ras/collectives.cc:156,1
    - Dst: free
      Src: /src/nccl/src/ras/collectives.cc:162,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 41
    argCount: 4
    argNames:
    - req
    - pAllDone
    - pColl
    - fromConn
    argTypes:
    - struct rasCollRequest*
    - bool*
    - struct rasCollective**
    - struct rasConnection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 110
    functionDepth: 2
    functionLinenumber: 110
    functionLinenumberEnd: 164
    functionName: rasNetSendCollReq
    functionSourceFile: /src/nccl/src/ras/collectives.cc
    functionUses: 1
    functionsReached:
    - min
    - memcpy
    - rasCollCommsInit
    - rasLinkSendCollReq
    - free
    - rasMsgHandleBCDeadPeer
    - rasCollConnsInit
    - getNewCollEntry
    - ncclCalloc
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t rasNetSendCollReq(const struct rasCollRequest* req, bool*
      pAllDone,\n                               struct rasCollective** pColl, struct
      rasConnection* fromConn)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rasConnSendCollReq
      Src: /src/nccl/src/ras/collectives.cc:176,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 11
    argCount: 5
    argNames:
    - link
    - coll
    - req
    - reqLen
    - fromConn
    argTypes:
    - struct rasLink*
    - struct rasCollective*
    - struct rasCollRequest*
    - size_t
    - struct rasConnection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 184
    functionName: rasLinkSendCollReq
    functionSourceFile: /src/nccl/src/ras/collectives.cc
    functionUses: 1
    functionsReached:
    - rasConnSendCollReq
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t rasLinkSendCollReq(struct rasLink* link, struct rasCollective*
      coll,\n                                       const struct rasCollRequest* req,
      size_t reqLen,\n                                       struct rasConnection*
      fromConn)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rasMsgLength
      Src: /src/nccl/src/ras/collectives.cc:189,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/ras/collectives.cc:191,1
    - Dst: rasMsgAlloc
      Src: /src/nccl/src/ras/collectives.cc:191,1
    - Dst: memcpy
      Src: /src/nccl/src/ras/collectives.cc:193,1
    - Dst: rasConnEnqueueMsg
      Src: /src/nccl/src/ras/collectives.cc:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - conn
    - req
    - reqLen
    argTypes:
    - struct rasConnection*
    - struct rasCollRequest*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 198
    functionName: rasConnSendCollReq
    functionSourceFile: /src/nccl/src/ras/collectives.cc
    functionUses: 1
    functionsReached:
    - memcpy
    - rasMsgLength
    - rasMsgAlloc
    - rasConnEnqueueMsg
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t rasConnSendCollReq(struct rasConnection* conn, const struct
      rasCollRequest* req, size_t reqLen)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/nccl/src/ras/collectives.cc:206,1
    - Dst: memcmp
      Src: /src/nccl/src/ras/collectives.cc:212,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/ras/collectives.cc:217,1
    - Dst: rasConnSendCollResp
      Src: /src/nccl/src/ras/collectives.cc:217,1
    - Dst: memcmp
      Src: /src/nccl/src/ras/collectives.cc:227,1
    - Dst: assert
      Src: /src/nccl/src/ras/collectives.cc:229,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/ras/collectives.cc:233,1
    - Dst: rasConnSendCollResp
      Src: /src/nccl/src/ras/collectives.cc:233,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/ras/collectives.cc:241,1
    - Dst: rasNetSendCollReq
      Src: /src/nccl/src/ras/collectives.cc:241,1
    - Dst: assert
      Src: /src/nccl/src/ras/collectives.cc:244,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/ras/collectives.cc:248,1
    - Dst: rasCollReadyResp
      Src: /src/nccl/src/ras/collectives.cc:248,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 2
    argNames:
    - msg
    - sock
    argTypes:
    - struct rasMsg*
    - struct rasSocket*
    assertStmts:
    - condition: (sock->conn)
      pos:
        line_end: 205
        line_start: 205
        source_file: /src/nccl/src/ras/collectives.cc
    - condition: (msg->collReq.type == coll->type)
      pos:
        line_end: 228
        line_start: 228
        source_file: /src/nccl/src/ras/collectives.cc
    - condition: (coll)
      pos:
        line_end: 243
        line_start: 243
        source_file: /src/nccl/src/ras/collectives.cc
    constantsTouched: []
    func_position:
      end: 252
      start: 203
    functionDepth: 3
    functionLinenumber: 203
    functionLinenumberEnd: 252
    functionName: rasMsgHandleCollReq
    functionSourceFile: /src/nccl/src/ras/collectives.cc
    functionUses: 0
    functionsReached:
    - rasCollReadyResp
    - memcmp
    - rasNetSendCollReq
    - rasConnSendCollResp
    - assert
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t rasMsgHandleCollReq(struct rasMsg* msg, struct rasSocket*
      sock)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/ras/collectives.cc:260,1
    - Dst: rasConnSendCollResp
      Src: /src/nccl/src/ras/collectives.cc:260,1
    - Dst: min
      Src: /src/nccl/src/ras/collectives.cc:264,1
    - Dst: memcpy
      Src: /src/nccl/src/ras/collectives.cc:265,1
    - Dst: rasCollFree
      Src: /src/nccl/src/ras/collectives.cc:270,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/ras/collectives.cc:273,1
    - Dst: rasClientResume
      Src: /src/nccl/src/ras/collectives.cc:273,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - coll
    argTypes:
    - struct rasCollective*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 276
    functionName: rasCollReadyResp
    functionSourceFile: /src/nccl/src/ras/collectives.cc
    functionUses: 1
    functionsReached:
    - min
    - memcpy
    - rasConnSendCollResp
    - rasClientResume
    - rasCollFree
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t rasCollReadyResp(struct rasCollective* coll)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rasMsgLength
      Src: /src/nccl/src/ras/collectives.cc:285,1
    - Dst: ALIGN_SIZE
      Src: /src/nccl/src/ras/collectives.cc:289,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/ras/collectives.cc:294,1
    - Dst: rasMsgAlloc
      Src: /src/nccl/src/ras/collectives.cc:294,1
    - Dst: memcpy
      Src: /src/nccl/src/ras/collectives.cc:296,1
    - Dst: memcpy
      Src: /src/nccl/src/ras/collectives.cc:302,1
    - Dst: memcpy
      Src: /src/nccl/src/ras/collectives.cc:304,1
    - Dst: rasConnEnqueueMsg
      Src: /src/nccl/src/ras/collectives.cc:306,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 8
    argNames:
    - conn
    - rootAddr
    - rootId
    - peers
    - nPeers
    - data
    - nData
    - nLegTimeouts
    argTypes:
    - struct rasConnection*
    - union ncclSocketAddress*
    - uint64_t
    - union ncclSocketAddress*
    - int
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 280
    functionDepth: 1
    functionLinenumber: 280
    functionLinenumberEnd: 309
    functionName: rasConnSendCollResp
    functionSourceFile: /src/nccl/src/ras/collectives.cc
    functionUses: 2
    functionsReached:
    - memcpy
    - rasMsgLength
    - rasMsgAlloc
    - ALIGN_SIZE
    - rasConnEnqueueMsg
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t rasConnSendCollResp(struct rasConnection* conn,\n                                        const
      union ncclSocketAddress* rootAddr, uint64_t rootId,\n                                        const
      union ncclSocketAddress* peers, int nPeers,\n                                        const
      char* data, int nData, int nLegTimeouts)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/nccl/src/ras/collectives.cc:319,1
    - Dst: INFO
      Src: /src/nccl/src/ras/collectives.cc:324,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/collectives.cc:325,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/collectives.cc:326,1
    - Dst: assert
      Src: /src/nccl/src/ras/collectives.cc:331,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/ras/collectives.cc:343,1
    - Dst: rasCollConnsMerge
      Src: /src/nccl/src/ras/collectives.cc:343,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/ras/collectives.cc:345,1
    - Dst: rasCollCommsMerge
      Src: /src/nccl/src/ras/collectives.cc:345,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/ras/collectives.cc:349,1
    - Dst: ncclRealloc
      Src: /src/nccl/src/ras/collectives.cc:349,1
    - Dst: memcpy
      Src: /src/nccl/src/ras/collectives.cc:350,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/ras/collectives.cc:356,1
    - Dst: rasCollReadyResp
      Src: /src/nccl/src/ras/collectives.cc:356,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 35
    argCount: 2
    argNames:
    - msg
    - sock
    argTypes:
    - struct rasMsg*
    - struct rasSocket*
    assertStmts:
    - condition: (sock->conn)
      pos:
        line_end: 330
        line_start: 330
        source_file: /src/nccl/src/ras/collectives.cc
    constantsTouched: []
    func_position:
      end: 359
      start: 314
    functionDepth: 2
    functionLinenumber: 314
    functionLinenumberEnd: 359
    functionName: rasMsgHandleCollResp
    functionSourceFile: /src/nccl/src/ras/collectives.cc
    functionUses: 0
    functionsReached:
    - INFO
    - ncclSocketToString
    - rasCollReadyResp
    - memcpy
    - memcmp
    - rasCollConnsMerge
    - rasCollCommsMerge
    - assert
    - ncclRealloc
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t rasMsgHandleCollResp(struct rasMsg* msg, struct rasSocket*
      sock)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: INFO
      Src: /src/nccl/src/ras/collectives.cc:368,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/collectives.cc:369,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/collectives.cc:370,1
    - Dst: rasCollFree
      Src: /src/nccl/src/ras/collectives.cc:371,1
    - Dst: INFO
      Src: /src/nccl/src/ras/collectives.cc:378,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/collectives.cc:380,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/collectives.cc:380,1
    - Dst: rasCollReadyResp
      Src: /src/nccl/src/ras/collectives.cc:383,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 1
    argNames:
    - conn
    argTypes:
    - struct rasConnection*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 363
    functionDepth: 2
    functionLinenumber: 363
    functionLinenumberEnd: 390
    functionName: rasCollsPurgeConn
    functionSourceFile: /src/nccl/src/ras/collectives.cc
    functionUses: 4
    functionsReached:
    - INFO
    - ncclSocketToString
    - rasCollReadyResp
    - rasCollFree
    linkageType: ''
    returnType: void
    signature: void rasCollsPurgeConn(struct rasConnection* conn)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/nccl/src/ras/collectives.cc:397,1
    - Dst: free
      Src: /src/nccl/src/ras/collectives.cc:398,1
    - Dst: free
      Src: /src/nccl/src/ras/collectives.cc:399,1
    - Dst: free
      Src: /src/nccl/src/ras/collectives.cc:409,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - coll
    argTypes:
    - struct rasCollective*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 393
    functionDepth: 0
    functionLinenumber: 393
    functionLinenumberEnd: 410
    functionName: rasCollFree
    functionSourceFile: /src/nccl/src/ras/collectives.cc
    functionUses: 2
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void rasCollFree(struct rasCollective* coll)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: INFO
      Src: /src/nccl/src/ras/collectives.cc:430,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/collectives.cc:431,1
    - Dst: INFO
      Src: /src/nccl/src/ras/collectives.cc:447,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/collectives.cc:449,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/collectives.cc:449,1
    - Dst: rasCollReadyResp
      Src: /src/nccl/src/ras/collectives.cc:457,1
    - Dst: INFO
      Src: /src/nccl/src/ras/collectives.cc:465,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/collectives.cc:466,1
    - Dst: rasCollReadyResp
      Src: /src/nccl/src/ras/collectives.cc:470,1
    - Dst: min
      Src: /src/nccl/src/ras/collectives.cc:472,1
    - Dst: min
      Src: /src/nccl/src/ras/collectives.cc:476,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 2
    argNames:
    - now
    - nextWakeup
    argTypes:
    - int64_t
    - int64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 423
    functionDepth: 2
    functionLinenumber: 423
    functionLinenumberEnd: 482
    functionName: rasCollsHandleTimeouts
    functionSourceFile: /src/nccl/src/ras/collectives.cc
    functionUses: 0
    functionsReached:
    - INFO
    - ncclSocketToString
    - rasCollReadyResp
    - min
    linkageType: ''
    returnType: void
    signature: void rasCollsHandleTimeouts(int64_t now, int64_t* nextWakeup)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: rasCollDataLength
      Src: /src/nccl/src/ras/collectives.cc:497,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/ras/collectives.cc:516,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/ras/collectives.cc:516,1
    - Dst: memcpy
      Src: /src/nccl/src/ras/collectives.cc:518,1
    - Dst: memcpy
      Src: /src/nccl/src/ras/collectives.cc:524,1
    - Dst: memcpy
      Src: /src/nccl/src/ras/collectives.cc:525,1
    - Dst: assert
      Src: /src/nccl/src/ras/collectives.cc:529,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 4
    argNames:
    - pReq
    - pReqLen
    - pData
    - pNData
    argTypes:
    - struct rasCollRequest**
    - size_t*
    - char**
    - int*
    assertStmts:
    - condition: (negMinsIdx <= connsData.nNegativeMins)
      pos:
        line_end: 528
        line_start: 528
        source_file: /src/nccl/src/ras/collectives.cc
    constantsTouched: []
    func_position:
      end: 534
      start: 493
    functionDepth: 1
    functionLinenumber: 493
    functionLinenumberEnd: 534
    functionName: rasCollConnsInit
    functionSourceFile: /src/nccl/src/ras/collectives.cc
    functionUses: 1
    functionsReached:
    - memcpy
    - rasCollDataLength
    - assert
    - ncclCalloc
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t rasCollConnsInit(struct rasCollRequest** pReq, size_t*
      pReqLen, char** pData, int* pNData)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rasMsgLength
      Src: /src/nccl/src/ras/collectives.cc:540,1
    - Dst: ALIGN_SIZE
      Src: /src/nccl/src/ras/collectives.cc:541,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/ras/collectives.cc:559,1
    - Dst: ncclRealloc
      Src: /src/nccl/src/ras/collectives.cc:559,1
    - Dst: memcpy
      Src: /src/nccl/src/ras/collectives.cc:561,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - coll
    - msg
    argTypes:
    - struct rasCollective*
    - struct rasMsg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 537
    functionDepth: 2
    functionLinenumber: 537
    functionLinenumberEnd: 568
    functionName: rasCollConnsMerge
    functionSourceFile: /src/nccl/src/ras/collectives.cc
    functionUses: 1
    functionsReached:
    - memcpy
    - rasMsgLength
    - ALIGN_SIZE
    - ncclRealloc
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t rasCollConnsMerge(struct rasCollective* coll, struct rasMsg*
      msg)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: rasCollDataLength
      Src: /src/nccl/src/ras/collectives.cc:595,1
    - Dst: qsort
      Src: /src/nccl/src/ras/collectives.cc:603,1
    - Dst: __atomic_load_n
      Src: /src/nccl/src/ras/collectives.cc:609,1
    - Dst: rasCollCommsSkipMissing
      Src: /src/nccl/src/ras/collectives.cc:616,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/collectives.cc:624,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/ras/collectives.cc:624,1
    - Dst: memcpy
      Src: /src/nccl/src/ras/collectives.cc:625,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/collectives.cc:649,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/ras/collectives.cc:649,1
    - Dst: __atomic_load_n
      Src: /src/nccl/src/ras/collectives.cc:658,1
    - Dst: memcpy
      Src: /src/nccl/src/ras/collectives.cc:676,1
    - Dst: __atomic_load_n
      Src: /src/nccl/src/ras/collectives.cc:678,1
    - Dst: __atomic_load_n
      Src: /src/nccl/src/ras/collectives.cc:680,1
    - Dst: __atomic_load_n
      Src: /src/nccl/src/ras/collectives.cc:683,1
    - Dst: __atomic_load_n
      Src: /src/nccl/src/ras/collectives.cc:689,1
    - Dst: memcmp
      Src: /src/nccl/src/ras/collectives.cc:690,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/collectives.cc:697,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/ras/collectives.cc:697,1
    - Dst: qsort
      Src: /src/nccl/src/ras/collectives.cc:700,1
    - Dst: bsearch
      Src: /src/nccl/src/ras/collectives.cc:718,1
    - Dst: memcpy
      Src: /src/nccl/src/ras/collectives.cc:720,1
    - Dst: assert
      Src: /src/nccl/src/ras/collectives.cc:732,1
    - Dst: rasCollDataLength
      Src: /src/nccl/src/ras/collectives.cc:736,1
    - Dst: qsort
      Src: /src/nccl/src/ras/collectives.cc:738,1
    - Dst: free
      Src: /src/nccl/src/ras/collectives.cc:742,1
    - Dst: free
      Src: /src/nccl/src/ras/collectives.cc:746,1
    - Dst: free
      Src: /src/nccl/src/ras/collectives.cc:749,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 109
    argCount: 4
    argNames:
    - pReq
    - pReqLen
    - pData
    - pNData
    argTypes:
    - struct rasCollRequest**
    - size_t*
    - char**
    - int*
    assertStmts:
    - condition: (((char*)comm) - (char*)commsData <= *pNData)
      pos:
        line_end: 731
        line_start: 731
        source_file: /src/nccl/src/ras/collectives.cc
    constantsTouched: []
    func_position:
      end: 752
      start: 584
    functionDepth: 1
    functionLinenumber: 584
    functionLinenumberEnd: 752
    functionName: rasCollCommsInit
    functionSourceFile: /src/nccl/src/ras/collectives.cc
    functionUses: 1
    functionsReached:
    - __atomic_load_n
    - NCCLCHECKGOTO
    - memcpy
    - memcmp
    - rasCollCommsSkipMissing
    - free
    - qsort
    - rasCollDataLength
    - assert
    - ncclCalloc
    - bsearch
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t rasCollCommsInit(struct rasCollRequest** pReq, size_t*
      pReqLen, char** pData, int* pNData)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: rasMsgLength
      Src: /src/nccl/src/ras/collectives.cc:758,1
    - Dst: ALIGN_SIZE
      Src: /src/nccl/src/ras/collectives.cc:759,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/ras/collectives.cc:768,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/ras/collectives.cc:768,1
    - Dst: rasCommIdCompare
      Src: /src/nccl/src/ras/collectives.cc:776,1
    - Dst: INFO
      Src: /src/nccl/src/ras/collectives.cc:781,1
    - Dst: memcpy
      Src: /src/nccl/src/ras/collectives.cc:790,1
    - Dst: INFO
      Src: /src/nccl/src/ras/collectives.cc:793,1
    - Dst: INFO
      Src: /src/nccl/src/ras/collectives.cc:818,1
    - Dst: memcpy
      Src: /src/nccl/src/ras/collectives.cc:823,1
    - Dst: bsearch
      Src: /src/nccl/src/ras/collectives.cc:832,1
    - Dst: memset
      Src: /src/nccl/src/ras/collectives.cc:839,1
    - Dst: INFO
      Src: /src/nccl/src/ras/collectives.cc:841,1
    - Dst: memset
      Src: /src/nccl/src/ras/collectives.cc:853,1
    - Dst: memcmp
      Src: /src/nccl/src/ras/collectives.cc:858,1
    - Dst: memcpy
      Src: /src/nccl/src/ras/collectives.cc:859,1
    - Dst: assert
      Src: /src/nccl/src/ras/collectives.cc:863,1
    - Dst: memcpy
      Src: /src/nccl/src/ras/collectives.cc:877,1
    - Dst: memcpy
      Src: /src/nccl/src/ras/collectives.cc:885,1
    - Dst: free
      Src: /src/nccl/src/ras/collectives.cc:896,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 87
    argCount: 2
    argNames:
    - coll
    - msg
    argTypes:
    - struct rasCollective*
    - struct rasMsg*
    assertStmts:
    - condition: (newComm->nRanks + newComm->nMissingRanks == newComm->commNRanks)
      pos:
        line_end: 862
        line_start: 862
        source_file: /src/nccl/src/ras/collectives.cc
    constantsTouched: []
    func_position:
      end: 903
      start: 755
    functionDepth: 1
    functionLinenumber: 755
    functionLinenumberEnd: 903
    functionName: rasCollCommsMerge
    functionSourceFile: /src/nccl/src/ras/collectives.cc
    functionUses: 1
    functionsReached:
    - INFO
    - memcpy
    - rasCommIdCompare
    - rasMsgLength
    - memcmp
    - free
    - ALIGN_SIZE
    - memset
    - ncclCalloc
    - assert
    - NCCLCHECK
    - bsearch
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t rasCollCommsMerge(struct rasCollective* coll, struct rasMsg*
      msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bsearch
      Src: /src/nccl/src/ras/collectives.cc:911,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - req
    - comm
    argTypes:
    - struct rasCollRequest*
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 913
      start: 906
    functionDepth: 0
    functionLinenumber: 906
    functionLinenumberEnd: 913
    functionName: rasCollCommsSkipMissing
    functionSourceFile: /src/nccl/src/ras/collectives.cc
    functionUses: 1
    functionsReached:
    - bsearch
    linkageType: ''
    returnType: bool
    signature: bool rasCollCommsSkipMissing(const struct rasCollRequest* req, struct
      ncclComm* comm)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - p1
    - p2
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 929
      start: 916
    functionDepth: 0
    functionLinenumber: 916
    functionLinenumberEnd: 929
    functionName: ncclCommsCompare
    functionSourceFile: /src/nccl/src/ras/collectives.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int ncclCommsCompare(const void* p1, const void* p2)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - p1
    - p2
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 941
      start: 932
    functionDepth: 0
    functionLinenumber: 932
    functionLinenumberEnd: 941
    functionName: peersHashesCompare
    functionSourceFile: /src/nccl/src/ras/collectives.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int peersHashesCompare(const void* p1, const void* p2)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - k
    - e
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 954
      start: 945
    functionDepth: 0
    functionLinenumber: 945
    functionLinenumberEnd: 954
    functionName: peersHashesSearch
    functionSourceFile: /src/nccl/src/ras/collectives.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int peersHashesSearch(const void* k, const void* e)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - p1
    - p2
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 969
      start: 957
    functionDepth: 0
    functionLinenumber: 957
    functionLinenumberEnd: 969
    functionName: rasCommIdCompare
    functionSourceFile: /src/nccl/src/ras/collectives.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int rasCommIdCompare(const void* p1, const void* p2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - k
    - e
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 977
      start: 972
    functionDepth: 0
    functionLinenumber: 972
    functionLinenumberEnd: 977
    functionName: rasCollCommsMissingRankSearch
    functionSourceFile: /src/nccl/src/ras/collectives.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int rasCollCommsMissingRankSearch(const void* k, const void* e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rasCollFree
      Src: /src/nccl/src/ras/collectives.cc:983,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 988
      start: 980
    functionDepth: 1
    functionLinenumber: 980
    functionLinenumberEnd: 988
    functionName: rasCollectivesTerminate
    functionSourceFile: /src/nccl/src/ras/collectives.cc
    functionUses: 0
    functionsReached:
    - rasCollFree
    linkageType: ''
    returnType: void
    signature: void rasCollectivesTerminate()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nccl/src/ras/ras.cc:98,1
    - Dst: htons
      Src: /src/nccl/src/ras/ras.cc:99,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/ras.cc:100,1
    - Dst: ncclSocketInit
      Src: /src/nccl/src/ras/ras.cc:100,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/ras.cc:102,1
    - Dst: ncclSocketListen
      Src: /src/nccl/src/ras/ras.cc:102,1
    - Dst: INFO
      Src: /src/nccl/src/ras/ras.cc:103,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/ras.cc:104,1
    - Dst: rasClientInitSocket
      Src: /src/nccl/src/ras/ras.cc:106,1
    - Dst: SYSCHECKGOTO
      Src: /src/nccl/src/ras/ras.cc:108,1
    - Dst: pipe
      Src: /src/nccl/src/ras/ras.cc:108,1
    - Dst: PTHREADCHECKGOTO
      Src: /src/nccl/src/ras/ras.cc:110,1
    - Dst: pthread_create
      Src: /src/nccl/src/ras/ras.cc:110,1
    - Dst: ncclSetThreadName
      Src: /src/nccl/src/ras/ras.cc:111,1
    - Dst: ncclAtomicRefCountIncrement
      Src: /src/nccl/src/ras/ras.cc:116,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/ras/ras.cc:127,1
    - Dst: ncclRealloc
      Src: /src/nccl/src/ras/ras.cc:127,1
    - Dst: memcpy
      Src: /src/nccl/src/ras/ras.cc:135,1
    - Dst: close
      Src: /src/nccl/src/ras/ras.cc:141,1
    - Dst: close
      Src: /src/nccl/src/ras/ras.cc:143,1
    - Dst: close
      Src: /src/nccl/src/ras/ras.cc:144,1
    - Dst: ncclSocketClose
      Src: /src/nccl/src/ras/ras.cc:145,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 42
    argCount: 2
    argNames:
    - comm
    - myRank
    argTypes:
    - struct ncclComm*
    - struct rasRankInit*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 91
    functionDepth: 5
    functionLinenumber: 91
    functionLinenumberEnd: 147
    functionName: ncclRasCommInit
    functionSourceFile: /src/nccl/src/ras/ras.cc
    functionUses: 2
    functionsReached:
    - INFO
    - ncclSocketToString
    - ncclSetThreadName
    - NCCLCHECKGOTO
    - ncclAtomicRefCountIncrement
    - memcpy
    - PTHREADCHECKGOTO
    - close
    - ncclSocketClose
    - SYSCHECKGOTO
    - pipe
    - ncclSocketInit
    - ncclRealloc
    - htons
    - rasClientInitSocket
    - pthread_create
    - NCCLCHECK
    - ncclSocketListen
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclRasCommInit(struct ncclComm* comm, struct rasRankInit*
      myRank)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ncclAtomicRefCountDecrement
      Src: /src/nccl/src/ras/ras.cc:163,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 165
    functionName: ncclRasCommFini
    functionSourceFile: /src/nccl/src/ras/ras.cc
    functionUses: 1
    functionsReached:
    - ncclAtomicRefCountDecrement
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclRasCommFini(const struct ncclComm* comm)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nccl/src/ras/ras.cc:173,1
    - Dst: rasLocalNotify
      Src: /src/nccl/src/ras/ras.cc:175,1
    - Dst: pthread_join
      Src: /src/nccl/src/ras/ras.cc:176,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 169
    functionDepth: 1
    functionLinenumber: 169
    functionLinenumberEnd: 177
    functionName: rasTerminate
    functionSourceFile: /src/nccl/src/ras/ras.cc
    functionUses: 0
    functionsReached:
    - pthread_join
    - rasLocalNotify
    - memset
    linkageType: ''
    returnType: void
    signature: void rasTerminate()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/nccl/src/ras/ras.cc:183,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/ras/ras.cc:187,1
    - Dst: rasLocalNotify
      Src: /src/nccl/src/ras/ras.cc:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - ranks
    - nranks
    argTypes:
    - struct rasRankInit*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 189
    functionName: ncclRasAddRanks
    functionSourceFile: /src/nccl/src/ras/ras.cc
    functionUses: 1
    functionsReached:
    - rasLocalNotify
    - NCCLCHECK
    - memset
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclRasAddRanks(struct rasRankInit* ranks, int nranks)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: SYSCHECK
      Src: /src/nccl/src/ras/ras.cc:202,1
    - Dst: write
      Src: /src/nccl/src/ras/ras.cc:202,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - msg
    argTypes:
    - struct rasNotification*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 206
    functionName: rasLocalNotify
    functionSourceFile: /src/nccl/src/ras/ras.cc
    functionUses: 2
    functionsReached:
    - SYSCHECK
    - write
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t rasLocalNotify(const struct rasNotification* msg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: SYSCHECK
      Src: /src/nccl/src/ras/ras.cc:220,1
    - Dst: read
      Src: /src/nccl/src/ras/ras.cc:220,1
    - Dst: rasLocalHandleAddRanks
      Src: /src/nccl/src/ras/ras.cc:227,1
    - Dst: INFO
      Src: /src/nccl/src/ras/ras.cc:230,1
    - Dst: WARN
      Src: /src/nccl/src/ras/ras.cc:233,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - terminate
    argTypes:
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 214
    functionDepth: 2
    functionLinenumber: 214
    functionLinenumberEnd: 238
    functionName: rasLocalHandle
    functionSourceFile: /src/nccl/src/ras/ras.cc
    functionUses: 0
    functionsReached:
    - INFO
    - WARN
    - read
    - SYSCHECK
    - rasLocalHandleAddRanks
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t rasLocalHandle(bool* terminate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rasClientSupportTerminate
      Src: /src/nccl/src/ras/ras.cc:242,1
    - Dst: rasNetTerminate
      Src: /src/nccl/src/ras/ras.cc:243,1
    - Dst: rasCollectivesTerminate
      Src: /src/nccl/src/ras/ras.cc:244,1
    - Dst: rasPeersTerminate
      Src: /src/nccl/src/ras/ras.cc:245,1
    - Dst: close
      Src: /src/nccl/src/ras/ras.cc:249,1
    - Dst: close
      Src: /src/nccl/src/ras/ras.cc:250,1
    - Dst: ncclSocketClose
      Src: /src/nccl/src/ras/ras.cc:253,1
    - Dst: free
      Src: /src/nccl/src/ras/ras.cc:260,1
    - Dst: free
      Src: /src/nccl/src/ras/ras.cc:266,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 241
    functionDepth: 7
    functionLinenumber: 241
    functionLinenumberEnd: 269
    functionName: rasThreadCleanup
    functionSourceFile: /src/nccl/src/ras/ras.cc
    functionUses: 0
    functionsReached:
    - free
    - rasCollectivesTerminate
    - close
    - rasPeersTerminate
    - ncclSocketClose
    - rasNetTerminate
    - rasClientSupportTerminate
    linkageType: ''
    returnType: void
    signature: void rasThreadCleanup()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/ras/ras.cc:282,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/ras/ras.cc:282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - msg
    - msgLen
    argTypes:
    - struct rasMsg**
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 280
    functionDepth: 1
    functionLinenumber: 280
    functionLinenumberEnd: 286
    functionName: rasMsgAlloc
    functionSourceFile: /src/nccl/src/ras/ras.cc
    functionUses: 6
    functionsReached:
    - ncclCalloc
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t rasMsgAlloc(struct rasMsg** msg, size_t msgLen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/nccl/src/ras/ras.cc:293,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - msg
    argTypes:
    - struct rasMsg*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 295
    functionName: rasMsgFree
    functionSourceFile: /src/nccl/src/ras/ras.cc
    functionUses: 1
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void rasMsgFree(struct rasMsg* msg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: clockNano
      Src: /src/nccl/src/ras/ras.cc:303,1
    - Dst: ncclIntruQueueEnqueueFront
      Src: /src/nccl/src/ras/ras.cc:308,1
    - Dst: ncclIntruQueueEnqueue
      Src: /src/nccl/src/ras/ras.cc:310,1
    - Dst: INFO
      Src: /src/nccl/src/ras/ras.cc:321,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/ras.cc:323,1
    - Dst: clockNano
      Src: /src/nccl/src/ras/ras.cc:324,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 4
    argNames:
    - conn
    - msg
    - msgLen
    - front
    argTypes:
    - struct rasConnection*
    - struct rasMsg*
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 298
    functionDepth: 1
    functionLinenumber: 298
    functionLinenumberEnd: 327
    functionName: rasConnEnqueueMsg
    functionSourceFile: /src/nccl/src/ras/ras.cc
    functionUses: 6
    functionsReached:
    - clockNano
    - ncclSocketToString
    - INFO
    - ncclIntruQueueEnqueueFront
    - ncclIntruQueueEnqueue
    linkageType: ''
    returnType: void
    signature: void rasConnEnqueueMsg(struct rasConnection* conn, struct rasMsg* msg,
      size_t msgLen, bool front)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ncclIntruQueueHead
      Src: /src/nccl/src/ras/ras.cc:333,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/ras/ras.cc:341,1
    - Dst: ncclSocketProgress
      Src: /src/nccl/src/ras/ras.cc:341,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/ras/ras.cc:349,1
    - Dst: ncclSocketProgress
      Src: /src/nccl/src/ras/ras.cc:349,1
    - Dst: ncclIntruQueueDequeue
      Src: /src/nccl/src/ras/ras.cc:355,1
    - Dst: free
      Src: /src/nccl/src/ras/ras.cc:356,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 24
    argCount: 3
    argNames:
    - conn
    - closed
    - allSent
    argTypes:
    - struct rasConnection*
    - int*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 330
    functionDepth: 4
    functionLinenumber: 330
    functionLinenumberEnd: 362
    functionName: rasConnSendMsg
    functionSourceFile: /src/nccl/src/ras/ras.cc
    functionUses: 1
    functionsReached:
    - free
    - ncclIntruQueueDequeue
    - ncclSocketProgress
    - ncclIntruQueueHead
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t rasConnSendMsg(struct rasConnection* conn, int* closed,
      bool* allSent)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/ras/ras.cc:369,1
    - Dst: ncclSocketProgress
      Src: /src/nccl/src/ras/ras.cc:369,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/ras/ras.cc:373,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/ras/ras.cc:373,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/ras/ras.cc:376,1
    - Dst: ncclSocketProgress
      Src: /src/nccl/src/ras/ras.cc:376,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - sock
    - msg
    - closed
    argTypes:
    - struct rasSocket*
    - struct rasMsg**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 365
    functionDepth: 4
    functionLinenumber: 365
    functionLinenumberEnd: 386
    functionName: rasMsgRecv
    functionSourceFile: /src/nccl/src/ras/ras.cc
    functionUses: 1
    functionsReached:
    - ncclSocketProgress
    - ncclCalloc
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t rasMsgRecv(struct rasSocket* sock, struct rasMsg** msg,
      int* closed)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/ras/ras.cc:396,1
    - Dst: rasMsgHandleConnInit
      Src: /src/nccl/src/ras/ras.cc:396,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/ras/ras.cc:398,1
    - Dst: rasMsgHandleConnInitAck
      Src: /src/nccl/src/ras/ras.cc:398,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/ras/ras.cc:400,1
    - Dst: rasMsgHandleKeepAlive
      Src: /src/nccl/src/ras/ras.cc:400,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/ras/ras.cc:402,1
    - Dst: rasMsgHandlePeersUpdate
      Src: /src/nccl/src/ras/ras.cc:402,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/ras/ras.cc:404,1
    - Dst: rasMsgHandleCollReq
      Src: /src/nccl/src/ras/ras.cc:404,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/ras/ras.cc:406,1
    - Dst: rasMsgHandleCollResp
      Src: /src/nccl/src/ras/ras.cc:406,1
    - Dst: WARN
      Src: /src/nccl/src/ras/ras.cc:408,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/ras.cc:408,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - msg
    - sock
    argTypes:
    - struct rasMsg*
    - struct rasSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 413
      start: 394
    functionDepth: 4
    functionLinenumber: 394
    functionLinenumberEnd: 413
    functionName: rasMsgHandle
    functionSourceFile: /src/nccl/src/ras/ras.cc
    functionUses: 1
    functionsReached:
    - WARN
    - ncclSocketToString
    - rasMsgHandleConnInitAck
    - rasMsgHandleCollResp
    - rasMsgHandleCollReq
    - rasMsgHandleKeepAlive
    - rasMsgHandlePeersUpdate
    - NCCLCHECK
    - rasMsgHandleConnInit
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t rasMsgHandle(struct rasMsg* msg, struct rasSocket* sock)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: INFO
      Src: /src/nccl/src/ras/ras.cc:424,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/ras.cc:425,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/ras.cc:426,1
    - Dst: WARN
      Src: /src/nccl/src/ras/ras.cc:430,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/ras.cc:431,1
    - Dst: rasNetSendNack
      Src: /src/nccl/src/ras/ras.cc:432,1
    - Dst: rasSocketTerminate
      Src: /src/nccl/src/ras/ras.cc:433,1
    - Dst: rasPeerIsDead
      Src: /src/nccl/src/ras/ras.cc:438,1
    - Dst: INFO
      Src: /src/nccl/src/ras/ras.cc:440,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/ras.cc:441,1
    - Dst: rasNetSendNack
      Src: /src/nccl/src/ras/ras.cc:442,1
    - Dst: rasSocketTerminate
      Src: /src/nccl/src/ras/ras.cc:443,1
    - Dst: rasConnFind
      Src: /src/nccl/src/ras/ras.cc:448,1
    - Dst: INFO
      Src: /src/nccl/src/ras/ras.cc:450,1
    - Dst: ncclIntruQueueEmpty
      Src: /src/nccl/src/ras/ras.cc:452,1
    - Dst: clockNano
      Src: /src/nccl/src/ras/ras.cc:453,1
    - Dst: INFO
      Src: /src/nccl/src/ras/ras.cc:456,1
    - Dst: clockNano
      Src: /src/nccl/src/ras/ras.cc:457,1
    - Dst: ncclSocketsCompare
      Src: /src/nccl/src/ras/ras.cc:466,1
    - Dst: INFO
      Src: /src/nccl/src/ras/ras.cc:467,1
    - Dst: rasSocketTerminate
      Src: /src/nccl/src/ras/ras.cc:468,1
    - Dst: INFO
      Src: /src/nccl/src/ras/ras.cc:471,1
    - Dst: rasSocketTerminate
      Src: /src/nccl/src/ras/ras.cc:472,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/ras/ras.cc:476,1
    - Dst: getNewConnEntry
      Src: /src/nccl/src/ras/ras.cc:476,1
    - Dst: memcpy
      Src: /src/nccl/src/ras/ras.cc:477,1
    - Dst: memcpy
      Src: /src/nccl/src/ras/ras.cc:485,1
    - Dst: rasPeerFind
      Src: /src/nccl/src/ras/ras.cc:489,1
    - Dst: rasLinkConnUpdate
      Src: /src/nccl/src/ras/ras.cc:493,1
    - Dst: rasLinkConnUpdate
      Src: /src/nccl/src/ras/ras.cc:494,1
    - Dst: rasMsgLength
      Src: /src/nccl/src/ras/ras.cc:499,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/ras/ras.cc:500,1
    - Dst: rasMsgAlloc
      Src: /src/nccl/src/ras/ras.cc:500,1
    - Dst: rasConnEnqueueMsg
      Src: /src/nccl/src/ras/ras.cc:503,1
    - Dst: INFO
      Src: /src/nccl/src/ras/ras.cc:510,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/ras/ras.cc:512,1
    - Dst: rasConnSendPeersUpdate
      Src: /src/nccl/src/ras/ras.cc:512,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 59
    argCount: 2
    argNames:
    - msg
    - sock
    argTypes:
    - struct rasMsg*
    - struct rasSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 416
    functionDepth: 6
    functionLinenumber: 416
    functionLinenumberEnd: 516
    functionName: rasMsgHandleConnInit
    functionSourceFile: /src/nccl/src/ras/ras.cc
    functionUses: 1
    functionsReached:
    - WARN
    - clockNano
    - rasPeerIsDead
    - rasLinkConnUpdate
    - rasConnEnqueueMsg
    - rasNetSendNack
    - INFO
    - ncclSocketToString
    - rasMsgLength
    - rasConnFind
    - ncclSocketsCompare
    - rasSocketTerminate
    - memcpy
    - rasMsgAlloc
    - rasPeerFind
    - ncclIntruQueueEmpty
    - rasConnSendPeersUpdate
    - getNewConnEntry
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t rasMsgHandleConnInit(const struct rasMsg* msg, struct
      rasSocket* sock)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INFO
      Src: /src/nccl/src/ras/ras.cc:520,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/ras.cc:521,1
    - Dst: memcpy
      Src: /src/nccl/src/ras/ras.cc:527,1
    - Dst: rasConnDisconnect
      Src: /src/nccl/src/ras/ras.cc:528,1
    - Dst: rasPeerDeclareDead
      Src: /src/nccl/src/ras/ras.cc:529,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - msg
    - sock
    argTypes:
    - struct rasMsg*
    - struct rasSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 538
      start: 519
    functionDepth: 3
    functionLinenumber: 519
    functionLinenumberEnd: 538
    functionName: rasMsgHandleConnInitAck
    functionSourceFile: /src/nccl/src/ras/ras.cc
    functionUses: 1
    functionsReached:
    - INFO
    - ncclSocketToString
    - rasConnDisconnect
    - memcpy
    - rasPeerDeclareDead
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t rasMsgHandleConnInitAck(const struct rasMsg* msg, struct
      rasSocket* sock)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INFO
      Src: /src/nccl/src/ras/ras.cc:542,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/ras.cc:542,1
    - Dst: rasCollDataLength
      Src: /src/nccl/src/ras/ras.cc:544,1
    - Dst: rasPeerIsDead
      Src: /src/nccl/src/ras/ras.cc:545,1
    - Dst: rasConnDisconnect
      Src: /src/nccl/src/ras/ras.cc:546,1
    - Dst: rasPeerDeclareDead
      Src: /src/nccl/src/ras/ras.cc:547,1
    - Dst: INFO
      Src: /src/nccl/src/ras/ras.cc:550,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - pReq
    - pReqLen
    - pDone
    argTypes:
    - struct rasCollRequest**
    - size_t*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 541
    functionDepth: 3
    functionLinenumber: 541
    functionLinenumberEnd: 554
    functionName: rasMsgHandleBCDeadPeer
    functionSourceFile: /src/nccl/src/ras/ras.cc
    functionUses: 1
    functionsReached:
    - INFO
    - ncclSocketToString
    - rasConnDisconnect
    - rasPeerIsDead
    - rasPeerDeclareDead
    - rasCollDataLength
    linkageType: ''
    returnType: void
    signature: void rasMsgHandleBCDeadPeer(struct rasCollRequest** pReq, size_t* pReqLen,
      bool* pDone)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rasMsgLength
      Src: /src/nccl/src/ras/ras.cc:562,1
    - Dst: INFO
      Src: /src/nccl/src/ras/ras.cc:566,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/ras.cc:566,1
    - Dst: memset
      Src: /src/nccl/src/ras/ras.cc:568,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/ras/ras.cc:572,1
    - Dst: ncclSocketProgress
      Src: /src/nccl/src/ras/ras.cc:572,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/ras/ras.cc:576,1
    - Dst: ncclSocketProgress
      Src: /src/nccl/src/ras/ras.cc:576,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - sock
    argTypes:
    - struct rasSocket*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 560
    functionDepth: 4
    functionLinenumber: 560
    functionLinenumberEnd: 580
    functionName: rasNetSendNack
    functionSourceFile: /src/nccl/src/ras/ras.cc
    functionUses: 1
    functionsReached:
    - INFO
    - ncclSocketToString
    - rasMsgLength
    - ncclSocketProgress
    - NCCLCHECK
    - memset
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t rasNetSendNack(struct rasSocket* sock)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: INFO
      Src: /src/nccl/src/ras/ras.cc:593,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/ras.cc:596,1
    - Dst: rasGetNewPollEntry
      Src: /src/nccl/src/ras/ras.cc:596,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/ras.cc:600,1
    - Dst: rasGetNewPollEntry
      Src: /src/nccl/src/ras/ras.cc:600,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/ras.cc:601,1
    - Dst: ncclSocketGetFd
      Src: /src/nccl/src/ras/ras.cc:601,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/ras.cc:605,1
    - Dst: rasGetNewPollEntry
      Src: /src/nccl/src/ras/ras.cc:605,1
    - Dst: clockNano
      Src: /src/nccl/src/ras/ras.cc:612,1
    - Dst: poll
      Src: /src/nccl/src/ras/ras.cc:623,1
    - Dst: clockNano
      Src: /src/nccl/src/ras/ras.cc:625,1
    - Dst: INFO
      Src: /src/nccl/src/ras/ras.cc:627,1
    - Dst: strerror
      Src: /src/nccl/src/ras/ras.cc:627,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/ras.cc:635,1
    - Dst: rasLocalHandle
      Src: /src/nccl/src/ras/ras.cc:635,1
    - Dst: rasNetAcceptNewSocket
      Src: /src/nccl/src/ras/ras.cc:639,1
    - Dst: rasClientAcceptNewSocket
      Src: /src/nccl/src/ras/ras.cc:641,1
    - Dst: rasSockEventLoop
      Src: /src/nccl/src/ras/ras.cc:648,1
    - Dst: rasClientEventLoop
      Src: /src/nccl/src/ras/ras.cc:659,1
    - Dst: clockNano
      Src: /src/nccl/src/ras/ras.cc:669,1
    - Dst: rasSocksHandleTimeouts
      Src: /src/nccl/src/ras/ras.cc:671,1
    - Dst: rasConnsHandleTimeouts
      Src: /src/nccl/src/ras/ras.cc:673,1
    - Dst: rasNetHandleTimeouts
      Src: /src/nccl/src/ras/ras.cc:675,1
    - Dst: rasCollsHandleTimeouts
      Src: /src/nccl/src/ras/ras.cc:677,1
    - Dst: rasThreadCleanup
      Src: /src/nccl/src/ras/ras.cc:681,1
    - Dst: INFO
      Src: /src/nccl/src/ras/ras.cc:682,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 69
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 588
    functionDepth: 9
    functionLinenumber: 588
    functionLinenumberEnd: 684
    functionName: rasThreadMain
    functionSourceFile: /src/nccl/src/ras/ras.cc
    functionUses: 0
    functionsReached:
    - INFO
    - clockNano
    - rasGetNewPollEntry
    - NCCLCHECKGOTO
    - rasNetAcceptNewSocket
    - rasSocksHandleTimeouts
    - rasClientEventLoop
    - poll
    - rasCollsHandleTimeouts
    - rasThreadCleanup
    - ncclSocketGetFd
    - rasLocalHandle
    - rasConnsHandleTimeouts
    - rasNetHandleTimeouts
    - strerror
    - rasClientAcceptNewSocket
    - rasSockEventLoop
    linkageType: ''
    returnType: void
    signature: void * rasThreadMain(void*)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/ras/ras.cc:693,1
    - Dst: ncclRealloc
      Src: /src/nccl/src/ras/ras.cc:693,1
    - Dst: memset
      Src: /src/nccl/src/ras/ras.cc:699,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - index
    argTypes:
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 704
      start: 687
    functionDepth: 2
    functionLinenumber: 687
    functionLinenumberEnd: 704
    functionName: rasGetNewPollEntry
    functionSourceFile: /src/nccl/src/ras/ras.cc
    functionUses: 3
    functionsReached:
    - ncclRealloc
    - NCCLCHECK
    - memset
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t rasGetNewPollEntry(int* index)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 22
    functionName: STR2
    functionSourceFile: /src/nccl/src/ras/client.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STR2(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 22
    functionDepth: 0
    functionLinenumber: 22
    functionLinenumberEnd: 23
    functionName: STR
    functionSourceFile: /src/nccl/src/ras/client.cc
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STR(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nccl/src/ras/client.cc:34,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - argv0
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 48
    functionName: printUsage
    functionSourceFile: /src/nccl/src/ras/client.cc
    functionUses: 0
    functionsReached:
    - fprintf
    linkageType: ''
    returnType: void
    signature: void printUsage(const char* argv0)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: getopt_long
      Src: /src/nccl/src/ras/client.cc:63,1
    - Dst: strtol
      Src: /src/nccl/src/ras/client.cc:73,1
    - Dst: fprintf
      Src: /src/nccl/src/ras/client.cc:75,1
    - Dst: exit
      Src: /src/nccl/src/ras/client.cc:76,1
    - Dst: printUsage
      Src: /src/nccl/src/ras/client.cc:84,1
    - Dst: exit
      Src: /src/nccl/src/ras/client.cc:85,1
    - Dst: fprintf
      Src: /src/nccl/src/ras/client.cc:87,1
    - Dst: STR
      Src: /src/nccl/src/ras/client.cc:87,1
    - Dst: STR
      Src: /src/nccl/src/ras/client.cc:87,1
    - Dst: STR
      Src: /src/nccl/src/ras/client.cc:88,1
    - Dst: exit
      Src: /src/nccl/src/ras/client.cc:89,1
    - Dst: printUsage
      Src: /src/nccl/src/ras/client.cc:91,1
    - Dst: exit
      Src: /src/nccl/src/ras/client.cc:92,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 31
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 95
    functionName: parseArgs
    functionSourceFile: /src/nccl/src/ras/client.cc
    functionUses: 0
    functionsReached:
    - exit
    - getopt_long
    - printUsage
    - STR
    - strtol
    - fprintf
    linkageType: ''
    returnType: void
    signature: void parseArgs(int argc, char** argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/nccl/src/ras/client.cc:101,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - fd
    - buf
    - count
    argTypes:
    - int
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 111
    functionName: socketWrite
    functionSourceFile: /src/nccl/src/ras/client.cc
    functionUses: 0
    functionsReached:
    - write
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t socketWrite(int fd, const void* buf, size_t count)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/nccl/src/ras/client.cc:121,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 3
    argNames:
    - fd
    - buf
    - count
    argTypes:
    - int
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 134
    functionName: rasRead
    functionSourceFile: /src/nccl/src/ras/client.cc
    functionUses: 0
    functionsReached:
    - read
    linkageType: ''
    returnType: ssize_t
    signature: ssize_t rasRead(int fd, void* buf, size_t count, bool untilNewline
      = true)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: getaddrinfo
      Src: /src/nccl/src/ras/client.cc:147,1
    - Dst: fprintf
      Src: /src/nccl/src/ras/client.cc:148,1
    - Dst: gai_strerror
      Src: /src/nccl/src/ras/client.cc:148,1
    - Dst: socket
      Src: /src/nccl/src/ras/client.cc:154,1
    - Dst: perror
      Src: /src/nccl/src/ras/client.cc:156,1
    - Dst: setsockopt
      Src: /src/nccl/src/ras/client.cc:160,1
    - Dst: setsockopt
      Src: /src/nccl/src/ras/client.cc:161,1
    - Dst: perror
      Src: /src/nccl/src/ras/client.cc:162,1
    - Dst: connect
      Src: /src/nccl/src/ras/client.cc:165,1
    - Dst: getnameinfo
      Src: /src/nccl/src/ras/client.cc:168,1
    - Dst: strcpy
      Src: /src/nccl/src/ras/client.cc:170,1
    - Dst: strcpy
      Src: /src/nccl/src/ras/client.cc:171,1
    - Dst: fprintf
      Src: /src/nccl/src/ras/client.cc:173,1
    - Dst: strerror
      Src: /src/nccl/src/ras/client.cc:173,1
    - Dst: close
      Src: /src/nccl/src/ras/client.cc:174,1
    - Dst: freeaddrinfo
      Src: /src/nccl/src/ras/client.cc:177,1
    - Dst: fprintf
      Src: /src/nccl/src/ras/client.cc:181,1
    - Dst: strcmp
      Src: /src/nccl/src/ras/client.cc:184,1
    - Dst: strcmp
      Src: /src/nccl/src/ras/client.cc:184,1
    - Dst: STR
      Src: /src/nccl/src/ras/client.cc:184,1
    - Dst: strcpy
      Src: /src/nccl/src/ras/client.cc:191,1
    - Dst: STR
      Src: /src/nccl/src/ras/client.cc:191,1
    - Dst: socketWrite
      Src: /src/nccl/src/ras/client.cc:192,1
    - Dst: strlen
      Src: /src/nccl/src/ras/client.cc:192,1
    - Dst: strlen
      Src: /src/nccl/src/ras/client.cc:192,1
    - Dst: perror
      Src: /src/nccl/src/ras/client.cc:196,1
    - Dst: rasRead
      Src: /src/nccl/src/ras/client.cc:199,1
    - Dst: perror
      Src: /src/nccl/src/ras/client.cc:204,1
    - Dst: fprintf
      Src: /src/nccl/src/ras/client.cc:208,1
    - Dst: strncasecmp
      Src: /src/nccl/src/ras/client.cc:211,1
    - Dst: strlen
      Src: /src/nccl/src/ras/client.cc:211,1
    - Dst: fprintf
      Src: /src/nccl/src/ras/client.cc:212,1
    - Dst: strtol
      Src: /src/nccl/src/ras/client.cc:215,1
    - Dst: strlen
      Src: /src/nccl/src/ras/client.cc:215,1
    - Dst: fprintf
      Src: /src/nccl/src/ras/client.cc:216,1
    - Dst: strlen
      Src: /src/nccl/src/ras/client.cc:217,1
    - Dst: snprintf
      Src: /src/nccl/src/ras/client.cc:221,1
    - Dst: socketWrite
      Src: /src/nccl/src/ras/client.cc:222,1
    - Dst: strlen
      Src: /src/nccl/src/ras/client.cc:222,1
    - Dst: strlen
      Src: /src/nccl/src/ras/client.cc:222,1
    - Dst: perror
      Src: /src/nccl/src/ras/client.cc:226,1
    - Dst: rasRead
      Src: /src/nccl/src/ras/client.cc:229,1
    - Dst: perror
      Src: /src/nccl/src/ras/client.cc:234,1
    - Dst: fprintf
      Src: /src/nccl/src/ras/client.cc:238,1
    - Dst: strcasecmp
      Src: /src/nccl/src/ras/client.cc:241,1
    - Dst: fprintf
      Src: /src/nccl/src/ras/client.cc:242,1
    - Dst: setsockopt
      Src: /src/nccl/src/ras/client.cc:249,1
    - Dst: perror
      Src: /src/nccl/src/ras/client.cc:250,1
    - Dst: freeaddrinfo
      Src: /src/nccl/src/ras/client.cc:258,1
    - Dst: close
      Src: /src/nccl/src/ras/client.cc:260,1
    - Dst: fprintf
      Src: /src/nccl/src/ras/client.cc:263,1
    - Dst: close
      Src: /src/nccl/src/ras/client.cc:264,1
    CyclomaticComplexity: 49
    EdgeCount: 49
    ICount: 122
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 266
    functionName: connectToNCCL
    functionSourceFile: /src/nccl/src/ras/client.cc
    functionUses: 0
    functionsReached:
    - strncasecmp
    - getaddrinfo
    - socketWrite
    - STR
    - strcasecmp
    - strtol
    - getnameinfo
    - socket
    - freeaddrinfo
    - strcmp
    - rasRead
    - perror
    - strcpy
    - fprintf
    - gai_strerror
    - setsockopt
    - strlen
    - connect
    - close
    - strerror
    - snprintf
    linkageType: ''
    returnType: int
    signature: int connectToNCCL()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/nccl/src/ras/client.cc:271,1
    - Dst: socketWrite
      Src: /src/nccl/src/ras/client.cc:272,1
    - Dst: strlen
      Src: /src/nccl/src/ras/client.cc:272,1
    - Dst: strlen
      Src: /src/nccl/src/ras/client.cc:272,1
    - Dst: fprintf
      Src: /src/nccl/src/ras/client.cc:274,1
    - Dst: perror
      Src: /src/nccl/src/ras/client.cc:276,1
    - Dst: rasRead
      Src: /src/nccl/src/ras/client.cc:280,1
    - Dst: fprintf
      Src: /src/nccl/src/ras/client.cc:283,1
    - Dst: perror
      Src: /src/nccl/src/ras/client.cc:285,1
    - Dst: fwrite
      Src: /src/nccl/src/ras/client.cc:290,1
    - Dst: fprintf
      Src: /src/nccl/src/ras/client.cc:291,1
    - Dst: fflush
      Src: /src/nccl/src/ras/client.cc:294,1
    - Dst: perror
      Src: /src/nccl/src/ras/client.cc:295,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 300
    functionName: getNCCLStatus
    functionSourceFile: /src/nccl/src/ras/client.cc
    functionUses: 0
    functionsReached:
    - strlen
    - rasRead
    - perror
    - fflush
    - socketWrite
    - fwrite
    - fprintf
    - snprintf
    linkageType: ''
    returnType: int
    signature: int getNCCLStatus()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: parseArgs
      Src: /src/nccl/src/ras/client.cc:303,1
    - Dst: connectToNCCL
      Src: /src/nccl/src/ras/client.cc:305,1
    - Dst: getNCCLStatus
      Src: /src/nccl/src/ras/client.cc:308,1
    - Dst: close
      Src: /src/nccl/src/ras/client.cc:309,1
    - Dst: close
      Src: /src/nccl/src/ras/client.cc:313,1
    - Dst: perror
      Src: /src/nccl/src/ras/client.cc:314,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 302
    functionDepth: 2
    functionLinenumber: 302
    functionLinenumberEnd: 318
    functionName: main
    functionSourceFile: /src/nccl/src/ras/client.cc
    functionUses: 1
    functionsReached:
    - perror
    - close
    - connectToNCCL
    - getNCCLStatus
    - parseArgs
    linkageType: ''
    returnType: int
    signature: int main(int argc, char** argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 24
    functionDepth: 0
    functionLinenumber: 24
    functionLinenumberEnd: 25
    functionName: STR2
    functionSourceFile: /src/nccl/src/ras/client_support.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STR2(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 26
    functionName: STR
    functionSourceFile: /src/nccl/src/ras/client_support.cc
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STR(v)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: STR
      Src: /src/nccl/src/ras/client_support.cc:146,1
    - Dst: ncclGetEnv
      Src: /src/nccl/src/ras/client_support.cc:149,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/client_support.cc:151,1
    - Dst: ncclSocketGetAddrFromString
      Src: /src/nccl/src/ras/client_support.cc:151,1
    - Dst: SYSCHECKGOTO
      Src: /src/nccl/src/ras/client_support.cc:152,1
    - Dst: socket
      Src: /src/nccl/src/ras/client_support.cc:152,1
    - Dst: SYSCHECKGOTO
      Src: /src/nccl/src/ras/client_support.cc:153,1
    - Dst: setsockopt
      Src: /src/nccl/src/ras/client_support.cc:153,1
    - Dst: SYSCHECKGOTO
      Src: /src/nccl/src/ras/client_support.cc:156,1
    - Dst: setsockopt
      Src: /src/nccl/src/ras/client_support.cc:156,1
    - Dst: SYSCHECKGOTO
      Src: /src/nccl/src/ras/client_support.cc:159,1
    - Dst: bind
      Src: /src/nccl/src/ras/client_support.cc:159,1
    - Dst: SYSCHECKGOTO
      Src: /src/nccl/src/ras/client_support.cc:161,1
    - Dst: listen
      Src: /src/nccl/src/ras/client_support.cc:161,1
    - Dst: INFO
      Src: /src/nccl/src/ras/client_support.cc:162,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/client_support.cc:162,1
    - Dst: INFO
      Src: /src/nccl/src/ras/client_support.cc:166,1
    - Dst: close
      Src: /src/nccl/src/ras/client_support.cc:168,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 144
    functionDepth: 2
    functionLinenumber: 144
    functionLinenumberEnd: 172
    functionName: rasClientInitSocket
    functionSourceFile: /src/nccl/src/ras/client_support.cc
    functionUses: 1
    functionsReached:
    - setsockopt
    - ncclSocketGetAddrFromString
    - listen
    - NCCLCHECKGOTO
    - INFO
    - ncclSocketToString
    - ncclGetEnv
    - close
    - STR
    - SYSCHECKGOTO
    - bind
    - socket
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t rasClientInitSocket()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/client_support.cc:182,1
    - Dst: getNewClientEntry
      Src: /src/nccl/src/ras/client_support.cc:182,1
    - Dst: SYSCHECKGOTO
      Src: /src/nccl/src/ras/client_support.cc:184,1
    - Dst: accept
      Src: /src/nccl/src/ras/client_support.cc:184,1
    - Dst: SYSCHECKGOTO
      Src: /src/nccl/src/ras/client_support.cc:186,1
    - Dst: fcntl
      Src: /src/nccl/src/ras/client_support.cc:186,1
    - Dst: SYSCHECKGOTO
      Src: /src/nccl/src/ras/client_support.cc:187,1
    - Dst: fcntl
      Src: /src/nccl/src/ras/client_support.cc:187,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/client_support.cc:189,1
    - Dst: rasGetNewPollEntry
      Src: /src/nccl/src/ras/client_support.cc:189,1
    - Dst: close
      Src: /src/nccl/src/ras/client_support.cc:197,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 175
    functionDepth: 3
    functionLinenumber: 175
    functionLinenumberEnd: 199
    functionName: rasClientAcceptNewSocket
    functionSourceFile: /src/nccl/src/ras/client_support.cc
    functionUses: 1
    functionsReached:
    - rasGetNewPollEntry
    - getNewClientEntry
    - NCCLCHECKGOTO
    - fcntl
    - close
    - accept
    - SYSCHECKGOTO
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t rasClientAcceptNewSocket()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/ras/client_support.cc:205,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/ras/client_support.cc:205,1
    - Dst: ncclIntruQueueConstruct
      Src: /src/nccl/src/ras/client_support.cc:208,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 1
    argNames:
    - pClient
    argTypes:
    - struct rasClient**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 221
    functionName: getNewClientEntry
    functionSourceFile: /src/nccl/src/ras/client_support.cc
    functionUses: 1
    functionsReached:
    - ncclCalloc
    - ncclIntruQueueConstruct
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t getNewClientEntry(struct rasClient** pClient)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rasMsgAlloc
      Src: /src/nccl/src/ras/client_support.cc:227,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - msg
    - msgLen
    argTypes:
    - char**
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 226
    functionDepth: 2
    functionLinenumber: 226
    functionLinenumberEnd: 228
    functionName: rasClientAllocMsg
    functionSourceFile: /src/nccl/src/ras/client_support.cc
    functionUses: 0
    functionsReached:
    - rasMsgAlloc
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t rasClientAllocMsg(char** msg, size_t msgLen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rasMsgFree
      Src: /src/nccl/src/ras/client_support.cc:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - msg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 233
    functionName: rasClientFreeMsg
    functionSourceFile: /src/nccl/src/ras/client_support.cc
    functionUses: 0
    functionsReached:
    - rasMsgFree
    linkageType: ''
    returnType: void
    signature: void rasClientFreeMsg(char* msg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncclIntruQueueEnqueue
      Src: /src/nccl/src/ras/client_support.cc:242,1
    - Dst: INFO
      Src: /src/nccl/src/ras/client_support.cc:245,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - client
    - msg
    - msgLen
    argTypes:
    - struct rasClient*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 247
    functionName: rasClientEnqueueMsg
    functionSourceFile: /src/nccl/src/ras/client_support.cc
    functionUses: 0
    functionsReached:
    - INFO
    - ncclIntruQueueEnqueue
    linkageType: ''
    returnType: void
    signature: void rasClientEnqueueMsg(struct rasClient* client, char* msg, size_t
      msgLen)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/nccl/src/ras/client_support.cc:251,1
    - Dst: ncclIntruQueueTryDequeue
      Src: /src/nccl/src/ras/client_support.cc:254,1
    - Dst: free
      Src: /src/nccl/src/ras/client_support.cc:255,1
    - Dst: free
      Src: /src/nccl/src/ras/client_support.cc:266,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - client
    argTypes:
    - struct rasClient*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 267
    functionName: rasClientTerminate
    functionSourceFile: /src/nccl/src/ras/client_support.cc
    functionUses: 0
    functionsReached:
    - ncclIntruQueueTryDequeue
    - close
    - free
    linkageType: ''
    returnType: void
    signature: void rasClientTerminate(struct rasClient* client)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INFO
      Src: /src/nccl/src/ras/client_support.cc:283,1
    - Dst: rasCollFree
      Src: /src/nccl/src/ras/client_support.cc:284,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/ras/client_support.cc:288,1
    - Dst: rasClientRun
      Src: /src/nccl/src/ras/client_support.cc:288,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - coll
    argTypes:
    - struct rasCollective*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 291
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 291
    functionName: rasClientResume
    functionSourceFile: /src/nccl/src/ras/client_support.cc
    functionUses: 1
    functionsReached:
    - INFO
    - rasClientRun
    - rasCollFree
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t rasClientResume(struct rasCollective* coll)
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: recv
      Src: /src/nccl/src/ras/client_support.cc:303,1
    - Dst: INFO
      Src: /src/nccl/src/ras/client_support.cc:310,1
    - Dst: INFO
      Src: /src/nccl/src/ras/client_support.cc:312,1
    - Dst: rasClientTerminate
      Src: /src/nccl/src/ras/client_support.cc:323,1
    - Dst: memchr
      Src: /src/nccl/src/ras/client_support.cc:327,1
    - Dst: strncasecmp
      Src: /src/nccl/src/ras/client_support.cc:334,1
    - Dst: strlen
      Src: /src/nccl/src/ras/client_support.cc:334,1
    - Dst: snprintf
      Src: /src/nccl/src/ras/client_support.cc:336,1
    - Dst: STR
      Src: /src/nccl/src/ras/client_support.cc:336,1
    - Dst: strlen
      Src: /src/nccl/src/ras/client_support.cc:337,1
    - Dst: rasClientAllocMsg
      Src: /src/nccl/src/ras/client_support.cc:338,1
    - Dst: rasClientTerminate
      Src: /src/nccl/src/ras/client_support.cc:339,1
    - Dst: memcpy
      Src: /src/nccl/src/ras/client_support.cc:343,1
    - Dst: rasClientEnqueueMsg
      Src: /src/nccl/src/ras/client_support.cc:344,1
    - Dst: strncasecmp
      Src: /src/nccl/src/ras/client_support.cc:345,1
    - Dst: strlen
      Src: /src/nccl/src/ras/client_support.cc:345,1
    - Dst: strtol
      Src: /src/nccl/src/ras/client_support.cc:347,1
    - Dst: strlen
      Src: /src/nccl/src/ras/client_support.cc:347,1
    - Dst: snprintf
      Src: /src/nccl/src/ras/client_support.cc:349,1
    - Dst: strlen
      Src: /src/nccl/src/ras/client_support.cc:349,1
    - Dst: strcpy
      Src: /src/nccl/src/ras/client_support.cc:352,1
    - Dst: strlen
      Src: /src/nccl/src/ras/client_support.cc:354,1
    - Dst: rasClientAllocMsg
      Src: /src/nccl/src/ras/client_support.cc:355,1
    - Dst: rasClientTerminate
      Src: /src/nccl/src/ras/client_support.cc:356,1
    - Dst: memcpy
      Src: /src/nccl/src/ras/client_support.cc:360,1
    - Dst: rasClientEnqueueMsg
      Src: /src/nccl/src/ras/client_support.cc:361,1
    - Dst: strcasecmp
      Src: /src/nccl/src/ras/client_support.cc:362,1
    - Dst: rasClientRun
      Src: /src/nccl/src/ras/client_support.cc:364,1
    - Dst: strcasecmp
      Src: /src/nccl/src/ras/client_support.cc:365,1
    - Dst: rasClientRun
      Src: /src/nccl/src/ras/client_support.cc:368,1
    - Dst: snprintf
      Src: /src/nccl/src/ras/client_support.cc:370,1
    - Dst: strlen
      Src: /src/nccl/src/ras/client_support.cc:371,1
    - Dst: rasClientAllocMsg
      Src: /src/nccl/src/ras/client_support.cc:372,1
    - Dst: memcpy
      Src: /src/nccl/src/ras/client_support.cc:375,1
    - Dst: rasClientEnqueueMsg
      Src: /src/nccl/src/ras/client_support.cc:376,1
    - Dst: INFO
      Src: /src/nccl/src/ras/client_support.cc:385,1
    - Dst: rasClientTerminate
      Src: /src/nccl/src/ras/client_support.cc:386,1
    - Dst: memmove
      Src: /src/nccl/src/ras/client_support.cc:392,1
    - Dst: ncclIntruQueueHead
      Src: /src/nccl/src/ras/client_support.cc:399,1
    - Dst: send
      Src: /src/nccl/src/ras/client_support.cc:401,1
    - Dst: INFO
      Src: /src/nccl/src/ras/client_support.cc:406,1
    - Dst: INFO
      Src: /src/nccl/src/ras/client_support.cc:408,1
    - Dst: ncclIntruQueueDequeue
      Src: /src/nccl/src/ras/client_support.cc:418,1
    - Dst: free
      Src: /src/nccl/src/ras/client_support.cc:419,1
    - Dst: rasClientTerminate
      Src: /src/nccl/src/ras/client_support.cc:423,1
    - Dst: rasClientTerminate
      Src: /src/nccl/src/ras/client_support.cc:430,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 113
    argCount: 2
    argNames:
    - client
    - pollIdx
    argTypes:
    - struct rasClient*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 294
    functionDepth: 3
    functionLinenumber: 294
    functionLinenumberEnd: 433
    functionName: rasClientEventLoop
    functionSourceFile: /src/nccl/src/ras/client_support.cc
    functionUses: 1
    functionsReached:
    - strncasecmp
    - memmove
    - STR
    - INFO
    - rasClientTerminate
    - rasClientAllocMsg
    - strcasecmp
    - strtol
    - rasClientEnqueueMsg
    - rasClientRun
    - ncclIntruQueueDequeue
    - strcpy
    - send
    - strlen
    - memcpy
    - free
    - recv
    - memchr
    - ncclIntruQueueHead
    - snprintf
    linkageType: ''
    returnType: void
    signature: void rasClientEventLoop(struct rasClient* client, int pollIdx)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/client_support.cc:449,1
    - Dst: rasClientRunInit
      Src: /src/nccl/src/ras/client_support.cc:449,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/client_support.cc:458,1
    - Dst: rasClientRunConns
      Src: /src/nccl/src/ras/client_support.cc:458,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/client_support.cc:466,1
    - Dst: rasClientRunComms
      Src: /src/nccl/src/ras/client_support.cc:466,1
    - Dst: WARN
      Src: /src/nccl/src/ras/client_support.cc:470,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 1
    argNames:
    - client
    argTypes:
    - struct rasClient*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 444
    functionDepth: 1
    functionLinenumber: 444
    functionLinenumberEnd: 476
    functionName: rasClientRun
    functionSourceFile: /src/nccl/src/ras/client_support.cc
    functionUses: 2
    functionsReached:
    - WARN
    - NCCLCHECKGOTO
    - rasClientRunConns
    - rasClientRunComms
    - rasClientRunInit
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t rasClientRun(struct rasClient* client)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: TRACE
      Src: /src/nccl/src/ras/client_support.cc:492,1
    - Dst: rasOutReset
      Src: /src/nccl/src/ras/client_support.cc:494,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:495,1
    - Dst: STR
      Src: /src/nccl/src/ras/client_support.cc:495,1
    - Dst: STR
      Src: /src/nccl/src/ras/client_support.cc:495,1
    - Dst: STR
      Src: /src/nccl/src/ras/client_support.cc:495,1
    - Dst: STR
      Src: /src/nccl/src/ras/client_support.cc:496,1
    - Dst: cudaRuntimeGetVersion
      Src: /src/nccl/src/ras/client_support.cc:498,1
    - Dst: cudaDriverGetVersion
      Src: /src/nccl/src/ras/client_support.cc:500,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:501,1
    - Dst: rasOutLength
      Src: /src/nccl/src/ras/client_support.cc:502,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/client_support.cc:503,1
    - Dst: rasClientAllocMsg
      Src: /src/nccl/src/ras/client_support.cc:503,1
    - Dst: rasOutExtract
      Src: /src/nccl/src/ras/client_support.cc:504,1
    - Dst: rasClientEnqueueMsg
      Src: /src/nccl/src/ras/client_support.cc:505,1
    - Dst: __builtin_popcountll
      Src: /src/nccl/src/ras/client_support.cc:517,1
    - Dst: ncclSocketsSameNode
      Src: /src/nccl/src/ras/client_support.cc:526,1
    - Dst: TRACE
      Src: /src/nccl/src/ras/client_support.cc:548,1
    - Dst: TRACE
      Src: /src/nccl/src/ras/client_support.cc:549,1
    - Dst: TRACE
      Src: /src/nccl/src/ras/client_support.cc:551,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:553,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:557,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/client_support.cc:565,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/ras/client_support.cc:565,1
    - Dst: ncclSocketsSameNode
      Src: /src/nccl/src/ras/client_support.cc:575,1
    - Dst: TRACE
      Src: /src/nccl/src/ras/client_support.cc:576,1
    - Dst: ncclSocketToHost
      Src: /src/nccl/src/ras/client_support.cc:577,1
    - Dst: TRACE
      Src: /src/nccl/src/ras/client_support.cc:590,1
    - Dst: ncclSocketToHost
      Src: /src/nccl/src/ras/client_support.cc:591,1
    - Dst: qsort
      Src: /src/nccl/src/ras/client_support.cc:600,1
    - Dst: qsort
      Src: /src/nccl/src/ras/client_support.cc:618,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:623,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:627,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:631,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:635,1
    - Dst: __builtin_popcountll
      Src: /src/nccl/src/ras/client_support.cc:645,1
    - Dst: TRACE
      Src: /src/nccl/src/ras/client_support.cc:646,1
    - Dst: ncclSocketToHost
      Src: /src/nccl/src/ras/client_support.cc:647,1
    - Dst: qsort
      Src: /src/nccl/src/ras/client_support.cc:651,1
    - Dst: qsort
      Src: /src/nccl/src/ras/client_support.cc:667,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:670,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:675,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:679,1
    - Dst: rasCountIsOutlier
      Src: /src/nccl/src/ras/client_support.cc:691,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:692,1
    - Dst: snprintf
      Src: /src/nccl/src/ras/client_support.cc:698,1
    - Dst: strlen
      Src: /src/nccl/src/ras/client_support.cc:698,1
    - Dst: strlen
      Src: /src/nccl/src/ras/client_support.cc:698,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:701,1
    - Dst: ncclSocketToHost
      Src: /src/nccl/src/ras/client_support.cc:702,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:712,1
    - Dst: rasOutLength
      Src: /src/nccl/src/ras/client_support.cc:713,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/client_support.cc:714,1
    - Dst: rasClientAllocMsg
      Src: /src/nccl/src/ras/client_support.cc:714,1
    - Dst: rasOutExtract
      Src: /src/nccl/src/ras/client_support.cc:715,1
    - Dst: rasClientEnqueueMsg
      Src: /src/nccl/src/ras/client_support.cc:716,1
    - Dst: rasCollReqInit
      Src: /src/nccl/src/ras/client_support.cc:721,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/client_support.cc:724,1
    - Dst: rasNetSendCollReq
      Src: /src/nccl/src/ras/client_support.cc:724,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:729,1
    - Dst: rasOutLength
      Src: /src/nccl/src/ras/client_support.cc:730,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/client_support.cc:731,1
    - Dst: rasClientAllocMsg
      Src: /src/nccl/src/ras/client_support.cc:731,1
    - Dst: rasOutExtract
      Src: /src/nccl/src/ras/client_support.cc:732,1
    - Dst: rasClientEnqueueMsg
      Src: /src/nccl/src/ras/client_support.cc:733,1
    - Dst: rasCollReqInit
      Src: /src/nccl/src/ras/client_support.cc:738,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/client_support.cc:741,1
    - Dst: rasNetSendCollReq
      Src: /src/nccl/src/ras/client_support.cc:741,1
    - Dst: TRACE
      Src: /src/nccl/src/ras/client_support.cc:745,1
    - Dst: free
      Src: /src/nccl/src/ras/client_support.cc:747,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 183
    argCount: 1
    argNames:
    - client
    argTypes:
    - struct rasClient*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 751
      start: 480
    functionDepth: 3
    functionLinenumber: 480
    functionLinenumberEnd: 751
    functionName: rasClientRunInit
    functionSourceFile: /src/nccl/src/ras/client_support.cc
    functionUses: 1
    functionsReached:
    - cudaDriverGetVersion
    - rasOutAppend
    - rasCollReqInit
    - STR
    - rasOutExtract
    - cudaRuntimeGetVersion
    - ncclSocketToHost
    - TRACE
    - rasClientAllocMsg
    - __builtin_popcountll
    - ncclSocketsSameNode
    - rasClientEnqueueMsg
    - rasNetSendCollReq
    - qsort
    - rasOutReset
    - NCCLCHECKGOTO
    - strlen
    - free
    - rasCountIsOutlier
    - ncclCalloc
    - rasOutLength
    - snprintf
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t rasClientRunInit(struct rasClient* client)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: INFO
      Src: /src/nccl/src/ras/client_support.cc:767,1
    - Dst: rasOutReset
      Src: /src/nccl/src/ras/client_support.cc:772,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:773,1
    - Dst: clockNano
      Src: /src/nccl/src/ras/client_support.cc:773,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:775,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:782,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/client_support.cc:788,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/ras/client_support.cc:788,1
    - Dst: qsort
      Src: /src/nccl/src/ras/client_support.cc:790,1
    - Dst: ncclSocketsCompare
      Src: /src/nccl/src/ras/client_support.cc:794,1
    - Dst: memcpy
      Src: /src/nccl/src/ras/client_support.cc:802,1
    - Dst: qsort
      Src: /src/nccl/src/ras/client_support.cc:811,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:812,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:814,1
    - Dst: ncclSocketToHost
      Src: /src/nccl/src/ras/client_support.cc:815,1
    - Dst: __builtin_popcountll
      Src: /src/nccl/src/ras/client_support.cc:816,1
    - Dst: rasGpuDevsToString
      Src: /src/nccl/src/ras/client_support.cc:817,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:821,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:827,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:829,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:834,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:837,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:842,1
    - Dst: rasPeerFind
      Src: /src/nccl/src/ras/client_support.cc:845,1
    - Dst: rasPeerFind
      Src: /src/nccl/src/ras/client_support.cc:846,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:848,1
    - Dst: ncclSocketToHost
      Src: /src/nccl/src/ras/client_support.cc:849,1
    - Dst: ncclSocketToHost
      Src: /src/nccl/src/ras/client_support.cc:850,1
    - Dst: rasCollFree
      Src: /src/nccl/src/ras/client_support.cc:855,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:857,1
    - Dst: rasOutLength
      Src: /src/nccl/src/ras/client_support.cc:859,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/client_support.cc:860,1
    - Dst: rasClientAllocMsg
      Src: /src/nccl/src/ras/client_support.cc:860,1
    - Dst: rasOutExtract
      Src: /src/nccl/src/ras/client_support.cc:861,1
    - Dst: rasClientEnqueueMsg
      Src: /src/nccl/src/ras/client_support.cc:862,1
    - Dst: rasCollReqInit
      Src: /src/nccl/src/ras/client_support.cc:867,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/client_support.cc:870,1
    - Dst: rasNetSendCollReq
      Src: /src/nccl/src/ras/client_support.cc:870,1
    - Dst: free
      Src: /src/nccl/src/ras/client_support.cc:875,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 79
    argCount: 1
    argNames:
    - client
    argTypes:
    - struct rasClient*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 879
      start: 757
    functionDepth: 3
    functionLinenumber: 757
    functionLinenumberEnd: 879
    functionName: rasClientRunConns
    functionSourceFile: /src/nccl/src/ras/client_support.cc
    functionUses: 1
    functionsReached:
    - clockNano
    - rasOutAppend
    - rasCollReqInit
    - rasOutExtract
    - rasGpuDevsToString
    - INFO
    - ncclSocketToHost
    - rasClientAllocMsg
    - __builtin_popcountll
    - rasCollFree
    - rasClientEnqueueMsg
    - ncclSocketsCompare
    - rasNetSendCollReq
    - qsort
    - rasOutReset
    - NCCLCHECKGOTO
    - memcpy
    - free
    - rasPeerFind
    - ncclCalloc
    - rasOutLength
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t rasClientRunConns(struct rasClient* client)
  - BBCount: 76
    BranchProfiles: []
    Callsites:
    - Dst: TRACE
      Src: /src/nccl/src/ras/client_support.cc:915,1
    - Dst: TRACE
      Src: /src/nccl/src/ras/client_support.cc:916,1
    - Dst: INFO
      Src: /src/nccl/src/ras/client_support.cc:920,1
    - Dst: rasOutReset
      Src: /src/nccl/src/ras/client_support.cc:925,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:926,1
    - Dst: clockNano
      Src: /src/nccl/src/ras/client_support.cc:926,1
    - Dst: TRACE
      Src: /src/nccl/src/ras/client_support.cc:930,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/client_support.cc:935,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/ras/client_support.cc:935,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/client_support.cc:946,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/ras/client_support.cc:946,1
    - Dst: TRACE
      Src: /src/nccl/src/ras/client_support.cc:947,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/client_support.cc:950,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/ras/client_support.cc:950,1
    - Dst: rasPeerFind
      Src: /src/nccl/src/ras/client_support.cc:952,1
    - Dst: TRACE
      Src: /src/nccl/src/ras/client_support.cc:953,1
    - Dst: qsort
      Src: /src/nccl/src/ras/client_support.cc:956,1
    - Dst: TRACE
      Src: /src/nccl/src/ras/client_support.cc:963,1
    - Dst: bsearch
      Src: /src/nccl/src/ras/client_support.cc:984,1
    - Dst: TRACE
      Src: /src/nccl/src/ras/client_support.cc:994,1
    - Dst: rasPeerFind
      Src: /src/nccl/src/ras/client_support.cc:996,1
    - Dst: TRACE
      Src: /src/nccl/src/ras/client_support.cc:1007,1
    - Dst: TRACE
      Src: /src/nccl/src/ras/client_support.cc:1009,1
    - Dst: TRACE
      Src: /src/nccl/src/ras/client_support.cc:1012,1
    - Dst: qsort
      Src: /src/nccl/src/ras/client_support.cc:1017,1
    - Dst: memcpy
      Src: /src/nccl/src/ras/client_support.cc:1026,1
    - Dst: ncclSocketsSameNode
      Src: /src/nccl/src/ras/client_support.cc:1031,1
    - Dst: __builtin_popcount
      Src: /src/nccl/src/ras/client_support.cc:1074,1
    - Dst: TRACE
      Src: /src/nccl/src/ras/client_support.cc:1078,1
    - Dst: TRACE
      Src: /src/nccl/src/ras/client_support.cc:1080,1
    - Dst: qsort
      Src: /src/nccl/src/ras/client_support.cc:1085,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/client_support.cc:1088,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/ras/client_support.cc:1088,1
    - Dst: __builtin_clz
      Src: /src/nccl/src/ras/client_support.cc:1095,1
    - Dst: __builtin_clz
      Src: /src/nccl/src/ras/client_support.cc:1095,1
    - Dst: TRACE
      Src: /src/nccl/src/ras/client_support.cc:1107,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1110,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1113,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/client_support.cc:1117,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/ras/client_support.cc:1117,1
    - Dst: memset
      Src: /src/nccl/src/ras/client_support.cc:1128,1
    - Dst: __builtin_popcountll
      Src: /src/nccl/src/ras/client_support.cc:1144,1
    - Dst: snprintf
      Src: /src/nccl/src/ras/client_support.cc:1146,1
    - Dst: snprintf
      Src: /src/nccl/src/ras/client_support.cc:1148,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1149,1
    - Dst: __builtin_clz
      Src: /src/nccl/src/ras/client_support.cc:1153,1
    - Dst: rasOutLength
      Src: /src/nccl/src/ras/client_support.cc:1155,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/client_support.cc:1156,1
    - Dst: rasClientAllocMsg
      Src: /src/nccl/src/ras/client_support.cc:1156,1
    - Dst: rasOutExtract
      Src: /src/nccl/src/ras/client_support.cc:1157,1
    - Dst: rasClientEnqueueMsg
      Src: /src/nccl/src/ras/client_support.cc:1158,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1161,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1165,1
    - Dst: rasCountIsOutlier
      Src: /src/nccl/src/ras/client_support.cc:1167,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/client_support.cc:1175,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/ras/client_support.cc:1175,1
    - Dst: ncclSocketsCompare
      Src: /src/nccl/src/ras/client_support.cc:1180,1
    - Dst: rasPeerIsDead
      Src: /src/nccl/src/ras/client_support.cc:1191,1
    - Dst: INFO
      Src: /src/nccl/src/ras/client_support.cc:1195,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/client_support.cc:1197,1
    - Dst: TRACE
      Src: /src/nccl/src/ras/client_support.cc:1200,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/client_support.cc:1201,1
    - Dst: INFO
      Src: /src/nccl/src/ras/client_support.cc:1205,1
    - Dst: ncclSocketToString
      Src: /src/nccl/src/ras/client_support.cc:1206,1
    - Dst: qsort
      Src: /src/nccl/src/ras/client_support.cc:1213,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1216,1
    - Dst: ncclSocketToHost
      Src: /src/nccl/src/ras/client_support.cc:1217,1
    - Dst: __builtin_popcountll
      Src: /src/nccl/src/ras/client_support.cc:1218,1
    - Dst: rasGpuDevsToString
      Src: /src/nccl/src/ras/client_support.cc:1219,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1223,1
    - Dst: free
      Src: /src/nccl/src/ras/client_support.cc:1225,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1227,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1231,1
    - Dst: rasCountIsOutlier
      Src: /src/nccl/src/ras/client_support.cc:1234,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/client_support.cc:1238,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/ras/client_support.cc:1238,1
    - Dst: rasPeerFind
      Src: /src/nccl/src/ras/client_support.cc:1240,1
    - Dst: qsort
      Src: /src/nccl/src/ras/client_support.cc:1246,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1249,1
    - Dst: ncclSocketToHost
      Src: /src/nccl/src/ras/client_support.cc:1250,1
    - Dst: __builtin_popcountll
      Src: /src/nccl/src/ras/client_support.cc:1251,1
    - Dst: rasGpuDevsToString
      Src: /src/nccl/src/ras/client_support.cc:1252,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1256,1
    - Dst: free
      Src: /src/nccl/src/ras/client_support.cc:1258,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1260,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1272,1
    - Dst: rasCountIsOutlier
      Src: /src/nccl/src/ras/client_support.cc:1275,1
    - Dst: bsearch
      Src: /src/nccl/src/ras/client_support.cc:1280,1
    - Dst: rasPeerFind
      Src: /src/nccl/src/ras/client_support.cc:1282,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1284,1
    - Dst: rasGpuToString
      Src: /src/nccl/src/ras/client_support.cc:1286,1
    - Dst: ncclSocketToHost
      Src: /src/nccl/src/ras/client_support.cc:1288,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1290,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1295,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1301,1
    - Dst: memset
      Src: /src/nccl/src/ras/client_support.cc:1303,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1308,1
    - Dst: rasClientBreakDownErrors
      Src: /src/nccl/src/ras/client_support.cc:1310,1
    - Dst: memset
      Src: /src/nccl/src/ras/client_support.cc:1313,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1318,1
    - Dst: rasClientBreakDownErrors
      Src: /src/nccl/src/ras/client_support.cc:1320,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1322,1
    - Dst: rasOutLength
      Src: /src/nccl/src/ras/client_support.cc:1326,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/client_support.cc:1327,1
    - Dst: rasClientAllocMsg
      Src: /src/nccl/src/ras/client_support.cc:1327,1
    - Dst: rasOutExtract
      Src: /src/nccl/src/ras/client_support.cc:1328,1
    - Dst: rasClientEnqueueMsg
      Src: /src/nccl/src/ras/client_support.cc:1329,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1332,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1336,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1349,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/client_support.cc:1355,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/ras/client_support.cc:1355,1
    - Dst: __builtin_popcount
      Src: /src/nccl/src/ras/client_support.cc:1358,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1359,1
    - Dst: qsort
      Src: /src/nccl/src/ras/client_support.cc:1377,1
    - Dst: __builtin_clz
      Src: /src/nccl/src/ras/client_support.cc:1386,1
    - Dst: qsort
      Src: /src/nccl/src/ras/client_support.cc:1402,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1407,1
    - Dst: rasCountIsOutlier
      Src: /src/nccl/src/ras/client_support.cc:1408,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1415,1
    - Dst: rasCommRankGpuToString
      Src: /src/nccl/src/ras/client_support.cc:1417,1
    - Dst: ncclSocketToHost
      Src: /src/nccl/src/ras/client_support.cc:1419,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1421,1
    - Dst: rasCommRankGpuToString
      Src: /src/nccl/src/ras/client_support.cc:1423,1
    - Dst: ncclSocketToHost
      Src: /src/nccl/src/ras/client_support.cc:1425,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1428,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1431,1
    - Dst: bsearch
      Src: /src/nccl/src/ras/client_support.cc:1442,1
    - Dst: rasPeerFind
      Src: /src/nccl/src/ras/client_support.cc:1444,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1447,1
    - Dst: rasGpuToString
      Src: /src/nccl/src/ras/client_support.cc:1448,1
    - Dst: ncclSocketToHost
      Src: /src/nccl/src/ras/client_support.cc:1451,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1453,1
    - Dst: rasGpuToString
      Src: /src/nccl/src/ras/client_support.cc:1455,1
    - Dst: ncclSocketToHost
      Src: /src/nccl/src/ras/client_support.cc:1457,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1461,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1463,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1485,1
    - Dst: qsort
      Src: /src/nccl/src/ras/client_support.cc:1494,1
    - Dst: qsort
      Src: /src/nccl/src/ras/client_support.cc:1508,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1514,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1516,1
    - Dst: rasCountIsOutlier
      Src: /src/nccl/src/ras/client_support.cc:1518,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1524,1
    - Dst: rasCommRankGpuToString
      Src: /src/nccl/src/ras/client_support.cc:1526,1
    - Dst: ncclSocketToHost
      Src: /src/nccl/src/ras/client_support.cc:1528,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1531,1
    - Dst: rasCommRankGpuToString
      Src: /src/nccl/src/ras/client_support.cc:1533,1
    - Dst: ncclSocketToHost
      Src: /src/nccl/src/ras/client_support.cc:1535,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1537,1
    - Dst: rasCommRankGpuToString
      Src: /src/nccl/src/ras/client_support.cc:1539,1
    - Dst: ncclSocketToHost
      Src: /src/nccl/src/ras/client_support.cc:1541,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1546,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1550,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1553,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1560,1
    - Dst: rasCollFree
      Src: /src/nccl/src/ras/client_support.cc:1566,1
    - Dst: rasOutLength
      Src: /src/nccl/src/ras/client_support.cc:1568,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/client_support.cc:1569,1
    - Dst: rasClientAllocMsg
      Src: /src/nccl/src/ras/client_support.cc:1569,1
    - Dst: rasOutExtract
      Src: /src/nccl/src/ras/client_support.cc:1570,1
    - Dst: rasClientEnqueueMsg
      Src: /src/nccl/src/ras/client_support.cc:1571,1
    - Dst: TRACE
      Src: /src/nccl/src/ras/client_support.cc:1574,1
    - Dst: free
      Src: /src/nccl/src/ras/client_support.cc:1576,1
    - Dst: free
      Src: /src/nccl/src/ras/client_support.cc:1577,1
    - Dst: free
      Src: /src/nccl/src/ras/client_support.cc:1578,1
    - Dst: free
      Src: /src/nccl/src/ras/client_support.cc:1579,1
    - Dst: free
      Src: /src/nccl/src/ras/client_support.cc:1580,1
    - Dst: free
      Src: /src/nccl/src/ras/client_support.cc:1581,1
    CyclomaticComplexity: 126
    EdgeCount: 126
    ICount: 418
    argCount: 1
    argNames:
    - client
    argTypes:
    - struct rasClient*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1585
      start: 885
    functionDepth: 3
    functionLinenumber: 885
    functionLinenumberEnd: 1585
    functionName: rasClientRunComms
    functionSourceFile: /src/nccl/src/ras/client_support.cc
    functionUses: 1
    functionsReached:
    - clockNano
    - rasClientBreakDownErrors
    - rasOutAppend
    - rasPeerIsDead
    - rasOutExtract
    - rasGpuDevsToString
    - INFO
    - TRACE
    - ncclSocketToString
    - ncclSocketToHost
    - rasClientAllocMsg
    - __builtin_popcountll
    - rasCollFree
    - rasCommRankGpuToString
    - ncclSocketsSameNode
    - memset
    - rasClientEnqueueMsg
    - __builtin_clz
    - ncclSocketsCompare
    - qsort
    - rasGpuToString
    - rasOutReset
    - bsearch
    - NCCLCHECKGOTO
    - memcpy
    - __builtin_popcount
    - free
    - rasPeerFind
    - rasCountIsOutlier
    - ncclCalloc
    - rasOutLength
    - snprintf
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t rasClientRunComms(struct rasClient* client)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1605,1
    - Dst: ncclErrorToString
      Src: /src/nccl/src/ras/client_support.cc:1605,1
    - Dst: rasCountIsOutlier
      Src: /src/nccl/src/ras/client_support.cc:1606,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1612,1
    - Dst: rasCommRankGpuToString
      Src: /src/nccl/src/ras/client_support.cc:1614,1
    - Dst: ncclSocketToHost
      Src: /src/nccl/src/ras/client_support.cc:1616,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1618,1
    - Dst: ncclErrorToString
      Src: /src/nccl/src/ras/client_support.cc:1619,1
    - Dst: rasCommRankGpuToString
      Src: /src/nccl/src/ras/client_support.cc:1620,1
    - Dst: ncclSocketToHost
      Src: /src/nccl/src/ras/client_support.cc:1622,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1625,1
    - Dst: rasOutAppend
      Src: /src/nccl/src/ras/client_support.cc:1627,1
    - Dst: ncclErrorToString
      Src: /src/nccl/src/ras/client_support.cc:1628,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 5
    argNames:
    - client
    - comm
    - peerIdxConv
    - ncclErrors
    - isAsync
    argTypes:
    - struct rasClient*
    - struct rasCollComms::comm*
    - int*
    - int[]
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1635
      start: 1588
    functionDepth: 1
    functionLinenumber: 1588
    functionLinenumberEnd: 1635
    functionName: rasClientBreakDownErrors
    functionSourceFile: /src/nccl/src/ras/client_support.cc
    functionUses: 1
    functionsReached:
    - ncclSocketToHost
    - ncclErrorToString
    - rasOutAppend
    - rasCountIsOutlier
    - rasCommRankGpuToString
    linkageType: ''
    returnType: void
    signature: "void rasClientBreakDownErrors(struct rasClient* client, struct rasCollComms::comm*
      comm,\n                                     const int* peerIdxConv, int ncclErrors[ncclNumResults],
      bool isAsync)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/nccl/src/ras/client_support.cc:1648,1
    - Dst: vsnprintf
      Src: /src/nccl/src/ras/client_support.cc:1649,1
    - Dst: va_end
      Src: /src/nccl/src/ras/client_support.cc:1650,1
    - Dst: ROUNDUP
      Src: /src/nccl/src/ras/client_support.cc:1657,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/client_support.cc:1658,1
    - Dst: ncclRealloc
      Src: /src/nccl/src/ras/client_support.cc:1658,1
    - Dst: va_start
      Src: /src/nccl/src/ras/client_support.cc:1661,1
    - Dst: vsnprintf
      Src: /src/nccl/src/ras/client_support.cc:1662,1
    - Dst: va_end
      Src: /src/nccl/src/ras/client_support.cc:1663,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - format
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1674
      start: 1644
    functionDepth: 2
    functionLinenumber: 1644
    functionLinenumberEnd: 1674
    functionName: rasOutAppend
    functionSourceFile: /src/nccl/src/ras/client_support.cc
    functionUses: 4
    functionsReached:
    - va_start
    - ROUNDUP
    - vsnprintf
    - NCCLCHECKGOTO
    - va_end
    - ncclRealloc
    linkageType: ''
    returnType: void
    signature: void rasOutAppend(const char* format, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nccl/src/ras/client_support.cc:1681,1
    - Dst: rasOutLength
      Src: /src/nccl/src/ras/client_support.cc:1681,1
    - Dst: rasOutReset
      Src: /src/nccl/src/ras/client_support.cc:1682,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - buffer
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1684
      start: 1679
    functionDepth: 1
    functionLinenumber: 1679
    functionLinenumberEnd: 1684
    functionName: rasOutExtract
    functionSourceFile: /src/nccl/src/ras/client_support.cc
    functionUses: 3
    functionsReached:
    - rasOutLength
    - rasOutReset
    - memcpy
    linkageType: ''
    returnType: void
    signature: void rasOutExtract(char* buffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1689
      start: 1687
    functionDepth: 0
    functionLinenumber: 1687
    functionLinenumberEnd: 1689
    functionName: rasOutLength
    functionSourceFile: /src/nccl/src/ras/client_support.cc
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int rasOutLength()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/ras/client_support.cc:1696,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/ras/client_support.cc:1696,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1701
      start: 1692
    functionDepth: 1
    functionLinenumber: 1692
    functionLinenumberEnd: 1701
    functionName: rasOutReset
    functionSourceFile: /src/nccl/src/ras/client_support.cc
    functionUses: 4
    functionsReached:
    - ncclCalloc
    - NCCLCHECKGOTO
    linkageType: ''
    returnType: void
    signature: void rasOutReset()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ncclSocketsHostCompare
      Src: /src/nccl/src/ras/client_support.cc:1716,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - e1
    - e2
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1725
      start: 1710
    functionDepth: 1
    functionLinenumber: 1710
    functionLinenumberEnd: 1725
    functionName: rasAuxPeersValueCompare
    functionSourceFile: /src/nccl/src/ras/client_support.cc
    functionUses: 0
    functionsReached:
    - ncclSocketsHostCompare
    linkageType: ''
    returnType: int
    signature: int rasAuxPeersValueCompare(const void* e1, const void* e2)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/nccl/src/ras/client_support.cc:1742,1
    - Dst: memcmp
      Src: /src/nccl/src/ras/client_support.cc:1745,1
    - Dst: INFO
      Src: /src/nccl/src/ras/client_support.cc:1749,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - p1
    - p2
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1754
      start: 1728
    functionDepth: 0
    functionLinenumber: 1728
    functionLinenumberEnd: 1754
    functionName: ncclSocketsHostCompare
    functionSourceFile: /src/nccl/src/ras/client_support.cc
    functionUses: 1
    functionsReached:
    - INFO
    - memcmp
    linkageType: ''
    returnType: int
    signature: int ncclSocketsHostCompare(const void* p1, const void* p2)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - p1
    - p2
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1766
      start: 1757
    functionDepth: 0
    functionLinenumber: 1757
    functionLinenumberEnd: 1766
    functionName: rasValCountsCompareRev
    functionSourceFile: /src/nccl/src/ras/client_support.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int rasValCountsCompareRev(const void* p1, const void* p2)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: __builtin_clz
      Src: /src/nccl/src/ras/client_support.cc:1784,1
    - Dst: __builtin_clz
      Src: /src/nccl/src/ras/client_support.cc:1785,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 2
    argNames:
    - p1
    - p2
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1805
      start: 1773
    functionDepth: 0
    functionLinenumber: 1773
    functionLinenumberEnd: 1805
    functionName: rasAuxCommsCompareRev
    functionSourceFile: /src/nccl/src/ras/client_support.cc
    functionUses: 0
    functionsReached:
    - __builtin_clz
    linkageType: ''
    returnType: int
    signature: int rasAuxCommsCompareRev(const void* p1, const void* p2)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - p1
    - p2
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1818
      start: 1808
    functionDepth: 0
    functionLinenumber: 1808
    functionLinenumberEnd: 1818
    functionName: rasAuxCommRanksValueCompare
    functionSourceFile: /src/nccl/src/ras/client_support.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int rasAuxCommRanksValueCompare(const void* p1, const void* p2)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/nccl/src/ras/client_support.cc:1831,1
    - Dst: strlen
      Src: /src/nccl/src/ras/client_support.cc:1831,1
    - Dst: strlen
      Src: /src/nccl/src/ras/client_support.cc:1831,1
    - Dst: snprintf
      Src: /src/nccl/src/ras/client_support.cc:1835,1
    - Dst: strlen
      Src: /src/nccl/src/ras/client_support.cc:1835,1
    - Dst: strlen
      Src: /src/nccl/src/ras/client_support.cc:1835,1
    - Dst: snprintf
      Src: /src/nccl/src/ras/client_support.cc:1839,1
    - Dst: strlen
      Src: /src/nccl/src/ras/client_support.cc:1839,1
    - Dst: strlen
      Src: /src/nccl/src/ras/client_support.cc:1839,1
    - Dst: snprintf
      Src: /src/nccl/src/ras/client_support.cc:1842,1
    - Dst: strlen
      Src: /src/nccl/src/ras/client_support.cc:1842,1
    - Dst: strlen
      Src: /src/nccl/src/ras/client_support.cc:1842,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - cudaDevs
    - nvmlDevs
    - buf
    - size
    argTypes:
    - uint64_t
    - uint64_t
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1845
      start: 1826
    functionDepth: 0
    functionLinenumber: 1826
    functionLinenumberEnd: 1845
    functionName: rasGpuDevsToString
    functionSourceFile: /src/nccl/src/ras/client_support.cc
    functionUses: 3
    functionsReached:
    - strlen
    - snprintf
    linkageType: ''
    returnType: char
    signature: char * rasGpuDevsToString(uint64_t cudaDevs, uint64_t nvmlDevs, char*
      buf, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/nccl/src/ras/client_support.cc:1850,1
    - Dst: snprintf
      Src: /src/nccl/src/ras/client_support.cc:1852,1
    - Dst: strlen
      Src: /src/nccl/src/ras/client_support.cc:1852,1
    - Dst: strlen
      Src: /src/nccl/src/ras/client_support.cc:1852,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - cudaDev
    - nvmlDev
    - buf
    - size
    argTypes:
    - int
    - int
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1855
      start: 1849
    functionDepth: 0
    functionLinenumber: 1849
    functionLinenumberEnd: 1855
    functionName: rasGpuToString
    functionSourceFile: /src/nccl/src/ras/client_support.cc
    functionUses: 1
    functionsReached:
    - strlen
    - snprintf
    linkageType: ''
    returnType: char
    signature: char * rasGpuToString(int cudaDev, int nvmlDev, char* buf, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rasGpuToString
      Src: /src/nccl/src/ras/client_support.cc:1860,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - rank
    - buf
    - size
    argTypes:
    - struct rasCollComms::comm::rank*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1861
      start: 1859
    functionDepth: 1
    functionLinenumber: 1859
    functionLinenumberEnd: 1861
    functionName: rasCommRankGpuToString
    functionSourceFile: /src/nccl/src/ras/client_support.cc
    functionUses: 2
    functionsReached:
    - rasGpuToString
    linkageType: ''
    returnType: char
    signature: char * rasCommRankGpuToString(const struct rasCollComms::comm::rank*
      rank, char* buf, size_t size)
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - err
    argTypes:
    - ncclResult_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1875
      start: 1864
    functionDepth: 0
    functionLinenumber: 1864
    functionLinenumberEnd: 1875
    functionName: ncclErrorToString
    functionSourceFile: /src/nccl/src/ras/client_support.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * ncclErrorToString(ncclResult_t err)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: inet_ntop
      Src: /src/nccl/src/ras/client_support.cc:1880,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - addr
    - buf
    - size
    argTypes:
    - union ncclSocketAddress*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1888
      start: 1878
    functionDepth: 0
    functionLinenumber: 1878
    functionLinenumberEnd: 1888
    functionName: ncclSocketToHost
    functionSourceFile: /src/nccl/src/ras/client_support.cc
    functionUses: 4
    functionsReached:
    - inet_ntop
    linkageType: ''
    returnType: char
    signature: char * ncclSocketToHost(const union ncclSocketAddress* addr, char*
      buf, size_t size)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - count
    - verbose
    - totalCount
    argTypes:
    - int
    - bool
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1900
      start: 1891
    functionDepth: 0
    functionLinenumber: 1891
    functionLinenumberEnd: 1900
    functionName: rasCountIsOutlier
    functionSourceFile: /src/nccl/src/ras/client_support.cc
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool rasCountIsOutlier(int count, bool verbose, int totalCount)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/nccl/src/ras/client_support.cc:1904,1
    - Dst: free
      Src: /src/nccl/src/ras/client_support.cc:1907,1
    - Dst: rasClientTerminate
      Src: /src/nccl/src/ras/client_support.cc:1913,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1918
      start: 1903
    functionDepth: 2
    functionLinenumber: 1903
    functionLinenumberEnd: 1918
    functionName: rasClientSupportTerminate
    functionSourceFile: /src/nccl/src/ras/client_support.cc
    functionUses: 1
    functionsReached:
    - close
    - rasClientTerminate
    - free
    linkageType: ''
    returnType: void
    signature: void rasClientSupportTerminate()
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - type
    argTypes:
    - rasCollectiveType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 158
    functionName: rasCollDataLength
    functionSourceFile: /src/nccl/src/ras/ras_internal.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t rasCollDataLength(rasCollectiveType type)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: rasCollDataLength
      Src: /src/nccl/src/ras/ras_internal.h:173,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 17
    argCount: 1
    argNames:
    - type
    argTypes:
    - rasMsgType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 178
    functionName: rasMsgLength
    functionSourceFile: /src/nccl/src/ras/ras_internal.h
    functionUses: 10
    functionsReached:
    - rasCollDataLength
    linkageType: ''
    returnType: size_t
    signature: size_t rasMsgLength(rasMsgType type, rasCollectiveType collType = RAS_MSG_NONE)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fread
      Src: /src/nccl/src/graph/xml.cc:28,1
    - Dst: WARN
      Src: /src/nccl/src/graph/xml.cc:29,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - file
    - c
    argTypes:
    - FILE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 27
    functionDepth: 1
    functionLinenumber: 27
    functionLinenumberEnd: 33
    functionName: xmlGetChar
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 0
    functionsReached:
    - WARN
    - fread
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t xmlGetChar(FILE* file, char* c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:37,1
    - Dst: xmlGetChar
      Src: /src/nccl/src/graph/xml.cc:37,1
    - Dst: WARN
      Src: /src/nccl/src/graph/xml.cc:45,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:49,1
    - Dst: xmlGetChar
      Src: /src/nccl/src/graph/xml.cc:49,1
    - Dst: WARN
      Src: /src/nccl/src/graph/xml.cc:55,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:62,1
    - Dst: xmlGetChar
      Src: /src/nccl/src/graph/xml.cc:62,1
    - Dst: WARN
      Src: /src/nccl/src/graph/xml.cc:66,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:72,1
    - Dst: xmlGetChar
      Src: /src/nccl/src/graph/xml.cc:72,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 3
    argNames:
    - file
    - value
    - last
    argTypes:
    - FILE*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 35
    functionDepth: 2
    functionLinenumber: 35
    functionLinenumberEnd: 74
    functionName: xmlGetValue
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 0
    functionsReached:
    - xmlGetChar
    - WARN
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t xmlGetValue(FILE* file, char* value, char* last)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:81,1
    - Dst: xmlGetChar
      Src: /src/nccl/src/graph/xml.cc:81,1
    - Dst: WARN
      Src: /src/nccl/src/graph/xml.cc:85,1
    - Dst: xmlGetValue
      Src: /src/nccl/src/graph/xml.cc:88,1
    - Dst: WARN
      Src: /src/nccl/src/graph/xml.cc:93,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 4
    argNames:
    - file
    - name
    - value
    - last
    argTypes:
    - FILE*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 76
    functionDepth: 3
    functionLinenumber: 76
    functionLinenumberEnd: 101
    functionName: xmlGetToken
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 0
    functionsReached:
    - xmlGetChar
    - WARN
    - xmlGetValue
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t xmlGetToken(FILE* file, char* name, char* value, char*
      last)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - s
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 105
    functionName: SHIFT_APPEND
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHIFT_APPEND(s, c)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/nccl/src/graph/xml.cc:111,1
    - Dst: SHIFT_APPEND
      Src: /src/nccl/src/graph/xml.cc:111,1
    - Dst: SHIFT_APPEND
      Src: /src/nccl/src/graph/xml.cc:112,1
    - Dst: strcmp
      Src: /src/nccl/src/graph/xml.cc:115,1
    - Dst: fread
      Src: /src/nccl/src/graph/xml.cc:117,1
    - Dst: WARN
      Src: /src/nccl/src/graph/xml.cc:118,1
    - Dst: SHIFT_APPEND
      Src: /src/nccl/src/graph/xml.cc:121,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - file
    - start
    - next
    argTypes:
    - FILE*
    - char*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 124
    functionName: xmlSkipComment
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 0
    functionsReached:
    - WARN
    - strcmp
    - strlen
    - SHIFT_APPEND
    - fread
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t xmlSkipComment(FILE* file, char* start, char next)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: fread
      Src: /src/nccl/src/graph/xml.cc:130,1
    - Dst: WARN
      Src: /src/nccl/src/graph/xml.cc:133,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:137,1
    - Dst: xmlGetToken
      Src: /src/nccl/src/graph/xml.cc:137,1
    - Dst: strncmp
      Src: /src/nccl/src/graph/xml.cc:140,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:141,1
    - Dst: xmlSkipComment
      Src: /src/nccl/src/graph/xml.cc:141,1
    - Dst: xmlGetNode
      Src: /src/nccl/src/graph/xml.cc:142,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:149,1
    - Dst: xmlGetToken
      Src: /src/nccl/src/graph/xml.cc:149,1
    - Dst: WARN
      Src: /src/nccl/src/graph/xml.cc:151,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:162,1
    - Dst: xmlGetToken
      Src: /src/nccl/src/graph/xml.cc:162,1
    - Dst: INFO
      Src: /src/nccl/src/graph/xml.cc:164,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:172,1
    - Dst: xmlGetToken
      Src: /src/nccl/src/graph/xml.cc:172,1
    - Dst: WARN
      Src: /src/nccl/src/graph/xml.cc:175,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 42
    argCount: 2
    argNames:
    - file
    - node
    argTypes:
    - FILE*
    - struct ncclXmlNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 126
    functionDepth: 4
    functionLinenumber: 126
    functionLinenumberEnd: 179
    functionName: xmlGetNode
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 1
    functionsReached:
    - WARN
    - INFO
    - xmlSkipComment
    - xmlGetToken
    - strncmp
    - xmlGetNode
    - fread
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t xmlGetNode(FILE* file, struct ncclXmlNode* node)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/graph/xml.cc:192,1
    - Dst: memset
      Src: /src/nccl/src/graph/xml.cc:196,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:197,1
    - Dst: xmlGetNode
      Src: /src/nccl/src/graph/xml.cc:197,1
    - Dst: WARN
      Src: /src/nccl/src/graph/xml.cc:200,1
    - Dst: strcmp
      Src: /src/nccl/src/graph/xml.cc:208,1
    - Dst: WARN
      Src: /src/nccl/src/graph/xml.cc:209,1
    - Dst: strcmp
      Src: /src/nccl/src/graph/xml.cc:216,1
    - Dst: WARN
      Src: /src/nccl/src/graph/xml.cc:219,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:227,1
    - Dst: func
      Src: /src/nccl/src/graph/xml.cc:227,1
    - Dst: INFO
      Src: /src/nccl/src/graph/xml.cc:233,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:234,1
    - Dst: xmlLoadSub
      Src: /src/nccl/src/graph/xml.cc:234,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 48
    argCount: 5
    argNames:
    - file
    - xml
    - head
    - handlers
    - nHandlers
    argTypes:
    - FILE*
    - struct ncclXml*
    - struct ncclXmlNode*
    - struct xmlHandler[]
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 188
    functionDepth: 5
    functionLinenumber: 188
    functionLinenumberEnd: 237
    functionName: xmlLoadSub
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 1
    functionsReached:
    - WARN
    - INFO
    - strcmp
    - func
    - xmlGetNode
    - xmlLoadSub
    - NCCLCHECK
    - memset
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t xmlLoadSub(FILE* file, struct ncclXml* xml, struct ncclXmlNode*
      head, struct xmlHandler handlers[], int nHandlers)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - xml
    - base
    - exp
    argTypes:
    - struct ncclXml*
    - uintptr_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 258
    functionName: ncclTopoConvertXml
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoConvertXml(struct ncclXml* xml, uintptr_t base,
      int exp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nccl/src/graph/xml.cc:261,1
    - Dst: fprintf
      Src: /src/nccl/src/graph/xml.cc:262,1
    - Dst: fprintf
      Src: /src/nccl/src/graph/xml.cc:265,1
    - Dst: fprintf
      Src: /src/nccl/src/graph/xml.cc:268,1
    - Dst: fprintf
      Src: /src/nccl/src/graph/xml.cc:270,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:272,1
    - Dst: ncclTopoDumpXmlRec
      Src: /src/nccl/src/graph/xml.cc:272,1
    - Dst: fprintf
      Src: /src/nccl/src/graph/xml.cc:274,1
    - Dst: fprintf
      Src: /src/nccl/src/graph/xml.cc:275,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - indent
    - file
    - node
    argTypes:
    - int
    - FILE*
    - struct ncclXmlNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 278
    functionName: ncclTopoDumpXmlRec
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 1
    functionsReached:
    - ncclTopoDumpXmlRec
    - fprintf
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoDumpXmlRec(int indent, FILE* file, struct ncclXmlNode*
      node)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/nccl/src/graph/xml.cc:281,1
    - Dst: INFO
      Src: /src/nccl/src/graph/xml.cc:283,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:286,1
    - Dst: ncclTopoDumpXmlRec
      Src: /src/nccl/src/graph/xml.cc:286,1
    - Dst: fclose
      Src: /src/nccl/src/graph/xml.cc:287,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - xmlTopoFile
    - xml
    argTypes:
    - char*
    - struct ncclXml*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 280
    functionDepth: 2
    functionLinenumber: 280
    functionLinenumberEnd: 289
    functionName: ncclTopoDumpXmlToFile
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 0
    functionsReached:
    - INFO
    - ncclTopoDumpXmlRec
    - fclose
    - fopen
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoDumpXmlToFile(const char* xmlTopoFile, struct
      ncclXml* xml)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:295,1
    - Dst: xmlFindNode
      Src: /src/nccl/src/graph/xml.cc:295,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:297,1
    - Dst: xmlAddTree
      Src: /src/nccl/src/graph/xml.cc:297,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:299,1
    - Dst: xmlTopoFuseXmlRecursive
      Src: /src/nccl/src/graph/xml.cc:299,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - dst
    - dstParent
    - srcParent
    argTypes:
    - struct ncclXml*
    - struct ncclXmlNode*
    - struct ncclXmlNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 291
    functionDepth: 1
    functionLinenumber: 291
    functionLinenumberEnd: 303
    functionName: xmlTopoFuseXmlRecursive
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 1
    functionsReached:
    - xmlFindNode
    - xmlAddTree
    - NCCLCHECK
    - xmlTopoFuseXmlRecursive
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t xmlTopoFuseXmlRecursive(struct ncclXml* dst, struct ncclXmlNode*
      dstParent, struct ncclXmlNode* srcParent)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:307,1
    - Dst: xmlFindTag
      Src: /src/nccl/src/graph/xml.cc:307,1
    - Dst: xmlAddTree
      Src: /src/nccl/src/graph/xml.cc:310,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:315,1
    - Dst: xmlFindTag
      Src: /src/nccl/src/graph/xml.cc:315,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:317,1
    - Dst: xmlTopoFuseXmlRecursive
      Src: /src/nccl/src/graph/xml.cc:317,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - struct ncclXml*
    - struct ncclXml*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 305
    functionDepth: 2
    functionLinenumber: 305
    functionLinenumberEnd: 320
    functionName: ncclTopoFuseXml
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 0
    functionsReached:
    - xmlFindTag
    - xmlAddTree
    - NCCLCHECK
    - xmlTopoFuseXmlRecursive
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoFuseXml(struct ncclXml* dst, struct ncclXml* src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:328,1
    - Dst: xmlLoadSub
      Src: /src/nccl/src/graph/xml.cc:328,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - file
    - xml
    - head
    argTypes:
    - FILE*
    - struct ncclXml*
    - struct ncclXmlNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 327
    functionDepth: 6
    functionLinenumber: 327
    functionLinenumberEnd: 330
    functionName: ncclTopoXmlLoadNvlink
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 0
    functionsReached:
    - xmlLoadSub
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoXmlLoadNvlink(FILE* file, struct ncclXml* xml,
      struct ncclXmlNode* head)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:333,1
    - Dst: xmlLoadSub
      Src: /src/nccl/src/graph/xml.cc:333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - file
    - xml
    - head
    argTypes:
    - FILE*
    - struct ncclXml*
    - struct ncclXmlNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 332
    functionDepth: 6
    functionLinenumber: 332
    functionLinenumberEnd: 335
    functionName: ncclTopoXmlLoadPciLink
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 0
    functionsReached:
    - xmlLoadSub
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoXmlLoadPciLink(FILE* file, struct ncclXml* xml,
      struct ncclXmlNode* head)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:338,1
    - Dst: xmlLoadSub
      Src: /src/nccl/src/graph/xml.cc:338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - file
    - xml
    - head
    argTypes:
    - FILE*
    - struct ncclXml*
    - struct ncclXmlNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 337
    functionDepth: 6
    functionLinenumber: 337
    functionLinenumberEnd: 340
    functionName: ncclTopoXmlLoadC2c
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 0
    functionsReached:
    - xmlLoadSub
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoXmlLoadC2c(FILE* file, struct ncclXml* xml, struct
      ncclXmlNode* head)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:343,1
    - Dst: xmlLoadSub
      Src: /src/nccl/src/graph/xml.cc:343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - file
    - xml
    - head
    argTypes:
    - FILE*
    - struct ncclXml*
    - struct ncclXmlNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 341
    functionDepth: 6
    functionLinenumber: 341
    functionLinenumberEnd: 345
    functionName: ncclTopoXmlLoadGpu
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 0
    functionsReached:
    - xmlLoadSub
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoXmlLoadGpu(FILE* file, struct ncclXml* xml, struct
      ncclXmlNode* head)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:348,1
    - Dst: xmlLoadSub
      Src: /src/nccl/src/graph/xml.cc:348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - file
    - xml
    - head
    argTypes:
    - FILE*
    - struct ncclXml*
    - struct ncclXmlNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 347
    functionDepth: 6
    functionLinenumber: 347
    functionLinenumberEnd: 350
    functionName: ncclTopoXmlLoadNet
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 0
    functionsReached:
    - xmlLoadSub
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoXmlLoadNet(FILE* file, struct ncclXml* xml, struct
      ncclXmlNode* head)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:354,1
    - Dst: xmlLoadSub
      Src: /src/nccl/src/graph/xml.cc:354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - file
    - xml
    - head
    argTypes:
    - FILE*
    - struct ncclXml*
    - struct ncclXmlNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 352
    functionDepth: 6
    functionLinenumber: 352
    functionLinenumberEnd: 356
    functionName: ncclTopoXmlLoadNic
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 0
    functionsReached:
    - xmlLoadSub
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoXmlLoadNic(FILE* file, struct ncclXml* xml, struct
      ncclXmlNode* head)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:360,1
    - Dst: xmlLoadSub
      Src: /src/nccl/src/graph/xml.cc:360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - file
    - xml
    - head
    argTypes:
    - FILE*
    - struct ncclXml*
    - struct ncclXmlNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 358
    functionDepth: 6
    functionLinenumber: 358
    functionLinenumberEnd: 362
    functionName: ncclTopoXmlLoadPci
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 0
    functionsReached:
    - xmlLoadSub
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoXmlLoadPci(FILE* file, struct ncclXml* xml, struct
      ncclXmlNode* head)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:366,1
    - Dst: xmlLoadSub
      Src: /src/nccl/src/graph/xml.cc:366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - file
    - xml
    - head
    argTypes:
    - FILE*
    - struct ncclXml*
    - struct ncclXmlNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 364
    functionDepth: 6
    functionLinenumber: 364
    functionLinenumberEnd: 368
    functionName: ncclTopoXmlLoadCpu
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 0
    functionsReached:
    - xmlLoadSub
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoXmlLoadCpu(FILE* file, struct ncclXml* xml, struct
      ncclXmlNode* head)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:372,1
    - Dst: xmlGetAttrInt
      Src: /src/nccl/src/graph/xml.cc:372,1
    - Dst: WARN
      Src: /src/nccl/src/graph/xml.cc:374,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:378,1
    - Dst: xmlGetAttr
      Src: /src/nccl/src/graph/xml.cc:378,1
    - Dst: INFO
      Src: /src/nccl/src/graph/xml.cc:379,1
    - Dst: INFO
      Src: /src/nccl/src/graph/xml.cc:380,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:383,1
    - Dst: xmlLoadSub
      Src: /src/nccl/src/graph/xml.cc:383,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - file
    - xml
    - head
    argTypes:
    - FILE*
    - struct ncclXml*
    - struct ncclXmlNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 370
    functionDepth: 6
    functionLinenumber: 370
    functionLinenumberEnd: 385
    functionName: ncclTopoXmlLoadSystem
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 0
    functionsReached:
    - WARN
    - INFO
    - xmlLoadSub
    - xmlGetAttrInt
    - xmlGetAttr
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoXmlLoadSystem(FILE* file, struct ncclXml* xml,
      struct ncclXmlNode* head)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/nccl/src/graph/xml.cc:388,1
    - Dst: INFO
      Src: /src/nccl/src/graph/xml.cc:391,1
    - Dst: strerror
      Src: /src/nccl/src/graph/xml.cc:391,1
    - Dst: INFO
      Src: /src/nccl/src/graph/xml.cc:395,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:398,1
    - Dst: xmlLoadSub
      Src: /src/nccl/src/graph/xml.cc:398,1
    - Dst: fclose
      Src: /src/nccl/src/graph/xml.cc:399,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - xmlTopoFile
    - xml
    - warn
    argTypes:
    - char*
    - struct ncclXml*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 387
    functionDepth: 6
    functionLinenumber: 387
    functionLinenumberEnd: 401
    functionName: ncclTopoGetXmlFromFile
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 1
    functionsReached:
    - INFO
    - fclose
    - fopen
    - strerror
    - xmlLoadSub
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoGetXmlFromFile(const char* xmlTopoFile, struct
      ncclXml* xml, int warn)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: tolower
      Src: /src/nccl/src/graph/xml.cc:411,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - dst
    - src
    - size
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 412
    functionName: memcpylower
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 0
    functionsReached:
    - tolower
    linkageType: ''
    returnType: void
    signature: void memcpylower(char* dst, const char* src, const size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpylower
      Src: /src/nccl/src/graph/xml.cc:415,1
    - Dst: memcpylower
      Src: /src/nccl/src/graph/xml.cc:416,1
    - Dst: realpath
      Src: /src/nccl/src/graph/xml.cc:417,1
    - Dst: WARN
      Src: /src/nccl/src/graph/xml.cc:419,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - busId
    - path
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 413
    functionDepth: 1
    functionLinenumber: 413
    functionLinenumberEnd: 423
    functionName: getPciPath
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 0
    functionsReached:
    - WARN
    - memcpylower
    - realpath
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t getPciPath(const char* busId, char** path)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memcpylower
      Src: /src/nccl/src/graph/xml.cc:430,1
    - Dst: opendir
      Src: /src/nccl/src/graph/xml.cc:431,1
    - Dst: readdir
      Src: /src/nccl/src/graph/xml.cc:434,1
    - Dst: strlen
      Src: /src/nccl/src/graph/xml.cc:435,1
    - Dst: getPciPath
      Src: /src/nccl/src/graph/xml.cc:437,1
    - Dst: free
      Src: /src/nccl/src/graph/xml.cc:438,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:439,1
    - Dst: ncclRealloc
      Src: /src/nccl/src/graph/xml.cc:439,1
    - Dst: memcpy
      Src: /src/nccl/src/graph/xml.cc:440,1
    - Dst: closedir
      Src: /src/nccl/src/graph/xml.cc:442,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 3
    argNames:
    - busId
    - nlinks
    - peers
    argTypes:
    - char*
    - int*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 445
      start: 426
    functionDepth: 2
    functionLinenumber: 426
    functionLinenumberEnd: 445
    functionName: getBcmLinks
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 0
    functionsReached:
    - strlen
    - memcpy
    - free
    - getPciPath
    - readdir
    - memcpylower
    - closedir
    - ncclRealloc
    - NCCLCHECK
    - opendir
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t getBcmLinks(const char* busId, int* nlinks, char** peers)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/nccl/src/graph/xml.cc:449,1
    - Dst: fopen
      Src: /src/nccl/src/graph/xml.cc:452,1
    - Dst: feof
      Src: /src/nccl/src/graph/xml.cc:453,1
    - Dst: ferror
      Src: /src/nccl/src/graph/xml.cc:453,1
    - Dst: fread
      Src: /src/nccl/src/graph/xml.cc:454,1
    - Dst: fclose
      Src: /src/nccl/src/graph/xml.cc:457,1
    - Dst: INFO
      Src: /src/nccl/src/graph/xml.cc:461,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - path
    - fileName
    - strValue
    argTypes:
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 447
    functionDepth: 0
    functionLinenumber: 447
    functionLinenumberEnd: 466
    functionName: ncclTopoGetStrFromSys
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 0
    functionsReached:
    - INFO
    - fclose
    - fopen
    - feof
    - ferror
    - fread
    - snprintf
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoGetStrFromSys(const char* path, const char* fileName,
      char* strValue)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:470,1
    - Dst: ncclTopoGetStrFromSys
      Src: /src/nccl/src/graph/xml.cc:470,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:471,1
    - Dst: xmlSetAttr
      Src: /src/nccl/src/graph/xml.cc:471,1
    - Dst: TRACE
      Src: /src/nccl/src/graph/xml.cc:472,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - pciNode
    - path
    - fileName
    - attrName
    argTypes:
    - struct ncclXmlNode*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 468
    functionDepth: 1
    functionLinenumber: 468
    functionLinenumberEnd: 474
    functionName: ncclTopoSetAttrFromSys
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 0
    functionsReached:
    - xmlSetAttr
    - TRACE
    - NCCLCHECK
    - ncclTopoGetStrFromSys
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoSetAttrFromSys(struct ncclXmlNode* pciNode, const
      char* path, const char* fileName, const char* attrName)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:478,1
    - Dst: xmlGetAttrIndex
      Src: /src/nccl/src/graph/xml.cc:478,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:481,1
    - Dst: xmlGetAttr
      Src: /src/nccl/src/graph/xml.cc:481,1
    - Dst: WARN
      Src: /src/nccl/src/graph/xml.cc:483,1
    - Dst: snprintf
      Src: /src/nccl/src/graph/xml.cc:488,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:489,1
    - Dst: ncclTopoSetAttrFromSys
      Src: /src/nccl/src/graph/xml.cc:489,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:492,1
    - Dst: xmlGetAttrIndex
      Src: /src/nccl/src/graph/xml.cc:492,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:496,1
    - Dst: xmlSetAttr
      Src: /src/nccl/src/graph/xml.cc:496,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:498,1
    - Dst: xmlSetAttr
      Src: /src/nccl/src/graph/xml.cc:498,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:500,1
    - Dst: xmlSetAttr
      Src: /src/nccl/src/graph/xml.cc:500,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:505,1
    - Dst: xmlGetAttrIndex
      Src: /src/nccl/src/graph/xml.cc:505,1
    - Dst: __cpuid
      Src: /src/nccl/src/graph/xml.cc:518,1
    - Dst: strncpy
      Src: /src/nccl/src/graph/xml.cc:520,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:522,1
    - Dst: xmlSetAttr
      Src: /src/nccl/src/graph/xml.cc:522,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:525,1
    - Dst: xmlGetAttrIndex
      Src: /src/nccl/src/graph/xml.cc:525,1
    - Dst: __cpuid
      Src: /src/nccl/src/graph/xml.cc:541,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:544,1
    - Dst: xmlSetAttrInt
      Src: /src/nccl/src/graph/xml.cc:544,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:545,1
    - Dst: xmlSetAttrInt
      Src: /src/nccl/src/graph/xml.cc:545,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 2
    argNames:
    - cpuNode
    - xml
    argTypes:
    - struct ncclXmlNode*
    - struct ncclXml*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 476
    functionDepth: 2
    functionLinenumber: 476
    functionLinenumberEnd: 549
    functionName: ncclTopoGetXmlFromCpu
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 0
    functionsReached:
    - WARN
    - xmlGetAttrIndex
    - strncpy
    - xmlSetAttr
    - xmlSetAttrInt
    - ncclTopoSetAttrFromSys
    - __cpuid
    - xmlGetAttr
    - NCCLCHECK
    - snprintf
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoGetXmlFromCpu(struct ncclXmlNode* cpuNode, struct
      ncclXml* xml)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:552,1
    - Dst: xmlFindTagKv
      Src: /src/nccl/src/graph/xml.cc:552,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:554,1
    - Dst: xmlAddNode
      Src: /src/nccl/src/graph/xml.cc:554,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:555,1
    - Dst: xmlSetAttr
      Src: /src/nccl/src/graph/xml.cc:555,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - xml
    - busId
    - pciNode
    argTypes:
    - struct ncclXml*
    - char*
    - struct ncclXmlNode**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 551
    functionDepth: 1
    functionLinenumber: 551
    functionLinenumberEnd: 558
    functionName: ncclTopoGetPciNode
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 0
    functionsReached:
    - xmlSetAttr
    - xmlAddNode
    - xmlFindTagKv
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoGetPciNode(struct ncclXml* xml, const char* busId,
      struct ncclXmlNode** pciNode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 563
    functionDepth: 0
    functionLinenumber: 563
    functionLinenumberEnd: 563
    functionName: isHex
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int isHex(char c)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/nccl/src/graph/xml.cc:565,1
    - Dst: isHex
      Src: /src/nccl/src/graph/xml.cc:567,1
    - Dst: isHex
      Src: /src/nccl/src/graph/xml.cc:567,1
    - Dst: isHex
      Src: /src/nccl/src/graph/xml.cc:567,1
    - Dst: isHex
      Src: /src/nccl/src/graph/xml.cc:567,1
    - Dst: isHex
      Src: /src/nccl/src/graph/xml.cc:568,1
    - Dst: isHex
      Src: /src/nccl/src/graph/xml.cc:568,1
    - Dst: isHex
      Src: /src/nccl/src/graph/xml.cc:568,1
    - Dst: isHex
      Src: /src/nccl/src/graph/xml.cc:568,1
    - Dst: isHex
      Src: /src/nccl/src/graph/xml.cc:569,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 8
    argCount: 1
    argNames:
    - bdf
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 564
    functionDepth: 1
    functionLinenumber: 564
    functionLinenumberEnd: 571
    functionName: checkBDFFormat
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 0
    functionsReached:
    - isHex
    - strlen
    linkageType: ''
    returnType: int
    signature: int checkBDFFormat(char* bdf)
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:576,1
    - Dst: xmlGetAttr
      Src: /src/nccl/src/graph/xml.cc:576,1
    - Dst: getPciPath
      Src: /src/nccl/src/graph/xml.cc:579,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:583,1
    - Dst: ncclTopoSetAttrFromSys
      Src: /src/nccl/src/graph/xml.cc:583,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:587,1
    - Dst: xmlGetAttrIndex
      Src: /src/nccl/src/graph/xml.cc:587,1
    - Dst: ncclTopoSetAttrFromSys
      Src: /src/nccl/src/graph/xml.cc:589,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:591,1
    - Dst: xmlGetAttrIndex
      Src: /src/nccl/src/graph/xml.cc:591,1
    - Dst: ncclTopoSetAttrFromSys
      Src: /src/nccl/src/graph/xml.cc:593,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:595,1
    - Dst: xmlGetAttrIndex
      Src: /src/nccl/src/graph/xml.cc:595,1
    - Dst: ncclTopoSetAttrFromSys
      Src: /src/nccl/src/graph/xml.cc:597,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:599,1
    - Dst: xmlGetAttrIndex
      Src: /src/nccl/src/graph/xml.cc:599,1
    - Dst: ncclTopoSetAttrFromSys
      Src: /src/nccl/src/graph/xml.cc:601,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:604,1
    - Dst: xmlGetAttrIndex
      Src: /src/nccl/src/graph/xml.cc:604,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:609,1
    - Dst: ncclTopoGetStrFromSys
      Src: /src/nccl/src/graph/xml.cc:609,1
    - Dst: sscanf
      Src: /src/nccl/src/graph/xml.cc:610,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:613,1
    - Dst: ncclTopoGetStrFromSys
      Src: /src/nccl/src/graph/xml.cc:613,1
    - Dst: sscanf
      Src: /src/nccl/src/graph/xml.cc:614,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:615,1
    - Dst: xmlSetAttr
      Src: /src/nccl/src/graph/xml.cc:615,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:617,1
    - Dst: xmlSetAttr
      Src: /src/nccl/src/graph/xml.cc:617,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:620,1
    - Dst: xmlGetAttrIndex
      Src: /src/nccl/src/graph/xml.cc:620,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:624,1
    - Dst: ncclTopoGetStrFromSys
      Src: /src/nccl/src/graph/xml.cc:624,1
    - Dst: strtol
      Src: /src/nccl/src/graph/xml.cc:625,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:626,1
    - Dst: ncclTopoGetStrFromSys
      Src: /src/nccl/src/graph/xml.cc:626,1
    - Dst: strtol
      Src: /src/nccl/src/graph/xml.cc:627,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:628,1
    - Dst: xmlSetAttrInt
      Src: /src/nccl/src/graph/xml.cc:628,1
    - Dst: min
      Src: /src/nccl/src/graph/xml.cc:628,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:630,1
    - Dst: xmlSetAttr
      Src: /src/nccl/src/graph/xml.cc:630,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:635,1
    - Dst: xmlGetAttr
      Src: /src/nccl/src/graph/xml.cc:635,1
    - Dst: strcmp
      Src: /src/nccl/src/graph/xml.cc:636,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:639,1
    - Dst: getBcmLinks
      Src: /src/nccl/src/graph/xml.cc:639,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:643,1
    - Dst: xmlGetSubKv
      Src: /src/nccl/src/graph/xml.cc:643,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:645,1
    - Dst: xmlAddNode
      Src: /src/nccl/src/graph/xml.cc:645,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:646,1
    - Dst: xmlSetAttr
      Src: /src/nccl/src/graph/xml.cc:646,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:656,1
    - Dst: ncclTopoGetStrFromSys
      Src: /src/nccl/src/graph/xml.cc:656,1
    - Dst: strlen
      Src: /src/nccl/src/graph/xml.cc:662,1
    - Dst: checkBDFFormat
      Src: /src/nccl/src/graph/xml.cc:669,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:672,1
    - Dst: xmlFindTag
      Src: /src/nccl/src/graph/xml.cc:672,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:673,1
    - Dst: xmlGetSubKv
      Src: /src/nccl/src/graph/xml.cc:673,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:675,1
    - Dst: xmlAddNode
      Src: /src/nccl/src/graph/xml.cc:675,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:676,1
    - Dst: xmlSetAttrLong
      Src: /src/nccl/src/graph/xml.cc:676,1
    - Dst: getHostHash
      Src: /src/nccl/src/graph/xml.cc:676,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:677,1
    - Dst: xmlSetAttr
      Src: /src/nccl/src/graph/xml.cc:677,1
    - Dst: strlen
      Src: /src/nccl/src/graph/xml.cc:681,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:683,1
    - Dst: xmlFindTagKv
      Src: /src/nccl/src/graph/xml.cc:683,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:685,1
    - Dst: xmlAddNode
      Src: /src/nccl/src/graph/xml.cc:685,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:686,1
    - Dst: xmlSetAttr
      Src: /src/nccl/src/graph/xml.cc:686,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:697,1
    - Dst: xmlFindTagKv
      Src: /src/nccl/src/graph/xml.cc:697,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:700,1
    - Dst: xmlFindTag
      Src: /src/nccl/src/graph/xml.cc:700,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:701,1
    - Dst: xmlAddNode
      Src: /src/nccl/src/graph/xml.cc:701,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:702,1
    - Dst: xmlSetAttrLong
      Src: /src/nccl/src/graph/xml.cc:702,1
    - Dst: getHostHash
      Src: /src/nccl/src/graph/xml.cc:702,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:703,1
    - Dst: xmlSetAttr
      Src: /src/nccl/src/graph/xml.cc:703,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:704,1
    - Dst: ncclTopoGetXmlFromCpu
      Src: /src/nccl/src/graph/xml.cc:704,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:714,1
    - Dst: xmlGetAttrStr
      Src: /src/nccl/src/graph/xml.cc:714,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:717,1
    - Dst: xmlGetAttr
      Src: /src/nccl/src/graph/xml.cc:717,1
    - Dst: strcmp
      Src: /src/nccl/src/graph/xml.cc:718,1
    - Dst: WARN
      Src: /src/nccl/src/graph/xml.cc:721,1
    - Dst: strcmp
      Src: /src/nccl/src/graph/xml.cc:728,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:729,1
    - Dst: ncclTopoGetXmlFromSys
      Src: /src/nccl/src/graph/xml.cc:729,1
    - Dst: strcmp
      Src: /src/nccl/src/graph/xml.cc:730,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:731,1
    - Dst: ncclTopoGetXmlFromCpu
      Src: /src/nccl/src/graph/xml.cc:731,1
    - Dst: free
      Src: /src/nccl/src/graph/xml.cc:733,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 133
    argCount: 2
    argNames:
    - pciNode
    - xml
    argTypes:
    - struct ncclXmlNode*
    - struct ncclXml*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 735
      start: 573
    functionDepth: 3
    functionLinenumber: 573
    functionLinenumberEnd: 735
    functionName: ncclTopoGetXmlFromSys
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 1
    functionsReached:
    - WARN
    - xmlFindTag
    - xmlSetAttrLong
    - getPciPath
    - xmlGetAttrStr
    - getBcmLinks
    - ncclTopoGetXmlFromSys
    - min
    - xmlAddNode
    - ncclTopoGetXmlFromCpu
    - xmlSetAttr
    - getHostHash
    - xmlSetAttrInt
    - strtol
    - xmlGetAttrIndex
    - strcmp
    - xmlFindTagKv
    - sscanf
    - strlen
    - free
    - checkBDFFormat
    - xmlGetSubKv
    - ncclTopoSetAttrFromSys
    - xmlGetAttr
    - NCCLCHECK
    - ncclTopoGetStrFromSys
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoGetXmlFromSys(struct ncclXmlNode* pciNode, struct
      ncclXml* xml)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:739,1
    - Dst: xmlGetSub
      Src: /src/nccl/src/graph/xml.cc:739,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:740,1
    - Dst: xmlAddNode
      Src: /src/nccl/src/graph/xml.cc:740,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:745,1
    - Dst: xmlGetAttrIndex
      Src: /src/nccl/src/graph/xml.cc:745,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:747,1
    - Dst: ncclNvmlDeviceGetIndex
      Src: /src/nccl/src/graph/xml.cc:747,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:748,1
    - Dst: xmlSetAttrInt
      Src: /src/nccl/src/graph/xml.cc:748,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:750,1
    - Dst: xmlGetAttrInt
      Src: /src/nccl/src/graph/xml.cc:750,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:753,1
    - Dst: xmlGetAttrIndex
      Src: /src/nccl/src/graph/xml.cc:753,1
    - Dst: CUDACHECK
      Src: /src/nccl/src/graph/xml.cc:758,1
    - Dst: cudaGetDeviceProperties
      Src: /src/nccl/src/graph/xml.cc:758,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:761,1
    - Dst: ncclNvmlDeviceGetCudaComputeCapability
      Src: /src/nccl/src/graph/xml.cc:761,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:763,1
    - Dst: xmlSetAttrInt
      Src: /src/nccl/src/graph/xml.cc:763,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:766,1
    - Dst: xmlGetAttrInt
      Src: /src/nccl/src/graph/xml.cc:766,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:769,1
    - Dst: xmlGetSub
      Src: /src/nccl/src/graph/xml.cc:769,1
    - Dst: INFO
      Src: /src/nccl/src/graph/xml.cc:775,1
    - Dst: ncclNvmlDeviceGetNvLinkCapability
      Src: /src/nccl/src/graph/xml.cc:782,1
    - Dst: ncclNvmlDeviceGetFieldValues
      Src: /src/nccl/src/graph/xml.cc:792,1
    - Dst: ncclNvmlDeviceGetNvLinkState
      Src: /src/nccl/src/graph/xml.cc:797,1
    - Dst: ncclNvmlDeviceGetNvLinkRemotePciInfo
      Src: /src/nccl/src/graph/xml.cc:803,1
    - Dst: tolower
      Src: /src/nccl/src/graph/xml.cc:810,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:814,1
    - Dst: xmlGetSubKv
      Src: /src/nccl/src/graph/xml.cc:814,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:816,1
    - Dst: xmlAddNode
      Src: /src/nccl/src/graph/xml.cc:816,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:817,1
    - Dst: xmlSetAttr
      Src: /src/nccl/src/graph/xml.cc:817,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:818,1
    - Dst: xmlSetAttrInt
      Src: /src/nccl/src/graph/xml.cc:818,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:821,1
    - Dst: xmlGetAttrInt
      Src: /src/nccl/src/graph/xml.cc:821,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:822,1
    - Dst: xmlSetAttrInt
      Src: /src/nccl/src/graph/xml.cc:822,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:828,1
    - Dst: xmlGetSub
      Src: /src/nccl/src/graph/xml.cc:828,1
    - Dst: ncclNvmlDeviceGetFieldValues
      Src: /src/nccl/src/graph/xml.cc:834,1
    - Dst: ncclNvmlDeviceGetFieldValues
      Src: /src/nccl/src/graph/xml.cc:844,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:853,1
    - Dst: xmlAddNode
      Src: /src/nccl/src/graph/xml.cc:853,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:854,1
    - Dst: xmlSetAttrInt
      Src: /src/nccl/src/graph/xml.cc:854,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:855,1
    - Dst: xmlSetAttrInt
      Src: /src/nccl/src/graph/xml.cc:855,1
    - Dst: strcmp
      Src: /src/nccl/src/graph/xml.cc:864,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:866,1
    - Dst: xmlGetAttrIndex
      Src: /src/nccl/src/graph/xml.cc:866,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:869,1
    - Dst: xmlGetAttr
      Src: /src/nccl/src/graph/xml.cc:869,1
    - Dst: getPciPath
      Src: /src/nccl/src/graph/xml.cc:872,1
    - Dst: strcmp
      Src: /src/nccl/src/graph/xml.cc:874,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:876,1
    - Dst: xmlSetAttr
      Src: /src/nccl/src/graph/xml.cc:876,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:878,1
    - Dst: ncclTopoSetAttrFromSys
      Src: /src/nccl/src/graph/xml.cc:878,1
    - Dst: free
      Src: /src/nccl/src/graph/xml.cc:879,1
    CyclomaticComplexity: 39
    EdgeCount: 39
    ICount: 106
    argCount: 4
    argNames:
    - pciNode
    - nvmlDev
    - xml
    - gpuNodeRet
    argTypes:
    - struct ncclXmlNode*
    - nvmlDevice_t
    - struct ncclXml*
    - struct ncclXmlNode**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 885
      start: 737
    functionDepth: 3
    functionLinenumber: 737
    functionLinenumberEnd: 885
    functionName: ncclTopoGetXmlFromGpu
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 0
    functionsReached:
    - ncclNvmlDeviceGetIndex
    - getPciPath
    - NCCLCHECK
    - ncclNvmlDeviceGetNvLinkRemotePciInfo
    - INFO
    - ncclNvmlDeviceGetNvLinkCapability
    - xmlAddNode
    - tolower
    - xmlSetAttr
    - xmlSetAttrInt
    - xmlGetAttrIndex
    - xmlGetSub
    - strcmp
    - CUDACHECK
    - free
    - ncclNvmlDeviceGetCudaComputeCapability
    - ncclNvmlDeviceGetNvLinkState
    - xmlGetSubKv
    - ncclNvmlDeviceGetFieldValues
    - ncclTopoSetAttrFromSys
    - xmlGetAttrInt
    - xmlGetAttr
    - cudaGetDeviceProperties
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoGetXmlFromGpu(struct ncclXmlNode* pciNode, nvmlDevice_t
      nvmlDev, struct ncclXml* xml, struct ncclXmlNode** gpuNodeRet)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:889,1
    - Dst: ncclTopoGetPciNode
      Src: /src/nccl/src/graph/xml.cc:889,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:890,1
    - Dst: xmlSetAttrIfUnset
      Src: /src/nccl/src/graph/xml.cc:890,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:891,1
    - Dst: ncclTopoGetXmlFromSys
      Src: /src/nccl/src/graph/xml.cc:891,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:893,1
    - Dst: ncclNvmlDeviceGetHandleByPciBusId
      Src: /src/nccl/src/graph/xml.cc:893,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:894,1
    - Dst: ncclTopoGetXmlFromGpu
      Src: /src/nccl/src/graph/xml.cc:894,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 3
    argNames:
    - xml
    - busId
    - gpuNode
    argTypes:
    - struct ncclXml*
    - char*
    - struct ncclXmlNode**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 896
      start: 887
    functionDepth: 4
    functionLinenumber: 887
    functionLinenumberEnd: 896
    functionName: ncclTopoFillGpu
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 0
    functionsReached:
    - xmlSetAttrIfUnset
    - ncclTopoGetXmlFromGpu
    - ncclTopoGetPciNode
    - ncclNvmlDeviceGetHandleByPciBusId
    - ncclTopoGetXmlFromSys
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoFillGpu(struct ncclXml* xml, const char* busId,
      struct ncclXmlNode** gpuNode)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/nccl/src/graph/xml.cc:902,1
    - Dst: realpath
      Src: /src/nccl/src/graph/xml.cc:903,1
    - Dst: strlen
      Src: /src/nccl/src/graph/xml.cc:908,1
    - Dst: strcpy
      Src: /src/nccl/src/graph/xml.cc:909,1
    - Dst: free
      Src: /src/nccl/src/graph/xml.cc:910,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - sysPath
    - subSys
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 913
      start: 900
    functionDepth: 0
    functionLinenumber: 900
    functionLinenumberEnd: 913
    functionName: ncclTopoGetSubsystem
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 0
    functionsReached:
    - strlen
    - free
    - strcpy
    - realpath
    - snprintf
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoGetSubsystem(const char* sysPath, char* subSys)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:916,1
    - Dst: xmlFindTagKv
      Src: /src/nccl/src/graph/xml.cc:916,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:923,1
    - Dst: ncclTopoGetSubsystem
      Src: /src/nccl/src/graph/xml.cc:923,1
    - Dst: strcmp
      Src: /src/nccl/src/graph/xml.cc:925,1
    - Dst: INFO
      Src: /src/nccl/src/graph/xml.cc:926,1
    - Dst: strlen
      Src: /src/nccl/src/graph/xml.cc:936,1
    - Dst: strcpy
      Src: /src/nccl/src/graph/xml.cc:938,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:939,1
    - Dst: ncclTopoGetPciNode
      Src: /src/nccl/src/graph/xml.cc:939,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:940,1
    - Dst: xmlSetAttrIfUnset
      Src: /src/nccl/src/graph/xml.cc:940,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:941,1
    - Dst: ncclTopoGetXmlFromSys
      Src: /src/nccl/src/graph/xml.cc:941,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:944,1
    - Dst: xmlFindTag
      Src: /src/nccl/src/graph/xml.cc:944,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:948,1
    - Dst: xmlGetSub
      Src: /src/nccl/src/graph/xml.cc:948,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:950,1
    - Dst: xmlAddNode
      Src: /src/nccl/src/graph/xml.cc:950,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:955,1
    - Dst: xmlAddNode
      Src: /src/nccl/src/graph/xml.cc:955,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:956,1
    - Dst: xmlSetAttr
      Src: /src/nccl/src/graph/xml.cc:956,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 5
    argNames:
    - xml
    - pciPath
    - netName
    - netNode
    - forceParent
    argTypes:
    - struct ncclXml*
    - char*
    - char*
    - struct ncclXmlNode**
    - struct ncclXmlNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 958
      start: 915
    functionDepth: 4
    functionLinenumber: 915
    functionLinenumberEnd: 958
    functionName: ncclTopoFillNet
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 0
    functionsReached:
    - INFO
    - xmlSetAttrIfUnset
    - xmlFindTag
    - xmlGetSub
    - strcmp
    - xmlFindTagKv
    - strlen
    - xmlAddNode
    - ncclTopoGetSubsystem
    - xmlSetAttr
    - strcpy
    - ncclTopoGetPciNode
    - ncclTopoGetXmlFromSys
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoFillNet(struct ncclXml* xml, const char* pciPath,
      const char* netName, struct ncclXmlNode** netNode, struct ncclXmlNode* forceParent)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:962,1
    - Dst: xmlGetAttr
      Src: /src/nccl/src/graph/xml.cc:962,1
    - Dst: strcmp
      Src: /src/nccl/src/graph/xml.cc:963,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:964,1
    - Dst: xmlUnsetAttr
      Src: /src/nccl/src/graph/xml.cc:964,1
    - Dst: memcpy
      Src: /src/nccl/src/graph/xml.cc:970,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:974,1
    - Dst: ncclTopoTrimXmlRec
      Src: /src/nccl/src/graph/xml.cc:974,1
    - Dst: strcmp
      Src: /src/nccl/src/graph/xml.cc:979,1
    - Dst: strcmp
      Src: /src/nccl/src/graph/xml.cc:979,1
    - Dst: strcmp
      Src: /src/nccl/src/graph/xml.cc:979,1
    - Dst: strcmp
      Src: /src/nccl/src/graph/xml.cc:979,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:983,1
    - Dst: xmlGetAttr
      Src: /src/nccl/src/graph/xml.cc:983,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:984,1
    - Dst: xmlGetAttr
      Src: /src/nccl/src/graph/xml.cc:984,1
    - Dst: TRACE
      Src: /src/nccl/src/graph/xml.cc:985,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:987,1
    - Dst: xmlRemoveNode
      Src: /src/nccl/src/graph/xml.cc:987,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 2
    argNames:
    - node
    - keep
    argTypes:
    - struct ncclXmlNode*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 991
      start: 960
    functionDepth: 1
    functionLinenumber: 960
    functionLinenumberEnd: 991
    functionName: ncclTopoTrimXmlRec
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 1
    functionsReached:
    - TRACE
    - xmlUnsetAttr
    - strcmp
    - memcpy
    - xmlRemoveNode
    - xmlGetAttr
    - NCCLCHECK
    - ncclTopoTrimXmlRec
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoTrimXmlRec(struct ncclXmlNode* node, int* keep)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:994,1
    - Dst: ncclTopoTrimXmlRec
      Src: /src/nccl/src/graph/xml.cc:994,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - xml
    argTypes:
    - struct ncclXml*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 996
      start: 992
    functionDepth: 2
    functionLinenumber: 992
    functionLinenumberEnd: 996
    functionName: ncclTopoTrimXml
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 0
    functionsReached:
    - NCCLCHECK
    - ncclTopoTrimXmlRec
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoTrimXml(struct ncclXml* xml)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:1003,1
    - Dst: xmlLoadSub
      Src: /src/nccl/src/graph/xml.cc:1003,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - file
    - xml
    - head
    argTypes:
    - FILE*
    - struct ncclXml*
    - struct ncclXmlNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1005
      start: 1002
    functionDepth: 6
    functionLinenumber: 1002
    functionLinenumberEnd: 1005
    functionName: ncclTopoXmlGraphLoadGpu
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 0
    functionsReached:
    - xmlLoadSub
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoXmlGraphLoadGpu(FILE* file, struct ncclXml* xml,
      struct ncclXmlNode* head)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:1008,1
    - Dst: xmlLoadSub
      Src: /src/nccl/src/graph/xml.cc:1008,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - file
    - xml
    - head
    argTypes:
    - FILE*
    - struct ncclXml*
    - struct ncclXmlNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1010
      start: 1007
    functionDepth: 6
    functionLinenumber: 1007
    functionLinenumberEnd: 1010
    functionName: ncclTopoXmlGraphLoadNet
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 0
    functionsReached:
    - xmlLoadSub
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoXmlGraphLoadNet(FILE* file, struct ncclXml* xml,
      struct ncclXmlNode* head)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:1014,1
    - Dst: xmlLoadSub
      Src: /src/nccl/src/graph/xml.cc:1014,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - file
    - xml
    - head
    argTypes:
    - FILE*
    - struct ncclXml*
    - struct ncclXmlNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1016
      start: 1012
    functionDepth: 6
    functionLinenumber: 1012
    functionLinenumberEnd: 1016
    functionName: ncclTopoXmlGraphLoadChannel
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 0
    functionsReached:
    - xmlLoadSub
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoXmlGraphLoadChannel(FILE* file, struct ncclXml*
      xml, struct ncclXmlNode* head)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:1020,1
    - Dst: xmlLoadSub
      Src: /src/nccl/src/graph/xml.cc:1020,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - file
    - xml
    - head
    argTypes:
    - FILE*
    - struct ncclXml*
    - struct ncclXmlNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1022
      start: 1018
    functionDepth: 6
    functionLinenumber: 1018
    functionLinenumberEnd: 1022
    functionName: ncclTopoXmlGraphLoadGraph
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 0
    functionsReached:
    - xmlLoadSub
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoXmlGraphLoadGraph(FILE* file, struct ncclXml*
      xml, struct ncclXmlNode* head)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:1026,1
    - Dst: xmlGetAttrInt
      Src: /src/nccl/src/graph/xml.cc:1026,1
    - Dst: WARN
      Src: /src/nccl/src/graph/xml.cc:1028,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:1032,1
    - Dst: xmlGetAttr
      Src: /src/nccl/src/graph/xml.cc:1032,1
    - Dst: INFO
      Src: /src/nccl/src/graph/xml.cc:1033,1
    - Dst: INFO
      Src: /src/nccl/src/graph/xml.cc:1034,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:1037,1
    - Dst: xmlLoadSub
      Src: /src/nccl/src/graph/xml.cc:1037,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 3
    argNames:
    - file
    - xmlGraph
    - head
    argTypes:
    - FILE*
    - struct ncclXml*
    - struct ncclXmlNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1039
      start: 1024
    functionDepth: 6
    functionLinenumber: 1024
    functionLinenumberEnd: 1039
    functionName: ncclTopoXmlGraphLoadGraphs
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 0
    functionsReached:
    - WARN
    - INFO
    - xmlLoadSub
    - xmlGetAttrInt
    - xmlGetAttr
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoXmlGraphLoadGraphs(FILE* file, struct ncclXml*
      xmlGraph, struct ncclXmlNode* head)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/nccl/src/graph/xml.cc:1042,1
    - Dst: WARN
      Src: /src/nccl/src/graph/xml.cc:1044,1
    - Dst: strerror
      Src: /src/nccl/src/graph/xml.cc:1044,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.cc:1049,1
    - Dst: xmlLoadSub
      Src: /src/nccl/src/graph/xml.cc:1049,1
    - Dst: fclose
      Src: /src/nccl/src/graph/xml.cc:1050,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - xmlGraphFile
    - xml
    argTypes:
    - char*
    - struct ncclXml*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1052
      start: 1041
    functionDepth: 6
    functionLinenumber: 1041
    functionLinenumberEnd: 1052
    functionName: ncclTopoGetXmlGraphFromFile
    functionSourceFile: /src/nccl/src/graph/xml.cc
    functionUses: 0
    functionsReached:
    - WARN
    - fclose
    - fopen
    - strerror
    - xmlLoadSub
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoGetXmlGraphFromFile(const char* xmlGraphFile,
      struct ncclXml* xml)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/nccl/src/graph/rings.cc:12,1
    - Dst: snprintf
      Src: /src/nccl/src/graph/rings.cc:13,1
    - Dst: snprintf
      Src: /src/nccl/src/graph/rings.cc:15,1
    - Dst: snprintf
      Src: /src/nccl/src/graph/rings.cc:23,1
    - Dst: INFO
      Src: /src/nccl/src/graph/rings.cc:25,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - values
    - nranks
    - prefix
    argTypes:
    - int*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 26
    functionName: dumpLine
    functionSourceFile: /src/nccl/src/graph/rings.cc
    functionUses: 0
    functionsReached:
    - INFO
    - snprintf
    linkageType: ''
    returnType: void
    signature: void dumpLine(int* values, int nranks, const char* prefix)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/nccl/src/graph/rings.cc:41,1
    - Dst: dumpLine
      Src: /src/nccl/src/graph/rings.cc:42,1
    - Dst: WARN
      Src: /src/nccl/src/graph/rings.cc:44,1
    - Dst: WARN
      Src: /src/nccl/src/graph/rings.cc:57,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 6
    argNames:
    - nrings
    - rings
    - rank
    - nranks
    - prev
    - next
    argTypes:
    - int
    - int*
    - int
    - int
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 63
    functionName: ncclBuildRings
    functionSourceFile: /src/nccl/src/graph/rings.cc
    functionUses: 0
    functionsReached:
    - WARN
    - dumpLine
    - snprintf
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclBuildRings(int nrings, int* rings, int rank, int nranks,
      int* prev, int* next)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - bw
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 37
    functionName: INTEL_P2P_OVERHEAD
    functionSourceFile: /src/nccl/src/graph/topo.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INTEL_P2P_OVERHEAD(bw)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - id
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 124
    functionName: NCCL_TOPO_ID_SYSTEM_ID
    functionSourceFile: /src/nccl/src/graph/topo.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NCCL_TOPO_ID_SYSTEM_ID(id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - id
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 125
    functionName: NCCL_TOPO_ID_LOCAL_ID
    functionSourceFile: /src/nccl/src/graph/topo.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NCCL_TOPO_ID_LOCAL_ID(id)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - numaid
    - ','
    - busid
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 126
    functionName: NCCL_TOPO_LOCAL_NIC_ID
    functionSourceFile: /src/nccl/src/graph/topo.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NCCL_TOPO_LOCAL_NIC_ID(numaid, busid)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - systemid
    - ','
    - localid
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 127
    functionName: NCCL_TOPO_ID
    functionSourceFile: /src/nccl/src/graph/topo.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NCCL_TOPO_ID(systemid, localid)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - system
    - type
    - id
    - index
    argTypes:
    - struct ncclTopoSystem*
    - int
    - int64_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 217
    functionName: ncclTopoIdToIndex
    functionSourceFile: /src/nccl/src/graph/topo.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoIdToIndex(struct ncclTopoSystem* system, int type,
      int64_t id, int* index)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/graph/topo.h:227,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - system
    - rank
    - index
    - showWarn
    argTypes:
    - struct ncclTopoSystem*
    - int
    - int*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 229
    functionName: ncclTopoRankToIndex
    functionSourceFile: /src/nccl/src/graph/topo.h
    functionUses: 0
    functionsReached:
    - WARN
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoRankToIndex(struct ncclTopoSystem* system, int
      rank, int* index, bool showWarn)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NCCL_TOPO_ID_SYSTEM_ID
      Src: /src/nccl/src/graph/topo.h:234,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - system
    - dev
    - rank
    argTypes:
    - struct ncclTopoSystem*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 241
    functionName: ncclTopoDevToRank
    functionSourceFile: /src/nccl/src/graph/topo.h
    functionUses: 0
    functionsReached:
    - NCCL_TOPO_ID_SYSTEM_ID
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoDevToRank(struct ncclTopoSystem* system, int dev,
      int* rank)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/graph/topo.h:251,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - system
    - id
    - netDev
    argTypes:
    - struct ncclTopoSystem*
    - int64_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 253
    functionName: ncclTopoIdToNetDev
    functionSourceFile: /src/nccl/src/graph/topo.h
    functionUses: 0
    functionsReached:
    - WARN
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoIdToNetDev(struct ncclTopoSystem* system, int64_t
      id, int* netDev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cudaCompCap
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 265
    functionName: ncclTopoNVLinkBw
    functionSourceFile: /src/nccl/src/graph/topo.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: float
    signature: float ncclTopoNVLinkBw(int cudaCompCap)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 270
    functionName: isPow2
    functionSourceFile: /src/nccl/src/graph/topo.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool isPow2(int val)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - val
    - pow2
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 275
    functionName: mirrorBits
    functionSourceFile: /src/nccl/src/graph/topo.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int mirrorBits(int val, int pow2)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: INFO
      Src: /src/nccl/src/graph/tuning.cc:19,1
    - Dst: INFO
      Src: /src/nccl/src/graph/tuning.cc:22,1
    - Dst: INFO
      Src: /src/nccl/src/graph/tuning.cc:25,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 5
    argNames:
    - name
    - env
    - min
    - max
    - def
    argTypes:
    - char*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 32
    functionName: getNthreads
    functionSourceFile: /src/nccl/src/graph/tuning.cc
    functionUses: 0
    functionsReached:
    - INFO
    linkageType: ''
    returnType: int
    signature: int getNthreads(const char* name, int env, int min, int max, int def)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/nccl/src/graph/tuning.cc:55,1
    - Dst: strtok_r
      Src: /src/nccl/src/graph/tuning.cc:57,1
    - Dst: strdup
      Src: /src/nccl/src/graph/tuning.cc:61,1
    - Dst: strtok_r
      Src: /src/nccl/src/graph/tuning.cc:63,1
    - Dst: strtok_r
      Src: /src/nccl/src/graph/tuning.cc:64,1
    - Dst: WARN
      Src: /src/nccl/src/graph/tuning.cc:70,1
    - Dst: strcasecmp
      Src: /src/nccl/src/graph/tuning.cc:87,1
    - Dst: strdup
      Src: /src/nccl/src/graph/tuning.cc:91,1
    - Dst: strtok_r
      Src: /src/nccl/src/graph/tuning.cc:93,1
    - Dst: strcasecmp
      Src: /src/nccl/src/graph/tuning.cc:97,1
    - Dst: WARN
      Src: /src/nccl/src/graph/tuning.cc:103,1
    - Dst: strtok_r
      Src: /src/nccl/src/graph/tuning.cc:107,1
    - Dst: free
      Src: /src/nccl/src/graph/tuning.cc:109,1
    - Dst: WARN
      Src: /src/nccl/src/graph/tuning.cc:113,1
    - Dst: free
      Src: /src/nccl/src/graph/tuning.cc:117,1
    - Dst: strtok_r
      Src: /src/nccl/src/graph/tuning.cc:120,1
    - Dst: free
      Src: /src/nccl/src/graph/tuning.cc:124,1
    - Dst: free
      Src: /src/nccl/src/graph/tuning.cc:125,1
    - Dst: free
      Src: /src/nccl/src/graph/tuning.cc:126,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 66
    argCount: 6
    argNames:
    - str
    - prefixElems
    - nprefixes
    - elems
    - nelems
    - list
    argTypes:
    - char*
    - char*[]
    - int
    - char*[]
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 130
    functionName: parseList
    functionSourceFile: /src/nccl/src/graph/tuning.cc
    functionUses: 0
    functionsReached:
    - WARN
    - strdup
    - free
    - strtok_r
    - strcasecmp
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t parseList(const char* str, const char* prefixElems[],
      int nprefixes, const char* elems[], int nelems, int* list)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ncclParamPatEnable
      Src: /src/nccl/src/graph/tuning.cc:193,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 199
    functionName: ncclPatEnable
    functionSourceFile: /src/nccl/src/graph/tuning.cc
    functionUses: 0
    functionsReached:
    - ncclParamPatEnable
    linkageType: ''
    returnType: int
    signature: int ncclPatEnable(struct ncclComm* comm)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ncclParamNetOverhead
      Src: /src/nccl/src/graph/tuning.cc:205,1
    - Dst: ncclParamNetOverhead
      Src: /src/nccl/src/graph/tuning.cc:205,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 209
    functionName: getNetOverhead
    functionSourceFile: /src/nccl/src/graph/tuning.cc
    functionUses: 0
    functionsReached:
    - ncclParamNetOverhead
    linkageType: ''
    returnType: float
    signature: float getNetOverhead(struct ncclComm* comm)
  - BBCount: 66
    BranchProfiles: []
    Callsites:
    - Dst: getNthreads
      Src: /src/nccl/src/graph/tuning.cc:216,1
    - Dst: ncclParamNthreads
      Src: /src/nccl/src/graph/tuning.cc:216,1
    - Dst: getNthreads
      Src: /src/nccl/src/graph/tuning.cc:218,1
    - Dst: ncclParamNthreads
      Src: /src/nccl/src/graph/tuning.cc:218,1
    - Dst: getNthreads
      Src: /src/nccl/src/graph/tuning.cc:224,1
    - Dst: ncclParamNthreads
      Src: /src/nccl/src/graph/tuning.cc:224,1
    - Dst: getNthreads
      Src: /src/nccl/src/graph/tuning.cc:226,1
    - Dst: ncclParamLl128Nthreads
      Src: /src/nccl/src/graph/tuning.cc:226,1
    - Dst: ncclPatEnable
      Src: /src/nccl/src/graph/tuning.cc:264,1
    - Dst: min
      Src: /src/nccl/src/graph/tuning.cc:269,1
    - Dst: min
      Src: /src/nccl/src/graph/tuning.cc:272,1
    - Dst: min
      Src: /src/nccl/src/graph/tuning.cc:275,1
    - Dst: min
      Src: /src/nccl/src/graph/tuning.cc:279,1
    - Dst: min
      Src: /src/nccl/src/graph/tuning.cc:280,1
    - Dst: min
      Src: /src/nccl/src/graph/tuning.cc:281,1
    - Dst: min
      Src: /src/nccl/src/graph/tuning.cc:282,1
    - Dst: min
      Src: /src/nccl/src/graph/tuning.cc:283,1
    - Dst: min
      Src: /src/nccl/src/graph/tuning.cc:290,1
    - Dst: getNetOverhead
      Src: /src/nccl/src/graph/tuning.cc:350,1
    - Dst: std::max
      Src: /src/nccl/src/graph/tuning.cc:353,1
    - Dst: log2i
      Src: /src/nccl/src/graph/tuning.cc:360,1
    - Dst: min
      Src: /src/nccl/src/graph/tuning.cc:364,1
    - Dst: log2i
      Src: /src/nccl/src/graph/tuning.cc:371,1
    - Dst: log2i
      Src: /src/nccl/src/graph/tuning.cc:375,1
    - Dst: ncclGetEnv
      Src: /src/nccl/src/graph/tuning.cc:396,1
    - Dst: INFO
      Src: /src/nccl/src/graph/tuning.cc:398,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/tuning.cc:399,1
    - Dst: parseList
      Src: /src/nccl/src/graph/tuning.cc:399,1
    - Dst: ncclGetEnv
      Src: /src/nccl/src/graph/tuning.cc:401,1
    - Dst: INFO
      Src: /src/nccl/src/graph/tuning.cc:403,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/tuning.cc:404,1
    - Dst: parseList
      Src: /src/nccl/src/graph/tuning.cc:404,1
    - Dst: snprintf
      Src: /src/nccl/src/graph/tuning.cc:411,1
    - Dst: std::max
      Src: /src/nccl/src/graph/tuning.cc:411,1
    - Dst: snprintf
      Src: /src/nccl/src/graph/tuning.cc:413,1
    - Dst: std::max
      Src: /src/nccl/src/graph/tuning.cc:413,1
    - Dst: snprintf
      Src: /src/nccl/src/graph/tuning.cc:415,1
    - Dst: std::max
      Src: /src/nccl/src/graph/tuning.cc:415,1
    - Dst: snprintf
      Src: /src/nccl/src/graph/tuning.cc:417,1
    - Dst: std::max
      Src: /src/nccl/src/graph/tuning.cc:417,1
    - Dst: snprintf
      Src: /src/nccl/src/graph/tuning.cc:419,1
    - Dst: std::max
      Src: /src/nccl/src/graph/tuning.cc:419,1
    - Dst: snprintf
      Src: /src/nccl/src/graph/tuning.cc:422,1
    - Dst: std::max
      Src: /src/nccl/src/graph/tuning.cc:422,1
    - Dst: snprintf
      Src: /src/nccl/src/graph/tuning.cc:424,1
    - Dst: std::max
      Src: /src/nccl/src/graph/tuning.cc:424,1
    - Dst: snprintf
      Src: /src/nccl/src/graph/tuning.cc:426,1
    - Dst: std::max
      Src: /src/nccl/src/graph/tuning.cc:426,1
    - Dst: snprintf
      Src: /src/nccl/src/graph/tuning.cc:428,1
    - Dst: std::max
      Src: /src/nccl/src/graph/tuning.cc:428,1
    - Dst: snprintf
      Src: /src/nccl/src/graph/tuning.cc:430,1
    - Dst: std::max
      Src: /src/nccl/src/graph/tuning.cc:430,1
    - Dst: INFO
      Src: /src/nccl/src/graph/tuning.cc:433,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/tuning.cc:437,1
    - Dst: ncclTopoGetNvsCount
      Src: /src/nccl/src/graph/tuning.cc:437,1
    - Dst: ncclParamLl128C2c
      Src: /src/nccl/src/graph/tuning.cc:459,1
    - Dst: ncclParamLl128C2c
      Src: /src/nccl/src/graph/tuning.cc:465,1
    - Dst: INFO
      Src: /src/nccl/src/graph/tuning.cc:466,1
    - Dst: DIVUP
      Src: /src/nccl/src/graph/tuning.cc:480,1
    - Dst: snprintf
      Src: /src/nccl/src/graph/tuning.cc:481,1
    - Dst: snprintf
      Src: /src/nccl/src/graph/tuning.cc:485,1
    - Dst: std::max
      Src: /src/nccl/src/graph/tuning.cc:485,1
    - Dst: INFO
      Src: /src/nccl/src/graph/tuning.cc:487,1
    - Dst: snprintf
      Src: /src/nccl/src/graph/tuning.cc:488,1
    - Dst: snprintf
      Src: /src/nccl/src/graph/tuning.cc:491,1
    - Dst: std::max
      Src: /src/nccl/src/graph/tuning.cc:491,1
    - Dst: INFO
      Src: /src/nccl/src/graph/tuning.cc:494,1
    - Dst: snprintf
      Src: /src/nccl/src/graph/tuning.cc:495,1
    - Dst: snprintf
      Src: /src/nccl/src/graph/tuning.cc:500,1
    - Dst: std::max
      Src: /src/nccl/src/graph/tuning.cc:500,1
    - Dst: INFO
      Src: /src/nccl/src/graph/tuning.cc:503,1
    - Dst: snprintf
      Src: /src/nccl/src/graph/tuning.cc:505,1
    - Dst: snprintf
      Src: /src/nccl/src/graph/tuning.cc:510,1
    - Dst: std::max
      Src: /src/nccl/src/graph/tuning.cc:510,1
    - Dst: INFO
      Src: /src/nccl/src/graph/tuning.cc:513,1
    - Dst: ncclGetEnv
      Src: /src/nccl/src/graph/tuning.cc:529,1
    - Dst: INFO
      Src: /src/nccl/src/graph/tuning.cc:531,1
    - Dst: sscanf
      Src: /src/nccl/src/graph/tuning.cc:533,1
    - Dst: INFO
      Src: /src/nccl/src/graph/tuning.cc:541,1
    CyclomaticComplexity: 165
    EdgeCount: 165
    ICount: 272
    argCount: 4
    argNames:
    - comm
    - minCompCap
    - maxCompCap
    - graphs
    argTypes:
    - struct ncclComm*
    - int
    - int
    - struct ncclTopoGraph**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 213
    functionDepth: 2
    functionLinenumber: 213
    functionLinenumberEnd: 551
    functionName: ncclTopoTuneModel
    functionSourceFile: /src/nccl/src/graph/tuning.cc
    functionUses: 1
    functionsReached:
    - INFO
    - ncclParamNthreads
    - min
    - getNthreads
    - ncclGetEnv
    - log2i
    - std::max
    - DIVUP
    - ncclParamLl128C2c
    - ncclPatEnable
    - ncclParamLl128Nthreads
    - parseList
    - ncclTopoGetNvsCount
    - getNetOverhead
    - sscanf
    - NCCLCHECK
    - snprintf
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoTuneModel(struct ncclComm* comm, int minCompCap,
      int maxCompCap, struct ncclTopoGraph** graphs)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: log2i
      Src: /src/nccl/src/graph/tuning.cc:568,1
    - Dst: DIVUP
      Src: /src/nccl/src/graph/tuning.cc:575,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 12
    argCount: 7
    argNames:
    - comm
    - coll
    - algorithm
    - protocol
    - nBytes
    - numPipeOps
    - time
    argTypes:
    - struct ncclComm*
    - int
    - int
    - int
    - size_t
    - int
    - float*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 561
    functionDepth: 2
    functionLinenumber: 561
    functionLinenumberEnd: 578
    functionName: ncclTopoGetAlgoTime
    functionSourceFile: /src/nccl/src/graph/tuning.cc
    functionUses: 1
    functionsReached:
    - log2i
    - DIVUP
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoGetAlgoTime(struct ncclComm* comm, int coll, int
      algorithm, int protocol, size_t nBytes, int numPipeOps, float* time)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/graph/paths.cc:30,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 5
    argNames:
    - system
    - node
    - t
    - id
    - path
    argTypes:
    - struct ncclTopoSystem*
    - struct ncclTopoNode*
    - int
    - int64_t
    - struct ncclTopoLinkList**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 23
    functionDepth: 1
    functionLinenumber: 23
    functionLinenumberEnd: 32
    functionName: getPath
    functionSourceFile: /src/nccl/src/graph/paths.cc
    functionUses: 0
    functionsReached:
    - WARN
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t getPath(struct ncclTopoSystem* system, struct ncclTopoNode*
      node, int t, int64_t id, struct ncclTopoLinkList** path)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:38,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/graph/paths.cc:38,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:47,1
    - Dst: getPath
      Src: /src/nccl/src/graph/paths.cc:47,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:57,1
    - Dst: getPath
      Src: /src/nccl/src/graph/paths.cc:57,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:62,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/graph/paths.cc:62,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:66,1
    - Dst: getPath
      Src: /src/nccl/src/graph/paths.cc:66,1
    - Dst: min
      Src: /src/nccl/src/graph/paths.cc:67,1
    - Dst: ncclParamNvbDisable
      Src: /src/nccl/src/graph/paths.cc:71,1
    - Dst: WARN
      Src: /src/nccl/src/graph/paths.cc:82,1
    - Dst: std::max
      Src: /src/nccl/src/graph/paths.cc:101,1
    - Dst: memcpy
      Src: /src/nccl/src/graph/paths.cc:110,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 58
    argCount: 2
    argNames:
    - baseNode
    - system
    argTypes:
    - struct ncclTopoNode*
    - struct ncclTopoSystem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 36
    functionDepth: 2
    functionLinenumber: 36
    functionLinenumberEnd: 113
    functionName: ncclTopoSetPaths
    functionSourceFile: /src/nccl/src/graph/paths.cc
    functionUses: 0
    functionsReached:
    - WARN
    - min
    - memcpy
    - getPath
    - std::max
    - ncclParamNvbDisable
    - ncclCalloc
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoSetPaths(struct ncclTopoNode* baseNode, struct
      ncclTopoSystem* system)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: INFO
      Src: /src/nccl/src/graph/paths.cc:119,1
    - Dst: NCCL_TOPO_ID_SYSTEM_ID
      Src: /src/nccl/src/graph/paths.cc:119,1
    - Dst: NCCL_TOPO_ID_LOCAL_ID
      Src: /src/nccl/src/graph/paths.cc:119,1
    - Dst: snprintf
      Src: /src/nccl/src/graph/paths.cc:121,1
    - Dst: NCCL_TOPO_ID_SYSTEM_ID
      Src: /src/nccl/src/graph/paths.cc:121,1
    - Dst: NCCL_TOPO_ID_LOCAL_ID
      Src: /src/nccl/src/graph/paths.cc:121,1
    - Dst: strlen
      Src: /src/nccl/src/graph/paths.cc:122,1
    - Dst: snprintf
      Src: /src/nccl/src/graph/paths.cc:133,1
    - Dst: NCCL_TOPO_ID_SYSTEM_ID
      Src: /src/nccl/src/graph/paths.cc:133,1
    - Dst: NCCL_TOPO_ID_LOCAL_ID
      Src: /src/nccl/src/graph/paths.cc:133,1
    - Dst: strlen
      Src: /src/nccl/src/graph/paths.cc:134,1
    - Dst: INFO
      Src: /src/nccl/src/graph/paths.cc:136,1
    - Dst: snprintf
      Src: /src/nccl/src/graph/paths.cc:138,1
    - Dst: NCCL_TOPO_ID_SYSTEM_ID
      Src: /src/nccl/src/graph/paths.cc:138,1
    - Dst: NCCL_TOPO_ID_LOCAL_ID
      Src: /src/nccl/src/graph/paths.cc:138,1
    - Dst: strlen
      Src: /src/nccl/src/graph/paths.cc:139,1
    - Dst: INFO
      Src: /src/nccl/src/graph/paths.cc:144,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - system
    - node
    argTypes:
    - struct ncclTopoSystem*
    - struct ncclTopoNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 146
    functionName: printNodePaths
    functionSourceFile: /src/nccl/src/graph/paths.cc
    functionUses: 0
    functionsReached:
    - INFO
    - strlen
    - NCCL_TOPO_ID_SYSTEM_ID
    - NCCL_TOPO_ID_LOCAL_ID
    - snprintf
    linkageType: ''
    returnType: void
    signature: void printNodePaths(struct ncclTopoSystem* system, struct ncclTopoNode*
      node)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printNodePaths
      Src: /src/nccl/src/graph/paths.cc:150,1
    - Dst: printNodePaths
      Src: /src/nccl/src/graph/paths.cc:153,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - system
    argTypes:
    - struct ncclTopoSystem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 148
    functionDepth: 2
    functionLinenumber: 148
    functionLinenumberEnd: 156
    functionName: ncclTopoPrintPaths
    functionSourceFile: /src/nccl/src/graph/paths.cc
    functionUses: 0
    functionsReached:
    - printNodePaths
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoPrintPaths(struct ncclTopoSystem* system)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/graph/paths.cc:171,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 3
    argNames:
    - system
    - gpu
    - retCpu
    argTypes:
    - struct ncclTopoSystem*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 176
    functionName: ncclGetLocalCpu
    functionSourceFile: /src/nccl/src/graph/paths.cc
    functionUses: 0
    functionsReached:
    - WARN
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGetLocalCpu(struct ncclTopoSystem* system, int gpu,
      int* retCpu)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::max
      Src: /src/nccl/src/graph/paths.cc:179,1
    - Dst: min
      Src: /src/nccl/src/graph/paths.cc:180,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - type0
    - type1
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 183
    functionName: mergePathType
    functionSourceFile: /src/nccl/src/graph/paths.cc
    functionUses: 0
    functionsReached:
    - min
    - std::max
    linkageType: ''
    returnType: int
    signature: int mergePathType(int type0, int type1)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mergePathType
      Src: /src/nccl/src/graph/paths.cc:197,1
    - Dst: min
      Src: /src/nccl/src/graph/paths.cc:199,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 7
    argNames:
    - system
    - tx
    - ix
    - t1
    - i1
    - t2
    - i2
    argTypes:
    - struct ncclTopoSystem*
    - int
    - int
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 185
    functionDepth: 2
    functionLinenumber: 185
    functionLinenumberEnd: 201
    functionName: addInterStep
    functionSourceFile: /src/nccl/src/graph/paths.cc
    functionUses: 0
    functionsReached:
    - mergePathType
    - min
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t addInterStep(struct ncclTopoSystem* system, int tx, int
      ix, int t1, int i1, int t2, int i2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/nccl/src/graph/paths.cc:209,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - system
    argTypes:
    - struct ncclTopoSystem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 214
    functionName: ncclTopoRemovePaths
    functionSourceFile: /src/nccl/src/graph/paths.cc
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void ncclTopoRemovePaths(struct ncclTopoSystem* system)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: ncclGetEnv
      Src: /src/nccl/src/graph/paths.cc:221,1
    - Dst: strtol
      Src: /src/nccl/src/graph/paths.cc:223,1
    - Dst: INFO
      Src: /src/nccl/src/graph/paths.cc:225,1
    - Dst: ncclGetEnv
      Src: /src/nccl/src/graph/paths.cc:229,1
    - Dst: strcmp
      Src: /src/nccl/src/graph/paths.cc:232,1
    - Dst: strtol
      Src: /src/nccl/src/graph/paths.cc:242,1
    - Dst: INFO
      Src: /src/nccl/src/graph/paths.cc:247,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 30
    argCount: 3
    argNames:
    - level
    - disableEnv
    - levelEnv
    argTypes:
    - int*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 217
    functionDepth: 2
    functionLinenumber: 217
    functionLinenumberEnd: 253
    functionName: ncclGetLevel
    functionSourceFile: /src/nccl/src/graph/paths.cc
    functionUses: 0
    functionsReached:
    - ncclGetEnv
    - INFO
    - strcmp
    - strtol
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGetLevel(int* level, const char* disableEnv, const
      char* levelEnv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:263,1
    - Dst: ncclGetLevel
      Src: /src/nccl/src/graph/paths.cc:263,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - level
    argTypes:
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 261
    functionDepth: 3
    functionLinenumber: 261
    functionLinenumberEnd: 267
    functionName: ncclGetUserP2pLevel
    functionSourceFile: /src/nccl/src/graph/paths.cc
    functionUses: 1
    functionsReached:
    - ncclGetLevel
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGetUserP2pLevel(int* level)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:284,1
    - Dst: ncclTopoCheckMNNVL
      Src: /src/nccl/src/graph/paths.cc:284,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:296,1
    - Dst: ncclTopoRankToIndex
      Src: /src/nccl/src/graph/paths.cc:296,1
    - Dst: ncclTopoRankToIndex
      Src: /src/nccl/src/graph/paths.cc:298,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:318,1
    - Dst: ncclTopoCpuType
      Src: /src/nccl/src/graph/paths.cc:318,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:323,1
    - Dst: ncclGetUserP2pLevel
      Src: /src/nccl/src/graph/paths.cc:323,1
    - Dst: ncclParamIgnoreDisabledP2p
      Src: /src/nccl/src/graph/paths.cc:332,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:335,1
    - Dst: ncclNvmlEnsureInitialized
      Src: /src/nccl/src/graph/paths.cc:335,1
    - Dst: ncclParamIgnoreDisabledP2p
      Src: /src/nccl/src/graph/paths.cc:348,1
    - Dst: WARN
      Src: /src/nccl/src/graph/paths.cc:350,1
    - Dst: INFO
      Src: /src/nccl/src/graph/paths.cc:353,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 70
    argCount: 7
    argNames:
    - comm
    - system
    - rank1
    - rank2
    - p2p
    - read
    - intermediateRank
    argTypes:
    - struct ncclComm*
    - struct ncclTopoSystem*
    - int
    - int
    - int*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 269
    functionDepth: 4
    functionLinenumber: 269
    functionLinenumberEnd: 369
    functionName: ncclTopoCheckP2p
    functionSourceFile: /src/nccl/src/graph/paths.cc
    functionUses: 3
    functionsReached:
    - WARN
    - INFO
    - ncclTopoRankToIndex
    - ncclTopoCheckMNNVL
    - ncclNvmlEnsureInitialized
    - ncclGetUserP2pLevel
    - ncclParamIgnoreDisabledP2p
    - ncclTopoCpuType
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclTopoCheckP2p(struct ncclComm* comm, struct ncclTopoSystem*
      system, int rank1, int rank2,\n                              int* p2p, int *read,
      int* intermediateRank)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/nccl/src/graph/paths.cc:379,1
    - Dst: TRACE
      Src: /src/nccl/src/graph/paths.cc:381,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - system
    - info1
    - info2
    - ret
    argTypes:
    - struct ncclTopoSystem*
    - struct ncclPeerInfo*
    - struct ncclPeerInfo*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 372
    functionDepth: 1
    functionLinenumber: 372
    functionLinenumberEnd: 386
    functionName: ncclTopoCheckMNNVL
    functionSourceFile: /src/nccl/src/graph/paths.cc
    functionUses: 1
    functionsReached:
    - TRACE
    - memcmp
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoCheckMNNVL(struct ncclTopoSystem* system, struct
      ncclPeerInfo* info1, struct ncclPeerInfo* info2, int* ret)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:400,1
    - Dst: ncclTopoIdToIndex
      Src: /src/nccl/src/graph/paths.cc:400,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:402,1
    - Dst: ncclTopoRankToIndex
      Src: /src/nccl/src/graph/paths.cc:402,1
    - Dst: ncclParamNetGdrRead
      Src: /src/nccl/src/graph/paths.cc:410,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:431,1
    - Dst: ncclGetLevel
      Src: /src/nccl/src/graph/paths.cc:431,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:437,1
    - Dst: ncclTopoGetIntermediateRank
      Src: /src/nccl/src/graph/paths.cc:437,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:438,1
    - Dst: ncclTopoRankToIndex
      Src: /src/nccl/src/graph/paths.cc:438,1
    - Dst: ncclParamNetGdrC2c
      Src: /src/nccl/src/graph/paths.cc:444,1
    - Dst: INFO
      Src: /src/nccl/src/graph/paths.cc:445,1
    - Dst: INFO
      Src: /src/nccl/src/graph/paths.cc:450,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:456,1
    - Dst: ncclGetLocalCpu
      Src: /src/nccl/src/graph/paths.cc:456,1
    - Dst: INFO
      Src: /src/nccl/src/graph/paths.cc:460,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 49
    argCount: 5
    argNames:
    - system
    - rank
    - netId
    - read
    - gdrMode
    argTypes:
    - struct ncclTopoSystem*
    - int
    - int64_t
    - int
    - enum ncclTopoGdrMode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 395
    functionDepth: 3
    functionLinenumber: 395
    functionLinenumberEnd: 462
    functionName: ncclTopoCheckGdr
    functionSourceFile: /src/nccl/src/graph/paths.cc
    functionUses: 4
    functionsReached:
    - INFO
    - ncclTopoRankToIndex
    - ncclParamNetGdrC2c
    - ncclParamNetGdrRead
    - ncclGetLevel
    - ncclTopoGetIntermediateRank
    - ncclTopoIdToIndex
    - ncclGetLocalCpu
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoCheckGdr(struct ncclTopoSystem* system, int rank,
      int64_t netId, int read, enum ncclTopoGdrMode* gdrMode)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:470,1
    - Dst: ncclTopoCheckGdr
      Src: /src/nccl/src/graph/paths.cc:470,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:475,1
    - Dst: ncclTopoCheckGdr
      Src: /src/nccl/src/graph/paths.cc:475,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 3
    argNames:
    - system
    - rank
    - avail
    argTypes:
    - struct ncclTopoSystem*
    - int
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 464
    functionDepth: 4
    functionLinenumber: 464
    functionLinenumberEnd: 482
    functionName: ncclTopoIsGdrAvail
    functionSourceFile: /src/nccl/src/graph/paths.cc
    functionUses: 0
    functionsReached:
    - NCCLCHECK
    - ncclTopoCheckGdr
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoIsGdrAvail(struct ncclTopoSystem* system, int
      rank, bool *avail)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:491,1
    - Dst: struct ncclComm*::ncclNet::getProperties
      Src: /src/nccl/src/graph/paths.cc:491,1
    - Dst: ncclParamNetForceFlush
      Src: /src/nccl/src/graph/paths.cc:492,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:495,1
    - Dst: ncclTopoRankToIndex
      Src: /src/nccl/src/graph/paths.cc:495,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:502,1
    - Dst: ncclGetLocalCpu
      Src: /src/nccl/src/graph/paths.cc:502,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:503,1
    - Dst: ncclTopoIdToIndex
      Src: /src/nccl/src/graph/paths.cc:503,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 5
    argNames:
    - comm
    - netId
    - netDev
    - rank
    - flush
    argTypes:
    - struct ncclComm*
    - int64_t
    - int
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 488
    functionDepth: 2
    functionLinenumber: 488
    functionLinenumberEnd: 508
    functionName: ncclTopoNeedFlush
    functionSourceFile: /src/nccl/src/graph/paths.cc
    functionUses: 2
    functionsReached:
    - ncclTopoRankToIndex
    - struct ncclComm*::ncclNet::getProperties
    - ncclTopoIdToIndex
    - ncclParamNetForceFlush
    - ncclGetLocalCpu
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoNeedFlush(struct ncclComm* comm, int64_t netId,
      int netDev, int rank, int* flush)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ncclParamNetDisableIntra
      Src: /src/nccl/src/graph/paths.cc:514,1
    - Dst: ncclTopoRankToIndex
      Src: /src/nccl/src/graph/paths.cc:521,1
    - Dst: ncclTopoRankToIndex
      Src: /src/nccl/src/graph/paths.cc:522,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 20
    argCount: 4
    argNames:
    - system
    - rank1
    - rank2
    - net
    argTypes:
    - struct ncclTopoSystem*
    - int
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 513
    functionDepth: 2
    functionLinenumber: 513
    functionLinenumberEnd: 542
    functionName: ncclTopoCheckNet
    functionSourceFile: /src/nccl/src/graph/paths.cc
    functionUses: 3
    functionsReached:
    - ncclParamNetDisableIntra
    - ncclTopoRankToIndex
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoCheckNet(struct ncclTopoSystem* system, int rank1,
      int rank2, int* net)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:547,1
    - Dst: ncclTopoIdToIndex
      Src: /src/nccl/src/graph/paths.cc:547,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:548,1
    - Dst: ncclTopoRankToIndex
      Src: /src/nccl/src/graph/paths.cc:548,1
    - Dst: WARN
      Src: /src/nccl/src/graph/paths.cc:559,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 4
    argNames:
    - system
    - rank
    - netId
    - intermediateRank
    argTypes:
    - struct ncclTopoSystem*
    - int
    - int64_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 544
    functionDepth: 2
    functionLinenumber: 544
    functionLinenumberEnd: 567
    functionName: ncclTopoGetIntermediateRank
    functionSourceFile: /src/nccl/src/graph/paths.cc
    functionUses: 1
    functionsReached:
    - WARN
    - ncclTopoIdToIndex
    - ncclTopoRankToIndex
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoGetIntermediateRank(struct ncclTopoSystem* system,
      int rank, int64_t netId, int* intermediateRank)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INFO
      Src: /src/nccl/src/graph/paths.cc:577,1
    - Dst: ncclParamPxnDisable
      Src: /src/nccl/src/graph/paths.cc:580,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 573
    functionDepth: 0
    functionLinenumber: 573
    functionLinenumberEnd: 584
    functionName: ncclPxnDisable
    functionSourceFile: /src/nccl/src/graph/paths.cc
    functionUses: 2
    functionsReached:
    - INFO
    - ncclParamPxnDisable
    linkageType: ''
    returnType: int
    signature: int ncclPxnDisable(struct ncclComm* comm)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:597,1
    - Dst: ncclTopoGetNetDev
      Src: /src/nccl/src/graph/paths.cc:597,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:600,1
    - Dst: ncclTopoCheckGdr
      Src: /src/nccl/src/graph/paths.cc:600,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:607,1
    - Dst: ncclRealloc
      Src: /src/nccl/src/graph/paths.cc:607,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 3
    argNames:
    - comm
    - intermediateRanks
    - nranks
    argTypes:
    - struct ncclComm*
    - int**
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 614
      start: 586
    functionDepth: 4
    functionLinenumber: 586
    functionLinenumberEnd: 614
    functionName: ncclTopoGetPxnRanks
    functionSourceFile: /src/nccl/src/graph/paths.cc
    functionUses: 1
    functionsReached:
    - ncclRealloc
    - ncclTopoCheckGdr
    - NCCLCHECK
    - ncclTopoGetNetDev
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoGetPxnRanks(struct ncclComm* comm, int** intermediateRanks,
      int* nranks)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: ncclTopoRemovePaths
      Src: /src/nccl/src/graph/paths.cc:622,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:626,1
    - Dst: ncclTopoSetPaths
      Src: /src/nccl/src/graph/paths.cc:626,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:631,1
    - Dst: ncclTopoSetPaths
      Src: /src/nccl/src/graph/paths.cc:631,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:636,1
    - Dst: ncclTopoSetPaths
      Src: /src/nccl/src/graph/paths.cc:636,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:641,1
    - Dst: ncclTopoSetPaths
      Src: /src/nccl/src/graph/paths.cc:641,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:648,1
    - Dst: ncclTopoCheckP2p
      Src: /src/nccl/src/graph/paths.cc:648,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:653,1
    - Dst: ncclGetLocalCpu
      Src: /src/nccl/src/graph/paths.cc:653,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:654,1
    - Dst: addInterStep
      Src: /src/nccl/src/graph/paths.cc:654,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:665,1
    - Dst: canConnect
      Src: /src/nccl/src/graph/paths.cc:665,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:668,1
    - Dst: canConnect
      Src: /src/nccl/src/graph/paths.cc:668,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:682,1
    - Dst: ncclGetLocalCpu
      Src: /src/nccl/src/graph/paths.cc:682,1
    - Dst: mergePathType
      Src: /src/nccl/src/graph/paths.cc:684,1
    - Dst: min
      Src: /src/nccl/src/graph/paths.cc:685,1
    - Dst: min
      Src: /src/nccl/src/graph/paths.cc:686,1
    - Dst: ncclPxnDisable
      Src: /src/nccl/src/graph/paths.cc:698,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:700,1
    - Dst: ncclTopoGetLocalGpu
      Src: /src/nccl/src/graph/paths.cc:700,1
    - Dst: ncclParamPxnC2c
      Src: /src/nccl/src/graph/paths.cc:705,1
    - Dst: NCCL_TOPO_ID_SYSTEM_ID
      Src: /src/nccl/src/graph/paths.cc:711,1
    - Dst: NCCL_TOPO_ID_SYSTEM_ID
      Src: /src/nccl/src/graph/paths.cc:711,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:717,1
    - Dst: addInterStep
      Src: /src/nccl/src/graph/paths.cc:717,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:723,1
    - Dst: ncclTopoCheckGdr
      Src: /src/nccl/src/graph/paths.cc:723,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:727,1
    - Dst: ncclGetLocalCpu
      Src: /src/nccl/src/graph/paths.cc:727,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:728,1
    - Dst: addInterStep
      Src: /src/nccl/src/graph/paths.cc:728,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:729,1
    - Dst: addInterStep
      Src: /src/nccl/src/graph/paths.cc:729,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:738,1
    - Dst: ncclTopoGetLocalGpu
      Src: /src/nccl/src/graph/paths.cc:738,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 70
    argCount: 2
    argNames:
    - system
    - comm
    argTypes:
    - struct ncclTopoSystem*
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 741
      start: 618
    functionDepth: 5
    functionLinenumber: 618
    functionLinenumberEnd: 741
    functionName: ncclTopoComputePaths
    functionSourceFile: /src/nccl/src/graph/paths.cc
    functionUses: 1
    functionsReached:
    - canConnect
    - min
    - ncclParamPxnC2c
    - NCCL_TOPO_ID_SYSTEM_ID
    - ncclTopoRemovePaths
    - ncclTopoCheckGdr
    - ncclTopoCheckP2p
    - mergePathType
    - ncclGetLocalCpu
    - addInterStep
    - ncclTopoSetPaths
    - ncclTopoGetLocalGpu
    - NCCLCHECK
    - ncclPxnDisable
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoComputePaths(struct ncclTopoSystem* system, struct
      ncclComm* comm)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:749,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/graph/paths.cc:749,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/paths.cc:750,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/graph/paths.cc:750,1
    - Dst: min
      Src: /src/nccl/src/graph/paths.cc:757,1
    - Dst: WARN
      Src: /src/nccl/src/graph/paths.cc:772,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/paths.cc:776,1
    - Dst: ncclTopoRemoveNode
      Src: /src/nccl/src/graph/paths.cc:776,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/paths.cc:781,1
    - Dst: ncclTopoRemoveNode
      Src: /src/nccl/src/graph/paths.cc:781,1
    - Dst: free
      Src: /src/nccl/src/graph/paths.cc:784,1
    - Dst: free
      Src: /src/nccl/src/graph/paths.cc:785,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 45
    argCount: 2
    argNames:
    - system
    - comm
    argTypes:
    - struct ncclTopoSystem*
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 789
      start: 743
    functionDepth: 1
    functionLinenumber: 743
    functionLinenumberEnd: 789
    functionName: ncclTopoTrimSystem
    functionSourceFile: /src/nccl/src/graph/paths.cc
    functionUses: 1
    functionsReached:
    - WARN
    - min
    - NCCLCHECKGOTO
    - free
    - ncclTopoRemoveNode
    - ncclCalloc
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoTrimSystem(struct ncclTopoSystem* system, struct
      ncclComm* comm)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclTopoRemovePaths
      Src: /src/nccl/src/graph/paths.cc:792,1
    - Dst: free
      Src: /src/nccl/src/graph/paths.cc:793,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - system
    argTypes:
    - struct ncclTopoSystem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 791
    functionDepth: 1
    functionLinenumber: 791
    functionLinenumberEnd: 794
    functionName: ncclTopoFree
    functionSourceFile: /src/nccl/src/graph/paths.cc
    functionUses: 1
    functionsReached:
    - ncclTopoRemovePaths
    - free
    linkageType: ''
    returnType: void
    signature: void ncclTopoFree(struct ncclTopoSystem* system)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ncclTopoRankToIndex
      Src: /src/nccl/src/graph/paths.cc:802,1
    - Dst: ncclTopoNVLinkBw
      Src: /src/nccl/src/graph/paths.cc:811,1
    - Dst: std::max
      Src: /src/nccl/src/graph/paths.cc:812,1
    - Dst: ncclParamNChannelsPerNetPeer
      Src: /src/nccl/src/graph/paths.cc:818,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:825,1
    - Dst: getLocalNetCountByBw
      Src: /src/nccl/src/graph/paths.cc:825,1
    - Dst: std::max
      Src: /src/nccl/src/graph/paths.cc:830,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 4
    argNames:
    - comm
    - g
    - peerRank
    - nChannels
    argTypes:
    - struct ncclComm*
    - int
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 835
      start: 798
    functionDepth: 2
    functionLinenumber: 798
    functionLinenumberEnd: 835
    functionName: ncclTopoGetNchannels
    functionSourceFile: /src/nccl/src/graph/paths.cc
    functionUses: 0
    functionsReached:
    - ncclParamNChannelsPerNetPeer
    - ncclTopoRankToIndex
    - getLocalNetCountByBw
    - std::max
    - ncclTopoNVLinkBw
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoGetNchannels(struct ncclComm* comm, int g /*local
      gpu index*/, int peerRank, int* nChannels)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/nccl/src/graph/paths.cc:844,1
    - Dst: ncclParamMaxP2pNChannels
      Src: /src/nccl/src/graph/paths.cc:844,1
    - Dst: min
      Src: /src/nccl/src/graph/paths.cc:845,1
    - Dst: std::max
      Src: /src/nccl/src/graph/paths.cc:845,1
    - Dst: ncclParamMinP2pNChannels
      Src: /src/nccl/src/graph/paths.cc:845,1
    - Dst: min
      Src: /src/nccl/src/graph/paths.cc:847,1
    - Dst: ncclParamMaxP2pNChannels
      Src: /src/nccl/src/graph/paths.cc:847,1
    - Dst: std::max
      Src: /src/nccl/src/graph/paths.cc:848,1
    - Dst: ncclParamMinP2pNChannels
      Src: /src/nccl/src/graph/paths.cc:848,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:856,1
    - Dst: ncclTopoGetNchannels
      Src: /src/nccl/src/graph/paths.cc:856,1
    - Dst: min
      Src: /src/nccl/src/graph/paths.cc:857,1
    - Dst: pow2Up
      Src: /src/nccl/src/graph/paths.cc:863,1
    - Dst: pow2Up
      Src: /src/nccl/src/graph/paths.cc:864,1
    - Dst: min
      Src: /src/nccl/src/graph/paths.cc:866,1
    - Dst: pow2Down
      Src: /src/nccl/src/graph/paths.cc:866,1
    - Dst: ncclDevMaxChannelsForArgsBytes
      Src: /src/nccl/src/graph/paths.cc:866,1
    - Dst: ncclParamWorkArgsBytes
      Src: /src/nccl/src/graph/paths.cc:866,1
    - Dst: min
      Src: /src/nccl/src/graph/paths.cc:867,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:870,1
    - Dst: initChannel
      Src: /src/nccl/src/graph/paths.cc:870,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 873
      start: 841
    functionDepth: 3
    functionLinenumber: 841
    functionLinenumberEnd: 873
    functionName: ncclTopoComputeP2pChannels
    functionSourceFile: /src/nccl/src/graph/paths.cc
    functionUses: 1
    functionsReached:
    - min
    - ncclParamMinP2pNChannels
    - pow2Up
    - std::max
    - pow2Down
    - ncclParamWorkArgsBytes
    - initChannel
    - ncclTopoGetNchannels
    - ncclParamMaxP2pNChannels
    - NCCLCHECK
    - ncclDevMaxChannelsForArgsBytes
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoComputeP2pChannels(struct ncclComm* comm)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:877,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/graph/paths.cc:877,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 4
    argNames:
    - system
    - rank
    - nranks
    - ranks
    argTypes:
    - struct ncclTopoSystem*
    - int
    - int*
    - int**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 890
      start: 875
    functionDepth: 1
    functionLinenumber: 875
    functionLinenumberEnd: 890
    functionName: ncclTopoGetNvbGpus
    functionSourceFile: /src/nccl/src/graph/paths.cc
    functionUses: 1
    functionsReached:
    - ncclCalloc
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoGetNvbGpus(struct ncclTopoSystem* system, int
      rank, int* nranks, int** ranks)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/nccl/src/graph/paths.cc:899,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 3
    argNames:
    - system
    - type
    - min
    argTypes:
    - struct ncclTopoSystem*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 904
      start: 892
    functionDepth: 1
    functionLinenumber: 892
    functionLinenumberEnd: 904
    functionName: ncclTopoGetGpuMinPath
    functionSourceFile: /src/nccl/src/graph/paths.cc
    functionUses: 0
    functionsReached:
    - min
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoGetGpuMinPath(struct ncclTopoSystem* system, int
      type, int* min)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::max
      Src: /src/nccl/src/graph/paths.cc:913,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 12
    argCount: 3
    argNames:
    - system
    - type
    - max
    argTypes:
    - struct ncclTopoSystem*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 918
      start: 906
    functionDepth: 0
    functionLinenumber: 906
    functionLinenumberEnd: 918
    functionName: ncclTopoGetGpuMaxPath
    functionSourceFile: /src/nccl/src/graph/paths.cc
    functionUses: 0
    functionsReached:
    - std::max
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoGetGpuMaxPath(struct ncclTopoSystem* system, int
      type, int* max)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/paths.cc:922,1
    - Dst: ncclTopoGetGpuMaxPath
      Src: /src/nccl/src/graph/paths.cc:922,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - system
    - allNvLink
    argTypes:
    - struct ncclTopoSystem*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 925
      start: 920
    functionDepth: 1
    functionLinenumber: 920
    functionLinenumberEnd: 925
    functionName: ncclTopoPathAllNVLink
    functionSourceFile: /src/nccl/src/graph/paths.cc
    functionUses: 1
    functionsReached:
    - ncclTopoGetGpuMaxPath
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoPathAllNVLink(struct ncclTopoSystem* system, int*
      allNvLink)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/paths.cc:934,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/graph/paths.cc:934,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/paths.cc:946,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/graph/paths.cc:946,1
    - Dst: free
      Src: /src/nccl/src/graph/paths.cc:957,1
    - Dst: free
      Src: /src/nccl/src/graph/paths.cc:958,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 2
    argNames:
    - system
    - splitNvLink
    argTypes:
    - struct ncclTopoSystem*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 960
      start: 929
    functionDepth: 1
    functionLinenumber: 929
    functionLinenumberEnd: 960
    functionName: ncclTopoSplitNvLink
    functionSourceFile: /src/nccl/src/graph/paths.cc
    functionUses: 0
    functionsReached:
    - ncclCalloc
    - NCCLCHECKGOTO
    - free
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoSplitNvLink(struct ncclTopoSystem* system, int*
      splitNvLink)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:39,1
    - Dst: busIdToInt64
      Src: /src/nccl/src/graph/topo.cc:39,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - path
    - offset
    - minOffset
    - id
    argTypes:
    - char*
    - int
    - int
    - int64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 44
    functionName: pciPathToInt64
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 0
    functionsReached:
    - busIdToInt64
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t pciPathToInt64(char* path, int offset, int minOffset,
      int64_t* id)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:58,1
    - Dst: findLocalCpu
      Src: /src/nccl/src/graph/topo.cc:58,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 3
    argNames:
    - node
    - cpu
    - from
    argTypes:
    - struct ncclTopoNode*
    - struct ncclTopoNode**
    - struct ncclTopoNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 63
    functionName: findLocalCpu
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 1
    functionsReached:
    - findLocalCpu
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t findLocalCpu(struct ncclTopoNode* node, struct ncclTopoNode**
      cpu, struct ncclTopoNode* from)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 2
    argNames:
    - cpu
    - bw
    argTypes:
    - struct ncclTopoNode*
    - float*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 92
    functionName: ncclTopoGetInterCpuBw
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoGetInterCpuBw(struct ncclTopoNode* cpu, float*
      bw)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - system
    - node
    - type
    - id
    argTypes:
    - struct ncclTopoSystem*
    - struct ncclTopoNode**
    - int
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 109
    functionName: ncclTopoGetNode
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoGetNode(struct ncclTopoSystem* system, struct
      ncclTopoNode** node, int type, uint64_t id)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/graph/topo.cc:113,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 4
    argNames:
    - system
    - node
    - type
    - id
    argTypes:
    - struct ncclTopoSystem*
    - struct ncclTopoNode**
    - int
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 136
    functionName: ncclTopoCreateNode
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 0
    functionsReached:
    - WARN
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoCreateNode(struct ncclTopoSystem* system, struct
      ncclTopoNode** node, int type, uint64_t id)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/nccl/src/graph/topo.cc:141,1
    - Dst: memmove
      Src: /src/nccl/src/graph/topo.cc:147,1
    - Dst: memmove
      Src: /src/nccl/src/graph/topo.cc:156,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 20
    argCount: 3
    argNames:
    - system
    - type
    - index
    argTypes:
    - struct ncclTopoSystem*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 159
    functionName: ncclTopoRemoveNode
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 1
    functionsReached:
    - memmove
    - free
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoRemoveNode(struct ncclTopoSystem* system, int
      type, int index)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/graph/topo.cc:168,1
    - Dst: memcpy
      Src: /src/nccl/src/graph/topo.cc:178,1
    - Dst: memcpy
      Src: /src/nccl/src/graph/topo.cc:181,1
    - Dst: memcpy
      Src: /src/nccl/src/graph/topo.cc:184,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 23
    argCount: 4
    argNames:
    - node
    - remNode
    - type
    - bw
    argTypes:
    - struct ncclTopoNode*
    - struct ncclTopoNode*
    - int
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 186
    functionName: ncclTopoConnectNodes
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 0
    functionsReached:
    - WARN
    - memcpy
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoConnectNodes(struct ncclTopoNode* node, struct
      ncclTopoNode* remNode, int type, float bw)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - id
    - level
    argTypes:
    - uint64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 196
    functionName: getBcmGen
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int getBcmGen(uint64_t id, int level)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: getBcmGen
      Src: /src/nccl/src/graph/topo.cc:201,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:206,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/graph/topo.cc:206,1
    - Dst: getBcmGen
      Src: /src/nccl/src/graph/topo.cc:211,1
    - Dst: memmove
      Src: /src/nccl/src/graph/topo.cc:215,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/topo.cc:224,1
    - Dst: ncclTopoIdToIndex
      Src: /src/nccl/src/graph/topo.cc:224,1
    - Dst: WARN
      Src: /src/nccl/src/graph/topo.cc:232,1
    - Dst: memcpy
      Src: /src/nccl/src/graph/topo.cc:236,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/topo.cc:246,1
    - Dst: ncclTopoRemoveNode
      Src: /src/nccl/src/graph/topo.cc:246,1
    - Dst: free
      Src: /src/nccl/src/graph/topo.cc:250,1
    - Dst: free
      Src: /src/nccl/src/graph/topo.cc:255,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 45
    argCount: 1
    argNames:
    - system
    argTypes:
    - struct ncclTopoSystem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 260
    functionName: ncclTopoFlattenBcmSwitches
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 0
    functionsReached:
    - WARN
    - getBcmGen
    - NCCLCHECKGOTO
    - memcpy
    - free
    - memmove
    - ncclTopoRemoveNode
    - ncclCalloc
    - ncclTopoIdToIndex
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoFlattenBcmSwitches(struct ncclTopoSystem* system)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCL_TOPO_ID_SYSTEM_ID
      Src: /src/nccl/src/graph/topo.cc:268,1
    - Dst: NCCL_TOPO_ID_SYSTEM_ID
      Src: /src/nccl/src/graph/topo.cc:268,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:270,1
    - Dst: ncclTopoGetInterCpuBw
      Src: /src/nccl/src/graph/topo.cc:270,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:271,1
    - Dst: ncclTopoConnectNodes
      Src: /src/nccl/src/graph/topo.cc:271,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - system
    argTypes:
    - struct ncclTopoSystem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 262
    functionDepth: 2
    functionLinenumber: 262
    functionLinenumberEnd: 275
    functionName: ncclTopoConnectCpus
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 0
    functionsReached:
    - ncclTopoConnectNodes
    - NCCL_TOPO_ID_SYSTEM_ID
    - ncclTopoGetInterCpuBw
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoConnectCpus(struct ncclTopoSystem* system)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: sprintf
      Src: /src/nccl/src/graph/topo.cc:279,1
    - Dst: NCCL_TOPO_ID_SYSTEM_ID
      Src: /src/nccl/src/graph/topo.cc:279,1
    - Dst: NCCL_TOPO_ID_LOCAL_ID
      Src: /src/nccl/src/graph/topo.cc:279,1
    - Dst: sprintf
      Src: /src/nccl/src/graph/topo.cc:281,1
    - Dst: NCCL_TOPO_ID_SYSTEM_ID
      Src: /src/nccl/src/graph/topo.cc:281,1
    - Dst: NCCL_TOPO_ID_LOCAL_ID
      Src: /src/nccl/src/graph/topo.cc:281,1
    - Dst: sprintf
      Src: /src/nccl/src/graph/topo.cc:283,1
    - Dst: NCCL_TOPO_ID_SYSTEM_ID
      Src: /src/nccl/src/graph/topo.cc:283,1
    - Dst: NCCL_TOPO_ID_LOCAL_ID
      Src: /src/nccl/src/graph/topo.cc:283,1
    - Dst: sprintf
      Src: /src/nccl/src/graph/topo.cc:285,1
    - Dst: NCCL_TOPO_ID_SYSTEM_ID
      Src: /src/nccl/src/graph/topo.cc:285,1
    - Dst: NCCL_TOPO_ID_LOCAL_ID
      Src: /src/nccl/src/graph/topo.cc:285,1
    - Dst: INFO
      Src: /src/nccl/src/graph/topo.cc:287,1
    - Dst: sprintf
      Src: /src/nccl/src/graph/topo.cc:293,1
    - Dst: NCCL_TOPO_ID_SYSTEM_ID
      Src: /src/nccl/src/graph/topo.cc:293,1
    - Dst: NCCL_TOPO_ID_LOCAL_ID
      Src: /src/nccl/src/graph/topo.cc:293,1
    - Dst: INFO
      Src: /src/nccl/src/graph/topo.cc:294,1
    - Dst: sprintf
      Src: /src/nccl/src/graph/topo.cc:296,1
    - Dst: strlen
      Src: /src/nccl/src/graph/topo.cc:297,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:299,1
    - Dst: ncclTopoPrintRec
      Src: /src/nccl/src/graph/topo.cc:299,1
    - Dst: sprintf
      Src: /src/nccl/src/graph/topo.cc:302,1
    - Dst: NCCL_TOPO_ID_SYSTEM_ID
      Src: /src/nccl/src/graph/topo.cc:302,1
    - Dst: NCCL_TOPO_ID_LOCAL_ID
      Src: /src/nccl/src/graph/topo.cc:302,1
    - Dst: sprintf
      Src: /src/nccl/src/graph/topo.cc:304,1
    - Dst: NCCL_TOPO_ID_SYSTEM_ID
      Src: /src/nccl/src/graph/topo.cc:304,1
    - Dst: NCCL_TOPO_ID_LOCAL_ID
      Src: /src/nccl/src/graph/topo.cc:304,1
    - Dst: INFO
      Src: /src/nccl/src/graph/topo.cc:306,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 4
    argNames:
    - node
    - prevNode
    - line
    - offset
    argTypes:
    - struct ncclTopoNode*
    - struct ncclTopoNode*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 277
    functionDepth: 1
    functionLinenumber: 277
    functionLinenumberEnd: 311
    functionName: ncclTopoPrintRec
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 1
    functionsReached:
    - INFO
    - strlen
    - NCCL_TOPO_ID_SYSTEM_ID
    - sprintf
    - ncclTopoPrintRec
    - NCCL_TOPO_ID_LOCAL_ID
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoPrintRec(struct ncclTopoNode* node, struct ncclTopoNode*
      prevNode, char* line, int offset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: INFO
      Src: /src/nccl/src/graph/topo.cc:314,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:316,1
    - Dst: ncclTopoPrintRec
      Src: /src/nccl/src/graph/topo.cc:316,1
    - Dst: INFO
      Src: /src/nccl/src/graph/topo.cc:317,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:318,1
    - Dst: ncclTopoPrintPaths
      Src: /src/nccl/src/graph/topo.cc:318,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - s
    argTypes:
    - struct ncclTopoSystem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 313
    functionDepth: 3
    functionLinenumber: 313
    functionLinenumberEnd: 320
    functionName: ncclTopoPrint
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 1
    functionsReached:
    - INFO
    - ncclTopoPrintRec
    - ncclTopoPrintPaths
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoPrint(struct ncclTopoSystem* s)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nccl/src/graph/topo.cc:328,1
    - Dst: memcpy
      Src: /src/nccl/src/graph/topo.cc:330,1
    - Dst: memcpy
      Src: /src/nccl/src/graph/topo.cc:333,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:339,1
    - Dst: ncclTopoSort
      Src: /src/nccl/src/graph/topo.cc:339,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - node
    - upNode
    argTypes:
    - struct ncclTopoNode*
    - struct ncclTopoNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 322
    functionDepth: 1
    functionLinenumber: 322
    functionLinenumberEnd: 342
    functionName: ncclTopoSort
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 1
    functionsReached:
    - ncclTopoSort
    - memcpy
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoSort(struct ncclTopoNode* node, struct ncclTopoNode*
      upNode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:350,1
    - Dst: ncclTopoSort
      Src: /src/nccl/src/graph/topo.cc:350,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - system
    argTypes:
    - struct ncclTopoSystem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 349
    functionDepth: 2
    functionLinenumber: 349
    functionLinenumberEnd: 352
    functionName: ncclTopoSortSystem
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 0
    functionsReached:
    - ncclTopoSort
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoSortSystem(struct ncclTopoSystem* system)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:356,1
    - Dst: xmlGetAttrInt
      Src: /src/nccl/src/graph/topo.cc:356,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:359,1
    - Dst: ncclTopoCreateNode
      Src: /src/nccl/src/graph/topo.cc:359,1
    - Dst: NCCL_TOPO_ID
      Src: /src/nccl/src/graph/topo.cc:359,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:362,1
    - Dst: xmlGetAttr
      Src: /src/nccl/src/graph/topo.cc:362,1
    - Dst: sscanf
      Src: /src/nccl/src/graph/topo.cc:363,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:368,1
    - Dst: xmlGetAttrIntDefault
      Src: /src/nccl/src/graph/topo.cc:368,1
    - Dst: xmlGetAttrFloat
      Src: /src/nccl/src/graph/topo.cc:371,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:372,1
    - Dst: xmlGetAttrIntDefault
      Src: /src/nccl/src/graph/topo.cc:372,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:373,1
    - Dst: xmlGetAttrIntDefault
      Src: /src/nccl/src/graph/topo.cc:373,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:374,1
    - Dst: xmlGetAttrIntDefault
      Src: /src/nccl/src/graph/topo.cc:374,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:375,1
    - Dst: xmlGetAttrIntDefault
      Src: /src/nccl/src/graph/topo.cc:375,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:378,1
    - Dst: ncclTopoConnectNodes
      Src: /src/nccl/src/graph/topo.cc:378,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:379,1
    - Dst: ncclTopoConnectNodes
      Src: /src/nccl/src/graph/topo.cc:379,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 4
    argNames:
    - xmlNet
    - system
    - nic
    - systemId
    argTypes:
    - struct ncclXmlNode*
    - struct ncclTopoSystem*
    - struct ncclTopoNode*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 381
      start: 354
    functionDepth: 2
    functionLinenumber: 354
    functionLinenumberEnd: 381
    functionName: ncclTopoAddNet
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 0
    functionsReached:
    - ncclTopoConnectNodes
    - ncclTopoCreateNode
    - NCCL_TOPO_ID
    - xmlGetAttrIntDefault
    - xmlGetAttrFloat
    - xmlGetAttrInt
    - sscanf
    - xmlGetAttr
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoAddNet(struct ncclXmlNode* xmlNet, struct ncclTopoSystem*
      system, struct ncclTopoNode* nic, int systemId)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/nccl/src/graph/topo.cc:386,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:388,1
    - Dst: xmlGetAttrIndex
      Src: /src/nccl/src/graph/topo.cc:388,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:391,1
    - Dst: ncclTopoAddNet
      Src: /src/nccl/src/graph/topo.cc:391,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 4
    argNames:
    - xmlNic
    - system
    - nic
    - systemId
    argTypes:
    - struct ncclXmlNode*
    - struct ncclTopoSystem*
    - struct ncclTopoNode*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 383
    functionDepth: 3
    functionLinenumber: 383
    functionLinenumberEnd: 394
    functionName: ncclTopoAddNic
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 0
    functionsReached:
    - ncclTopoAddNet
    - xmlGetAttrIndex
    - strcmp
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoAddNic(struct ncclXmlNode* xmlNic, struct ncclTopoSystem*
      system, struct ncclTopoNode* nic, int systemId)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:397,1
    - Dst: xmlGetAttrInt
      Src: /src/nccl/src/graph/topo.cc:397,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:398,1
    - Dst: xmlGetAttrInt
      Src: /src/nccl/src/graph/topo.cc:398,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:399,1
    - Dst: xmlGetAttrInt
      Src: /src/nccl/src/graph/topo.cc:399,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:400,1
    - Dst: xmlGetAttrInt
      Src: /src/nccl/src/graph/topo.cc:400,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - xmlGpu
    - system
    - gpu
    argTypes:
    - struct ncclXmlNode*
    - struct ncclTopoSystem*
    - struct ncclTopoNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 396
    functionDepth: 1
    functionLinenumber: 396
    functionLinenumberEnd: 403
    functionName: ncclTopoAddGpu
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 0
    functionsReached:
    - xmlGetAttrInt
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoAddGpu(struct ncclXmlNode* xmlGpu, struct ncclTopoSystem*
      system, struct ncclTopoNode* gpu)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:416,1
    - Dst: xmlGetAttrStr
      Src: /src/nccl/src/graph/topo.cc:416,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:417,1
    - Dst: kvConvertToInt
      Src: /src/nccl/src/graph/topo.cc:417,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:420,1
    - Dst: xmlGetAttrStr
      Src: /src/nccl/src/graph/topo.cc:420,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:421,1
    - Dst: busIdToInt64
      Src: /src/nccl/src/graph/topo.cc:421,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:425,1
    - Dst: xmlGetSub
      Src: /src/nccl/src/graph/topo.cc:425,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:429,1
    - Dst: xmlGetAttrIndex
      Src: /src/nccl/src/graph/topo.cc:429,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:431,1
    - Dst: ncclTopoCreateNode
      Src: /src/nccl/src/graph/topo.cc:431,1
    - Dst: NCCL_TOPO_ID
      Src: /src/nccl/src/graph/topo.cc:431,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:432,1
    - Dst: ncclTopoAddGpu
      Src: /src/nccl/src/graph/topo.cc:432,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:435,1
    - Dst: xmlGetSub
      Src: /src/nccl/src/graph/topo.cc:435,1
    - Dst: NCCL_TOPO_LOCAL_NIC_ID
      Src: /src/nccl/src/graph/topo.cc:440,1
    - Dst: NCCL_TOPO_ID
      Src: /src/nccl/src/graph/topo.cc:441,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:442,1
    - Dst: ncclTopoGetNode
      Src: /src/nccl/src/graph/topo.cc:442,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:444,1
    - Dst: ncclTopoCreateNode
      Src: /src/nccl/src/graph/topo.cc:444,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:447,1
    - Dst: ncclTopoAddNic
      Src: /src/nccl/src/graph/topo.cc:447,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:449,1
    - Dst: ncclTopoCreateNode
      Src: /src/nccl/src/graph/topo.cc:449,1
    - Dst: NCCL_TOPO_ID
      Src: /src/nccl/src/graph/topo.cc:449,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:450,1
    - Dst: xmlGetAttr
      Src: /src/nccl/src/graph/topo.cc:450,1
    - Dst: strtol
      Src: /src/nccl/src/graph/topo.cc:451,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:452,1
    - Dst: xmlGetAttr
      Src: /src/nccl/src/graph/topo.cc:452,1
    - Dst: strtol
      Src: /src/nccl/src/graph/topo.cc:453,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:454,1
    - Dst: xmlGetAttr
      Src: /src/nccl/src/graph/topo.cc:454,1
    - Dst: strtol
      Src: /src/nccl/src/graph/topo.cc:455,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:456,1
    - Dst: xmlGetAttr
      Src: /src/nccl/src/graph/topo.cc:456,1
    - Dst: strtol
      Src: /src/nccl/src/graph/topo.cc:457,1
    - Dst: strcmp
      Src: /src/nccl/src/graph/topo.cc:461,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:462,1
    - Dst: ncclTopoAddPci
      Src: /src/nccl/src/graph/topo.cc:462,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:469,1
    - Dst: xmlGetAttrInt
      Src: /src/nccl/src/graph/topo.cc:469,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:470,1
    - Dst: xmlGetAttrStr
      Src: /src/nccl/src/graph/topo.cc:470,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:474,1
    - Dst: kvConvertToInt
      Src: /src/nccl/src/graph/topo.cc:474,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:476,1
    - Dst: ncclTopoConnectNodes
      Src: /src/nccl/src/graph/topo.cc:476,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:477,1
    - Dst: ncclTopoConnectNodes
      Src: /src/nccl/src/graph/topo.cc:477,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 54
    argCount: 5
    argNames:
    - xmlPci
    - system
    - parent
    - systemId
    - numaId
    argTypes:
    - struct ncclXmlNode*
    - struct ncclTopoSystem*
    - struct ncclTopoNode*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 412
    functionDepth: 4
    functionLinenumber: 412
    functionLinenumberEnd: 480
    functionName: ncclTopoAddPci
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 1
    functionsReached:
    - busIdToInt64
    - xmlGetSub
    - xmlGetAttrIndex
    - ncclTopoCreateNode
    - NCCL_TOPO_LOCAL_NIC_ID
    - NCCL_TOPO_ID
    - strcmp
    - xmlGetAttr
    - ncclTopoAddGpu
    - ncclTopoConnectNodes
    - xmlGetAttrStr
    - xmlGetAttrInt
    - ncclTopoAddPci
    - strtol
    - ncclTopoGetNode
    - kvConvertToInt
    - ncclTopoAddNic
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoAddPci(struct ncclXmlNode* xmlPci, struct ncclTopoSystem*
      system, struct ncclTopoNode* parent, int systemId, int numaId)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:487,1
    - Dst: xmlGetAttr
      Src: /src/nccl/src/graph/topo.cc:487,1
    - Dst: strtoull
      Src: /src/nccl/src/graph/topo.cc:488,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 3
    argNames:
    - system
    - xmlCpu
    - systemIdPtr
    argTypes:
    - struct ncclTopoSystem*
    - struct ncclXmlNode*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 485
    functionDepth: 1
    functionLinenumber: 485
    functionLinenumberEnd: 494
    functionName: ncclGetSystemId
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 0
    functionsReached:
    - strtoull
    - xmlGetAttr
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGetSystemId(struct ncclTopoSystem* system, struct
      ncclXmlNode* xmlCpu, int* systemIdPtr)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:499,1
    - Dst: xmlGetAttrInt
      Src: /src/nccl/src/graph/topo.cc:499,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:501,1
    - Dst: ncclGetSystemId
      Src: /src/nccl/src/graph/topo.cc:501,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:503,1
    - Dst: ncclTopoCreateNode
      Src: /src/nccl/src/graph/topo.cc:503,1
    - Dst: NCCL_TOPO_ID
      Src: /src/nccl/src/graph/topo.cc:503,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:505,1
    - Dst: xmlGetAttr
      Src: /src/nccl/src/graph/topo.cc:505,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:507,1
    - Dst: ncclStrToCpuset
      Src: /src/nccl/src/graph/topo.cc:507,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:510,1
    - Dst: xmlGetAttrStr
      Src: /src/nccl/src/graph/topo.cc:510,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:511,1
    - Dst: kvConvertToInt
      Src: /src/nccl/src/graph/topo.cc:511,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:513,1
    - Dst: xmlGetAttrStr
      Src: /src/nccl/src/graph/topo.cc:513,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:514,1
    - Dst: kvConvertToInt
      Src: /src/nccl/src/graph/topo.cc:514,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:517,1
    - Dst: xmlGetAttrInt
      Src: /src/nccl/src/graph/topo.cc:517,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:518,1
    - Dst: xmlGetAttrInt
      Src: /src/nccl/src/graph/topo.cc:518,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:526,1
    - Dst: xmlGetAttrInt
      Src: /src/nccl/src/graph/topo.cc:526,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:527,1
    - Dst: xmlGetAttrInt
      Src: /src/nccl/src/graph/topo.cc:527,1
    - Dst: strcmp
      Src: /src/nccl/src/graph/topo.cc:533,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:533,1
    - Dst: ncclTopoAddPci
      Src: /src/nccl/src/graph/topo.cc:533,1
    - Dst: strcmp
      Src: /src/nccl/src/graph/topo.cc:534,1
    - Dst: NCCL_TOPO_LOCAL_NIC_ID
      Src: /src/nccl/src/graph/topo.cc:536,1
    - Dst: NCCL_TOPO_ID
      Src: /src/nccl/src/graph/topo.cc:537,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:538,1
    - Dst: ncclTopoGetNode
      Src: /src/nccl/src/graph/topo.cc:538,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:540,1
    - Dst: ncclTopoCreateNode
      Src: /src/nccl/src/graph/topo.cc:540,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:541,1
    - Dst: ncclTopoConnectNodes
      Src: /src/nccl/src/graph/topo.cc:541,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:542,1
    - Dst: ncclTopoConnectNodes
      Src: /src/nccl/src/graph/topo.cc:542,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:544,1
    - Dst: ncclTopoAddNic
      Src: /src/nccl/src/graph/topo.cc:544,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 39
    argCount: 2
    argNames:
    - xmlCpu
    - system
    argTypes:
    - struct ncclXmlNode*
    - struct ncclTopoSystem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 497
    functionDepth: 5
    functionLinenumber: 497
    functionLinenumberEnd: 548
    functionName: ncclTopoAddCpu
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 0
    functionsReached:
    - ncclStrToCpuset
    - ncclTopoConnectNodes
    - ncclTopoCreateNode
    - strcmp
    - NCCL_TOPO_ID
    - NCCL_TOPO_LOCAL_NIC_ID
    - ncclGetSystemId
    - xmlGetAttrStr
    - ncclTopoAddPci
    - ncclTopoAddNic
    - ncclTopoGetNode
    - xmlGetAttrInt
    - kvConvertToInt
    - xmlGetAttr
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoAddCpu(struct ncclXmlNode* xmlCpu, struct ncclTopoSystem*
      system)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/nccl/src/graph/topo.cc:551,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:554,1
    - Dst: busIdToInt64
      Src: /src/nccl/src/graph/topo.cc:554,1
    - Dst: NCCL_TOPO_ID
      Src: /src/nccl/src/graph/topo.cc:555,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:556,1
    - Dst: ncclTopoGetNode
      Src: /src/nccl/src/graph/topo.cc:556,1
    - Dst: WARN
      Src: /src/nccl/src/graph/topo.cc:558,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:562,1
    - Dst: xmlGetAttrInt
      Src: /src/nccl/src/graph/topo.cc:562,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:564,1
    - Dst: xmlGetAttrStr
      Src: /src/nccl/src/graph/topo.cc:564,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:566,1
    - Dst: kvConvertToInt
      Src: /src/nccl/src/graph/topo.cc:566,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:571,1
    - Dst: xmlGetAttrStr
      Src: /src/nccl/src/graph/topo.cc:571,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:573,1
    - Dst: busIdToInt64
      Src: /src/nccl/src/graph/topo.cc:573,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:574,1
    - Dst: ncclTopoGetNode
      Src: /src/nccl/src/graph/topo.cc:574,1
    - Dst: NCCL_TOPO_ID
      Src: /src/nccl/src/graph/topo.cc:574,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:577,1
    - Dst: findLocalCpu
      Src: /src/nccl/src/graph/topo.cc:577,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:580,1
    - Dst: ncclTopoCreateNode
      Src: /src/nccl/src/graph/topo.cc:580,1
    - Dst: ncclTopoNVLinkBw
      Src: /src/nccl/src/graph/topo.cc:586,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:587,1
    - Dst: ncclTopoConnectNodes
      Src: /src/nccl/src/graph/topo.cc:587,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:589,1
    - Dst: ncclTopoConnectNodes
      Src: /src/nccl/src/graph/topo.cc:589,1
    - Dst: strcmp
      Src: /src/nccl/src/graph/topo.cc:593,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:594,1
    - Dst: ncclGetSystemId
      Src: /src/nccl/src/graph/topo.cc:594,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:597,1
    - Dst: xmlGetAttr
      Src: /src/nccl/src/graph/topo.cc:597,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:599,1
    - Dst: ncclTopoAddNvLinks
      Src: /src/nccl/src/graph/topo.cc:599,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 42
    argCount: 4
    argNames:
    - node
    - system
    - parentBusId
    - systemId
    argTypes:
    - struct ncclXmlNode*
    - struct ncclTopoSystem*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 550
    functionDepth: 2
    functionLinenumber: 550
    functionLinenumberEnd: 603
    functionName: ncclTopoAddNvLinks
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 1
    functionsReached:
    - WARN
    - busIdToInt64
    - ncclTopoConnectNodes
    - strcmp
    - ncclTopoCreateNode
    - NCCL_TOPO_ID
    - ncclGetSystemId
    - ncclTopoAddNvLinks
    - xmlGetAttrStr
    - xmlGetAttrInt
    - findLocalCpu
    - ncclTopoNVLinkBw
    - ncclTopoGetNode
    - kvConvertToInt
    - xmlGetAttr
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoAddNvLinks(struct ncclXmlNode* node, struct ncclTopoSystem*
      system, const char* parentBusId, int systemId)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/nccl/src/graph/topo.cc:606,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:609,1
    - Dst: busIdToInt64
      Src: /src/nccl/src/graph/topo.cc:609,1
    - Dst: NCCL_TOPO_ID
      Src: /src/nccl/src/graph/topo.cc:610,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:611,1
    - Dst: ncclTopoGetNode
      Src: /src/nccl/src/graph/topo.cc:611,1
    - Dst: WARN
      Src: /src/nccl/src/graph/topo.cc:613,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:618,1
    - Dst: xmlGetAttrStr
      Src: /src/nccl/src/graph/topo.cc:618,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:620,1
    - Dst: busIdToInt64
      Src: /src/nccl/src/graph/topo.cc:620,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:621,1
    - Dst: ncclTopoGetNode
      Src: /src/nccl/src/graph/topo.cc:621,1
    - Dst: NCCL_TOPO_ID
      Src: /src/nccl/src/graph/topo.cc:621,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:622,1
    - Dst: ncclTopoConnectNodes
      Src: /src/nccl/src/graph/topo.cc:622,1
    - Dst: strcmp
      Src: /src/nccl/src/graph/topo.cc:624,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:625,1
    - Dst: ncclGetSystemId
      Src: /src/nccl/src/graph/topo.cc:625,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:628,1
    - Dst: xmlGetAttr
      Src: /src/nccl/src/graph/topo.cc:628,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:630,1
    - Dst: ncclTopoAddPciLinks
      Src: /src/nccl/src/graph/topo.cc:630,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 4
    argNames:
    - node
    - system
    - parentBusId
    - systemId
    argTypes:
    - struct ncclXmlNode*
    - struct ncclTopoSystem*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 605
    functionDepth: 2
    functionLinenumber: 605
    functionLinenumberEnd: 634
    functionName: ncclTopoAddPciLinks
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 1
    functionsReached:
    - WARN
    - busIdToInt64
    - ncclTopoConnectNodes
    - strcmp
    - NCCL_TOPO_ID
    - ncclGetSystemId
    - xmlGetAttrStr
    - ncclTopoAddPciLinks
    - ncclTopoGetNode
    - xmlGetAttr
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoAddPciLinks(struct ncclXmlNode* node, struct ncclTopoSystem*
      system, const char* parentBusId, int systemId)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/nccl/src/graph/topo.cc:638,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:641,1
    - Dst: busIdToInt64
      Src: /src/nccl/src/graph/topo.cc:641,1
    - Dst: NCCL_TOPO_ID
      Src: /src/nccl/src/graph/topo.cc:642,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:643,1
    - Dst: ncclTopoGetNode
      Src: /src/nccl/src/graph/topo.cc:643,1
    - Dst: WARN
      Src: /src/nccl/src/graph/topo.cc:645,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:649,1
    - Dst: xmlGetAttrInt
      Src: /src/nccl/src/graph/topo.cc:649,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:651,1
    - Dst: xmlGetAttrInt
      Src: /src/nccl/src/graph/topo.cc:651,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:654,1
    - Dst: findLocalCpu
      Src: /src/nccl/src/graph/topo.cc:654,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:656,1
    - Dst: ncclTopoConnectNodes
      Src: /src/nccl/src/graph/topo.cc:656,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:657,1
    - Dst: ncclTopoConnectNodes
      Src: /src/nccl/src/graph/topo.cc:657,1
    - Dst: strcmp
      Src: /src/nccl/src/graph/topo.cc:659,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:660,1
    - Dst: ncclGetSystemId
      Src: /src/nccl/src/graph/topo.cc:660,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:663,1
    - Dst: xmlGetAttr
      Src: /src/nccl/src/graph/topo.cc:663,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:665,1
    - Dst: ncclTopoAddC2c
      Src: /src/nccl/src/graph/topo.cc:665,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 4
    argNames:
    - node
    - system
    - parentBusId
    - systemId
    argTypes:
    - struct ncclXmlNode*
    - struct ncclTopoSystem*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 637
    functionDepth: 2
    functionLinenumber: 637
    functionLinenumberEnd: 669
    functionName: ncclTopoAddC2c
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 1
    functionsReached:
    - WARN
    - busIdToInt64
    - ncclTopoConnectNodes
    - ncclTopoAddC2c
    - strcmp
    - NCCL_TOPO_ID
    - ncclGetSystemId
    - xmlGetAttrInt
    - findLocalCpu
    - ncclTopoGetNode
    - xmlGetAttr
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoAddC2c(struct ncclXmlNode* node, struct ncclTopoSystem*
      system, const char* parentBusId, int systemId)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:672,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/graph/topo.cc:672,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:675,1
    - Dst: xmlFindTag
      Src: /src/nccl/src/graph/topo.cc:675,1
    - Dst: strcmp
      Src: /src/nccl/src/graph/topo.cc:678,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:678,1
    - Dst: ncclTopoAddCpu
      Src: /src/nccl/src/graph/topo.cc:678,1
    - Dst: WARN
      Src: /src/nccl/src/graph/topo.cc:685,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:689,1
    - Dst: ncclTopoAddNvLinks
      Src: /src/nccl/src/graph/topo.cc:689,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:690,1
    - Dst: ncclTopoAddC2c
      Src: /src/nccl/src/graph/topo.cc:690,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:691,1
    - Dst: ncclTopoAddPciLinks
      Src: /src/nccl/src/graph/topo.cc:691,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:693,1
    - Dst: ncclTopoFlattenBcmSwitches
      Src: /src/nccl/src/graph/topo.cc:693,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:694,1
    - Dst: ncclTopoConnectCpus
      Src: /src/nccl/src/graph/topo.cc:694,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:695,1
    - Dst: ncclTopoSortSystem
      Src: /src/nccl/src/graph/topo.cc:695,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - xml
    - topoSystem
    - localHostHash
    argTypes:
    - struct ncclXml*
    - struct ncclTopoSystem**
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 698
      start: 671
    functionDepth: 6
    functionLinenumber: 671
    functionLinenumberEnd: 698
    functionName: ncclTopoGetSystemFromXml
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 0
    functionsReached:
    - WARN
    - xmlFindTag
    - ncclTopoAddC2c
    - strcmp
    - ncclTopoAddNvLinks
    - ncclTopoFlattenBcmSwitches
    - ncclTopoAddCpu
    - ncclCalloc
    - ncclTopoSortSystem
    - ncclTopoAddPciLinks
    - ncclTopoConnectCpus
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoGetSystemFromXml(struct ncclXml* xml, struct ncclTopoSystem**
      topoSystem, const uint64_t localHostHash)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:705,1
    - Dst: xmlGetAttrIndex
      Src: /src/nccl/src/graph/topo.cc:705,1
    - Dst: strncpy
      Src: /src/nccl/src/graph/topo.cc:708,1
    - Dst: snprintf
      Src: /src/nccl/src/graph/topo.cc:710,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - node
    - attrName
    - value
    argTypes:
    - struct ncclXmlNode*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 703
    functionDepth: 1
    functionLinenumber: 703
    functionLinenumberEnd: 713
    functionName: xmlInitAttrInt
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 0
    functionsReached:
    - strncpy
    - xmlGetAttrIndex
    - NCCLCHECK
    - snprintf
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t xmlInitAttrInt(struct ncclXmlNode* node, const char* attrName,
      const int value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:716,1
    - Dst: xmlGetAttrIndex
      Src: /src/nccl/src/graph/topo.cc:716,1
    - Dst: strncpy
      Src: /src/nccl/src/graph/topo.cc:719,1
    - Dst: snprintf
      Src: /src/nccl/src/graph/topo.cc:721,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - node
    - attrName
    - value
    argTypes:
    - struct ncclXmlNode*
    - char*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 724
      start: 714
    functionDepth: 1
    functionLinenumber: 714
    functionLinenumberEnd: 724
    functionName: xmlInitAttrUint64
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 0
    functionsReached:
    - strncpy
    - xmlGetAttrIndex
    - NCCLCHECK
    - snprintf
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t xmlInitAttrUint64(struct ncclXmlNode* node, const char*
      attrName, const uint64_t value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:727,1
    - Dst: xmlGetAttrIndex
      Src: /src/nccl/src/graph/topo.cc:727,1
    - Dst: strncpy
      Src: /src/nccl/src/graph/topo.cc:730,1
    - Dst: snprintf
      Src: /src/nccl/src/graph/topo.cc:732,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - node
    - attrName
    - value
    argTypes:
    - struct ncclXmlNode*
    - char*
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 735
      start: 725
    functionDepth: 1
    functionLinenumber: 725
    functionLinenumberEnd: 735
    functionName: xmlInitAttrFloat
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 0
    functionsReached:
    - strncpy
    - xmlGetAttrIndex
    - NCCLCHECK
    - snprintf
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t xmlInitAttrFloat(struct ncclXmlNode* node, const char*
      attrName, const float value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/nccl/src/graph/topo.cc:739,1
    - Dst: fread
      Src: /src/nccl/src/graph/topo.cc:742,1
    - Dst: INFO
      Src: /src/nccl/src/graph/topo.cc:744,1
    - Dst: fclose
      Src: /src/nccl/src/graph/topo.cc:745,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 748
      start: 737
    functionDepth: 0
    functionLinenumber: 737
    functionLinenumberEnd: 748
    functionName: ncclTopoRefreshBcmP2pLinks
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 0
    functionsReached:
    - INFO
    - fclose
    - fread
    - fopen
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoRefreshBcmP2pLinks(void)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:754,1
    - Dst: xmlGetAttrStr
      Src: /src/nccl/src/graph/topo.cc:754,1
    - Dst: TRACE
      Src: /src/nccl/src/graph/topo.cc:756,1
    - Dst: strcmp
      Src: /src/nccl/src/graph/topo.cc:761,1
    - Dst: strcmp
      Src: /src/nccl/src/graph/topo.cc:764,1
    - Dst: strcmp
      Src: /src/nccl/src/graph/topo.cc:768,1
    - Dst: TRACE
      Src: /src/nccl/src/graph/topo.cc:769,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 3
    argNames:
    - common
    - nodes
    - nNodes
    argTypes:
    - ncclXmlNode*
    - ncclXmlNode**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 777
      start: 751
    functionDepth: 1
    functionLinenumber: 751
    functionLinenumberEnd: 777
    functionName: ncclTopoCheckPix
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 0
    functionsReached:
    - TRACE
    - strcmp
    - NCCLCHECK
    - xmlGetAttrStr
    linkageType: ''
    returnType: int
    signature: int ncclTopoCheckPix(ncclXmlNode* common, ncclXmlNode** nodes, int
      nNodes)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/nccl/src/graph/topo.cc:785,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 790
      start: 784
    functionDepth: 1
    functionLinenumber: 784
    functionLinenumberEnd: 790
    functionName: top
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 3
    functionsReached:
    - empty
    linkageType: ''
    returnType: ncclXmlNode
    signature: ncclXmlNode * top()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: top
      Src: /src/nccl/src/graph/topo.cc:793,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 798
      start: 792
    functionDepth: 2
    functionLinenumber: 792
    functionLinenumberEnd: 798
    functionName: pop
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 0
    functionsReached:
    - top
    linkageType: ''
    returnType: ncclXmlNode
    signature: ncclXmlNode * pop()
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - node
    argTypes:
    - ncclXmlNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 804
      start: 800
    functionDepth: 0
    functionLinenumber: 800
    functionLinenumberEnd: 804
    functionName: push
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void push(ncclXmlNode* node)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 808
      start: 806
    functionDepth: 0
    functionLinenumber: 806
    functionLinenumberEnd: 808
    functionName: empty
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool empty()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/nccl/src/graph/topo.cc:814,1
    - Dst: strcmp
      Src: /src/nccl/src/graph/topo.cc:817,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - parent
    argTypes:
    - ncclXmlNode**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 821
      start: 812
    functionDepth: 0
    functionLinenumber: 812
    functionLinenumberEnd: 821
    functionName: ncclFindFirstPciParent
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclFindFirstPciParent(ncclXmlNode** parent)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:827,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/graph/topo.cc:827,1
    - Dst: push
      Src: /src/nccl/src/graph/topo.cc:841,1
    - Dst: strcmp
      Src: /src/nccl/src/graph/topo.cc:842,1
    - Dst: empty
      Src: /src/nccl/src/graph/topo.cc:849,1
    - Dst: top
      Src: /src/nccl/src/graph/topo.cc:850,1
    - Dst: empty
      Src: /src/nccl/src/graph/topo.cc:852,1
    - Dst: top
      Src: /src/nccl/src/graph/topo.cc:853,1
    - Dst: TRACE
      Src: /src/nccl/src/graph/topo.cc:862,1
    - Dst: pop
      Src: /src/nccl/src/graph/topo.cc:864,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:872,1
    - Dst: xmlGetAttr
      Src: /src/nccl/src/graph/topo.cc:872,1
    - Dst: empty
      Src: /src/nccl/src/graph/topo.cc:875,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:877,1
    - Dst: xmlGetAttr
      Src: /src/nccl/src/graph/topo.cc:877,1
    - Dst: top
      Src: /src/nccl/src/graph/topo.cc:877,1
    - Dst: strlen
      Src: /src/nccl/src/graph/topo.cc:879,1
    - Dst: strlen
      Src: /src/nccl/src/graph/topo.cc:879,1
    - Dst: strncmp
      Src: /src/nccl/src/graph/topo.cc:883,1
    - Dst: strlen
      Src: /src/nccl/src/graph/topo.cc:883,1
    - Dst: strcmp
      Src: /src/nccl/src/graph/topo.cc:906,1
    - Dst: strcmp
      Src: /src/nccl/src/graph/topo.cc:908,1
    - Dst: strcmp
      Src: /src/nccl/src/graph/topo.cc:910,1
    - Dst: strcmp
      Src: /src/nccl/src/graph/topo.cc:912,1
    - Dst: ncclTopoCheckPix
      Src: /src/nccl/src/graph/topo.cc:914,1
    - Dst: ncclFindFirstPciParent
      Src: /src/nccl/src/graph/topo.cc:921,1
    - Dst: free
      Src: /src/nccl/src/graph/topo.cc:923,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 90
    argCount: 4
    argNames:
    - nodes
    - nNodes
    - path
    - parent
    argTypes:
    - ncclXmlNode**
    - int
    - int*
    - ncclXmlNode**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 925
      start: 824
    functionDepth: 3
    functionLinenumber: 824
    functionLinenumberEnd: 925
    functionName: ncclTopoGetPath
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 0
    functionsReached:
    - TRACE
    - pop
    - strcmp
    - push
    - strlen
    - free
    - ncclTopoCheckPix
    - top
    - ncclCalloc
    - empty
    - strncmp
    - ncclFindFirstPciParent
    - xmlGetAttr
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoGetPath(ncclXmlNode** nodes, int nNodes, int*
      path, ncclXmlNode** parent)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:930,1
    - Dst: busIdToInt64
      Src: /src/nccl/src/graph/topo.cc:930,1
    - Dst: TRACE
      Src: /src/nccl/src/graph/topo.cc:934,1
    - Dst: int64ToBusId
      Src: /src/nccl/src/graph/topo.cc:935,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:937,1
    - Dst: xmlFindTagKv
      Src: /src/nccl/src/graph/topo.cc:937,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:939,1
    - Dst: xmlAddNode
      Src: /src/nccl/src/graph/topo.cc:939,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:940,1
    - Dst: xmlSetAttr
      Src: /src/nccl/src/graph/topo.cc:940,1
    - Dst: TRACE
      Src: /src/nccl/src/graph/topo.cc:941,1
    - Dst: TRACE
      Src: /src/nccl/src/graph/topo.cc:944,1
    - Dst: WARN
      Src: /src/nccl/src/graph/topo.cc:948,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 4
    argNames:
    - xml
    - busId
    - pciNode
    - parent
    argTypes:
    - struct ncclXml*
    - char*
    - struct ncclXmlNode**
    - struct ncclXmlNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 950
      start: 927
    functionDepth: 1
    functionLinenumber: 927
    functionLinenumberEnd: 950
    functionName: ncclTopoMakeUniqueBusId
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 0
    functionsReached:
    - WARN
    - TRACE
    - busIdToInt64
    - xmlFindTagKv
    - xmlAddNode
    - int64ToBusId
    - xmlSetAttr
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoMakeUniqueBusId(struct ncclXml* xml, char* busId,
      struct ncclXmlNode** pciNode, struct ncclXmlNode* parent)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/nccl/src/graph/topo.cc:958,1
    - Dst: memset
      Src: /src/nccl/src/graph/topo.cc:960,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:963,1
    - Dst: xmlGetAttrStr
      Src: /src/nccl/src/graph/topo.cc:963,1
    - Dst: snprintf
      Src: /src/nccl/src/graph/topo.cc:964,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:965,1
    - Dst: ncclTopoMakeUniqueBusId
      Src: /src/nccl/src/graph/topo.cc:965,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:967,1
    - Dst: xmlSetAttr
      Src: /src/nccl/src/graph/topo.cc:967,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:969,1
    - Dst: xmlSetAttr
      Src: /src/nccl/src/graph/topo.cc:969,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:977,1
    - Dst: xmlGetAttr
      Src: /src/nccl/src/graph/topo.cc:977,1
    - Dst: WARN
      Src: /src/nccl/src/graph/topo.cc:978,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 3
    argNames:
    - xml
    - parent
    - physNetNode
    argTypes:
    - struct ncclXml*
    - struct ncclXmlNode**
    - struct ncclXmlNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 983
      start: 952
    functionDepth: 2
    functionLinenumber: 952
    functionLinenumberEnd: 983
    functionName: ncclTopoMakePciParent
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 0
    functionsReached:
    - WARN
    - strcmp
    - ncclTopoMakeUniqueBusId
    - xmlGetAttrStr
    - xmlSetAttr
    - memset
    - xmlGetAttr
    - NCCLCHECK
    - snprintf
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoMakePciParent(struct ncclXml* xml, struct ncclXmlNode**
      parent, struct ncclXmlNode* physNetNode)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/graph/topo.cc:988,1
    - Dst: TRACE
      Src: /src/nccl/src/graph/topo.cc:994,1
    - Dst: makeVDevice
      Src: /src/nccl/src/graph/topo.cc:1000,1
    - Dst: INFO
      Src: /src/nccl/src/graph/topo.cc:1002,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1011,1
    - Dst: xmlSetAttrInt
      Src: /src/nccl/src/graph/topo.cc:1011,1
    - Dst: INFO
      Src: /src/nccl/src/graph/topo.cc:1014,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - xml
    - vProps
    - physNetNodes
    argTypes:
    - struct ncclXml*
    - ncclNetVDeviceProps_t*
    - struct ncclXmlNode**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1016
      start: 985
    functionDepth: 1
    functionLinenumber: 985
    functionLinenumberEnd: 1016
    functionName: ncclTopoMakeVnic
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 0
    functionsReached:
    - WARN
    - TRACE
    - INFO
    - NCCLCHECK
    - xmlSetAttrInt
    - makeVDevice
    linkageType: ''
    returnType: ncclResult_t
    signature: 'ncclResult_t ncclTopoMakeVnic(struct ncclXml* xml, ncclNetVDeviceProps_t*
      vProps,

      struct ncclXmlNode** physNetNodes, ncclResult_t (*makeVDevice)(int*, ncclNetVDeviceProps_t*))'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: INFO
      Src: /src/nccl/src/graph/topo.cc:1020,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1022,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/graph/topo.cc:1022,1
    - Dst: strlen
      Src: /src/nccl/src/graph/topo.cc:1022,1
    - Dst: strcpy
      Src: /src/nccl/src/graph/topo.cc:1023,1
    - Dst: strtok_r
      Src: /src/nccl/src/graph/topo.cc:1025,1
    - Dst: TRACE
      Src: /src/nccl/src/graph/topo.cc:1027,1
    - Dst: parseStringList
      Src: /src/nccl/src/graph/topo.cc:1029,1
    - Dst: INFO
      Src: /src/nccl/src/graph/topo.cc:1031,1
    - Dst: matchIfList
      Src: /src/nccl/src/graph/topo.cc:1038,1
    - Dst: WARN
      Src: /src/nccl/src/graph/topo.cc:1044,1
    - Dst: WARN
      Src: /src/nccl/src/graph/topo.cc:1051,1
    - Dst: ncclTopoMakeVnic
      Src: /src/nccl/src/graph/topo.cc:1056,1
    - Dst: WARN
      Src: /src/nccl/src/graph/topo.cc:1063,1
    - Dst: strtok_r
      Src: /src/nccl/src/graph/topo.cc:1068,1
    - Dst: free
      Src: /src/nccl/src/graph/topo.cc:1072,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 49
    argCount: 6
    argNames:
    - xml
    - str
    - placedDevs
    - propsList
    - physNetNodes
    - nPhysDevs
    argTypes:
    - struct ncclXml*
    - char*
    - int*
    - ncclNetProperties_t*
    - struct ncclXmlNode**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1076
      start: 1018
    functionDepth: 2
    functionLinenumber: 1018
    functionLinenumberEnd: 1076
    functionName: ncclTopoForceMerge
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 0
    functionsReached:
    - INFO
    - TRACE
    - WARN
    - matchIfList
    - strlen
    - free
    - parseStringList
    - ncclCalloc
    - ncclTopoMakeVnic
    - strtok_r
    - strcpy
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoForceMerge(struct ncclXml* xml, char* str, int*
      placedDevs, ncclNetProperties_t* propsList, struct ncclXmlNode** physNetNodes,
      int nPhysDevs, ncclResult_t (*makeVDevice)(int*, ncclNetVDeviceProps_t*))
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ncclCalloc
      Src: /src/nccl/src/graph/topo.cc:1082,1
    - Dst: TRACE
      Src: /src/nccl/src/graph/topo.cc:1083,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/topo.cc:1090,1
    - Dst: ncclTopoGetPath
      Src: /src/nccl/src/graph/topo.cc:1090,1
    - Dst: TRACE
      Src: /src/nccl/src/graph/topo.cc:1103,1
    - Dst: TRACE
      Src: /src/nccl/src/graph/topo.cc:1112,1
    - Dst: WARN
      Src: /src/nccl/src/graph/topo.cc:1118,1
    - Dst: ncclTopoMakeVnic
      Src: /src/nccl/src/graph/topo.cc:1122,1
    - Dst: INFO
      Src: /src/nccl/src/graph/topo.cc:1128,1
    - Dst: TRACE
      Src: /src/nccl/src/graph/topo.cc:1130,1
    - Dst: TRACE
      Src: /src/nccl/src/graph/topo.cc:1136,1
    - Dst: free
      Src: /src/nccl/src/graph/topo.cc:1144,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 47
    argCount: 6
    argNames:
    - xml
    - mergeLevel
    - placedDevs
    - propsList
    - physNetNodes
    - nPhysDevs
    argTypes:
    - struct ncclXml*
    - int
    - int*
    - ncclNetProperties_t*
    - struct ncclXmlNode**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1146
      start: 1078
    functionDepth: 4
    functionLinenumber: 1078
    functionLinenumberEnd: 1146
    functionName: ncclTopoAutoMerge
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 0
    functionsReached:
    - WARN
    - TRACE
    - INFO
    - NCCLCHECKGOTO
    - free
    - ncclTopoGetPath
    - ncclCalloc
    - ncclTopoMakeVnic
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoAutoMerge(struct ncclXml* xml, int mergeLevel,
      int* placedDevs, ncclNetProperties_t* propsList, struct ncclXmlNode** physNetNodes,
      int nPhysDevs, ncclResult_t (*makeVDevice)(int*, ncclNetVDeviceProps_t*))
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1164,1
    - Dst: getProperties
      Src: /src/nccl/src/graph/topo.cc:1164,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1166,1
    - Dst: xmlFindTagKv
      Src: /src/nccl/src/graph/topo.cc:1166,1
    - Dst: TRACE
      Src: /src/nccl/src/graph/topo.cc:1168,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1172,1
    - Dst: ncclTopoGetPath
      Src: /src/nccl/src/graph/topo.cc:1172,1
    - Dst: strcmp
      Src: /src/nccl/src/graph/topo.cc:1175,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1178,1
    - Dst: xmlGetAttrStr
      Src: /src/nccl/src/graph/topo.cc:1178,1
    - Dst: strcmp
      Src: /src/nccl/src/graph/topo.cc:1179,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1181,1
    - Dst: ncclTopoMakePciParent
      Src: /src/nccl/src/graph/topo.cc:1181,1
    - Dst: TRACE
      Src: /src/nccl/src/graph/topo.cc:1184,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - xml
    - vProps
    - parent
    argTypes:
    - struct ncclXml*
    - ncclNetVDeviceProps_t*
    - ncclXmlNode**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1186
      start: 1160
    functionDepth: 4
    functionLinenumber: 1160
    functionLinenumberEnd: 1186
    functionName: ncclTopoGetVNicParent
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 0
    functionsReached:
    - TRACE
    - xmlFindTagKv
    - strcmp
    - ncclTopoGetPath
    - ncclTopoMakePciParent
    - xmlGetAttrStr
    - NCCLCHECK
    - getProperties
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoGetVNicParent(struct ncclXml* xml, ncclResult_t
      (*getProperties)(int, ncclNetProperties_t*), ncclNetVDeviceProps_t* vProps,
      ncclXmlNode** parent)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ncclCalloc
      Src: /src/nccl/src/graph/topo.cc:1193,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/graph/topo.cc:1197,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/topo.cc:1199,1
    - Dst: getProperties
      Src: /src/nccl/src/graph/topo.cc:1199,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/topo.cc:1201,1
    - Dst: xmlFindTagKv
      Src: /src/nccl/src/graph/topo.cc:1201,1
    - Dst: TRACE
      Src: /src/nccl/src/graph/topo.cc:1203,1
    - Dst: ncclGetEnv
      Src: /src/nccl/src/graph/topo.cc:1210,1
    - Dst: kvConvertToInt
      Src: /src/nccl/src/graph/topo.cc:1211,1
    - Dst: ncclGetEnv
      Src: /src/nccl/src/graph/topo.cc:1212,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1213,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/graph/topo.cc:1213,1
    - Dst: memset
      Src: /src/nccl/src/graph/topo.cc:1214,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/topo.cc:1217,1
    - Dst: ncclTopoForceMerge
      Src: /src/nccl/src/graph/topo.cc:1217,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/topo.cc:1220,1
    - Dst: ncclTopoAutoMerge
      Src: /src/nccl/src/graph/topo.cc:1220,1
    - Dst: free
      Src: /src/nccl/src/graph/topo.cc:1223,1
    - Dst: free
      Src: /src/nccl/src/graph/topo.cc:1224,1
    - Dst: free
      Src: /src/nccl/src/graph/topo.cc:1225,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 28
    argCount: 2
    argNames:
    - xml
    - physicalDevs
    argTypes:
    - struct ncclXml*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1227
      start: 1188
    functionDepth: 5
    functionLinenumber: 1188
    functionLinenumberEnd: 1227
    functionName: ncclTopoMakeVNics
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 0
    functionsReached:
    - TRACE
    - NCCLCHECKGOTO
    - xmlFindTagKv
    - free
    - ncclGetEnv
    - memset
    - ncclCalloc
    - ncclTopoAutoMerge
    - ncclTopoForceMerge
    - kvConvertToInt
    - NCCLCHECK
    - getProperties
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoMakeVNics(struct ncclXml* xml, ncclResult_t (*makeVDevice)(int*,
      ncclNetVDeviceProps_t*), ncclResult_t (*getProperties)(int, ncclNetProperties_t*),
      int physicalDevs)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1232,1
    - Dst: getProperties
      Src: /src/nccl/src/graph/topo.cc:1232,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1237,1
    - Dst: xmlFindTagKv
      Src: /src/nccl/src/graph/topo.cc:1237,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1240,1
    - Dst: ncclTopoGetVNicParent
      Src: /src/nccl/src/graph/topo.cc:1240,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1243,1
    - Dst: ncclTopoFillNet
      Src: /src/nccl/src/graph/topo.cc:1243,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1246,1
    - Dst: xmlGetAttr
      Src: /src/nccl/src/graph/topo.cc:1246,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1248,1
    - Dst: xmlSetAttrInt
      Src: /src/nccl/src/graph/topo.cc:1248,1
    - Dst: xmlGetAttrIntDefault
      Src: /src/nccl/src/graph/topo.cc:1250,1
    - Dst: INFO
      Src: /src/nccl/src/graph/topo.cc:1251,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1252,1
    - Dst: xmlSetAttrInt
      Src: /src/nccl/src/graph/topo.cc:1252,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1253,1
    - Dst: xmlInitAttrInt
      Src: /src/nccl/src/graph/topo.cc:1253,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1254,1
    - Dst: xmlInitAttrInt
      Src: /src/nccl/src/graph/topo.cc:1254,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1255,1
    - Dst: xmlInitAttrInt
      Src: /src/nccl/src/graph/topo.cc:1255,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1256,1
    - Dst: xmlInitAttrUint64
      Src: /src/nccl/src/graph/topo.cc:1256,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1257,1
    - Dst: xmlInitAttrInt
      Src: /src/nccl/src/graph/topo.cc:1257,1
    - Dst: INFO
      Src: /src/nccl/src/graph/topo.cc:1259,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1260,1
    - Dst: xmlInitAttrInt
      Src: /src/nccl/src/graph/topo.cc:1260,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1262,1
    - Dst: xmlInitAttrInt
      Src: /src/nccl/src/graph/topo.cc:1262,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1265,1
    - Dst: xmlGetAttr
      Src: /src/nccl/src/graph/topo.cc:1265,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1266,1
    - Dst: xmlGetAttr
      Src: /src/nccl/src/graph/topo.cc:1266,1
    - Dst: INFO
      Src: /src/nccl/src/graph/topo.cc:1267,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 29
    argCount: 7
    argNames:
    - xml
    - startIndex
    - endIndex
    - netName
    - coll
    - virtualNics
    - dmaBufSupport
    argTypes:
    - ncclXml*
    - int
    - int
    - char*
    - int
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1272
      start: 1229
    functionDepth: 5
    functionLinenumber: 1229
    functionLinenumberEnd: 1272
    functionName: ncclTopoPopulateNics
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 0
    functionsReached:
    - INFO
    - xmlFindTagKv
    - xmlInitAttrInt
    - xmlGetAttrIntDefault
    - ncclTopoFillNet
    - xmlSetAttrInt
    - xmlInitAttrUint64
    - ncclTopoGetVNicParent
    - xmlGetAttr
    - NCCLCHECK
    - getProperties
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoPopulateNics(ncclXml* xml, int startIndex, int
      endIndex, ncclResult_t (*getProperties)(int, ncclNetProperties_t*), const char*
      netName, int coll, int virtualNics, bool dmaBufSupport)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1277,1
    - Dst: devices
      Src: /src/nccl/src/graph/topo.cc:1277,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1279,1
    - Dst: ncclTopoPopulateNics
      Src: /src/nccl/src/graph/topo.cc:1279,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1282,1
    - Dst: ncclTopoMakeVNics
      Src: /src/nccl/src/graph/topo.cc:1282,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1284,1
    - Dst: devices
      Src: /src/nccl/src/graph/topo.cc:1284,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1289,1
    - Dst: ncclTopoPopulateNics
      Src: /src/nccl/src/graph/topo.cc:1289,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 6
    argNames:
    - xml
    - coll
    - dumpXmlFile
    - state
    - netName
    - dmaBufSupport
    argTypes:
    - ncclXml*
    - int
    - char*
    - ncclTopoNetState*
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1294
      start: 1275
    functionDepth: 6
    functionLinenumber: 1275
    functionLinenumberEnd: 1294
    functionName: ncclTopoProcessNet
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 0
    functionsReached:
    - ncclTopoPopulateNics
    - devices
    - ncclTopoMakeVNics
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoProcessNet(ncclXml* xml, int coll, const char*
      dumpXmlFile, ncclTopoNetState* state, ncclResult_t (*getProperties)(int, ncclNetProperties_t*),
      ncclResult_t (*makeVDevice)(int*, ncclNetVDeviceProps_t*), ncclResult_t (*devices)(int*),
      const char* netName, bool dmaBufSupport)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: INFO
      Src: /src/nccl/src/graph/topo.cc:1300,1
    - Dst: strdup
      Src: /src/nccl/src/graph/topo.cc:1306,1
    - Dst: INFO
      Src: /src/nccl/src/graph/topo.cc:1308,1
    - Dst: strcmp
      Src: /src/nccl/src/graph/topo.cc:1311,1
    - Dst: WARN
      Src: /src/nccl/src/graph/topo.cc:1316,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 3
    argNames:
    - state
    - name
    - states
    argTypes:
    - ncclTopoNetState**
    - char*
    - ncclTopoNetState*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1318
      start: 1299
    functionDepth: 1
    functionLinenumber: 1299
    functionLinenumberEnd: 1318
    functionName: ncclTopoGetSharedState
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 0
    functionsReached:
    - INFO
    - WARN
    - strcmp
    - strdup
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoGetSharedState(ncclTopoNetState** state, const
      char* name, ncclTopoNetState* states)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1328,1
    - Dst: xmlAlloc
      Src: /src/nccl/src/graph/topo.cc:1328,1
    - Dst: ncclGetEnv
      Src: /src/nccl/src/graph/topo.cc:1329,1
    - Dst: INFO
      Src: /src/nccl/src/graph/topo.cc:1331,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/topo.cc:1332,1
    - Dst: ncclTopoGetXmlFromFile
      Src: /src/nccl/src/graph/topo.cc:1332,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/topo.cc:1335,1
    - Dst: ncclTopoGetXmlFromFile
      Src: /src/nccl/src/graph/topo.cc:1335,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/topo.cc:1341,1
    - Dst: xmlFindTag
      Src: /src/nccl/src/graph/topo.cc:1341,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/topo.cc:1343,1
    - Dst: xmlSetAttrLong
      Src: /src/nccl/src/graph/topo.cc:1343,1
    - Dst: getHostHash
      Src: /src/nccl/src/graph/topo.cc:1343,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/topo.cc:1344,1
    - Dst: xmlFindNextTag
      Src: /src/nccl/src/graph/topo.cc:1344,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/topo.cc:1349,1
    - Dst: xmlAddNode
      Src: /src/nccl/src/graph/topo.cc:1349,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/topo.cc:1350,1
    - Dst: xmlSetAttrInt
      Src: /src/nccl/src/graph/topo.cc:1350,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/topo.cc:1353,1
    - Dst: ncclTopoRefreshBcmP2pLinks
      Src: /src/nccl/src/graph/topo.cc:1353,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/topo.cc:1357,1
    - Dst: int64ToBusId
      Src: /src/nccl/src/graph/topo.cc:1357,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/topo.cc:1358,1
    - Dst: ncclTopoFillGpu
      Src: /src/nccl/src/graph/topo.cc:1358,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/topo.cc:1360,1
    - Dst: xmlSetAttrInt
      Src: /src/nccl/src/graph/topo.cc:1360,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/topo.cc:1361,1
    - Dst: xmlSetAttrInt
      Src: /src/nccl/src/graph/topo.cc:1361,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/topo.cc:1362,1
    - Dst: xmlInitAttrInt
      Src: /src/nccl/src/graph/topo.cc:1362,1
    - Dst: pthread_mutex_lock
      Src: /src/nccl/src/graph/topo.cc:1367,1
    - Dst: INFO
      Src: /src/nccl/src/graph/topo.cc:1369,1
    - Dst: collNetSupport
      Src: /src/nccl/src/graph/topo.cc:1372,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/topo.cc:1373,1
    - Dst: ncclTopoGetSharedState
      Src: /src/nccl/src/graph/topo.cc:1373,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/topo.cc:1374,1
    - Dst: ncclTopoProcessNet
      Src: /src/nccl/src/graph/topo.cc:1374,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/topo.cc:1377,1
    - Dst: ncclTopoGetSharedState
      Src: /src/nccl/src/graph/topo.cc:1377,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/topo.cc:1378,1
    - Dst: ncclTopoProcessNet
      Src: /src/nccl/src/graph/topo.cc:1378,1
    - Dst: pthread_mutex_unlock
      Src: /src/nccl/src/graph/topo.cc:1380,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/topo.cc:1384,1
    - Dst: ncclTopoTrimXml
      Src: /src/nccl/src/graph/topo.cc:1384,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/topo.cc:1394,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/graph/topo.cc:1394,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/topo.cc:1403,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/graph/topo.cc:1403,1
    - Dst: xmlMemSize
      Src: /src/nccl/src/graph/topo.cc:1403,1
    - Dst: xmlMemSize
      Src: /src/nccl/src/graph/topo.cc:1404,1
    - Dst: memcpy
      Src: /src/nccl/src/graph/topo.cc:1405,1
    - Dst: xmlMemSize
      Src: /src/nccl/src/graph/topo.cc:1405,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/topo.cc:1406,1
    - Dst: ncclTopoConvertXml
      Src: /src/nccl/src/graph/topo.cc:1406,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/topo.cc:1409,1
    - Dst: bootstrapIntraNodeAllGather
      Src: /src/nccl/src/graph/topo.cc:1409,1
    - Dst: xmlMemSize
      Src: /src/nccl/src/graph/topo.cc:1409,1
    - Dst: free
      Src: /src/nccl/src/graph/topo.cc:1412,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/topo.cc:1414,1
    - Dst: xmlAlloc
      Src: /src/nccl/src/graph/topo.cc:1414,1
    - Dst: xmlMemSize
      Src: /src/nccl/src/graph/topo.cc:1420,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/topo.cc:1421,1
    - Dst: ncclTopoConvertXml
      Src: /src/nccl/src/graph/topo.cc:1421,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/topo.cc:1422,1
    - Dst: ncclTopoFuseXml
      Src: /src/nccl/src/graph/topo.cc:1422,1
    - Dst: ncclParamTopoDumpFileRank
      Src: /src/nccl/src/graph/topo.cc:1425,1
    - Dst: INFO
      Src: /src/nccl/src/graph/topo.cc:1426,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/topo.cc:1427,1
    - Dst: ncclTopoDumpXmlToFile
      Src: /src/nccl/src/graph/topo.cc:1427,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/topo.cc:1431,1
    - Dst: ncclTopoGetSystemFromXml
      Src: /src/nccl/src/graph/topo.cc:1431,1
    - Dst: getHostHash
      Src: /src/nccl/src/graph/topo.cc:1431,1
    - Dst: free
      Src: /src/nccl/src/graph/topo.cc:1434,1
    - Dst: free
      Src: /src/nccl/src/graph/topo.cc:1435,1
    - Dst: free
      Src: /src/nccl/src/graph/topo.cc:1436,1
    - Dst: pthread_mutex_unlock
      Src: /src/nccl/src/graph/topo.cc:1439,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 88
    argCount: 3
    argNames:
    - comm
    - system
    - dumpXmlFile
    argTypes:
    - struct ncclComm*
    - struct ncclTopoSystem**
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1441
      start: 1320
    functionDepth: 7
    functionLinenumber: 1320
    functionLinenumberEnd: 1441
    functionName: ncclTopoGetSystem
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 1
    functionsReached:
    - xmlFindTag
    - xmlFindNextTag
    - xmlSetAttrLong
    - int64ToBusId
    - pthread_mutex_lock
    - ncclTopoGetXmlFromFile
    - INFO
    - ncclTopoTrimXml
    - ncclTopoFuseXml
    - ncclTopoFillGpu
    - xmlAddNode
    - pthread_mutex_unlock
    - xmlMemSize
    - getHostHash
    - xmlSetAttrInt
    - collNetSupport
    - ncclTopoDumpXmlToFile
    - ncclTopoGetSystemFromXml
    - ncclParamTopoDumpFileRank
    - ncclTopoRefreshBcmP2pLinks
    - xmlInitAttrInt
    - bootstrapIntraNodeAllGather
    - ncclTopoGetSharedState
    - NCCLCHECKGOTO
    - memcpy
    - free
    - ncclGetEnv
    - ncclTopoProcessNet
    - xmlAlloc
    - ncclCalloc
    - ncclTopoConvertXml
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoGetSystem(struct ncclComm* comm, struct ncclTopoSystem**
      system, const char* dumpXmlFile)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/graph/topo.cc:1459,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 7
    argNames:
    - system
    - type
    - index
    - resultType
    - locals
    - localCount
    - pathType
    argTypes:
    - struct ncclTopoSystem*
    - int
    - int
    - int
    - int[]
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1469
      start: 1443
    functionDepth: 1
    functionLinenumber: 1443
    functionLinenumberEnd: 1469
    functionName: ncclTopoGetLocal
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 0
    functionsReached:
    - WARN
    linkageType: ''
    returnType: ncclResult_t
    signature: "ncclResult_t ncclTopoGetLocal(struct ncclTopoSystem* system, int type,
      int index, int resultType,\n                                     int locals[NCCL_TOPO_MAX_NODES],
      int* localCount, int* pathType)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1485,1
    - Dst: ncclTopoGetLocal
      Src: /src/nccl/src/graph/topo.cc:1485,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - system
    - gpu
    - count
    argTypes:
    - struct ncclTopoSystem*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1492
      start: 1471
    functionDepth: 2
    functionLinenumber: 1471
    functionLinenumberEnd: 1492
    functionName: getLocalNetCountByBw
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 1
    functionsReached:
    - ncclTopoGetLocal
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t getLocalNetCountByBw(struct ncclTopoSystem* system, int
      gpu, int *count)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1496,1
    - Dst: ncclTopoRankToIndex
      Src: /src/nccl/src/graph/topo.cc:1496,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1500,1
    - Dst: ncclTopoGetLocal
      Src: /src/nccl/src/graph/topo.cc:1500,1
    - Dst: WARN
      Src: /src/nccl/src/graph/topo.cc:1502,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1508,1
    - Dst: ncclTopoGetLocal
      Src: /src/nccl/src/graph/topo.cc:1508,1
    - Dst: isPow2
      Src: /src/nccl/src/graph/topo.cc:1511,1
    - Dst: mirrorBits
      Src: /src/nccl/src/graph/topo.cc:1511,1
    - Dst: DIVUP
      Src: /src/nccl/src/graph/topo.cc:1512,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 5
    argNames:
    - system
    - rank
    - channelId
    - id
    - dev
    argTypes:
    - struct ncclTopoSystem*
    - int
    - int
    - int64_t*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1516
      start: 1494
    functionDepth: 2
    functionLinenumber: 1494
    functionLinenumberEnd: 1516
    functionName: ncclTopoGetLocalNet
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 0
    functionsReached:
    - WARN
    - ncclTopoRankToIndex
    - mirrorBits
    - isPow2
    - DIVUP
    - ncclTopoGetLocal
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoGetLocalNet(struct ncclTopoSystem* system, int
      rank, int channelId, int64_t* id, int* dev)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1521,1
    - Dst: ncclTopoIdToIndex
      Src: /src/nccl/src/graph/topo.cc:1521,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1525,1
    - Dst: ncclTopoGetLocal
      Src: /src/nccl/src/graph/topo.cc:1525,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1533,1
    - Dst: ncclTopoGetLocalNet
      Src: /src/nccl/src/graph/topo.cc:1533,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - system
    - netId
    - gpuIndex
    argTypes:
    - struct ncclTopoSystem*
    - int64_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1543
      start: 1518
    functionDepth: 3
    functionLinenumber: 1518
    functionLinenumberEnd: 1543
    functionName: ncclTopoGetLocalGpu
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 1
    functionsReached:
    - ncclTopoIdToIndex
    - ncclTopoGetLocalNet
    - NCCLCHECK
    - ncclTopoGetLocal
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoGetLocalGpu(struct ncclTopoSystem* system, int64_t
      netId, int* gpuIndex)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - system
    - arch
    - vendor
    - model
    argTypes:
    - struct ncclTopoSystem*
    - int*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1554
      start: 1549
    functionDepth: 0
    functionLinenumber: 1549
    functionLinenumberEnd: 1554
    functionName: ncclTopoCpuType
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoCpuType(struct ncclTopoSystem* system, int* arch,
      int* vendor, int* model)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1561,1
    - Dst: ncclTopoRankToIndex
      Src: /src/nccl/src/graph/topo.cc:1561,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/topo.cc:1562,1
    - Dst: ncclGetLocalCpu
      Src: /src/nccl/src/graph/topo.cc:1562,1
    - Dst: SYSCHECK
      Src: /src/nccl/src/graph/topo.cc:1568,1
    - Dst: sched_getaffinity
      Src: /src/nccl/src/graph/topo.cc:1568,1
    - Dst: TRACE
      Src: /src/nccl/src/graph/topo.cc:1573,1
    - Dst: ncclCpusetToRangeStr
      Src: /src/nccl/src/graph/topo.cc:1574,1
    - Dst: TRACE
      Src: /src/nccl/src/graph/topo.cc:1584,1
    - Dst: ncclCpusetToRangeStr
      Src: /src/nccl/src/graph/topo.cc:1585,1
    - Dst: ncclParamIgnoreCpuAffinity
      Src: /src/nccl/src/graph/topo.cc:1590,1
    - Dst: CPU_AND
      Src: /src/nccl/src/graph/topo.cc:1595,1
    - Dst: memcpy
      Src: /src/nccl/src/graph/topo.cc:1597,1
    - Dst: CPU_COUNT
      Src: /src/nccl/src/graph/topo.cc:1600,1
    - Dst: INFO
      Src: /src/nccl/src/graph/topo.cc:1602,1
    - Dst: ncclCpusetToRangeStr
      Src: /src/nccl/src/graph/topo.cc:1603,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 3
    argNames:
    - system
    - rank
    - affinity
    argTypes:
    - struct ncclTopoSystem*
    - int
    - cpu_set_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1606
      start: 1558
    functionDepth: 2
    functionLinenumber: 1558
    functionLinenumberEnd: 1606
    functionName: ncclTopoGetCpuAffinity
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 1
    functionsReached:
    - INFO
    - TRACE
    - ncclTopoRankToIndex
    - memcpy
    - CPU_COUNT
    - CPU_AND
    - sched_getaffinity
    - ncclParamIgnoreCpuAffinity
    - SYSCHECK
    - ncclGetLocalCpu
    - ncclCpusetToRangeStr
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoGetCpuAffinity(struct ncclTopoSystem* system,
      int rank, cpu_set_t* affinity)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - system
    - count
    argTypes:
    - struct ncclTopoSystem*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1611
      start: 1608
    functionDepth: 0
    functionLinenumber: 1608
    functionLinenumberEnd: 1611
    functionName: ncclTopoGetGpuCount
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoGetGpuCount(struct ncclTopoSystem* system, int*
      count)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - system
    - count
    argTypes:
    - struct ncclTopoSystem*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1616
      start: 1613
    functionDepth: 0
    functionLinenumber: 1613
    functionLinenumberEnd: 1616
    functionName: ncclTopoGetNetCount
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoGetNetCount(struct ncclTopoSystem* system, int*
      count)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - system
    - count
    argTypes:
    - struct ncclTopoSystem*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1621
      start: 1618
    functionDepth: 0
    functionLinenumber: 1618
    functionLinenumberEnd: 1621
    functionName: ncclTopoGetNvsCount
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoGetNvsCount(struct ncclTopoSystem* system, int*
      count)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/nccl/src/graph/topo.cc:1628,1
    - Dst: std::max
      Src: /src/nccl/src/graph/topo.cc:1629,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - system
    - ccMin
    - ccMax
    argTypes:
    - struct ncclTopoSystem*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1634
      start: 1623
    functionDepth: 1
    functionLinenumber: 1623
    functionLinenumberEnd: 1634
    functionName: ncclTopoGetCompCap
    functionSourceFile: /src/nccl/src/graph/topo.cc
    functionUses: 0
    functionsReached:
    - min
    - std::max
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoGetCompCap(struct ncclTopoSystem* system, int*
      ccMin, int* ccMax)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - maxNodes
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 70
    functionName: xmlMemSize
    functionSourceFile: /src/nccl/src/graph/xml.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t xmlMemSize(int maxNodes)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.h:73,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/graph/xml.h:73,1
    - Dst: xmlMemSize
      Src: /src/nccl/src/graph/xml.h:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - xml
    - maxNodes
    argTypes:
    - struct ncclXml**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 77
    functionName: xmlAlloc
    functionSourceFile: /src/nccl/src/graph/xml.h
    functionUses: 1
    functionsReached:
    - ncclCalloc
    - xmlMemSize
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t xmlAlloc(struct ncclXml** xml, int maxNodes)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/nccl/src/graph/xml.h:83,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - node
    - attrName
    - index
    argTypes:
    - struct ncclXmlNode*
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 89
    functionName: xmlGetAttrIndex
    functionSourceFile: /src/nccl/src/graph/xml.h
    functionUses: 8
    functionsReached:
    - strncmp
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t xmlGetAttrIndex(struct ncclXmlNode* node, const char*
      attrName, int* index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.h:93,1
    - Dst: xmlGetAttrIndex
      Src: /src/nccl/src/graph/xml.h:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - node
    - attrName
    - value
    argTypes:
    - struct ncclXmlNode*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 96
    functionName: xmlGetAttr
    functionSourceFile: /src/nccl/src/graph/xml.h
    functionUses: 16
    functionsReached:
    - xmlGetAttrIndex
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t xmlGetAttr(struct ncclXmlNode* node, const char* attrName,
      const char** value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.h:99,1
    - Dst: xmlGetAttr
      Src: /src/nccl/src/graph/xml.h:99,1
    - Dst: WARN
      Src: /src/nccl/src/graph/xml.h:101,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - node
    - attrName
    - value
    argTypes:
    - struct ncclXmlNode*
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 98
    functionDepth: 2
    functionLinenumber: 98
    functionLinenumberEnd: 105
    functionName: xmlGetAttrStr
    functionSourceFile: /src/nccl/src/graph/xml.h
    functionUses: 8
    functionsReached:
    - WARN
    - xmlGetAttr
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t xmlGetAttrStr(struct ncclXmlNode* node, const char* attrName,
      const char** value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.h:108,1
    - Dst: xmlGetAttrStr
      Src: /src/nccl/src/graph/xml.h:108,1
    - Dst: strtol
      Src: /src/nccl/src/graph/xml.h:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - node
    - attrName
    - value
    argTypes:
    - struct ncclXmlNode*
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 106
    functionDepth: 3
    functionLinenumber: 106
    functionLinenumberEnd: 111
    functionName: xmlGetAttrInt
    functionSourceFile: /src/nccl/src/graph/xml.h
    functionUses: 9
    functionsReached:
    - strtol
    - NCCLCHECK
    - xmlGetAttrStr
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t xmlGetAttrInt(struct ncclXmlNode* node, const char* attrName,
      int* value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.h:115,1
    - Dst: xmlGetAttr
      Src: /src/nccl/src/graph/xml.h:115,1
    - Dst: strtol
      Src: /src/nccl/src/graph/xml.h:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - node
    - attrName
    - value
    - defaultValue
    argTypes:
    - struct ncclXmlNode*
    - char*
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 113
    functionDepth: 2
    functionLinenumber: 113
    functionLinenumberEnd: 118
    functionName: xmlGetAttrIntDefault
    functionSourceFile: /src/nccl/src/graph/xml.h
    functionUses: 2
    functionsReached:
    - strtol
    - xmlGetAttr
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t xmlGetAttrIntDefault(struct ncclXmlNode* node, const char*
      attrName, int* value, int defaultValue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.h:122,1
    - Dst: xmlGetAttrStr
      Src: /src/nccl/src/graph/xml.h:122,1
    - Dst: strtoull
      Src: /src/nccl/src/graph/xml.h:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - node
    - attrName
    - value
    argTypes:
    - struct ncclXmlNode*
    - char*
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 120
    functionDepth: 3
    functionLinenumber: 120
    functionLinenumberEnd: 125
    functionName: xmlGetAttrUint64
    functionSourceFile: /src/nccl/src/graph/xml.h
    functionUses: 0
    functionsReached:
    - strtoull
    - NCCLCHECK
    - xmlGetAttrStr
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t xmlGetAttrUint64(struct ncclXmlNode* node, const char*
      attrName, uint64_t* value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.h:129,1
    - Dst: xmlGetAttrStr
      Src: /src/nccl/src/graph/xml.h:129,1
    - Dst: strtol
      Src: /src/nccl/src/graph/xml.h:130,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - node
    - attrName
    - value
    argTypes:
    - struct ncclXmlNode*
    - char*
    - int64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 127
    functionDepth: 3
    functionLinenumber: 127
    functionLinenumberEnd: 132
    functionName: xmlGetAttrLong
    functionSourceFile: /src/nccl/src/graph/xml.h
    functionUses: 0
    functionsReached:
    - strtol
    - NCCLCHECK
    - xmlGetAttrStr
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t xmlGetAttrLong(struct ncclXmlNode* node, const char* attrName,
      int64_t* value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.h:136,1
    - Dst: xmlGetAttrStr
      Src: /src/nccl/src/graph/xml.h:136,1
    - Dst: strtof
      Src: /src/nccl/src/graph/xml.h:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - node
    - attrName
    - value
    argTypes:
    - struct ncclXmlNode*
    - char*
    - float*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 134
    functionDepth: 3
    functionLinenumber: 134
    functionLinenumberEnd: 139
    functionName: xmlGetAttrFloat
    functionSourceFile: /src/nccl/src/graph/xml.h
    functionUses: 1
    functionsReached:
    - strtof
    - NCCLCHECK
    - xmlGetAttrStr
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t xmlGetAttrFloat(struct ncclXmlNode* node, const char*
      attrName, float* value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.h:143,1
    - Dst: xmlGetAttr
      Src: /src/nccl/src/graph/xml.h:143,1
    - Dst: strtof
      Src: /src/nccl/src/graph/xml.h:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - node
    - attrName
    - value
    - defaultValue
    argTypes:
    - struct ncclXmlNode*
    - char*
    - float*
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 141
    functionDepth: 2
    functionLinenumber: 141
    functionLinenumberEnd: 146
    functionName: xmlGetAttrFloatDefault
    functionSourceFile: /src/nccl/src/graph/xml.h
    functionUses: 0
    functionsReached:
    - strtof
    - xmlGetAttr
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t xmlGetAttrFloatDefault(struct ncclXmlNode* node, const
      char* attrName, float* value, float defaultValue)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/nccl/src/graph/xml.h:152,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - xml
    - tagName
    - node
    argTypes:
    - struct ncclXml*
    - char*
    - struct ncclXmlNode**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 158
    functionName: xmlFindTag
    functionSourceFile: /src/nccl/src/graph/xml.h
    functionUses: 5
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t xmlFindTag(struct ncclXml* xml, const char* tagName, struct
      ncclXmlNode** node)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/nccl/src/graph/xml.h:164,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - xml
    - tagName
    - prev
    - node
    argTypes:
    - struct ncclXml*
    - char*
    - struct ncclXmlNode*
    - struct ncclXmlNode**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 170
    functionName: xmlFindNextTag
    functionSourceFile: /src/nccl/src/graph/xml.h
    functionUses: 1
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t xmlFindNextTag(struct ncclXml* xml, const char* tagName,
      struct ncclXmlNode* prev, struct ncclXmlNode** node)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/nccl/src/graph/xml.h:176,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.h:178,1
    - Dst: xmlGetAttr
      Src: /src/nccl/src/graph/xml.h:178,1
    - Dst: strcmp
      Src: /src/nccl/src/graph/xml.h:179,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 5
    argNames:
    - xml
    - tagName
    - node
    - attrName
    - attrValue
    argTypes:
    - struct ncclXml*
    - char*
    - struct ncclXmlNode**
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 172
    functionDepth: 2
    functionLinenumber: 172
    functionLinenumberEnd: 186
    functionName: xmlFindTagKv
    functionSourceFile: /src/nccl/src/graph/xml.h
    functionUses: 7
    functionsReached:
    - xmlGetAttr
    - strcmp
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t xmlFindTagKv(struct ncclXml* xml, const char* tagName,
      struct ncclXmlNode** node, const char* attrName, const char* attrValue)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/nccl/src/graph/xml.h:193,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.h:198,1
    - Dst: xmlGetAttr
      Src: /src/nccl/src/graph/xml.h:198,1
    - Dst: strcmp
      Src: /src/nccl/src/graph/xml.h:199,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 16
    argCount: 3
    argNames:
    - parentNode
    - searchNode
    - node
    argTypes:
    - struct ncclXmlNode*
    - struct ncclXmlNode*
    - struct ncclXmlNode**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 188
    functionDepth: 2
    functionLinenumber: 188
    functionLinenumberEnd: 209
    functionName: xmlFindNode
    functionSourceFile: /src/nccl/src/graph/xml.h
    functionUses: 1
    functionsReached:
    - xmlGetAttr
    - strcmp
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t xmlFindNode(struct ncclXmlNode* parentNode, struct ncclXmlNode*
      searchNode, struct ncclXmlNode** node)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.h:213,1
    - Dst: xmlGetAttrIndex
      Src: /src/nccl/src/graph/xml.h:213,1
    - Dst: strncpy
      Src: /src/nccl/src/graph/xml.h:216,1
    - Dst: strncpy
      Src: /src/nccl/src/graph/xml.h:219,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - node
    - attrName
    - value
    argTypes:
    - struct ncclXmlNode*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 222
    functionName: xmlSetAttr
    functionSourceFile: /src/nccl/src/graph/xml.h
    functionUses: 8
    functionsReached:
    - strncpy
    - xmlGetAttrIndex
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t xmlSetAttr(struct ncclXmlNode* node, const char* attrName,
      const char* value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/nccl/src/graph/xml.h:228,1
    - Dst: strlen
      Src: /src/nccl/src/graph/xml.h:230,1
    - Dst: snprintf
      Src: /src/nccl/src/graph/xml.h:231,1
    - Dst: strlen
      Src: /src/nccl/src/graph/xml.h:233,1
    - Dst: snprintf
      Src: /src/nccl/src/graph/xml.h:234,1
    - Dst: INFO
      Src: /src/nccl/src/graph/xml.h:235,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - node
    - name
    argTypes:
    - struct ncclXmlNode*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 224
    functionDepth: 0
    functionLinenumber: 224
    functionLinenumberEnd: 239
    functionName: xmlPrintNodeRecursive
    functionSourceFile: /src/nccl/src/graph/xml.h
    functionUses: 0
    functionsReached:
    - INFO
    - strlen
    - snprintf
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t xmlPrintNodeRecursive(struct ncclXmlNode* node, const
      char* name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.h:244,1
    - Dst: xmlGetAttrIndex
      Src: /src/nccl/src/graph/xml.h:244,1
    - Dst: strncpy
      Src: /src/nccl/src/graph/xml.h:247,1
    - Dst: strncpy
      Src: /src/nccl/src/graph/xml.h:249,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 3
    argNames:
    - node
    - attrName
    - value
    argTypes:
    - struct ncclXmlNode*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 252
    functionName: xmlSetAttrIfUnset
    functionSourceFile: /src/nccl/src/graph/xml.h
    functionUses: 2
    functionsReached:
    - strncpy
    - xmlGetAttrIndex
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t xmlSetAttrIfUnset(struct ncclXmlNode* node, const char*
      attrName, const char* value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.h:256,1
    - Dst: xmlGetAttrIndex
      Src: /src/nccl/src/graph/xml.h:256,1
    - Dst: strncpy
      Src: /src/nccl/src/graph/xml.h:259,1
    - Dst: snprintf
      Src: /src/nccl/src/graph/xml.h:262,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - node
    - attrName
    - value
    argTypes:
    - struct ncclXmlNode*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 254
    functionDepth: 1
    functionLinenumber: 254
    functionLinenumberEnd: 264
    functionName: xmlSetAttrInt
    functionSourceFile: /src/nccl/src/graph/xml.h
    functionUses: 6
    functionsReached:
    - strncpy
    - xmlGetAttrIndex
    - NCCLCHECK
    - snprintf
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t xmlSetAttrInt(struct ncclXmlNode* node, const char* attrName,
      const int value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.h:268,1
    - Dst: xmlGetAttrIndex
      Src: /src/nccl/src/graph/xml.h:268,1
    - Dst: strncpy
      Src: /src/nccl/src/graph/xml.h:271,1
    - Dst: snprintf
      Src: /src/nccl/src/graph/xml.h:274,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - node
    - attrName
    - value
    argTypes:
    - struct ncclXmlNode*
    - char*
    - float
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 266
    functionDepth: 1
    functionLinenumber: 266
    functionLinenumberEnd: 276
    functionName: xmlSetAttrFloat
    functionSourceFile: /src/nccl/src/graph/xml.h
    functionUses: 0
    functionsReached:
    - strncpy
    - xmlGetAttrIndex
    - NCCLCHECK
    - snprintf
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t xmlSetAttrFloat(struct ncclXmlNode* node, const char*
      attrName, const float value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.h:280,1
    - Dst: xmlGetAttrIndex
      Src: /src/nccl/src/graph/xml.h:280,1
    - Dst: strncpy
      Src: /src/nccl/src/graph/xml.h:283,1
    - Dst: snprintf
      Src: /src/nccl/src/graph/xml.h:286,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - node
    - attrName
    - value
    argTypes:
    - struct ncclXmlNode*
    - char*
    - int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 278
    functionDepth: 1
    functionLinenumber: 278
    functionLinenumberEnd: 288
    functionName: xmlSetAttrLong
    functionSourceFile: /src/nccl/src/graph/xml.h
    functionUses: 2
    functionsReached:
    - strncpy
    - xmlGetAttrIndex
    - NCCLCHECK
    - snprintf
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t xmlSetAttrLong(struct ncclXmlNode* node, const char* attrName,
      const int64_t value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.h:292,1
    - Dst: xmlGetAttrIndex
      Src: /src/nccl/src/graph/xml.h:292,1
    - Dst: strcpy
      Src: /src/nccl/src/graph/xml.h:295,1
    - Dst: strcpy
      Src: /src/nccl/src/graph/xml.h:296,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - node
    - attrName
    argTypes:
    - struct ncclXmlNode*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 290
    functionDepth: 1
    functionLinenumber: 290
    functionLinenumberEnd: 300
    functionName: xmlUnsetAttr
    functionSourceFile: /src/nccl/src/graph/xml.h
    functionUses: 1
    functionsReached:
    - xmlGetAttrIndex
    - strcpy
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t xmlUnsetAttr(struct ncclXmlNode* node, const char* attrName)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/nccl/src/graph/xml.h:305,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - node
    - subName
    - sub
    argTypes:
    - struct ncclXmlNode*
    - char*
    - struct ncclXmlNode**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 311
    functionName: xmlGetSub
    functionSourceFile: /src/nccl/src/graph/xml.h
    functionUses: 3
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t xmlGetSub(struct ncclXmlNode* node, const char* subName,
      struct ncclXmlNode** sub)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/nccl/src/graph/xml.h:317,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.h:319,1
    - Dst: xmlGetAttr
      Src: /src/nccl/src/graph/xml.h:319,1
    - Dst: strcmp
      Src: /src/nccl/src/graph/xml.h:320,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 5
    argNames:
    - node
    - subName
    - sub
    - attrName
    - attrValue
    argTypes:
    - struct ncclXmlNode*
    - char*
    - struct ncclXmlNode**
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 313
    functionDepth: 2
    functionLinenumber: 313
    functionLinenumberEnd: 327
    functionName: xmlGetSubKv
    functionSourceFile: /src/nccl/src/graph/xml.h
    functionUses: 2
    functionsReached:
    - xmlGetAttr
    - strcmp
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t xmlGetSubKv(struct ncclXmlNode* node, const char* subName,
      struct ncclXmlNode** sub, const char* attrName, const char* attrValue)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/nccl/src/graph/xml.h:330,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.h:331,1
    - Dst: xmlGetSubKv
      Src: /src/nccl/src/graph/xml.h:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 5
    argNames:
    - node
    - subName
    - sub
    - attrName
    - attrValue
    argTypes:
    - struct ncclXmlNode*
    - char*
    - struct ncclXmlNode**
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 328
    functionDepth: 3
    functionLinenumber: 328
    functionLinenumberEnd: 333
    functionName: xmlGetSubKvInt
    functionSourceFile: /src/nccl/src/graph/xml.h
    functionUses: 0
    functionsReached:
    - xmlGetSubKv
    - NCCLCHECK
    - snprintf
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t xmlGetSubKvInt(struct ncclXmlNode* node, const char* subName,
      struct ncclXmlNode** sub, const char* attrName, const int attrValue)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/graph/xml.h:337,1
    - Dst: WARN
      Src: /src/nccl/src/graph/xml.h:347,1
    - Dst: strncpy
      Src: /src/nccl/src/graph/xml.h:352,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 4
    argNames:
    - xml
    - parent
    - subName
    - sub
    argTypes:
    - struct ncclXml*
    - struct ncclXmlNode*
    - char*
    - struct ncclXmlNode**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 335
    functionDepth: 1
    functionLinenumber: 335
    functionLinenumberEnd: 355
    functionName: xmlAddNode
    functionSourceFile: /src/nccl/src/graph/xml.h
    functionUses: 6
    functionsReached:
    - WARN
    - strncpy
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t xmlAddNode(struct ncclXml* xml, struct ncclXmlNode* parent,
      const char* subName, struct ncclXmlNode** sub)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - node
    argTypes:
    - struct ncclXmlNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 357
    functionDepth: 0
    functionLinenumber: 357
    functionLinenumberEnd: 368
    functionName: xmlRemoveNode
    functionSourceFile: /src/nccl/src/graph/xml.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t xmlRemoveNode(struct ncclXmlNode* node)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/graph/xml.h:372,1
    - Dst: WARN
      Src: /src/nccl/src/graph/xml.h:380,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/xml.h:388,1
    - Dst: xmlAddTree
      Src: /src/nccl/src/graph/xml.h:388,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - dst
    - parent
    - srcNode
    argTypes:
    - struct ncclXml*
    - struct ncclXmlNode*
    - struct ncclXmlNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 370
    functionDepth: 1
    functionLinenumber: 370
    functionLinenumberEnd: 390
    functionName: xmlAddTree
    functionSourceFile: /src/nccl/src/graph/xml.h
    functionUses: 3
    functionsReached:
    - WARN
    - xmlAddTree
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t xmlAddTree(struct ncclXml* dst, struct ncclXmlNode* parent,
      struct ncclXmlNode* srcNode)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/nccl/src/graph/xml.h:403,1
    - Dst: strlen
      Src: /src/nccl/src/graph/xml.h:403,1
    - Dst: INFO
      Src: /src/nccl/src/graph/xml.h:409,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - str
    - value
    - dict
    argTypes:
    - char*
    - int*
    - struct kvDict*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 412
      start: 400
    functionDepth: 0
    functionLinenumber: 400
    functionLinenumberEnd: 412
    functionName: kvConvertToInt
    functionSourceFile: /src/nccl/src/graph/xml.h
    functionUses: 4
    functionsReached:
    - INFO
    - strncmp
    - strlen
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t kvConvertToInt(const char* str, int* value, struct kvDict*
      dict)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/graph/xml.h:422,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - value
    - str
    - dict
    argTypes:
    - int
    - char**
    - struct kvDict*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 413
    functionDepth: 1
    functionLinenumber: 413
    functionLinenumberEnd: 424
    functionName: kvConvertToStr
    functionSourceFile: /src/nccl/src/graph/xml.h
    functionUses: 0
    functionsReached:
    - WARN
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t kvConvertToStr(int value, const char** str, struct kvDict*
      dict)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nccl/src/graph/connect.cc:71,1
    - Dst: memcpy
      Src: /src/nccl/src/graph/connect.cc:88,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 54
    argCount: 3
    argNames:
    - comm
    - graphs
    - topoRanks
    argTypes:
    - struct ncclComm*
    - struct ncclTopoGraph**
    - struct ncclTopoRanks*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 91
    functionName: ncclTopoPreset
    functionSourceFile: /src/nccl/src/graph/connect.cc
    functionUses: 1
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoPreset(struct ncclComm* comm, struct ncclTopoGraph**
      graphs, struct ncclTopoRanks* topoRanks)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 5
    argNames:
    - comm
    - ringRecv
    - ringSend
    - ringPrev
    - ringNext
    argTypes:
    - struct ncclComm*
    - int*
    - int*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 111
    functionName: connectRings
    functionSourceFile: /src/nccl/src/graph/connect.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t connectRings(struct ncclComm* comm, int* ringRecv, int*
      ringSend, int* ringPrev, int* ringNext)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - ranks
    - indexes
    - nNodes
    argTypes:
    - int*
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 116
    functionName: getIndexes
    functionSourceFile: /src/nccl/src/graph/connect.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t getIndexes(int* ranks, int* indexes, int nNodes)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - tree
    - indexes
    - u
    argTypes:
    - struct ncclTree*
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 122
    functionName: setTreeUp
    functionSourceFile: /src/nccl/src/graph/connect.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t setTreeUp(struct ncclTree* tree, int* indexes, int u)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/graph/connect.cc:129,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - tree
    - indexes
    - d
    argTypes:
    - struct ncclTree*
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 134
    functionName: setTreeDown
    functionSourceFile: /src/nccl/src/graph/connect.cc
    functionUses: 0
    functionsReached:
    - WARN
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t setTreeDown(struct ncclTree* tree, int* indexes, int d)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: log2i
      Src: /src/nccl/src/graph/connect.cc:141,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/connect.cc:145,1
    - Dst: ncclGetDtree
      Src: /src/nccl/src/graph/connect.cc:145,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/connect.cc:153,1
    - Dst: setTreeUp
      Src: /src/nccl/src/graph/connect.cc:153,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/connect.cc:154,1
    - Dst: setTreeUp
      Src: /src/nccl/src/graph/connect.cc:154,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/connect.cc:157,1
    - Dst: setTreeDown
      Src: /src/nccl/src/graph/connect.cc:157,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/connect.cc:158,1
    - Dst: setTreeDown
      Src: /src/nccl/src/graph/connect.cc:158,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/connect.cc:161,1
    - Dst: setTreeDown
      Src: /src/nccl/src/graph/connect.cc:161,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/connect.cc:162,1
    - Dst: setTreeDown
      Src: /src/nccl/src/graph/connect.cc:162,1
    - Dst: INFO
      Src: /src/nccl/src/graph/connect.cc:167,1
    - Dst: INFO
      Src: /src/nccl/src/graph/connect.cc:168,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 5
    argNames:
    - comm
    - treeToParent
    - treeToChild0
    - treeToChild1
    - treePatterns
    argTypes:
    - struct ncclComm*
    - int*
    - int*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 136
    functionDepth: 2
    functionLinenumber: 136
    functionLinenumberEnd: 173
    functionName: connectTrees
    functionSourceFile: /src/nccl/src/graph/connect.cc
    functionUses: 0
    functionsReached:
    - INFO
    - ncclGetDtree
    - log2i
    - setTreeDown
    - setTreeUp
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t connectTrees(struct ncclComm* comm, int* treeToParent,
      int* treeToChild0, int* treeToChild1, int* treePatterns)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/connect.cc:180,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/graph/connect.cc:180,1
    - Dst: sprintf
      Src: /src/nccl/src/graph/connect.cc:193,1
    - Dst: sprintf
      Src: /src/nccl/src/graph/connect.cc:200,1
    - Dst: strlen
      Src: /src/nccl/src/graph/connect.cc:200,1
    - Dst: sprintf
      Src: /src/nccl/src/graph/connect.cc:204,1
    - Dst: strlen
      Src: /src/nccl/src/graph/connect.cc:204,1
    - Dst: sprintf
      Src: /src/nccl/src/graph/connect.cc:206,1
    - Dst: strlen
      Src: /src/nccl/src/graph/connect.cc:206,1
    - Dst: sprintf
      Src: /src/nccl/src/graph/connect.cc:212,1
    - Dst: strlen
      Src: /src/nccl/src/graph/connect.cc:212,1
    - Dst: sprintf
      Src: /src/nccl/src/graph/connect.cc:216,1
    - Dst: strlen
      Src: /src/nccl/src/graph/connect.cc:216,1
    - Dst: sprintf
      Src: /src/nccl/src/graph/connect.cc:218,1
    - Dst: strlen
      Src: /src/nccl/src/graph/connect.cc:218,1
    - Dst: sprintf
      Src: /src/nccl/src/graph/connect.cc:224,1
    - Dst: strlen
      Src: /src/nccl/src/graph/connect.cc:224,1
    - Dst: sprintf
      Src: /src/nccl/src/graph/connect.cc:232,1
    - Dst: strlen
      Src: /src/nccl/src/graph/connect.cc:232,1
    - Dst: sprintf
      Src: /src/nccl/src/graph/connect.cc:233,1
    - Dst: strlen
      Src: /src/nccl/src/graph/connect.cc:233,1
    - Dst: INFO
      Src: /src/nccl/src/graph/connect.cc:234,1
    - Dst: free
      Src: /src/nccl/src/graph/connect.cc:237,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 49
    argCount: 2
    argNames:
    - comm
    - collNetGraph
    argTypes:
    - struct ncclComm*
    - struct ncclTopoGraph*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 239
    functionName: connectCollNet
    functionSourceFile: /src/nccl/src/graph/connect.cc
    functionUses: 0
    functionsReached:
    - INFO
    - strlen
    - free
    - ncclCalloc
    - sprintf
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t connectCollNet(struct ncclComm* comm, struct ncclTopoGraph*
      collNetGraph)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/connect.cc:268,1
    - Dst: ncclGetDtree
      Src: /src/nccl/src/graph/connect.cc:268,1
    - Dst: sprintf
      Src: /src/nccl/src/graph/connect.cc:280,1
    - Dst: sprintf
      Src: /src/nccl/src/graph/connect.cc:283,1
    - Dst: strlen
      Src: /src/nccl/src/graph/connect.cc:283,1
    - Dst: INFO
      Src: /src/nccl/src/graph/connect.cc:285,1
    - Dst: INFO
      Src: /src/nccl/src/graph/connect.cc:315,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 57
    argCount: 3
    argNames:
    - comm
    - nvlsHeads
    - nHeads
    argTypes:
    - struct ncclComm*
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 319
    functionName: connectNvls
    functionSourceFile: /src/nccl/src/graph/connect.cc
    functionUses: 0
    functionsReached:
    - INFO
    - ncclGetDtree
    - strlen
    - sprintf
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t connectNvls(struct ncclComm* comm, int* nvlsHeads, int
      nHeads)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ncclParamMinNrings
      Src: /src/nccl/src/graph/connect.cc:330,1
    - Dst: ncclParamMinNrings
      Src: /src/nccl/src/graph/connect.cc:330,1
    - Dst: ncclParamMinNchannels
      Src: /src/nccl/src/graph/connect.cc:331,1
    - Dst: ncclParamMinNchannels
      Src: /src/nccl/src/graph/connect.cc:331,1
    - Dst: INFO
      Src: /src/nccl/src/graph/connect.cc:333,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 338
    functionName: ncclMinNchannels
    functionSourceFile: /src/nccl/src/graph/connect.cc
    functionUses: 0
    functionsReached:
    - ncclParamMinNrings
    - INFO
    - ncclParamMinNchannels
    linkageType: ''
    returnType: int
    signature: int ncclMinNchannels()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ncclParamMaxNrings
      Src: /src/nccl/src/graph/connect.cc:344,1
    - Dst: ncclParamMaxNrings
      Src: /src/nccl/src/graph/connect.cc:344,1
    - Dst: ncclParamMaxNchannels
      Src: /src/nccl/src/graph/connect.cc:345,1
    - Dst: ncclParamMaxNchannels
      Src: /src/nccl/src/graph/connect.cc:345,1
    - Dst: min
      Src: /src/nccl/src/graph/connect.cc:346,1
    - Dst: ncclDevMaxChannelsForArgsBytes
      Src: /src/nccl/src/graph/connect.cc:346,1
    - Dst: ncclParamWorkArgsBytes
      Src: /src/nccl/src/graph/connect.cc:346,1
    - Dst: INFO
      Src: /src/nccl/src/graph/connect.cc:349,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 342
    functionDepth: 2
    functionLinenumber: 342
    functionLinenumberEnd: 353
    functionName: ncclMaxNchannels
    functionSourceFile: /src/nccl/src/graph/connect.cc
    functionUses: 0
    functionsReached:
    - INFO
    - min
    - ncclParamWorkArgsBytes
    - ncclParamMaxNrings
    - ncclParamMaxNchannels
    - ncclDevMaxChannelsForArgsBytes
    linkageType: ''
    returnType: int
    signature: int ncclMaxNchannels()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nccl/src/graph/connect.cc:359,1
    - Dst: memcpy
      Src: /src/nccl/src/graph/connect.cc:360,1
    - Dst: memcpy
      Src: /src/nccl/src/graph/connect.cc:361,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - comm
    - start
    - end
    - ringPrev
    - ringNext
    argTypes:
    - struct ncclComm*
    - int
    - int
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 355
    functionDepth: 0
    functionLinenumber: 355
    functionLinenumberEnd: 364
    functionName: copyChannels
    functionSourceFile: /src/nccl/src/graph/connect.cc
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: int
    signature: int copyChannels(struct ncclComm* comm, int start, int end, int* ringPrev,
      int* ringNext)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - v0
    - v1
    argTypes:
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 370
    functionName: exchangeValues
    functionSourceFile: /src/nccl/src/graph/connect.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void exchangeValues(int* v0, int* v1)
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/connect.cc:383,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/graph/connect.cc:383,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/connect.cc:384,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/graph/connect.cc:384,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/connect.cc:385,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/graph/connect.cc:385,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/connect.cc:386,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/graph/connect.cc:386,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/connect.cc:387,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/graph/connect.cc:387,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/connect.cc:388,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/graph/connect.cc:388,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/connect.cc:389,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/graph/connect.cc:389,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/connect.cc:390,1
    - Dst: ncclCalloc
      Src: /src/nccl/src/graph/connect.cc:390,1
    - Dst: exchangeValues
      Src: /src/nccl/src/graph/connect.cc:398,1
    - Dst: exchangeValues
      Src: /src/nccl/src/graph/connect.cc:399,1
    - Dst: exchangeValues
      Src: /src/nccl/src/graph/connect.cc:400,1
    - Dst: exchangeValues
      Src: /src/nccl/src/graph/connect.cc:401,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/connect.cc:436,1
    - Dst: connectRings
      Src: /src/nccl/src/graph/connect.cc:436,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/connect.cc:437,1
    - Dst: connectTrees
      Src: /src/nccl/src/graph/connect.cc:437,1
    - Dst: memcpy
      Src: /src/nccl/src/graph/connect.cc:440,1
    - Dst: memcpy
      Src: /src/nccl/src/graph/connect.cc:441,1
    - Dst: min
      Src: /src/nccl/src/graph/connect.cc:452,1
    - Dst: min
      Src: /src/nccl/src/graph/connect.cc:459,1
    - Dst: copyChannels
      Src: /src/nccl/src/graph/connect.cc:460,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/connect.cc:462,1
    - Dst: connectCollNet
      Src: /src/nccl/src/graph/connect.cc:462,1
    - Dst: copyChannels
      Src: /src/nccl/src/graph/connect.cc:467,1
    - Dst: ncclParamUnpackDoubleNChannels
      Src: /src/nccl/src/graph/connect.cc:472,1
    - Dst: copyChannels
      Src: /src/nccl/src/graph/connect.cc:473,1
    - Dst: min
      Src: /src/nccl/src/graph/connect.cc:480,1
    - Dst: min
      Src: /src/nccl/src/graph/connect.cc:480,1
    - Dst: min
      Src: /src/nccl/src/graph/connect.cc:480,1
    - Dst: ncclMaxNchannels
      Src: /src/nccl/src/graph/connect.cc:480,1
    - Dst: copyChannels
      Src: /src/nccl/src/graph/connect.cc:481,1
    - Dst: min
      Src: /src/nccl/src/graph/connect.cc:481,1
    - Dst: std::max
      Src: /src/nccl/src/graph/connect.cc:481,1
    - Dst: ncclMinNchannels
      Src: /src/nccl/src/graph/connect.cc:481,1
    - Dst: min
      Src: /src/nccl/src/graph/connect.cc:483,1
    - Dst: min
      Src: /src/nccl/src/graph/connect.cc:483,1
    - Dst: ncclMaxNchannels
      Src: /src/nccl/src/graph/connect.cc:483,1
    - Dst: copyChannels
      Src: /src/nccl/src/graph/connect.cc:484,1
    - Dst: std::max
      Src: /src/nccl/src/graph/connect.cc:484,1
    - Dst: ncclMinNchannels
      Src: /src/nccl/src/graph/connect.cc:484,1
    - Dst: copyChannels
      Src: /src/nccl/src/graph/connect.cc:494,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/connect.cc:496,1
    - Dst: connectNvls
      Src: /src/nccl/src/graph/connect.cc:496,1
    - Dst: min
      Src: /src/nccl/src/graph/connect.cc:500,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/connect.cc:504,1
    - Dst: ncclBuildRings
      Src: /src/nccl/src/graph/connect.cc:504,1
    - Dst: free
      Src: /src/nccl/src/graph/connect.cc:507,1
    - Dst: free
      Src: /src/nccl/src/graph/connect.cc:508,1
    - Dst: free
      Src: /src/nccl/src/graph/connect.cc:509,1
    - Dst: free
      Src: /src/nccl/src/graph/connect.cc:510,1
    - Dst: free
      Src: /src/nccl/src/graph/connect.cc:511,1
    - Dst: free
      Src: /src/nccl/src/graph/connect.cc:512,1
    - Dst: free
      Src: /src/nccl/src/graph/connect.cc:513,1
    - Dst: free
      Src: /src/nccl/src/graph/connect.cc:514,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 107
    argCount: 7
    argNames:
    - comm
    - firstRanks
    - treePatterns
    - allTopoRanks
    - rings
    - graphs
    - parent
    argTypes:
    - struct ncclComm*
    - int*
    - int*
    - struct ncclTopoRanks**
    - int*
    - struct ncclTopoGraph**
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 374
    functionDepth: 3
    functionLinenumber: 374
    functionLinenumberEnd: 518
    functionName: ncclTopoPostset
    functionSourceFile: /src/nccl/src/graph/connect.cc
    functionUses: 1
    functionsReached:
    - min
    - NCCLCHECKGOTO
    - memcpy
    - connectRings
    - connectNvls
    - free
    - std::max
    - exchangeValues
    - connectCollNet
    - ncclMinNchannels
    - ncclCalloc
    - copyChannels
    - ncclBuildRings
    - ncclMaxNchannels
    - connectTrees
    - ncclParamUnpackDoubleNChannels
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoPostset(struct ncclComm* comm, int* firstRanks,
      int* treePatterns, struct ncclTopoRanks** allTopoRanks, int* rings, struct ncclTopoGraph**
      graphs, struct ncclComm* parent)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - r
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10
      start: 9
    functionDepth: 0
    functionLinenumber: 9
    functionLinenumberEnd: 10
    functionName: RANK_TO_INDEX
    functionSourceFile: /src/nccl/src/graph/trees.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RANK_TO_INDEX(r)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 6
    argNames:
    - nranks
    - rank
    - u
    - d0
    - d1
    - parentChildType
    argTypes:
    - int
    - int
    - int*
    - int*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 65
    functionName: ncclGetBtree
    functionSourceFile: /src/nccl/src/graph/trees.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGetBtree(int nranks, int rank, int* u, int* d0, int*
      d1, int* parentChildType)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncclGetBtree
      Src: /src/nccl/src/graph/trees.cc:90,1
    - Dst: ncclGetBtree
      Src: /src/nccl/src/graph/trees.cc:96,1
    - Dst: ncclGetBtree
      Src: /src/nccl/src/graph/trees.cc:103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 10
    argNames:
    - nranks
    - rank
    - s0
    - d0_0
    - d0_1
    - parentChildType0
    - s1
    - d1_0
    - d1_1
    - parentChildType1
    argTypes:
    - int
    - int
    - int*
    - int*
    - int*
    - int*
    - int*
    - int*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 109
    functionName: ncclGetDtree
    functionSourceFile: /src/nccl/src/graph/trees.cc
    functionUses: 2
    functionsReached:
    - ncclGetBtree
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclGetDtree(int nranks, int rank, int* s0, int* d0_0,
      int* d0_1, int* parentChildType0, int* s1, int* d1_0, int* d1_1, int* parentChildType1)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::max
      Src: /src/nccl/src/graph/search.cc:25,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 3
    argNames:
    - system
    - gpu
    - type
    argTypes:
    - struct ncclTopoSystem*
    - struct ncclTopoNode*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 28
      start: 19
    functionDepth: 0
    functionLinenumber: 19
    functionLinenumberEnd: 28
    functionName: getMaxBw
    functionSourceFile: /src/nccl/src/graph/search.cc
    functionUses: 0
    functionsReached:
    - std::max
    linkageType: ''
    returnType: float
    signature: float getMaxBw(struct ncclTopoSystem* system, struct ncclTopoNode*
      gpu, int type)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::max
      Src: /src/nccl/src/graph/search.cc:36,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - system
    - gpu
    argTypes:
    - struct ncclTopoSystem*
    - struct ncclTopoNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 37
    functionName: getTotalBw
    functionSourceFile: /src/nccl/src/graph/search.cc
    functionUses: 0
    functionsReached:
    - std::max
    linkageType: ''
    returnType: float
    signature: float getTotalBw(struct ncclTopoSystem* system, struct ncclTopoNode*
      gpu)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::max
      Src: /src/nccl/src/graph/search.cc:49,1
    - Dst: getMaxBw
      Src: /src/nccl/src/graph/search.cc:49,1
    - Dst: std::max
      Src: /src/nccl/src/graph/search.cc:50,1
    - Dst: getTotalBw
      Src: /src/nccl/src/graph/search.cc:50,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - system
    argTypes:
    - struct ncclTopoSystem*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 53
    functionName: ncclTopoSearchInit
    functionSourceFile: /src/nccl/src/graph/search.cc
    functionUses: 1
    functionsReached:
    - std::max
    - getMaxBw
    - getTotalBw
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoSearchInit(struct ncclTopoSystem* system)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - comm
    argTypes:
    - struct ncclComm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 62
    functionName: ncclTopoComputeCommCPU
    functionSourceFile: /src/nccl/src/graph/search.cc
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoComputeCommCPU(struct ncclComm* comm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/graph/search.cc:72,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - node1
    - node2
    - type
    - revLink
    argTypes:
    - struct ncclTopoNode*
    - struct ncclTopoNode*
    - int
    - struct ncclTopoLink**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 74
    functionName: findRevLink
    functionSourceFile: /src/nccl/src/graph/search.cc
    functionUses: 0
    functionsReached:
    - WARN
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t findRevLink(struct ncclTopoNode* node1, struct ncclTopoNode*
      node2, int type, struct ncclTopoLink** revLink)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    functionName: SUB_ROUND
    functionSourceFile: /src/nccl/src/graph/search.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SUB_ROUND(a, b)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: INTEL_P2P_OVERHEAD
      Src: /src/nccl/src/graph/search.cc:88,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:100,1
    - Dst: findRevLink
      Src: /src/nccl/src/graph/search.cc:100,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:104,1
    - Dst: findRevLink
      Src: /src/nccl/src/graph/search.cc:104,1
    - Dst: SUB_ROUND
      Src: /src/nccl/src/graph/search.cc:111,1
    - Dst: SUB_ROUND
      Src: /src/nccl/src/graph/search.cc:112,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 30
    argCount: 5
    argNames:
    - path
    - start
    - maxSteps
    - bw
    - steps
    argTypes:
    - struct ncclTopoLinkList*
    - struct ncclTopoNode*
    - int
    - float
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 79
    functionDepth: 2
    functionLinenumber: 79
    functionLinenumberEnd: 117
    functionName: followPath
    functionSourceFile: /src/nccl/src/graph/search.cc
    functionUses: 0
    functionsReached:
    - SUB_ROUND
    - findRevLink
    - INTEL_P2P_OVERHEAD
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t followPath(struct ncclTopoLinkList* path, struct ncclTopoNode*
      start, int maxSteps, float bw, int* steps)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/graph/search.cc:130,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:151,1
    - Dst: followPath
      Src: /src/nccl/src/graph/search.cc:151,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:161,1
    - Dst: followPath
      Src: /src/nccl/src/graph/search.cc:161,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 27
    argCount: 8
    argNames:
    - system
    - graph
    - type1
    - index1
    - type2
    - index2
    - mult
    - node
    argTypes:
    - struct ncclTopoSystem*
    - struct ncclTopoGraph*
    - int
    - int
    - int
    - int
    - float
    - struct ncclTopoNode**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 120
    functionDepth: 3
    functionLinenumber: 120
    functionLinenumberEnd: 163
    functionName: ncclTopoFollowPath
    functionSourceFile: /src/nccl/src/graph/search.cc
    functionUses: 0
    functionsReached:
    - WARN
    - followPath
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoFollowPath(struct ncclTopoSystem* system, struct
      ncclTopoGraph* graph, int type1, int index1, int type2, int index2, float mult,
      struct ncclTopoNode** node)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/nccl/src/graph/search.cc:173,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 1
    argNames:
    - gpu
    argTypes:
    - struct ncclTopoNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 177
    functionName: gpuPciBw
    functionSourceFile: /src/nccl/src/graph/search.cc
    functionUses: 0
    functionsReached:
    - min
    linkageType: ''
    returnType: int
    signature: int gpuPciBw(struct ncclTopoNode* gpu)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 2
    argNames:
    - g1
    - g2
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 201
    functionName: cmpScore
    functionSourceFile: /src/nccl/src/graph/search.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cmpScore(const void * g1, const void * g2)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - scores
    - count
    argTypes:
    - struct ncclGpuScore*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 210
    functionName: cmpIntraScores
    functionSourceFile: /src/nccl/src/graph/search.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cmpIntraScores(struct ncclGpuScore* scores, int count)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/graph/search.cc:219,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - system
    - rank
    - index
    argTypes:
    - struct ncclTopoSystem*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 221
    functionName: getGpuIndex
    functionSourceFile: /src/nccl/src/graph/search.cc
    functionUses: 0
    functionsReached:
    - WARN
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t getGpuIndex(struct ncclTopoSystem* system, int rank, int*
      index)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/graph/search.cc:230,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - system
    - id
    - index
    argTypes:
    - struct ncclTopoSystem*
    - int64_t
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 232
    functionName: getNetIndex
    functionSourceFile: /src/nccl/src/graph/search.cc
    functionUses: 0
    functionsReached:
    - WARN
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t getNetIndex(struct ncclTopoSystem* system, int64_t id,
      int* index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:237,1
    - Dst: getNetIndex
      Src: /src/nccl/src/graph/search.cc:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - system
    - graph
    - netPaths
    argTypes:
    - struct ncclTopoSystem*
    - struct ncclTopoGraph*
    - struct ncclTopoLinkList**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 234
    functionDepth: 2
    functionLinenumber: 234
    functionLinenumberEnd: 240
    functionName: getNetPaths
    functionSourceFile: /src/nccl/src/graph/search.cc
    functionUses: 0
    functionsReached:
    - getNetIndex
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t getNetPaths(struct ncclTopoSystem* system, struct ncclTopoGraph*
      graph, struct ncclTopoLinkList** netPaths)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:247,1
    - Dst: getNetPaths
      Src: /src/nccl/src/graph/search.cc:247,1
    - Dst: memset
      Src: /src/nccl/src/graph/search.cc:250,1
    - Dst: gpuPciBw
      Src: /src/nccl/src/graph/search.cc:263,1
    - Dst: qsort
      Src: /src/nccl/src/graph/search.cc:270,1
    - Dst: cmpIntraScores
      Src: /src/nccl/src/graph/search.cc:273,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 58
    argCount: 6
    argNames:
    - system
    - graph
    - gpu
    - next
    - countPtr
    - sortNet
    argTypes:
    - struct ncclTopoSystem*
    - struct ncclTopoGraph*
    - struct ncclTopoNode*
    - int*
    - int*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 242
    functionDepth: 3
    functionLinenumber: 242
    functionLinenumberEnd: 310
    functionName: ncclTopoSearchNextGpuSort
    functionSourceFile: /src/nccl/src/graph/search.cc
    functionUses: 0
    functionsReached:
    - qsort
    - gpuPciBw
    - getNetPaths
    - cmpIntraScores
    - NCCLCHECK
    - memset
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoSearchNextGpuSort(struct ncclTopoSystem* system,
      struct ncclTopoGraph* graph, struct ncclTopoNode* gpu, int* next, int* countPtr,
      int sortNet)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - system
    - graph
    - step
    - g
    argTypes:
    - struct ncclTopoSystem*
    - struct ncclTopoGraph*
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 333
    functionName: ncclTopoReplayGetGpu
    functionSourceFile: /src/nccl/src/graph/search.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoReplayGetGpu(struct ncclTopoSystem* system, struct
      ncclTopoGraph* graph, int step, int* g)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:340,1
    - Dst: ncclTopoFollowPath
      Src: /src/nccl/src/graph/search.cc:340,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:343,1
    - Dst: ncclTopoSearchRecGpu
      Src: /src/nccl/src/graph/search.cc:343,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:345,1
    - Dst: ncclTopoFollowPath
      Src: /src/nccl/src/graph/search.cc:345,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 11
    argNames:
    - system
    - graph
    - saveGraph
    - step
    - backToNet
    - backToFirstRank
    - forcedOrder
    - time
    - type
    - index
    - g
    argTypes:
    - struct ncclTopoSystem*
    - struct ncclTopoGraph*
    - struct ncclTopoGraph*
    - int
    - int
    - int
    - int
    - int*
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 337
    functionDepth: 4
    functionLinenumber: 337
    functionLinenumberEnd: 348
    functionName: ncclTopoSearchTryGpu
    functionSourceFile: /src/nccl/src/graph/search.cc
    functionUses: 0
    functionsReached:
    - ncclTopoFollowPath
    - ncclTopoSearchRecGpu
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoSearchTryGpu(struct ncclTopoSystem* system, struct
      ncclTopoGraph* graph, struct ncclTopoGraph* saveGraph, int step, int backToNet,
      int backToFirstRank, int forcedOrder, int *time, int type, int index, int g)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:356,1
    - Dst: ncclTopoFollowPath
      Src: /src/nccl/src/graph/search.cc:356,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:361,1
    - Dst: ncclTopoFollowPath
      Src: /src/nccl/src/graph/search.cc:361,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:372,1
    - Dst: ncclTopoSearchRecGpu
      Src: /src/nccl/src/graph/search.cc:372,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:376,1
    - Dst: ncclTopoFollowPath
      Src: /src/nccl/src/graph/search.cc:376,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:381,1
    - Dst: ncclTopoFollowPath
      Src: /src/nccl/src/graph/search.cc:381,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 27
    argCount: 6
    argNames:
    - system
    - graph
    - saveGraph
    - g
    - ngpus
    - time
    argTypes:
    - struct ncclTopoSystem*
    - struct ncclTopoGraph*
    - struct ncclTopoGraph*
    - int
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 350
    functionDepth: 4
    functionLinenumber: 350
    functionLinenumberEnd: 384
    functionName: ncclTopoSearchTryCollnetDirect
    functionSourceFile: /src/nccl/src/graph/search.cc
    functionUses: 0
    functionsReached:
    - ncclTopoFollowPath
    - ncclTopoSearchRecGpu
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoSearchTryCollnetDirect(struct ncclTopoSystem*
      system, struct ncclTopoGraph* graph, struct ncclTopoGraph* saveGraph, int g,
      int ngpus, int *time)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:391,1
    - Dst: ncclTopoFollowPath
      Src: /src/nccl/src/graph/search.cc:391,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:399,1
    - Dst: ncclTopoFollowPath
      Src: /src/nccl/src/graph/search.cc:399,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:405,1
    - Dst: ncclTopoSearchRecGpu
      Src: /src/nccl/src/graph/search.cc:405,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:409,1
    - Dst: ncclTopoFollowPath
      Src: /src/nccl/src/graph/search.cc:409,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:414,1
    - Dst: ncclTopoFollowPath
      Src: /src/nccl/src/graph/search.cc:414,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 6
    argNames:
    - system
    - graph
    - saveGraph
    - g
    - ngpus
    - time
    argTypes:
    - struct ncclTopoSystem*
    - struct ncclTopoGraph*
    - struct ncclTopoGraph*
    - int
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 386
    functionDepth: 4
    functionLinenumber: 386
    functionLinenumberEnd: 417
    functionName: ncclTopoSearchTryNvls
    functionSourceFile: /src/nccl/src/graph/search.cc
    functionUses: 0
    functionsReached:
    - ncclTopoFollowPath
    - ncclTopoSearchRecGpu
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoSearchTryNvls(struct ncclTopoSystem* system, struct
      ncclTopoGraph* graph, struct ncclTopoGraph* saveGraph, int g, int ngpus, int
      *time)
  - BBCount: 8
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 19
    argCount: 4
    argNames:
    - system
    - graph
    - refGraph
    - copy
    argTypes:
    - struct ncclTopoSystem*
    - struct ncclTopoGraph*
    - struct ncclTopoGraph*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 419
    functionDepth: 0
    functionLinenumber: 419
    functionLinenumberEnd: 438
    functionName: ncclTopoCompareGraphs
    functionSourceFile: /src/nccl/src/graph/search.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoCompareGraphs(struct ncclTopoSystem* system, struct
      ncclTopoGraph* graph, struct ncclTopoGraph* refGraph, int* copy)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:455,1
    - Dst: ncclTopoGetLocalNet
      Src: /src/nccl/src/graph/search.cc:455,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:456,1
    - Dst: ncclTopoIdToIndex
      Src: /src/nccl/src/graph/search.cc:456,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 26
    argCount: 4
    argNames:
    - system
    - gpu
    - nets
    - netCount
    argTypes:
    - struct ncclTopoSystem*
    - int
    - int[]
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 441
    functionDepth: 3
    functionLinenumber: 441
    functionLinenumberEnd: 473
    functionName: ncclTopoPrefNetsGpuFirst
    functionSourceFile: /src/nccl/src/graph/search.cc
    functionUses: 0
    functionsReached:
    - ncclTopoIdToIndex
    - ncclTopoGetLocalNet
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoPrefNetsGpuFirst(struct ncclTopoSystem* system,
      int gpu, int nets[NCCL_TOPO_MAX_NODES], int* netCount)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:483,1
    - Dst: ncclTopoGetLocalNet
      Src: /src/nccl/src/graph/search.cc:483,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:484,1
    - Dst: ncclTopoIdToIndex
      Src: /src/nccl/src/graph/search.cc:484,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 19
    argCount: 4
    argNames:
    - system
    - gpu
    - nets
    - netCount
    argTypes:
    - struct ncclTopoSystem*
    - int
    - int[]
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 476
    functionDepth: 3
    functionLinenumber: 476
    functionLinenumberEnd: 497
    functionName: ncclTopoPrefNetsChannelFirst
    functionSourceFile: /src/nccl/src/graph/search.cc
    functionUses: 0
    functionsReached:
    - ncclTopoIdToIndex
    - ncclTopoGetLocalNet
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoPrefNetsChannelFirst(struct ncclTopoSystem* system,
      int gpu, int nets[NCCL_TOPO_MAX_NODES], int* netCount)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ncclParamScatterEnable
      Src: /src/nccl/src/graph/search.cc:513,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:515,1
    - Dst: ncclTopoPrefNetsGpuFirst
      Src: /src/nccl/src/graph/search.cc:515,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:518,1
    - Dst: ncclTopoPrefNetsChannelFirst
      Src: /src/nccl/src/graph/search.cc:518,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 24
    argCount: 5
    argNames:
    - system
    - typeInter
    - gpu
    - nets
    - netCountRet
    argTypes:
    - struct ncclTopoSystem*
    - int
    - int
    - int[]
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 508
    functionDepth: 4
    functionLinenumber: 508
    functionLinenumberEnd: 543
    functionName: ncclTopoSelectNets
    functionSourceFile: /src/nccl/src/graph/search.cc
    functionUses: 0
    functionsReached:
    - ncclParamScatterEnable
    - ncclTopoPrefNetsChannelFirst
    - ncclTopoPrefNetsGpuFirst
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoSelectNets(struct ncclTopoSystem* system, int
      typeInter, int gpu, int nets[NCCL_TOPO_MAX_NODES], int* netCountRet)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:554,1
    - Dst: ncclTopoCompareGraphs
      Src: /src/nccl/src/graph/search.cc:554,1
    - Dst: memcpy
      Src: /src/nccl/src/graph/search.cc:556,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:560,1
    - Dst: ncclTopoSearchRec
      Src: /src/nccl/src/graph/search.cc:560,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:572,1
    - Dst: getNetIndex
      Src: /src/nccl/src/graph/search.cc:572,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:575,1
    - Dst: ncclTopoSelectNets
      Src: /src/nccl/src/graph/search.cc:575,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:596,1
    - Dst: ncclTopoFollowPath
      Src: /src/nccl/src/graph/search.cc:596,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:600,1
    - Dst: ncclTopoSearchRecGpu
      Src: /src/nccl/src/graph/search.cc:600,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:603,1
    - Dst: ncclTopoFollowPath
      Src: /src/nccl/src/graph/search.cc:603,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:609,1
    - Dst: ncclTopoSearchTryNvls
      Src: /src/nccl/src/graph/search.cc:609,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:611,1
    - Dst: ncclTopoSearchTryCollnetDirect
      Src: /src/nccl/src/graph/search.cc:611,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:620,1
    - Dst: ncclTopoReplayGetGpu
      Src: /src/nccl/src/graph/search.cc:620,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:623,1
    - Dst: ncclTopoSearchNextGpuSort
      Src: /src/nccl/src/graph/search.cc:623,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:626,1
    - Dst: ncclTopoSearchTryGpu
      Src: /src/nccl/src/graph/search.cc:626,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:631,1
    - Dst: getGpuIndex
      Src: /src/nccl/src/graph/search.cc:631,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:633,1
    - Dst: ncclTopoFollowPath
      Src: /src/nccl/src/graph/search.cc:633,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:635,1
    - Dst: ncclTopoSearchRecGpu
      Src: /src/nccl/src/graph/search.cc:635,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:636,1
    - Dst: ncclTopoFollowPath
      Src: /src/nccl/src/graph/search.cc:636,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:640,1
    - Dst: ncclTopoSearchRecGpu
      Src: /src/nccl/src/graph/search.cc:640,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 85
    argCount: 9
    argNames:
    - system
    - graph
    - saveGraph
    - gpu
    - step
    - backToNet
    - backToFirstRank
    - forcedOrder
    - time
    argTypes:
    - struct ncclTopoSystem*
    - struct ncclTopoGraph*
    - struct ncclTopoGraph*
    - struct ncclTopoNode*
    - int
    - int
    - int
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 643
      start: 545
    functionDepth: 5
    functionLinenumber: 545
    functionLinenumberEnd: 643
    functionName: ncclTopoSearchRecGpu
    functionSourceFile: /src/nccl/src/graph/search.cc
    functionUses: 4
    functionsReached:
    - ncclTopoSearchNextGpuSort
    - getGpuIndex
    - memcpy
    - ncclTopoSearchTryNvls
    - ncclTopoSelectNets
    - ncclTopoSearchRecGpu
    - ncclTopoReplayGetGpu
    - ncclTopoSearchTryCollnetDirect
    - ncclTopoSearchTryGpu
    - getNetIndex
    - ncclTopoSearchRec
    - ncclTopoFollowPath
    - ncclTopoCompareGraphs
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoSearchRecGpu(struct ncclTopoSystem* system, struct
      ncclTopoGraph* graph, struct ncclTopoGraph* saveGraph, struct ncclTopoNode*
      gpu, int step, int backToNet, int backToFirstRank, int forcedOrder, int *time)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:650,1
    - Dst: ncclTopoSelectNets
      Src: /src/nccl/src/graph/search.cc:650,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:684,1
    - Dst: ncclTopoSearchTryGpu
      Src: /src/nccl/src/graph/search.cc:684,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:693,1
    - Dst: ncclTopoReplayGetGpu
      Src: /src/nccl/src/graph/search.cc:693,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:694,1
    - Dst: ncclTopoSearchTryGpu
      Src: /src/nccl/src/graph/search.cc:694,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:699,1
    - Dst: ncclTopoSearchTryGpu
      Src: /src/nccl/src/graph/search.cc:699,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:706,1
    - Dst: ncclTopoSearchTryGpu
      Src: /src/nccl/src/graph/search.cc:706,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:709,1
    - Dst: ncclTopoGetLocal
      Src: /src/nccl/src/graph/search.cc:709,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:714,1
    - Dst: ncclTopoSearchTryGpu
      Src: /src/nccl/src/graph/search.cc:714,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 63
    argCount: 6
    argNames:
    - system
    - graph
    - saveGraph
    - backToNet
    - backToFirstRank
    - time
    argTypes:
    - struct ncclTopoSystem*
    - struct ncclTopoGraph*
    - struct ncclTopoGraph*
    - int
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 727
      start: 645
    functionDepth: 5
    functionLinenumber: 645
    functionLinenumberEnd: 727
    functionName: ncclTopoSearchRecNet
    functionSourceFile: /src/nccl/src/graph/search.cc
    functionUses: 0
    functionsReached:
    - ncclTopoSelectNets
    - ncclTopoReplayGetGpu
    - ncclTopoSearchTryGpu
    - ncclTopoGetLocal
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoSearchRecNet(struct ncclTopoSystem* system, struct
      ncclTopoGraph* graph, struct ncclTopoGraph* saveGraph, int backToNet, int backToFirstRank,
      int* time)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - system
    - pattern
    - backToNet
    - backToFirstRank
    argTypes:
    - struct ncclTopoSystem*
    - int
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 758
      start: 746
    functionDepth: 0
    functionLinenumber: 746
    functionLinenumberEnd: 758
    functionName: ncclTopoSearchParams
    functionSourceFile: /src/nccl/src/graph/search.cc
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoSearchParams(struct ncclTopoSystem* system, int
      pattern, int* backToNet, int* backToFirstRank)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:762,1
    - Dst: ncclTopoSearchParams
      Src: /src/nccl/src/graph/search.cc:762,1
    - Dst: ncclTopoSearchRecNet
      Src: /src/nccl/src/graph/search.cc:765,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:769,1
    - Dst: ncclTopoSearchTryGpu
      Src: /src/nccl/src/graph/search.cc:769,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:773,1
    - Dst: ncclTopoSearchTryGpu
      Src: /src/nccl/src/graph/search.cc:773,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:777,1
    - Dst: ncclTopoReplayGetGpu
      Src: /src/nccl/src/graph/search.cc:777,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:778,1
    - Dst: ncclTopoSearchTryGpu
      Src: /src/nccl/src/graph/search.cc:778,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:783,1
    - Dst: ncclTopoSearchTryGpu
      Src: /src/nccl/src/graph/search.cc:783,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 4
    argNames:
    - system
    - graph
    - saveGraph
    - time
    argTypes:
    - struct ncclTopoSystem*
    - struct ncclTopoGraph*
    - struct ncclTopoGraph*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 788
      start: 760
    functionDepth: 6
    functionLinenumber: 760
    functionLinenumberEnd: 788
    functionName: ncclTopoSearchRec
    functionSourceFile: /src/nccl/src/graph/search.cc
    functionUses: 1
    functionsReached:
    - ncclTopoReplayGetGpu
    - NCCLCHECK
    - ncclTopoSearchTryGpu
    - ncclTopoSearchParams
    - ncclTopoSearchRecNet
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoSearchRec(struct ncclTopoSystem* system, struct
      ncclTopoGraph* graph, struct ncclTopoGraph* saveGraph, int* time)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:816,1
    - Dst: xmlGetAttrStr
      Src: /src/nccl/src/graph/search.cc:816,1
    - Dst: strtol
      Src: /src/nccl/src/graph/search.cc:817,1
    - Dst: strcmp
      Src: /src/nccl/src/graph/search.cc:818,1
    - Dst: strcmp
      Src: /src/nccl/src/graph/search.cc:820,1
    - Dst: NCCL_TOPO_ID_SYSTEM_ID
      Src: /src/nccl/src/graph/search.cc:823,1
    - Dst: NCCL_TOPO_ID
      Src: /src/nccl/src/graph/search.cc:824,1
    - Dst: WARN
      Src: /src/nccl/src/graph/search.cc:827,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 4
    argNames:
    - xmlChannel
    - c
    - system
    - graph
    argTypes:
    - struct ncclXmlNode*
    - int
    - struct ncclTopoSystem*
    - struct ncclTopoGraph*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 834
      start: 807
    functionDepth: 3
    functionLinenumber: 807
    functionLinenumberEnd: 834
    functionName: ncclTopoGetChannelFromXml
    functionSourceFile: /src/nccl/src/graph/search.cc
    functionUses: 0
    functionsReached:
    - WARN
    - strcmp
    - NCCL_TOPO_ID
    - NCCL_TOPO_ID_SYSTEM_ID
    - xmlGetAttrStr
    - strtol
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoGetChannelFromXml(struct ncclXmlNode *xmlChannel,
      int c, struct ncclTopoSystem* system, struct ncclTopoGraph* graph)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:837,1
    - Dst: xmlGetAttrInt
      Src: /src/nccl/src/graph/search.cc:837,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:841,1
    - Dst: xmlGetAttrInt
      Src: /src/nccl/src/graph/search.cc:841,1
    - Dst: ncclParamCrossNic
      Src: /src/nccl/src/graph/search.cc:842,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:845,1
    - Dst: xmlGetAttrInt
      Src: /src/nccl/src/graph/search.cc:845,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:846,1
    - Dst: xmlGetAttrInt
      Src: /src/nccl/src/graph/search.cc:846,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:847,1
    - Dst: xmlGetAttrFloat
      Src: /src/nccl/src/graph/search.cc:847,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:848,1
    - Dst: xmlGetAttrFloat
      Src: /src/nccl/src/graph/search.cc:848,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:850,1
    - Dst: xmlGetAttr
      Src: /src/nccl/src/graph/search.cc:850,1
    - Dst: INFO
      Src: /src/nccl/src/graph/search.cc:851,1
    - Dst: strtof
      Src: /src/nccl/src/graph/search.cc:852,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:853,1
    - Dst: xmlGetAttr
      Src: /src/nccl/src/graph/search.cc:853,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:854,1
    - Dst: kvConvertToInt
      Src: /src/nccl/src/graph/search.cc:854,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:855,1
    - Dst: xmlGetAttr
      Src: /src/nccl/src/graph/search.cc:855,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:856,1
    - Dst: kvConvertToInt
      Src: /src/nccl/src/graph/search.cc:856,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:857,1
    - Dst: xmlGetAttrInt
      Src: /src/nccl/src/graph/search.cc:857,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:859,1
    - Dst: ncclTopoGetChannelFromXml
      Src: /src/nccl/src/graph/search.cc:859,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 4
    argNames:
    - xmlGraph
    - system
    - graph
    - nChannels
    argTypes:
    - struct ncclXmlNode*
    - struct ncclTopoSystem*
    - struct ncclTopoGraph*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 863
      start: 835
    functionDepth: 4
    functionLinenumber: 835
    functionLinenumberEnd: 863
    functionName: ncclTopoGetGraphFromXmlSub
    functionSourceFile: /src/nccl/src/graph/search.cc
    functionUses: 0
    functionsReached:
    - INFO
    - ncclParamCrossNic
    - strtof
    - ncclTopoGetChannelFromXml
    - xmlGetAttrFloat
    - xmlGetAttrInt
    - kvConvertToInt
    - xmlGetAttr
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoGetGraphFromXmlSub(struct ncclXmlNode *xmlGraph,
      struct ncclTopoSystem* system, struct ncclTopoGraph* graph, int* nChannels)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:866,1
    - Dst: ncclTopoGetGraphFromXmlSub
      Src: /src/nccl/src/graph/search.cc:866,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - xmlGraphs
    - system
    - graph
    - nChannels
    argTypes:
    - struct ncclXmlNode*
    - struct ncclTopoSystem*
    - struct ncclTopoGraph*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 864
    functionDepth: 5
    functionLinenumber: 864
    functionLinenumberEnd: 869
    functionName: ncclTopoGetGraphFromXml
    functionSourceFile: /src/nccl/src/graph/search.cc
    functionUses: 0
    functionsReached:
    - ncclTopoGetGraphFromXmlSub
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoGetGraphFromXml(struct ncclXmlNode *xmlGraphs,
      struct ncclTopoSystem* system, struct ncclTopoGraph* graph, int* nChannels)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:877,1
    - Dst: xmlAddNode
      Src: /src/nccl/src/graph/search.cc:877,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:880,1
    - Dst: xmlAddNode
      Src: /src/nccl/src/graph/search.cc:880,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:881,1
    - Dst: xmlSetAttrLong
      Src: /src/nccl/src/graph/search.cc:881,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:884,1
    - Dst: xmlAddNode
      Src: /src/nccl/src/graph/search.cc:884,1
    - Dst: NCCL_TOPO_ID_SYSTEM_ID
      Src: /src/nccl/src/graph/search.cc:888,1
    - Dst: NCCL_TOPO_ID
      Src: /src/nccl/src/graph/search.cc:889,1
    - Dst: WARN
      Src: /src/nccl/src/graph/search.cc:893,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:896,1
    - Dst: xmlSetAttrLong
      Src: /src/nccl/src/graph/search.cc:896,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:900,1
    - Dst: xmlAddNode
      Src: /src/nccl/src/graph/search.cc:900,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:901,1
    - Dst: xmlSetAttrLong
      Src: /src/nccl/src/graph/search.cc:901,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 5
    argNames:
    - graph
    - c
    - system
    - xml
    - parent
    argTypes:
    - struct ncclTopoGraph*
    - int
    - struct ncclTopoSystem*
    - struct ncclXml*
    - struct ncclXmlNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 904
      start: 872
    functionDepth: 2
    functionLinenumber: 872
    functionLinenumberEnd: 904
    functionName: ncclTopoGetXmlFromChannel
    functionSourceFile: /src/nccl/src/graph/search.cc
    functionUses: 0
    functionsReached:
    - WARN
    - xmlAddNode
    - NCCL_TOPO_ID
    - xmlSetAttrLong
    - NCCL_TOPO_ID_SYSTEM_ID
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoGetXmlFromChannel(struct ncclTopoGraph* graph,
      int c, struct ncclTopoSystem* system, struct ncclXml *xml, struct ncclXmlNode*
      parent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:907,1
    - Dst: xmlAddNode
      Src: /src/nccl/src/graph/search.cc:907,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:908,1
    - Dst: xmlSetAttrInt
      Src: /src/nccl/src/graph/search.cc:908,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:909,1
    - Dst: xmlSetAttrInt
      Src: /src/nccl/src/graph/search.cc:909,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:910,1
    - Dst: xmlSetAttrInt
      Src: /src/nccl/src/graph/search.cc:910,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:911,1
    - Dst: xmlSetAttrInt
      Src: /src/nccl/src/graph/search.cc:911,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:912,1
    - Dst: xmlSetAttrFloat
      Src: /src/nccl/src/graph/search.cc:912,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:913,1
    - Dst: xmlSetAttrFloat
      Src: /src/nccl/src/graph/search.cc:913,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:914,1
    - Dst: xmlSetAttrFloat
      Src: /src/nccl/src/graph/search.cc:914,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:916,1
    - Dst: kvConvertToStr
      Src: /src/nccl/src/graph/search.cc:916,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:917,1
    - Dst: xmlSetAttr
      Src: /src/nccl/src/graph/search.cc:917,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:918,1
    - Dst: kvConvertToStr
      Src: /src/nccl/src/graph/search.cc:918,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:919,1
    - Dst: xmlSetAttr
      Src: /src/nccl/src/graph/search.cc:919,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:920,1
    - Dst: xmlSetAttrInt
      Src: /src/nccl/src/graph/search.cc:920,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:922,1
    - Dst: ncclTopoGetXmlFromChannel
      Src: /src/nccl/src/graph/search.cc:922,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 4
    argNames:
    - graph
    - system
    - xml
    - parent
    argTypes:
    - struct ncclTopoGraph*
    - struct ncclTopoSystem*
    - struct ncclXml*
    - struct ncclXmlNode*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 925
      start: 905
    functionDepth: 3
    functionLinenumber: 905
    functionLinenumberEnd: 925
    functionName: ncclTopoGetXmlFromGraph
    functionSourceFile: /src/nccl/src/graph/search.cc
    functionUses: 0
    functionsReached:
    - xmlAddNode
    - xmlSetAttrFloat
    - xmlSetAttr
    - xmlSetAttrInt
    - ncclTopoGetXmlFromChannel
    - kvConvertToStr
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoGetXmlFromGraph(struct ncclTopoGraph* graph, struct
      ncclTopoSystem* system, struct ncclXml *xml, struct ncclXmlNode* parent)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:929,1
    - Dst: xmlAddNode
      Src: /src/nccl/src/graph/search.cc:929,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:930,1
    - Dst: xmlSetAttrInt
      Src: /src/nccl/src/graph/search.cc:930,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:932,1
    - Dst: ncclTopoGetXmlFromGraph
      Src: /src/nccl/src/graph/search.cc:932,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - ngraphs
    - graphs
    - system
    - xml
    argTypes:
    - int
    - struct ncclTopoGraph**
    - struct ncclTopoSystem*
    - struct ncclXml*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 935
      start: 926
    functionDepth: 4
    functionLinenumber: 926
    functionLinenumberEnd: 935
    functionName: ncclTopoGetXmlFromGraphs
    functionSourceFile: /src/nccl/src/graph/search.cc
    functionUses: 0
    functionsReached:
    - xmlSetAttrInt
    - xmlAddNode
    - ncclTopoGetXmlFromGraph
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoGetXmlFromGraphs(int ngraphs, struct ncclTopoGraph**
      graphs, struct ncclTopoSystem* system, struct ncclXml *xml)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: min
      Src: /src/nccl/src/graph/search.cc:943,1
    - Dst: memcpy
      Src: /src/nccl/src/graph/search.cc:944,1
    - Dst: memcpy
      Src: /src/nccl/src/graph/search.cc:945,1
    - Dst: DIVUP
      Src: /src/nccl/src/graph/search.cc:946,1
    - Dst: DIVUP
      Src: /src/nccl/src/graph/search.cc:947,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 3
    argNames:
    - graph
    - ccMin
    - ngpus
    argTypes:
    - struct ncclTopoGraph*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 950
      start: 937
    functionDepth: 1
    functionLinenumber: 937
    functionLinenumberEnd: 950
    functionName: ncclTopoDupChannels
    functionSourceFile: /src/nccl/src/graph/search.cc
    functionUses: 0
    functionsReached:
    - min
    - DIVUP
    - memcpy
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoDupChannels(struct ncclTopoGraph* graph, int ccMin,
      int ngpus)
  - BBCount: 35
    BranchProfiles: []
    Callsites:
    - Dst: ncclParamCrossNic
      Src: /src/nccl/src/graph/search.cc:972,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:979,1
    - Dst: ncclTopoGetGpuMinPath
      Src: /src/nccl/src/graph/search.cc:979,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:980,1
    - Dst: ncclTopoGetGpuMaxPath
      Src: /src/nccl/src/graph/search.cc:980,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:983,1
    - Dst: ncclTopoGetGpuMinPath
      Src: /src/nccl/src/graph/search.cc:983,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:984,1
    - Dst: ncclTopoGetGpuMaxPath
      Src: /src/nccl/src/graph/search.cc:984,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:995,1
    - Dst: ncclTopoCpuType
      Src: /src/nccl/src/graph/search.cc:995,1
    - Dst: ncclGetEnv
      Src: /src/nccl/src/graph/search.cc:997,1
    - Dst: INFO
      Src: /src/nccl/src/graph/search.cc:999,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:1001,1
    - Dst: xmlAlloc
      Src: /src/nccl/src/graph/search.cc:1001,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:1002,1
    - Dst: ncclTopoGetXmlGraphFromFile
      Src: /src/nccl/src/graph/search.cc:1002,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:1004,1
    - Dst: ncclTopoGetGraphFromXml
      Src: /src/nccl/src/graph/search.cc:1004,1
    - Dst: INFO
      Src: /src/nccl/src/graph/search.cc:1005,1
    - Dst: free
      Src: /src/nccl/src/graph/search.cc:1006,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:1011,1
    - Dst: ncclTopoGetCompCap
      Src: /src/nccl/src/graph/search.cc:1011,1
    - Dst: min
      Src: /src/nccl/src/graph/search.cc:1014,1
    - Dst: min
      Src: /src/nccl/src/graph/search.cc:1015,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:1025,1
    - Dst: ncclTopoSplitNvLink
      Src: /src/nccl/src/graph/search.cc:1025,1
    - Dst: memcpy
      Src: /src/nccl/src/graph/search.cc:1034,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:1061,1
    - Dst: ncclTopoSearchRec
      Src: /src/nccl/src/graph/search.cc:1061,1
    - Dst: printf
      Src: /src/nccl/src/graph/search.cc:1063,1
    - Dst: printf
      Src: /src/nccl/src/graph/search.cc:1065,1
    - Dst: printf
      Src: /src/nccl/src/graph/search.cc:1067,1
    - Dst: printf
      Src: /src/nccl/src/graph/search.cc:1069,1
    - Dst: printf
      Src: /src/nccl/src/graph/search.cc:1070,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:1135,1
    - Dst: ncclTopoDupChannels
      Src: /src/nccl/src/graph/search.cc:1135,1
    - Dst: memcpy
      Src: /src/nccl/src/graph/search.cc:1136,1
    - Dst: memcpy
      Src: /src/nccl/src/graph/search.cc:1162,1
    - Dst: INFO
      Src: /src/nccl/src/graph/search.cc:1166,1
    CyclomaticComplexity: 87
    EdgeCount: 87
    ICount: 173
    argCount: 2
    argNames:
    - system
    - graph
    argTypes:
    - ncclTopoSystem*
    - struct ncclTopoGraph*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1174
      start: 967
    functionDepth: 7
    functionLinenumber: 967
    functionLinenumberEnd: 1174
    functionName: ncclTopoCompute
    functionSourceFile: /src/nccl/src/graph/search.cc
    functionUses: 1
    functionsReached:
    - INFO
    - min
    - printf
    - memcpy
    - free
    - ncclGetEnv
    - ncclTopoGetCompCap
    - ncclTopoGetGpuMinPath
    - ncclTopoDupChannels
    - ncclTopoSplitNvLink
    - xmlAlloc
    - ncclTopoGetXmlGraphFromFile
    - ncclTopoGetGpuMaxPath
    - ncclTopoSearchRec
    - ncclTopoGetGraphFromXml
    - ncclTopoCpuType
    - ncclParamCrossNic
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoCompute(ncclTopoSystem* system, struct ncclTopoGraph*
      graph)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: INFO
      Src: /src/nccl/src/graph/search.cc:1177,1
    - Dst: sprintf
      Src: /src/nccl/src/graph/search.cc:1182,1
    - Dst: strlen
      Src: /src/nccl/src/graph/search.cc:1183,1
    - Dst: sprintf
      Src: /src/nccl/src/graph/search.cc:1185,1
    - Dst: NCCL_TOPO_ID_SYSTEM_ID
      Src: /src/nccl/src/graph/search.cc:1185,1
    - Dst: NCCL_TOPO_ID_LOCAL_ID
      Src: /src/nccl/src/graph/search.cc:1185,1
    - Dst: strlen
      Src: /src/nccl/src/graph/search.cc:1186,1
    - Dst: ncclTopoRankToIndex
      Src: /src/nccl/src/graph/search.cc:1190,1
    - Dst: sprintf
      Src: /src/nccl/src/graph/search.cc:1192,1
    - Dst: NCCL_TOPO_ID_SYSTEM_ID
      Src: /src/nccl/src/graph/search.cc:1192,1
    - Dst: NCCL_TOPO_ID_LOCAL_ID
      Src: /src/nccl/src/graph/search.cc:1192,1
    - Dst: strlen
      Src: /src/nccl/src/graph/search.cc:1193,1
    - Dst: sprintf
      Src: /src/nccl/src/graph/search.cc:1197,1
    - Dst: NCCL_TOPO_ID_SYSTEM_ID
      Src: /src/nccl/src/graph/search.cc:1197,1
    - Dst: NCCL_TOPO_ID_LOCAL_ID
      Src: /src/nccl/src/graph/search.cc:1197,1
    - Dst: strlen
      Src: /src/nccl/src/graph/search.cc:1198,1
    - Dst: INFO
      Src: /src/nccl/src/graph/search.cc:1200,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 2
    argNames:
    - system
    - graph
    argTypes:
    - struct ncclTopoSystem*
    - struct ncclTopoGraph*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1203
      start: 1176
    functionDepth: 2
    functionLinenumber: 1176
    functionLinenumberEnd: 1203
    functionName: ncclTopoPrintGraph
    functionSourceFile: /src/nccl/src/graph/search.cc
    functionUses: 1
    functionsReached:
    - INFO
    - strlen
    - ncclTopoRankToIndex
    - NCCL_TOPO_ID_SYSTEM_ID
    - sprintf
    - NCCL_TOPO_ID_LOCAL_ID
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoPrintGraph(struct ncclTopoSystem* system, struct
      ncclTopoGraph* graph)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ncclGetEnv
      Src: /src/nccl/src/graph/search.cc:1207,1
    - Dst: INFO
      Src: /src/nccl/src/graph/search.cc:1210,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:1211,1
    - Dst: xmlAlloc
      Src: /src/nccl/src/graph/search.cc:1211,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/search.cc:1212,1
    - Dst: ncclTopoGetXmlFromGraphs
      Src: /src/nccl/src/graph/search.cc:1212,1
    - Dst: NCCLCHECKGOTO
      Src: /src/nccl/src/graph/search.cc:1213,1
    - Dst: ncclTopoDumpXmlToFile
      Src: /src/nccl/src/graph/search.cc:1213,1
    - Dst: free
      Src: /src/nccl/src/graph/search.cc:1216,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 3
    argNames:
    - system
    - ngraphs
    - graphs
    argTypes:
    - struct ncclTopoSystem*
    - int
    - struct ncclTopoGraph**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1220
      start: 1205
    functionDepth: 5
    functionLinenumber: 1205
    functionLinenumberEnd: 1220
    functionName: ncclTopoDumpGraphs
    functionSourceFile: /src/nccl/src/graph/search.cc
    functionUses: 1
    functionsReached:
    - INFO
    - ncclTopoDumpXmlToFile
    - NCCLCHECKGOTO
    - free
    - ncclGetEnv
    - xmlAlloc
    - ncclTopoGetXmlFromGraphs
    - NCCLCHECK
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoDumpGraphs(struct ncclTopoSystem* system, int
      ngraphs, struct ncclTopoGraph** graphs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: WARN
      Src: /src/nccl/src/graph/search.cc:1245,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 4
    argNames:
    - comm
    - graph
    - channelId
    - netId
    argTypes:
    - struct ncclComm*
    - struct ncclTopoGraph*
    - int
    - int64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1247
      start: 1224
    functionDepth: 1
    functionLinenumber: 1224
    functionLinenumberEnd: 1247
    functionName: getNvlsNetDev
    functionSourceFile: /src/nccl/src/graph/search.cc
    functionUses: 0
    functionsReached:
    - WARN
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t getNvlsNetDev(struct ncclComm* comm, struct ncclTopoGraph*
      graph, int channelId, int64_t* netId)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:1263,1
    - Dst: getNvlsNetDev
      Src: /src/nccl/src/graph/search.cc:1263,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:1265,1
    - Dst: ncclTopoIdToNetDev
      Src: /src/nccl/src/graph/search.cc:1265,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:1268,1
    - Dst: ncclTopoGetIntermediateRank
      Src: /src/nccl/src/graph/search.cc:1268,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:1273,1
    - Dst: ncclTopoGetLocalNet
      Src: /src/nccl/src/graph/search.cc:1273,1
    - Dst: ncclPxnDisable
      Src: /src/nccl/src/graph/search.cc:1278,1
    - Dst: ncclParamP2pPxnLevel
      Src: /src/nccl/src/graph/search.cc:1278,1
    - Dst: ncclParamCrossNic
      Src: /src/nccl/src/graph/search.cc:1280,1
    - Dst: ncclTopoDevToRank
      Src: /src/nccl/src/graph/search.cc:1284,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:1285,1
    - Dst: ncclTopoGetLocalNet
      Src: /src/nccl/src/graph/search.cc:1285,1
    - Dst: ncclParamCrossNic
      Src: /src/nccl/src/graph/search.cc:1288,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:1294,1
    - Dst: ncclTopoRankToIndex
      Src: /src/nccl/src/graph/search.cc:1294,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:1295,1
    - Dst: ncclTopoIdToIndex
      Src: /src/nccl/src/graph/search.cc:1295,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:1300,1
    - Dst: ncclTopoGetIntermediateRank
      Src: /src/nccl/src/graph/search.cc:1300,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:1305,1
    - Dst: ncclTopoIdToIndex
      Src: /src/nccl/src/graph/search.cc:1305,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:1306,1
    - Dst: ncclTopoRankToIndex
      Src: /src/nccl/src/graph/search.cc:1306,1
    - Dst: NCCLCHECK
      Src: /src/nccl/src/graph/search.cc:1307,1
    - Dst: ncclTopoGetLocalGpu
      Src: /src/nccl/src/graph/search.cc:1307,1
    - Dst: ncclParamPxnC2c
      Src: /src/nccl/src/graph/search.cc:1310,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 62
    argCount: 8
    argNames:
    - comm
    - rank
    - graph
    - channelId
    - peerRank
    - id
    - dev
    - proxyRank
    argTypes:
    - struct ncclComm*
    - int
    - struct ncclTopoGraph*
    - int
    - int
    - int64_t*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1322
      start: 1252
    functionDepth: 4
    functionLinenumber: 1252
    functionLinenumberEnd: 1322
    functionName: ncclTopoGetNetDev
    functionSourceFile: /src/nccl/src/graph/search.cc
    functionUses: 5
    functionsReached:
    - ncclTopoRankToIndex
    - ncclTopoGetLocalGpu
    - ncclParamPxnC2c
    - ncclTopoGetLocalNet
    - ncclTopoGetIntermediateRank
    - ncclParamP2pPxnLevel
    - ncclTopoDevToRank
    - ncclTopoIdToIndex
    - ncclTopoIdToNetDev
    - getNvlsNetDev
    - ncclParamCrossNic
    - NCCLCHECK
    - ncclPxnDisable
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t ncclTopoGetNetDev(struct ncclComm* comm, int rank, struct
      ncclTopoGraph* graph, int channelId, int peerRank, int64_t* id, int* dev, int*
      proxyRank)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - nRanks
    - nNodes
    - logFunction
    - context
    argTypes:
    - size_t
    - size_t
    - ncclDebugLogger_t
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11
      start: 11
    functionDepth: 0
    functionLinenumber: 11
    functionLinenumberEnd: 11
    functionName: ncclResult_t::pluginInit
    functionSourceFile: /src/nccl/ext-tuner/basic/plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __hidden
    signature: __hidden ncclResult_t pluginInit(size_t nRanks, size_t nNodes, ncclDebugLogger_t
      logFunction, void **context)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 9
    argNames:
    - context
    - collType
    - nBytes
    - numPipeOps
    - collCostTable
    - numAlgo
    - numProto
    - regBuff
    - nChannels
    argTypes:
    - void*
    - ncclFunc_t
    - size_t
    - int
    - float**
    - int
    - int
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 13
    functionDepth: 0
    functionLinenumber: 13
    functionLinenumberEnd: 23
    functionName: ncclResult_t::pluginGetCollInfo
    functionSourceFile: /src/nccl/ext-tuner/basic/plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __hidden
    signature: "__hidden ncclResult_t pluginGetCollInfo(void* context, ncclFunc_t
      collType, size_t nBytes,\n                              int numPipeOps, float**
      collCostTable, int numAlgo, int numProto,\n                              int
      regBuff, int* nChannels)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - context
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 25
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 25
    functionName: ncclResult_t::pluginDestroy
    functionSourceFile: /src/nccl/ext-tuner/basic/plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __hidden
    signature: __hidden ncclResult_t pluginDestroy(void* context)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/nccl/ext-tuner/example/plugin.c:58,1
    - Dst: strcmp
      Src: /src/nccl/ext-tuner/example/plugin.c:59,1
    - Dst: strcmp
      Src: /src/nccl/ext-tuner/example/plugin.c:60,1
    - Dst: strcmp
      Src: /src/nccl/ext-tuner/example/plugin.c:61,1
    - Dst: strcmp
      Src: /src/nccl/ext-tuner/example/plugin.c:62,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 12
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 64
    functionName: parseCollType
    functionSourceFile: /src/nccl/ext-tuner/example/plugin.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: ncclFunc_t
    signature: ncclFunc_t parseCollType(const char* str)
  - BBCount: 7
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - collType
    argTypes:
    - ncclFunc_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 76
    functionName: collTypeToString
    functionSourceFile: /src/nccl/ext-tuner/example/plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * collTypeToString(ncclFunc_t collType)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/nccl/ext-tuner/example/plugin.c:80,1
    - Dst: strcmp
      Src: /src/nccl/ext-tuner/example/plugin.c:81,1
    - Dst: strcmp
      Src: /src/nccl/ext-tuner/example/plugin.c:82,1
    - Dst: strcmp
      Src: /src/nccl/ext-tuner/example/plugin.c:83,1
    - Dst: strcmp
      Src: /src/nccl/ext-tuner/example/plugin.c:84,1
    - Dst: strcmp
      Src: /src/nccl/ext-tuner/example/plugin.c:85,1
    - Dst: strcmp
      Src: /src/nccl/ext-tuner/example/plugin.c:86,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 88
    functionName: parseAlgorithm
    functionSourceFile: /src/nccl/ext-tuner/example/plugin.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int parseAlgorithm(const char* str)
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - algorithm
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 102
    functionName: algorithmToString
    functionSourceFile: /src/nccl/ext-tuner/example/plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * algorithmToString(int algorithm)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/nccl/ext-tuner/example/plugin.c:106,1
    - Dst: strcmp
      Src: /src/nccl/ext-tuner/example/plugin.c:107,1
    - Dst: strcmp
      Src: /src/nccl/ext-tuner/example/plugin.c:108,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 110
    functionName: parseProtocol
    functionSourceFile: /src/nccl/ext-tuner/example/plugin.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: int
    signature: int parseProtocol(const char* str)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - protocol
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 120
    functionName: protocolToString
    functionSourceFile: /src/nccl/ext-tuner/example/plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * protocolToString(int protocol)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/nccl/ext-tuner/example/plugin.c:124,1
    - Dst: fgets
      Src: /src/nccl/ext-tuner/example/plugin.c:132,1
    - Dst: strcspn
      Src: /src/nccl/ext-tuner/example/plugin.c:137,1
    - Dst: strlen
      Src: /src/nccl/ext-tuner/example/plugin.c:140,1
    - Dst: fclose
      Src: /src/nccl/ext-tuner/example/plugin.c:145,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 147
    functionName: countConfigLines
    functionSourceFile: /src/nccl/ext-tuner/example/plugin.c
    functionUses: 0
    functionsReached:
    - strlen
    - fclose
    - fgets
    - fopen
    - strcspn
    linkageType: ''
    returnType: int
    signature: int countConfigLines(const char* filename)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/nccl/ext-tuner/example/plugin.c:151,1
    - Dst: TunerContext*::logFunction
      Src: /src/nccl/ext-tuner/example/plugin.c:154,1
    - Dst: countConfigLines
      Src: /src/nccl/ext-tuner/example/plugin.c:161,1
    - Dst: TunerContext*::logFunction
      Src: /src/nccl/ext-tuner/example/plugin.c:164,1
    - Dst: fclose
      Src: /src/nccl/ext-tuner/example/plugin.c:167,1
    - Dst: malloc
      Src: /src/nccl/ext-tuner/example/plugin.c:172,1
    - Dst: TunerContext*::logFunction
      Src: /src/nccl/ext-tuner/example/plugin.c:175,1
    - Dst: fclose
      Src: /src/nccl/ext-tuner/example/plugin.c:178,1
    - Dst: TunerContext*::logFunction
      Src: /src/nccl/ext-tuner/example/plugin.c:186,1
    - Dst: fseek
      Src: /src/nccl/ext-tuner/example/plugin.c:191,1
    - Dst: fgets
      Src: /src/nccl/ext-tuner/example/plugin.c:195,1
    - Dst: strcspn
      Src: /src/nccl/ext-tuner/example/plugin.c:200,1
    - Dst: strncpy
      Src: /src/nccl/ext-tuner/example/plugin.c:209,1
    - Dst: strtok
      Src: /src/nccl/ext-tuner/example/plugin.c:213,1
    - Dst: strlen
      Src: /src/nccl/ext-tuner/example/plugin.c:217,1
    - Dst: strtok
      Src: /src/nccl/ext-tuner/example/plugin.c:223,1
    - Dst: parseCollType
      Src: /src/nccl/ext-tuner/example/plugin.c:229,1
    - Dst: strtoull
      Src: /src/nccl/ext-tuner/example/plugin.c:230,1
    - Dst: strtoull
      Src: /src/nccl/ext-tuner/example/plugin.c:231,1
    - Dst: parseAlgorithm
      Src: /src/nccl/ext-tuner/example/plugin.c:232,1
    - Dst: parseProtocol
      Src: /src/nccl/ext-tuner/example/plugin.c:233,1
    - Dst: atoi
      Src: /src/nccl/ext-tuner/example/plugin.c:234,1
    - Dst: atoi
      Src: /src/nccl/ext-tuner/example/plugin.c:235,1
    - Dst: atoi
      Src: /src/nccl/ext-tuner/example/plugin.c:236,1
    - Dst: atoi
      Src: /src/nccl/ext-tuner/example/plugin.c:240,1
    - Dst: atoi
      Src: /src/nccl/ext-tuner/example/plugin.c:247,1
    - Dst: TunerContext*::logFunction
      Src: /src/nccl/ext-tuner/example/plugin.c:256,1
    - Dst: TunerContext*::logFunction
      Src: /src/nccl/ext-tuner/example/plugin.c:262,1
    - Dst: TunerContext*::logFunction
      Src: /src/nccl/ext-tuner/example/plugin.c:268,1
    - Dst: TunerContext*::logFunction
      Src: /src/nccl/ext-tuner/example/plugin.c:274,1
    - Dst: fclose
      Src: /src/nccl/ext-tuner/example/plugin.c:284,1
    - Dst: TunerContext*::logFunction
      Src: /src/nccl/ext-tuner/example/plugin.c:286,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 85
    argCount: 2
    argNames:
    - ctx
    - filename
    argTypes:
    - TunerContext*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 290
    functionName: loadConfig
    functionSourceFile: /src/nccl/ext-tuner/example/plugin.c
    functionUses: 0
    functionsReached:
    - malloc
    - strlen
    - parseAlgorithm
    - atoi
    - strncpy
    - fclose
    - fgets
    - fopen
    - strtok
    - strcspn
    - parseProtocol
    - fseek
    - strtoull
    - TunerContext*::logFunction
    - parseCollType
    - countConfigLines
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t loadConfig(TunerContext* ctx, const char* filename)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/nccl/ext-tuner/example/plugin.c:293,1
    - Dst: logFunction
      Src: /src/nccl/ext-tuner/example/plugin.c:304,1
    - Dst: getenv
      Src: /src/nccl/ext-tuner/example/plugin.c:309,1
    - Dst: loadConfig
      Src: /src/nccl/ext-tuner/example/plugin.c:314,1
    - Dst: free
      Src: /src/nccl/ext-tuner/example/plugin.c:317,1
    - Dst: free
      Src: /src/nccl/ext-tuner/example/plugin.c:319,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 4
    argNames:
    - nRanks
    - nNodes
    - logFunction
    - context
    argTypes:
    - size_t
    - size_t
    - ncclDebugLogger_t
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 292
    functionDepth: 2
    functionLinenumber: 292
    functionLinenumberEnd: 325
    functionName: ncclResult_t::pluginInit
    functionSourceFile: /src/nccl/ext-tuner/example/plugin.c
    functionUses: 0
    functionsReached:
    - malloc
    - loadConfig
    - free
    - getenv
    - logFunction
    linkageType: ''
    returnType: __hidden
    signature: __hidden ncclResult_t pluginInit(size_t nRanks, size_t nNodes, ncclDebugLogger_t
      logFunction, void **context)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: TunerContext*::logFunction
      Src: /src/nccl/ext-tuner/example/plugin.c:337,1
    - Dst: collTypeToString
      Src: /src/nccl/ext-tuner/example/plugin.c:339,1
    - Dst: TunerContext*::logFunction
      Src: /src/nccl/ext-tuner/example/plugin.c:347,1
    - Dst: collTypeToString
      Src: /src/nccl/ext-tuner/example/plugin.c:349,1
    - Dst: algorithmToString
      Src: /src/nccl/ext-tuner/example/plugin.c:349,1
    - Dst: protocolToString
      Src: /src/nccl/ext-tuner/example/plugin.c:349,1
    - Dst: TunerContext*::logFunction
      Src: /src/nccl/ext-tuner/example/plugin.c:363,1
    - Dst: algorithmToString
      Src: /src/nccl/ext-tuner/example/plugin.c:365,1
    - Dst: protocolToString
      Src: /src/nccl/ext-tuner/example/plugin.c:365,1
    - Dst: TunerContext*::logFunction
      Src: /src/nccl/ext-tuner/example/plugin.c:372,1
    - Dst: algorithmToString
      Src: /src/nccl/ext-tuner/example/plugin.c:374,1
    - Dst: protocolToString
      Src: /src/nccl/ext-tuner/example/plugin.c:374,1
    - Dst: TunerContext*::logFunction
      Src: /src/nccl/ext-tuner/example/plugin.c:386,1
    - Dst: collTypeToString
      Src: /src/nccl/ext-tuner/example/plugin.c:388,1
    - Dst: algorithmToString
      Src: /src/nccl/ext-tuner/example/plugin.c:388,1
    - Dst: protocolToString
      Src: /src/nccl/ext-tuner/example/plugin.c:388,1
    - Dst: TunerContext*::logFunction
      Src: /src/nccl/ext-tuner/example/plugin.c:391,1
    - Dst: collTypeToString
      Src: /src/nccl/ext-tuner/example/plugin.c:393,1
    - Dst: algorithmToString
      Src: /src/nccl/ext-tuner/example/plugin.c:393,1
    - Dst: protocolToString
      Src: /src/nccl/ext-tuner/example/plugin.c:393,1
    - Dst: TunerContext*::logFunction
      Src: /src/nccl/ext-tuner/example/plugin.c:400,1
    - Dst: algorithmToString
      Src: /src/nccl/ext-tuner/example/plugin.c:402,1
    - Dst: protocolToString
      Src: /src/nccl/ext-tuner/example/plugin.c:402,1
    - Dst: TunerContext*::logFunction
      Src: /src/nccl/ext-tuner/example/plugin.c:407,1
    - Dst: algorithmToString
      Src: /src/nccl/ext-tuner/example/plugin.c:409,1
    - Dst: protocolToString
      Src: /src/nccl/ext-tuner/example/plugin.c:409,1
    - Dst: TunerContext*::logFunction
      Src: /src/nccl/ext-tuner/example/plugin.c:414,1
    - Dst: TunerContext*::logFunction
      Src: /src/nccl/ext-tuner/example/plugin.c:428,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 52
    argCount: 9
    argNames:
    - context
    - collType
    - nBytes
    - numPipeOps
    - collCostTable
    - numAlgo
    - numProto
    - regBuff
    - nChannels
    argTypes:
    - void*
    - ncclFunc_t
    - size_t
    - int
    - float**
    - int
    - int
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 433
    functionName: ncclResult_t::pluginGetCollInfo
    functionSourceFile: /src/nccl/ext-tuner/example/plugin.c
    functionUses: 0
    functionsReached:
    - TunerContext*::logFunction
    - collTypeToString
    - protocolToString
    - algorithmToString
    linkageType: ''
    returnType: __hidden
    signature: "__hidden ncclResult_t pluginGetCollInfo(void* context, ncclFunc_t
      collType, size_t nBytes,\n                              int numPipeOps, float**
      collCostTable, int numAlgo, int numProto,\n                              int
      regBuff, int* nChannels)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/nccl/ext-tuner/example/plugin.c:439,1
    - Dst: free
      Src: /src/nccl/ext-tuner/example/plugin.c:441,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - context
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 435
    functionDepth: 0
    functionLinenumber: 435
    functionLinenumberEnd: 444
    functionName: ncclResult_t::pluginDestroy
    functionSourceFile: /src/nccl/ext-tuner/example/plugin.c
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: __hidden
    signature: __hidden ncclResult_t pluginDestroy(void* context)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - condition
    - ','
    - message
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 30
    functionName: TEST_ASSERT
    functionSourceFile: /src/nccl/ext-tuner/example/test/test_plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_ASSERT(condition, message)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 36
    functionName: TEST_PASS
    functionSourceFile: /src/nccl/ext-tuner/example/test/test_plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: TEST_PASS()
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:47,1
    - Dst: strcmp
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:51,1
    - Dst: strcmp
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:53,1
    - Dst: strcmp
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:55,1
    - Dst: printf
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:75,1
    - Dst: va_start
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:79,1
    - Dst: vprintf
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:80,1
    - Dst: va_end
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:81,1
    - Dst: printf
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:83,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 44
    argCount: 5
    argNames:
    - level
    - flags
    - file
    - line
    - fmt
    argTypes:
    - ncclDebugLogLevel
    - unsigned long
    - char*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 84
    functionName: mock_logger
    functionSourceFile: /src/nccl/ext-tuner/example/test/test_plugin.c
    functionUses: 0
    functionsReached:
    - va_start
    - printf
    - strcmp
    - va_end
    - getenv
    - vprintf
    linkageType: ''
    returnType: void
    signature: "void mock_logger(ncclDebugLogLevel level, unsigned long flags,\n                 const
      char* file, int line, const char* fmt, ...)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:88,1
    - Dst: fprintf
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:90,1
    - Dst: fclose
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - filename
    - content
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 93
    functionName: create_test_config
    functionSourceFile: /src/nccl/ext-tuner/example/test/test_plugin.c
    functionUses: 0
    functionsReached:
    - fclose
    - fopen
    - fprintf
    linkageType: ''
    returnType: void
    signature: void create_test_config(const char* filename, const char* content)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pluginInit
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:100,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:101,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:102,1
    - Dst: pluginDestroy
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:105,1
    - Dst: TEST_PASS
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 107
    functionName: test_plugin_init
    functionSourceFile: /src/nccl/ext-tuner/example/test/test_plugin.c
    functionUses: 0
    functionsReached:
    - TEST_PASS
    - TEST_ASSERT
    - pluginInit
    - pluginDestroy
    linkageType: ''
    returnType: int
    signature: int test_plugin_init()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_test_config
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:119,1
    - Dst: setenv
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:122,1
    - Dst: pluginInit
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:125,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:126,1
    - Dst: pluginDestroy
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:129,1
    - Dst: unlink
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:130,1
    - Dst: unsetenv
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:131,1
    - Dst: TEST_PASS
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 133
    functionName: test_config_parsing_valid
    functionSourceFile: /src/nccl/ext-tuner/example/test/test_plugin.c
    functionUses: 0
    functionsReached:
    - create_test_config
    - TEST_PASS
    - TEST_ASSERT
    - pluginInit
    - unsetenv
    - unlink
    - setenv
    - pluginDestroy
    linkageType: ''
    returnType: int
    signature: int test_config_parsing_valid()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_test_config
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:142,1
    - Dst: setenv
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:143,1
    - Dst: pluginInit
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:146,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:148,1
    - Dst: pluginDestroy
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:151,1
    - Dst: unlink
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:152,1
    - Dst: unsetenv
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:153,1
    - Dst: TEST_PASS
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 155
    functionName: test_config_parsing_invalid
    functionSourceFile: /src/nccl/ext-tuner/example/test/test_plugin.c
    functionUses: 0
    functionsReached:
    - create_test_config
    - TEST_PASS
    - TEST_ASSERT
    - pluginInit
    - unsetenv
    - unlink
    - setenv
    - pluginDestroy
    linkageType: ''
    returnType: int
    signature: int test_config_parsing_invalid()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_test_config
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:163,1
    - Dst: setenv
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:164,1
    - Dst: pluginInit
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:167,1
    - Dst: pluginGetCollInfo
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:182,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:186,1
    - Dst: mock_logger
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:187,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:190,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:191,1
    - Dst: pluginGetCollInfo
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:200,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:203,1
    - Dst: mock_logger
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:204,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:207,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:208,1
    - Dst: pluginDestroy
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:211,1
    - Dst: unlink
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:212,1
    - Dst: unsetenv
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:213,1
    - Dst: TEST_PASS
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:214,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 215
    functionName: test_collective_matching
    functionSourceFile: /src/nccl/ext-tuner/example/test/test_plugin.c
    functionUses: 0
    functionsReached:
    - create_test_config
    - TEST_PASS
    - pluginGetCollInfo
    - TEST_ASSERT
    - pluginInit
    - mock_logger
    - unsetenv
    - unlink
    - setenv
    - pluginDestroy
    linkageType: ''
    returnType: int
    signature: int test_collective_matching()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_test_config
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:224,1
    - Dst: setenv
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:225,1
    - Dst: pluginInit
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:228,1
    - Dst: pluginGetCollInfo
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:240,1
    - Dst: mock_logger
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:243,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:246,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:247,1
    - Dst: pluginGetCollInfo
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:256,1
    - Dst: mock_logger
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:259,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:262,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:263,1
    - Dst: pluginGetCollInfo
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:272,1
    - Dst: mock_logger
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:275,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:278,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:279,1
    - Dst: pluginDestroy
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:282,1
    - Dst: unlink
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:283,1
    - Dst: unsetenv
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:284,1
    - Dst: TEST_PASS
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:285,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 286
    functionName: test_size_matching
    functionSourceFile: /src/nccl/ext-tuner/example/test/test_plugin.c
    functionUses: 0
    functionsReached:
    - create_test_config
    - TEST_PASS
    - pluginGetCollInfo
    - mock_logger
    - pluginInit
    - TEST_ASSERT
    - unsetenv
    - unlink
    - setenv
    - pluginDestroy
    linkageType: ''
    returnType: int
    signature: int test_size_matching()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_test_config
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:295,1
    - Dst: setenv
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:296,1
    - Dst: pluginInit
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:300,1
    - Dst: pluginGetCollInfo
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:312,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:315,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:316,1
    - Dst: pluginDestroy
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:318,1
    - Dst: pluginInit
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:322,1
    - Dst: pluginGetCollInfo
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:330,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:333,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:334,1
    - Dst: unlink
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:337,1
    - Dst: unsetenv
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:338,1
    - Dst: TEST_PASS
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:339,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 340
      start: 289
    functionDepth: 1
    functionLinenumber: 289
    functionLinenumberEnd: 340
    functionName: test_topology_matching
    functionSourceFile: /src/nccl/ext-tuner/example/test/test_plugin.c
    functionUses: 0
    functionsReached:
    - create_test_config
    - TEST_PASS
    - pluginGetCollInfo
    - TEST_ASSERT
    - pluginInit
    - unsetenv
    - unlink
    - setenv
    - pluginDestroy
    linkageType: ''
    returnType: int
    signature: int test_topology_matching()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_test_config
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:347,1
    - Dst: setenv
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:348,1
    - Dst: pluginInit
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:351,1
    - Dst: pluginGetCollInfo
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:363,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:367,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:368,1
    - Dst: pluginDestroy
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:371,1
    - Dst: unlink
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:372,1
    - Dst: unsetenv
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:373,1
    - Dst: TEST_PASS
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:374,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 343
    functionDepth: 1
    functionLinenumber: 343
    functionLinenumberEnd: 375
    functionName: test_default_channels
    functionSourceFile: /src/nccl/ext-tuner/example/test/test_plugin.c
    functionUses: 0
    functionsReached:
    - create_test_config
    - TEST_PASS
    - pluginGetCollInfo
    - TEST_ASSERT
    - pluginInit
    - unsetenv
    - unlink
    - setenv
    - pluginDestroy
    linkageType: ''
    returnType: int
    signature: int test_default_channels()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_test_config
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:384,1
    - Dst: setenv
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:385,1
    - Dst: pluginInit
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:388,1
    - Dst: pluginGetCollInfo
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:405,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:408,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:409,1
    - Dst: pluginGetCollInfo
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:418,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:421,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:422,1
    - Dst: pluginGetCollInfo
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:432,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:435,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:436,1
    - Dst: pluginDestroy
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:439,1
    - Dst: unlink
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:440,1
    - Dst: unsetenv
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:441,1
    - Dst: TEST_PASS
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:442,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 378
    functionDepth: 1
    functionLinenumber: 378
    functionLinenumberEnd: 443
    functionName: test_regbuff_matching
    functionSourceFile: /src/nccl/ext-tuner/example/test/test_plugin.c
    functionUses: 0
    functionsReached:
    - create_test_config
    - TEST_PASS
    - pluginGetCollInfo
    - TEST_ASSERT
    - pluginInit
    - unsetenv
    - unlink
    - setenv
    - pluginDestroy
    linkageType: ''
    returnType: int
    signature: int test_regbuff_matching()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_test_config
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:452,1
    - Dst: setenv
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:453,1
    - Dst: pluginInit
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:456,1
    - Dst: pluginGetCollInfo
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:473,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:476,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:477,1
    - Dst: pluginGetCollInfo
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:486,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:489,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:490,1
    - Dst: pluginGetCollInfo
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:499,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:502,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:503,1
    - Dst: pluginDestroy
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:506,1
    - Dst: unlink
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:507,1
    - Dst: unsetenv
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:508,1
    - Dst: TEST_PASS
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:509,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 446
    functionDepth: 1
    functionLinenumber: 446
    functionLinenumberEnd: 510
    functionName: test_pipeops_matching
    functionSourceFile: /src/nccl/ext-tuner/example/test/test_plugin.c
    functionUses: 0
    functionsReached:
    - create_test_config
    - TEST_PASS
    - pluginGetCollInfo
    - TEST_ASSERT
    - pluginInit
    - unsetenv
    - unlink
    - setenv
    - pluginDestroy
    linkageType: ''
    returnType: int
    signature: int test_pipeops_matching()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_test_config
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:517,1
    - Dst: setenv
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:518,1
    - Dst: pluginInit
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:521,1
    - Dst: pluginGetCollInfo
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:534,1
    - Dst: mock_logger
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:538,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:541,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:542,1
    - Dst: pluginDestroy
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:545,1
    - Dst: unlink
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:546,1
    - Dst: unsetenv
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:547,1
    - Dst: TEST_PASS
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:548,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 513
    functionDepth: 1
    functionLinenumber: 513
    functionLinenumberEnd: 549
    functionName: test_no_match_fallback
    functionSourceFile: /src/nccl/ext-tuner/example/test/test_plugin.c
    functionUses: 0
    functionsReached:
    - create_test_config
    - TEST_PASS
    - pluginGetCollInfo
    - mock_logger
    - pluginInit
    - TEST_ASSERT
    - unsetenv
    - unlink
    - setenv
    - pluginDestroy
    linkageType: ''
    returnType: int
    signature: int test_no_match_fallback()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:557,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:558,1
    - Dst: fprintf
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:561,1
    - Dst: fprintf
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:562,1
    - Dst: fprintf
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:584,1
    - Dst: fclose
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:588,1
    - Dst: setenv
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:591,1
    - Dst: pluginInit
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:595,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:596,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:597,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:601,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:602,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:603,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:610,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:612,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:613,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:619,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:623,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:627,1
    - Dst: mock_logger
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:630,1
    - Dst: mock_logger
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:632,1
    - Dst: pluginGetCollInfo
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:648,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:651,1
    - Dst: pluginDestroy
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:654,1
    - Dst: unlink
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:655,1
    - Dst: unsetenv
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:656,1
    - Dst: TEST_PASS
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:658,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 659
      start: 552
    functionDepth: 1
    functionLinenumber: 552
    functionLinenumberEnd: 659
    functionName: test_large_config
    functionSourceFile: /src/nccl/ext-tuner/example/test/test_plugin.c
    functionUses: 0
    functionsReached:
    - TEST_PASS
    - fclose
    - fopen
    - TEST_ASSERT
    - pluginInit
    - mock_logger
    - pluginGetCollInfo
    - unsetenv
    - unlink
    - setenv
    - fprintf
    - pluginDestroy
    linkageType: ''
    returnType: int
    signature: int test_large_config()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:666,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:667,1
    - Dst: fprintf
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:669,1
    - Dst: fprintf
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:676,1
    - Dst: fclose
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:680,1
    - Dst: setenv
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:682,1
    - Dst: pluginInit
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:686,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:687,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:690,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:691,1
    - Dst: mock_logger
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:693,1
    - Dst: mock_logger
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:695,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:702,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:703,1
    - Dst: pluginDestroy
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:707,1
    - Dst: unlink
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:708,1
    - Dst: unsetenv
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:709,1
    - Dst: TEST_PASS
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:711,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 662
    functionDepth: 1
    functionLinenumber: 662
    functionLinenumberEnd: 712
    functionName: test_very_large_config_stress
    functionSourceFile: /src/nccl/ext-tuner/example/test/test_plugin.c
    functionUses: 0
    functionsReached:
    - TEST_PASS
    - fclose
    - fopen
    - TEST_ASSERT
    - pluginInit
    - mock_logger
    - unsetenv
    - unlink
    - setenv
    - fprintf
    - pluginDestroy
    linkageType: ''
    returnType: int
    signature: int test_very_large_config_stress()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create_test_config
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:719,1
    - Dst: setenv
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:725,1
    - Dst: pluginInit
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:728,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:729,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:732,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:733,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:734,1
    - Dst: pluginGetCollInfo
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:747,1
    - Dst: TEST_ASSERT
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:750,1
    - Dst: pluginDestroy
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:753,1
    - Dst: unlink
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:754,1
    - Dst: unsetenv
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:755,1
    - Dst: TEST_PASS
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:757,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 758
      start: 715
    functionDepth: 1
    functionLinenumber: 715
    functionLinenumberEnd: 758
    functionName: test_empty_config
    functionSourceFile: /src/nccl/ext-tuner/example/test/test_plugin.c
    functionUses: 0
    functionsReached:
    - create_test_config
    - TEST_PASS
    - pluginGetCollInfo
    - TEST_ASSERT
    - pluginInit
    - unsetenv
    - unlink
    - setenv
    - pluginDestroy
    linkageType: ''
    returnType: int
    signature: int test_empty_config()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:790,1
    - Dst: printf
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:791,1
    - Dst: printf
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:793,1
    - Dst: printf
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:795,1
    - Dst: printf
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:796,1
    - Dst: printf
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:797,1
    - Dst: printf
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:798,1
    - Dst: printf
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:799,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - program_name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 800
      start: 789
    functionDepth: 0
    functionLinenumber: 789
    functionLinenumberEnd: 800
    functionName: show_help
    functionSourceFile: /src/nccl/ext-tuner/example/test/test_plugin.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void show_help(const char* program_name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:805,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 810
      start: 803
    functionDepth: 0
    functionLinenumber: 803
    functionLinenumberEnd: 810
    functionName: find_test
    functionSourceFile: /src/nccl/ext-tuner/example/test/test_plugin.c
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: TestFunction
    signature: TestFunction find_test(const char* name)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:817,1
    - Dst: strcmp
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:817,1
    - Dst: show_help
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:818,1
    - Dst: printf
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:822,1
    - Dst: printf
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:823,1
    - Dst: func
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:829,1
    - Dst: find_test
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:834,1
    - Dst: test_func
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:837,1
    - Dst: printf
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:839,1
    - Dst: printf
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:840,1
    - Dst: printf
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:846,1
    - Dst: printf
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:847,1
    - Dst: printf
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:850,1
    - Dst: printf
      Src: /src/nccl/ext-tuner/example/test/test_plugin.c:853,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 856
      start: 813
    functionDepth: 1
    functionLinenumber: 813
    functionLinenumberEnd: 856
    functionName: main
    functionSourceFile: /src/nccl/ext-tuner/example/test/test_plugin.c
    functionUses: 1
    functionsReached:
    - printf
    - strcmp
    - show_help
    - find_test
    - test_func
    - func
    linkageType: ''
    returnType: int
    signature: int main(int argc, char* argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - logFunction
    - profFunction
    argTypes:
    - ncclDebugLogger_t
    - ncclProfilerCallback_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 14
    functionName: ncclResult_t::pluginInit
    functionSourceFile: /src/nccl/ext-net/example/plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __hidden
    signature: __hidden ncclResult_t pluginInit(ncclDebugLogger_t logFunction, ncclProfilerCallback_t
      profFunction)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ndev
    argTypes:
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15
      start: 15
    functionDepth: 0
    functionLinenumber: 15
    functionLinenumberEnd: 15
    functionName: ncclResult_t::pluginDevices
    functionSourceFile: /src/nccl/ext-net/example/plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __hidden
    signature: __hidden ncclResult_t pluginDevices(int* ndev)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dev
    - path
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16
      start: 16
    functionDepth: 0
    functionLinenumber: 16
    functionLinenumberEnd: 16
    functionName: ncclResult_t::pluginPciPath
    functionSourceFile: /src/nccl/ext-net/example/plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __hidden
    signature: __hidden ncclResult_t pluginPciPath(int dev, char** path)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dev
    - supportedTypes
    argTypes:
    - int
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17
      start: 17
    functionDepth: 0
    functionLinenumber: 17
    functionLinenumberEnd: 17
    functionName: ncclResult_t::pluginPtrSupport
    functionSourceFile: /src/nccl/ext-net/example/plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __hidden
    signature: __hidden ncclResult_t pluginPtrSupport(int dev, int* supportedTypes)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 2
    argNames:
    - dev
    - props
    argTypes:
    - int
    - ncclNetProperties_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 52
    functionName: ncclResult_t::pluginGetProperties
    functionSourceFile: /src/nccl/ext-net/example/plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __hidden
    signature: __hidden ncclResult_t pluginGetProperties(int dev, ncclNetProperties_t*
      props)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - dev
    - handle
    - listenComm
    argTypes:
    - int
    - void*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 54
    functionName: ncclResult_t::pluginListen
    functionSourceFile: /src/nccl/ext-net/example/plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __hidden
    signature: __hidden ncclResult_t pluginListen(int dev, void* handle, void** listenComm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - dev
    - config
    - handle
    - sendComm
    - sendDevComm
    argTypes:
    - int
    - ncclNetCommConfig_t*
    - void*
    - void**
    - ncclNetDeviceHandle_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 55
    functionName: ncclResult_t::pluginConnect
    functionSourceFile: /src/nccl/ext-net/example/plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __hidden
    signature: __hidden ncclResult_t pluginConnect(int dev, ncclNetCommConfig_t* config,
      void* handle, void** sendComm, ncclNetDeviceHandle_t** sendDevComm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - listenComm
    - recvComm
    - recvDevComm
    argTypes:
    - void*
    - void**
    - ncclNetDeviceHandle_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: ncclResult_t::pluginAccept
    functionSourceFile: /src/nccl/ext-net/example/plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __hidden
    signature: __hidden ncclResult_t pluginAccept(void* listenComm, void** recvComm,
      ncclNetDeviceHandle_t** recvDevComm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - collComm
    - data
    - size
    - type
    - mhandle
    argTypes:
    - void*
    - void*
    - size_t
    - int
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    functionName: ncclResult_t::pluginRegMr
    functionSourceFile: /src/nccl/ext-net/example/plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __hidden
    signature: __hidden ncclResult_t pluginRegMr(void* collComm, void* data, size_t
      size, int type, void** mhandle)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - collComm
    - data
    - size
    - type
    - offset
    - fd
    - mhandle
    argTypes:
    - void*
    - void*
    - size_t
    - int
    - uint64_t
    - int
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 58
    functionName: ncclResult_t::pluginRegMrDmaBuf
    functionSourceFile: /src/nccl/ext-net/example/plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __hidden
    signature: __hidden ncclResult_t pluginRegMrDmaBuf(void* collComm, void* data,
      size_t size, int type, uint64_t offset, int fd, void** mhandle)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - collComm
    - mhandle
    argTypes:
    - void*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 59
    functionName: ncclResult_t::pluginDeregMr
    functionSourceFile: /src/nccl/ext-net/example/plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __hidden
    signature: __hidden ncclResult_t pluginDeregMr(void* collComm, void* mhandle)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - sendComm
    - data
    - size
    - tag
    - mhandle
    - phandle
    - request
    argTypes:
    - void*
    - void*
    - size_t
    - int
    - void*
    - void*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 60
    functionName: ncclResult_t::pluginIsend
    functionSourceFile: /src/nccl/ext-net/example/plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __hidden
    signature: __hidden ncclResult_t pluginIsend(void* sendComm, void* data, size_t
      size, int tag, void* mhandle, void* phandle, void** request)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 8
    argNames:
    - recvComm
    - n
    - data
    - sizes
    - tags
    - mhandles
    - phandles
    - request
    argTypes:
    - void*
    - int
    - void**
    - size_t*
    - int*
    - void**
    - void**
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: ncclResult_t::pluginIrecv
    functionSourceFile: /src/nccl/ext-net/example/plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __hidden
    signature: __hidden ncclResult_t pluginIrecv(void* recvComm, int n, void** data,
      size_t* sizes, int* tags, void** mhandles, void** phandles, void** request)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - recvComm
    - n
    - data
    - sizes
    - mhandles
    - request
    argTypes:
    - void*
    - int
    - void**
    - int*
    - void**
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 62
    functionName: ncclResult_t::pluginIflush
    functionSourceFile: /src/nccl/ext-net/example/plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __hidden
    signature: __hidden ncclResult_t pluginIflush(void* recvComm, int n, void** data,
      int* sizes, void** mhandles, void** request)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - request
    - done
    - size
    argTypes:
    - void*
    - int*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: ncclResult_t::pluginTest
    functionSourceFile: /src/nccl/ext-net/example/plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __hidden
    signature: __hidden ncclResult_t pluginTest(void* request, int* done, int* size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sendComm
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 64
    functionName: ncclResult_t::pluginCloseSend
    functionSourceFile: /src/nccl/ext-net/example/plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __hidden
    signature: __hidden ncclResult_t pluginCloseSend(void* sendComm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - recvComm
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 65
    functionName: ncclResult_t::pluginCloseRecv
    functionSourceFile: /src/nccl/ext-net/example/plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __hidden
    signature: __hidden ncclResult_t pluginCloseRecv(void* recvComm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - listenComm
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 66
    functionName: ncclResult_t::pluginCloseListen
    functionSourceFile: /src/nccl/ext-net/example/plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __hidden
    signature: __hidden ncclResult_t pluginCloseListen(void* listenComm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - recvComm
    - n
    - request
    argTypes:
    - void*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 67
    functionName: ncclResult_t::pluginIrecvConsumed
    functionSourceFile: /src/nccl/ext-net/example/plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __hidden
    signature: __hidden ncclResult_t pluginIrecvConsumed(void* recvComm, int n, void*
      request)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - comm
    - mhandle
    - dptr_mhandle
    argTypes:
    - void*
    - void*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 68
    functionName: ncclResult_t::pluginGetDeviceMr
    functionSourceFile: /src/nccl/ext-net/example/plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __hidden
    signature: __hidden ncclResult_t pluginGetDeviceMr(void* comm, void* mhandle,
      void** dptr_mhandle)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - props
    argTypes:
    - int*
    - ncclNetVDeviceProps_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    functionName: ncclResult_t::pluginMakeVDevice
    functionSourceFile: /src/nccl/ext-net/example/plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __hidden
    signature: __hidden ncclResult_t pluginMakeVDevice(int* d, ncclNetVDeviceProps_t*
      props)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclResult_t::pluginInit
      Src: /src/nccl/ext-net/example/plugin.c:97,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - logFunction
    argTypes:
    - ncclDebugLogger_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 98
    functionName: ncclResult_t::pluginInit_v9
    functionSourceFile: /src/nccl/ext-net/example/plugin.c
    functionUses: 0
    functionsReached:
    - ncclResult_t::pluginInit
    linkageType: ''
    returnType: __hidden
    signature: __hidden ncclResult_t pluginInit_v9(ncclDebugLogger_t logFunction)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclResult_t::pluginGetProperties
      Src: /src/nccl/ext-net/example/plugin.c:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dev
    - props
    argTypes:
    - int
    - ncclNetProperties_v9_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 102
    functionName: ncclResult_t::pluginGetProperties_v9
    functionSourceFile: /src/nccl/ext-net/example/plugin.c
    functionUses: 0
    functionsReached:
    - ncclResult_t::pluginGetProperties
    linkageType: ''
    returnType: __hidden
    signature: __hidden ncclResult_t pluginGetProperties_v9(int dev, ncclNetProperties_v9_t*
      props)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclResult_t::pluginConnect
      Src: /src/nccl/ext-net/example/plugin.c:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - dev
    - handle
    - sendComm
    - sendDevComm
    argTypes:
    - int
    - void*
    - void**
    - ncclNetDeviceHandle_t**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 106
    functionName: ncclResult_t::pluginConnect_v9
    functionSourceFile: /src/nccl/ext-net/example/plugin.c
    functionUses: 0
    functionsReached:
    - ncclResult_t::pluginConnect
    linkageType: ''
    returnType: __hidden
    signature: __hidden ncclResult_t pluginConnect_v9(int dev, void* handle, void**
      sendComm, ncclNetDeviceHandle_t** sendDevComm)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclResult_t::pluginIsend
      Src: /src/nccl/ext-net/example/plugin.c:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - sendComm
    - data
    - size
    - tag
    - mhandle
    - request
    argTypes:
    - void*
    - void*
    - size_t
    - int
    - void*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 108
    functionDepth: 1
    functionLinenumber: 108
    functionLinenumberEnd: 110
    functionName: ncclResult_t::pluginIsend_v9
    functionSourceFile: /src/nccl/ext-net/example/plugin.c
    functionUses: 0
    functionsReached:
    - ncclResult_t::pluginIsend
    linkageType: ''
    returnType: __hidden
    signature: __hidden ncclResult_t pluginIsend_v9(void* sendComm, void* data, size_t
      size, int tag, void* mhandle, void** request)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclResult_t::pluginIrecv
      Src: /src/nccl/ext-net/example/plugin.c:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 7
    argNames:
    - recvComm
    - n
    - data
    - sizes
    - tags
    - mhandles
    - request
    argTypes:
    - void*
    - int
    - void**
    - size_t*
    - int*
    - void**
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 114
    functionName: ncclResult_t::pluginIrecv_v9
    functionSourceFile: /src/nccl/ext-net/example/plugin.c
    functionUses: 0
    functionsReached:
    - ncclResult_t::pluginIrecv
    linkageType: ''
    returnType: __hidden
    signature: __hidden ncclResult_t pluginIrecv_v9(void* recvComm, int n, void**
      data, size_t* sizes, int* tags, void** mhandles, void** request)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - d
    - props
    argTypes:
    - int*
    - ncclNetVDeviceProps_v9_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 116
    functionName: ncclResult_t::pluginMakeVDevice_v9
    functionSourceFile: /src/nccl/ext-net/example/plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __hidden
    signature: __hidden ncclResult_t pluginMakeVDevice_v9(int* d, ncclNetVDeviceProps_v9_t*
      props)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncclResult_t::pluginGetProperties
      Src: /src/nccl/ext-net/example/plugin.c:143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 2
    argNames:
    - dev
    - props_v8
    argTypes:
    - int
    - ncclNetProperties_v8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 158
    functionName: ncclResult_t::pluginGetProperties_v8
    functionSourceFile: /src/nccl/ext-net/example/plugin.c
    functionUses: 0
    functionsReached:
    - ncclResult_t::pluginGetProperties
    linkageType: ''
    returnType: __hidden
    signature: __hidden ncclResult_t pluginGetProperties_v8(int dev, ncclNetProperties_v8_t*
      props_v8)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclResult_t::pluginIsend
      Src: /src/nccl/ext-net/example/plugin.c:161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - sendComm
    - data
    - size
    - tag
    - mhandle
    - request
    argTypes:
    - void*
    - void*
    - int
    - int
    - void*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 162
    functionName: ncclResult_t::pluginIsend_v8
    functionSourceFile: /src/nccl/ext-net/example/plugin.c
    functionUses: 0
    functionsReached:
    - ncclResult_t::pluginIsend
    linkageType: ''
    returnType: __hidden
    signature: __hidden ncclResult_t pluginIsend_v8(void* sendComm, void* data, int
      size, int tag, void* mhandle, void** request)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclResult_t::pluginIrecv
      Src: /src/nccl/ext-net/example/plugin.c:167,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 7
    argNames:
    - recvComm
    - n
    - data
    - sizes
    - tags
    - mhandles
    - request
    argTypes:
    - void*
    - int
    - void**
    - int*
    - int*
    - void**
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 168
    functionName: ncclResult_t::pluginIrecv_v8
    functionSourceFile: /src/nccl/ext-net/example/plugin.c
    functionUses: 0
    functionsReached:
    - ncclResult_t::pluginIrecv
    linkageType: ''
    returnType: __hidden
    signature: __hidden ncclResult_t pluginIrecv_v8(void* recvComm, int n, void**
      data, int* sizes, int* tags, void** mhandles, void** request)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncclResult_t::pluginGetProperties
      Src: /src/nccl/ext-net/example/plugin.c:194,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 2
    argNames:
    - dev
    - props_v7
    argTypes:
    - int
    - ncclNetProperties_v7_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 208
    functionName: ncclResult_t::pluginGetProperties_v7
    functionSourceFile: /src/nccl/ext-net/example/plugin.c
    functionUses: 0
    functionsReached:
    - ncclResult_t::pluginGetProperties
    linkageType: ''
    returnType: __hidden
    signature: __hidden ncclResult_t pluginGetProperties_v7(int dev, ncclNetProperties_v7_t*
      props_v7)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ncclResult_t::pluginRegMr
      Src: /src/nccl/ext-net/example/plugin.c:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - collComm
    - data
    - size
    - type
    - mhandle
    argTypes:
    - void*
    - void*
    - int
    - int
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 212
    functionName: ncclResult_t::pluginRegMr_v7
    functionSourceFile: /src/nccl/ext-net/example/plugin.c
    functionUses: 0
    functionsReached:
    - ncclResult_t::pluginRegMr
    linkageType: ''
    returnType: __hidden
    signature: __hidden ncclResult_t pluginRegMr_v7(void* collComm, void* data, int
      size, int type, void** mhandle)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ncclResult_t::pluginGetProperties
      Src: /src/nccl/ext-net/example/plugin.c:238,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - dev
    - props_v6
    argTypes:
    - int
    - ncclNetProperties_v6_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 250
    functionName: ncclResult_t::pluginGetProperties_v6
    functionSourceFile: /src/nccl/ext-net/example/plugin.c
    functionUses: 0
    functionsReached:
    - ncclResult_t::pluginGetProperties
    linkageType: ''
    returnType: __hidden
    signature: __hidden ncclResult_t pluginGetProperties_v6(int dev, ncclNetProperties_v6_t*
      props_v6)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - dev
    - handle
    - sendComm
    argTypes:
    - int
    - void*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 252
    functionDepth: 0
    functionLinenumber: 252
    functionLinenumberEnd: 252
    functionName: ncclResult_t::pluginConnect_v6
    functionSourceFile: /src/nccl/ext-net/example/plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __hidden
    signature: __hidden ncclResult_t pluginConnect_v6(int dev, void* handle, void**
      sendComm)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - listenComm
    - recvComm
    argTypes:
    - void*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 253
    functionName: ncclResult_t::pluginAccept_v6
    functionSourceFile: /src/nccl/ext-net/example/plugin.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: __hidden
    signature: __hidden ncclResult_t pluginAccept_v6(void* listenComm, void** recvComm)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pluginGetProperties
      Src: /src/nccl/ext-net/example/plugin.c:298,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 2
    argNames:
    - dev
    - props_v4
    argTypes:
    - int
    - ncclNetProperties_v4_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 308
    functionName: pluginGetProperties_v4
    functionSourceFile: /src/nccl/ext-net/example/plugin.c
    functionUses: 0
    functionsReached:
    - pluginGetProperties
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t pluginGetProperties_v4(int dev, ncclNetProperties_v4_t*
      props_v4)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pluginIsend_v8
      Src: /src/nccl/ext-net/example/plugin.c:310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - sendComm
    - data
    - size
    - mhandle
    - request
    argTypes:
    - void*
    - void*
    - int
    - void*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 311
    functionName: pluginIsend_v4
    functionSourceFile: /src/nccl/ext-net/example/plugin.c
    functionUses: 0
    functionsReached:
    - pluginIsend_v8
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t pluginIsend_v4(void *sendComm, void* data, int size, void
      *mhandle, void** request)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pluginIrecv_v8
      Src: /src/nccl/ext-net/example/plugin.c:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - recvComm
    - data
    - size
    - mhandle
    - request
    argTypes:
    - void*
    - void*
    - int
    - void*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 315
    functionName: pluginIrecv_v4
    functionSourceFile: /src/nccl/ext-net/example/plugin.c
    functionUses: 0
    functionsReached:
    - pluginIrecv_v8
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t pluginIrecv_v4(void* recvComm, void* data, int size, void*
      mhandle, void** request)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pluginIflush
      Src: /src/nccl/ext-net/example/plugin.c:317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - recvComm
    - data
    - size
    - mhandle
    - request
    argTypes:
    - void*
    - void*
    - int
    - void*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 316
    functionDepth: 0
    functionLinenumber: 316
    functionLinenumberEnd: 318
    functionName: pluginIflush_v4
    functionSourceFile: /src/nccl/ext-net/example/plugin.c
    functionUses: 0
    functionsReached:
    - pluginIflush
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t pluginIflush_v4(void* recvComm, void* data, int size,
      void* mhandle, void** request)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pluginConnect
      Src: /src/nccl/ext-net/example/plugin.c:323,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - dev
    - handle
    - sendComm
    argTypes:
    - int
    - void*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 319
    functionDepth: 0
    functionLinenumber: 319
    functionLinenumberEnd: 326
    functionName: pluginConnect_v4
    functionSourceFile: /src/nccl/ext-net/example/plugin.c
    functionUses: 0
    functionsReached:
    - pluginConnect
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t pluginConnect_v4(int dev, void* handle, void** sendComm)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pluginAccept
      Src: /src/nccl/ext-net/example/plugin.c:331,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - listenComm
    - recvComm
    argTypes:
    - void*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 327
    functionDepth: 0
    functionLinenumber: 327
    functionLinenumberEnd: 334
    functionName: pluginAccept_v4
    functionSourceFile: /src/nccl/ext-net/example/plugin.c
    functionUses: 0
    functionsReached:
    - pluginAccept
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t pluginAccept_v4(void* listenComm, void** recvComm)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pluginIflush_v4
      Src: /src/nccl/ext-net/example/plugin.c:357,1
    - Dst: pluginTest
      Src: /src/nccl/ext-net/example/plugin.c:360,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 4
    argNames:
    - recvComm
    - data
    - size
    - mhandle
    argTypes:
    - void*
    - void*
    - int
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 355
    functionDepth: 1
    functionLinenumber: 355
    functionLinenumberEnd: 363
    functionName: pluginFlush
    functionSourceFile: /src/nccl/ext-net/example/plugin.c
    functionUses: 0
    functionsReached:
    - pluginIflush_v4
    - pluginTest
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t pluginFlush(void* recvComm, void* data, int size, void*
      mhandle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pluginInit
      Src: /src/nccl/ext-net/example/plugin.c:366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - logFunction
    argTypes:
    - ncclDebugLogger_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 367
    functionName: pluginInit_v3
    functionSourceFile: /src/nccl/ext-net/example/plugin.c
    functionUses: 0
    functionsReached:
    - pluginInit
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t pluginInit_v3(ncclDebugLogger_t logFunction)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pluginListen
      Src: /src/nccl/ext-net/example/plugin.c:371,1
    - Dst: memcpy
      Src: /src/nccl/ext-net/example/plugin.c:372,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - dev
    - handle
    - listenComm
    argTypes:
    - int
    - void*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 369
    functionDepth: 0
    functionLinenumber: 369
    functionLinenumberEnd: 374
    functionName: pluginListen_v3
    functionSourceFile: /src/nccl/ext-net/example/plugin.c
    functionUses: 0
    functionsReached:
    - pluginListen
    - memcpy
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t pluginListen_v3(int dev, void* handle, void** listenComm)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/nccl/ext-net/example/plugin.c:377,1
    - Dst: pluginConnect_v4
      Src: /src/nccl/ext-net/example/plugin.c:378,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - dev
    - handle
    - sendComm
    argTypes:
    - int
    - void*
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 375
    functionDepth: 1
    functionLinenumber: 375
    functionLinenumberEnd: 379
    functionName: pluginConnect_v3
    functionSourceFile: /src/nccl/ext-net/example/plugin.c
    functionUses: 0
    functionsReached:
    - pluginConnect_v4
    - memcpy
    linkageType: ''
    returnType: ncclResult_t
    signature: ncclResult_t pluginConnect_v3(int dev, void* handle, void** sendComm)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nccl/ext-profiler/example/print_event.c:19,1
    - Dst: getpid
      Src: /src/nccl/ext-profiler/example/print_event.c:20,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fh
    - event
    argTypes:
    - FILE*
    - struct group*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21
      start: 18
    functionDepth: 0
    functionLinenumber: 18
    functionLinenumberEnd: 21
    functionName: printGroupEventHeader
    functionSourceFile: /src/nccl/ext-profiler/example/print_event.c
    functionUses: 0
    functionsReached:
    - getpid
    - fprintf
    linkageType: ''
    returnType: __hidden
    signature: __hidden printGroupEventHeader(FILE* fh, struct group* event)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nccl/ext-profiler/example/print_event.c:24,1
    - Dst: getpid
      Src: /src/nccl/ext-profiler/example/print_event.c:25,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fh
    - event
    argTypes:
    - FILE*
    - struct group*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 26
      start: 23
    functionDepth: 0
    functionLinenumber: 23
    functionLinenumberEnd: 26
    functionName: printGroupEventTrailer
    functionSourceFile: /src/nccl/ext-profiler/example/print_event.c
    functionUses: 0
    functionsReached:
    - getpid
    - fprintf
    linkageType: ''
    returnType: __hidden
    signature: __hidden printGroupEventTrailer(FILE* fh, struct group* event)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nccl/ext-profiler/example/print_event.c:30,1
    - Dst: getpid
      Src: /src/nccl/ext-profiler/example/print_event.c:31,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fh
    - event
    argTypes:
    - FILE*
    - struct collective*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 32
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 32
    functionName: printCollEventHeader
    functionSourceFile: /src/nccl/ext-profiler/example/print_event.c
    functionUses: 0
    functionsReached:
    - getpid
    - fprintf
    linkageType: ''
    returnType: __hidden
    signature: __hidden printCollEventHeader(FILE* fh, struct collective* event)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nccl/ext-profiler/example/print_event.c:35,1
    - Dst: getpid
      Src: /src/nccl/ext-profiler/example/print_event.c:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fh
    - event
    argTypes:
    - FILE*
    - struct collective*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 37
    functionName: printCollEventTrailer
    functionSourceFile: /src/nccl/ext-profiler/example/print_event.c
    functionUses: 0
    functionsReached:
    - getpid
    - fprintf
    linkageType: ''
    returnType: __hidden
    signature: __hidden printCollEventTrailer(FILE* fh, struct collective* event)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nccl/ext-profiler/example/print_event.c:41,1
    - Dst: getpid
      Src: /src/nccl/ext-profiler/example/print_event.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fh
    - event
    argTypes:
    - FILE*
    - struct p2p*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 43
    functionName: printP2pEventHeader
    functionSourceFile: /src/nccl/ext-profiler/example/print_event.c
    functionUses: 0
    functionsReached:
    - getpid
    - fprintf
    linkageType: ''
    returnType: __hidden
    signature: __hidden printP2pEventHeader(FILE* fh, struct p2p* event)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nccl/ext-profiler/example/print_event.c:46,1
    - Dst: getpid
      Src: /src/nccl/ext-profiler/example/print_event.c:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fh
    - event
    argTypes:
    - FILE*
    - struct p2p*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 48
    functionName: printP2pEventTrailer
    functionSourceFile: /src/nccl/ext-profiler/example/print_event.c
    functionUses: 0
    functionsReached:
    - getpid
    - fprintf
    linkageType: ''
    returnType: __hidden
    signature: __hidden printP2pEventTrailer(FILE* fh, struct p2p* event)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nccl/ext-profiler/example/print_event.c:53,1
    - Dst: getpid
      Src: /src/nccl/ext-profiler/example/print_event.c:54,1
    - Dst: fprintf
      Src: /src/nccl/ext-profiler/example/print_event.c:55,1
    - Dst: getpid
      Src: /src/nccl/ext-profiler/example/print_event.c:56,1
    - Dst: fprintf
      Src: /src/nccl/ext-profiler/example/print_event.c:57,1
    - Dst: getpid
      Src: /src/nccl/ext-profiler/example/print_event.c:58,1
    - Dst: fprintf
      Src: /src/nccl/ext-profiler/example/print_event.c:60,1
    - Dst: getpid
      Src: /src/nccl/ext-profiler/example/print_event.c:61,1
    - Dst: fprintf
      Src: /src/nccl/ext-profiler/example/print_event.c:62,1
    - Dst: getpid
      Src: /src/nccl/ext-profiler/example/print_event.c:63,1
    - Dst: fprintf
      Src: /src/nccl/ext-profiler/example/print_event.c:64,1
    - Dst: getpid
      Src: /src/nccl/ext-profiler/example/print_event.c:65,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - fh
    - event
    argTypes:
    - FILE*
    - struct proxyOp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 67
    functionName: printProxyOpEventHeader
    functionSourceFile: /src/nccl/ext-profiler/example/print_event.c
    functionUses: 0
    functionsReached:
    - getpid
    - fprintf
    linkageType: ''
    returnType: __hidden
    signature: __hidden printProxyOpEventHeader(FILE* fh, struct proxyOp* event)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nccl/ext-profiler/example/print_event.c:70,1
    - Dst: getpid
      Src: /src/nccl/ext-profiler/example/print_event.c:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fh
    - event
    argTypes:
    - FILE*
    - struct proxyOp*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 72
    functionName: printProxyOpEventTrailer
    functionSourceFile: /src/nccl/ext-profiler/example/print_event.c
    functionUses: 0
    functionsReached:
    - getpid
    - fprintf
    linkageType: ''
    returnType: __hidden
    signature: __hidden printProxyOpEventTrailer(FILE* fh, struct proxyOp* event)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nccl/ext-profiler/example/print_event.c:77,1
    - Dst: getpid
      Src: /src/nccl/ext-profiler/example/print_event.c:78,1
    - Dst: fprintf
      Src: /src/nccl/ext-profiler/example/print_event.c:79,1
    - Dst: getpid
      Src: /src/nccl/ext-profiler/example/print_event.c:80,1
    - Dst: fprintf
      Src: /src/nccl/ext-profiler/example/print_event.c:81,1
    - Dst: getpid
      Src: /src/nccl/ext-profiler/example/print_event.c:82,1
    - Dst: fprintf
      Src: /src/nccl/ext-profiler/example/print_event.c:83,1
    - Dst: getpid
      Src: /src/nccl/ext-profiler/example/print_event.c:84,1
    - Dst: fprintf
      Src: /src/nccl/ext-profiler/example/print_event.c:85,1
    - Dst: getpid
      Src: /src/nccl/ext-profiler/example/print_event.c:86,1
    - Dst: fprintf
      Src: /src/nccl/ext-profiler/example/print_event.c:88,1
    - Dst: getpid
      Src: /src/nccl/ext-profiler/example/print_event.c:89,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - fh
    - event
    argTypes:
    - FILE*
    - struct proxyStep*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 91
    functionName: printProxyStepEventHeader
    functionSourceFile: /src/nccl/ext-profiler/example/print_event.c
    functionUses: 0
    functionsReached:
    - getpid
    - fprintf
    linkageType: ''
    returnType: __hidden
    signature: __hidden printProxyStepEventHeader(FILE* fh, struct proxyStep* event)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nccl/ext-profiler/example/print_event.c:95,1
    - Dst: getpid
      Src: /src/nccl/ext-profiler/example/print_event.c:96,1
    - Dst: fprintf
      Src: /src/nccl/ext-profiler/example/print_event.c:98,1
    - Dst: getpid
      Src: /src/nccl/ext-profiler/example/print_event.c:99,1
    - Dst: fprintf
      Src: /src/nccl/ext-profiler/example/print_event.c:100,1
    - Dst: getpid
      Src: /src/nccl/ext-profiler/example/print_event.c:101,1
    - Dst: fprintf
      Src: /src/nccl/ext-profiler/example/print_event.c:102,1
    - Dst: getpid
      Src: /src/nccl/ext-profiler/example/print_event.c:103,1
    - Dst: fprintf
      Src: /src/nccl/ext-profiler/example/print_event.c:104,1
    - Dst: getpid
      Src: /src/nccl/ext-profiler/example/print_event.c:105,1
    - Dst: fprintf
      Src: /src/nccl/ext-profiler/example/print_event.c:106,1
    - Dst: getpid
      Src: /src/nccl/ext-profiler/example/print_event.c:107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - fh
    - event
    argTypes:
    - FILE*
    - struct proxyStep*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 109
    functionName: printProxyStepEventTrailer
    functionSourceFile: /src/nccl/ext-profiler/example/print_event.c
    functionUses: 0
    functionsReached:
    - getpid
    - fprintf
    linkageType: ''
    returnType: __hidden
    signature: __hidden printProxyStepEventTrailer(FILE* fh, struct proxyStep* event)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nccl/ext-profiler/example/print_event.c:114,1
    - Dst: getpid
      Src: /src/nccl/ext-profiler/example/print_event.c:115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - fh
    - event
    argTypes:
    - FILE*
    - struct kernelCh*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 116
    functionName: printKernelChEventHeader
    functionSourceFile: /src/nccl/ext-profiler/example/print_event.c
    functionUses: 0
    functionsReached:
    - getpid
    - fprintf
    linkageType: ''
    returnType: __hidden
    signature: __hidden printKernelChEventHeader(FILE* fh, struct kernelCh* event)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nccl/ext-profiler/example/print_event.c:120,1
    - Dst: getpid
      Src: /src/nccl/ext-profiler/example/print_event.c:121,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - fh
    - event
    argTypes:
    - FILE*
    - struct kernelCh*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 122
    functionName: printKernelChEventTrailer
    functionSourceFile: /src/nccl/ext-profiler/example/print_event.c
    functionUses: 0
    functionsReached:
    - getpid
    - fprintf
    linkageType: ''
    returnType: __hidden
    signature: __hidden printKernelChEventTrailer(FILE* fh, struct kernelCh* event)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nccl/ext-profiler/example/print_event.c:137,1
    - Dst: getpid
      Src: /src/nccl/ext-profiler/example/print_event.c:138,1
    - Dst: fprintf
      Src: /src/nccl/ext-profiler/example/print_event.c:140,1
    - Dst: getpid
      Src: /src/nccl/ext-profiler/example/print_event.c:141,1
    - Dst: fprintf
      Src: /src/nccl/ext-profiler/example/print_event.c:143,1
    - Dst: getpid
      Src: /src/nccl/ext-profiler/example/print_event.c:144,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 2
    argNames:
    - fh
    - event
    argTypes:
    - FILE*
    - struct proxyCtrl*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 145
    functionName: printProxyCtrlEvent
    functionSourceFile: /src/nccl/ext-profiler/example/print_event.c
    functionUses: 0
    functionsReached:
    - getpid
    - fprintf
    linkageType: ''
    returnType: __hidden
    signature: __hidden printProxyCtrlEvent(FILE* fh, struct proxyCtrl* event)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/nccl/ext-profiler/example/print_event.c:152,1
    - Dst: getpid
      Src: /src/nccl/ext-profiler/example/print_event.c:153,1
    - Dst: fprintf
      Src: /src/nccl/ext-profiler/example/print_event.c:154,1
    - Dst: getpid
      Src: /src/nccl/ext-profiler/example/print_event.c:155,1
    - Dst: fprintf
      Src: /src/nccl/ext-profiler/example/print_event.c:161,1
    - Dst: getpid
      Src: /src/nccl/ext-profiler/example/print_event.c:162,1
    - Dst: fprintf
      Src: /src/nccl/ext-profiler/example/print_event.c:163,1
    - Dst: getpid
      Src: /src/nccl/ext-profiler/example/print_event.c:164,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - fh
    - event
    argTypes:
    - FILE*
    - struct netPlugin*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 168
    functionName: printNetPluginEvent
    functionSourceFile: /src/nccl/ext-profiler/example/print_event.c
    functionUses: 0
    functionsReached:
    - getpid
    - fprintf
    linkageType: ''
    returnType: __hidden
    signature: __hidden printNetPluginEvent(FILE* fh, struct netPlugin* event)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: sprintf
      Src: /src/nccl/ext-profiler/example/print_event.c:174,1
    - Dst: getpid
      Src: /src/nccl/ext-profiler/example/print_event.c:174,1
    - Dst: fopen
      Src: /src/nccl/ext-profiler/example/print_event.c:175,1
    - Dst: fprintf
      Src: /src/nccl/ext-profiler/example/print_event.c:179,1
    - Dst: fprintf
      Src: /src/nccl/ext-profiler/example/print_event.c:180,1
    - Dst: __atomic_load_n
      Src: /src/nccl/ext-profiler/example/print_event.c:180,1
    - Dst: fprintf
      Src: /src/nccl/ext-profiler/example/print_event.c:181,1
    - Dst: fprintf
      Src: /src/nccl/ext-profiler/example/print_event.c:182,1
    - Dst: fprintf
      Src: /src/nccl/ext-profiler/example/print_event.c:183,1
    - Dst: fprintf
      Src: /src/nccl/ext-profiler/example/print_event.c:186,1
    - Dst: fprintf
      Src: /src/nccl/ext-profiler/example/print_event.c:187,1
    - Dst: __atomic_load_n
      Src: /src/nccl/ext-profiler/example/print_event.c:187,1
    - Dst: fprintf
      Src: /src/nccl/ext-profiler/example/print_event.c:188,1
    - Dst: fprintf
      Src: /src/nccl/ext-profiler/example/print_event.c:190,1
    - Dst: fprintf
      Src: /src/nccl/ext-profiler/example/print_event.c:192,1
    - Dst: fprintf
      Src: /src/nccl/ext-profiler/example/print_event.c:193,1
    - Dst: fprintf
      Src: /src/nccl/ext-profiler/example/print_event.c:194,1
    - Dst: fprintf
      Src: /src/nccl/ext-profiler/example/print_event.c:197,1
    - Dst: fprintf
      Src: /src/nccl/ext-profiler/example/print_event.c:198,1
    - Dst: __atomic_load_n
      Src: /src/nccl/ext-profiler/example/print_event.c:198,1
    - Dst: fprintf
      Src: /src/nccl/ext-profiler/example/print_event.c:199,1
    - Dst: fprintf
      Src: /src/nccl/ext-profiler/example/print_event.c:200,1
    - Dst: fprintf
      Src: /src/nccl/ext-profiler/example/print_event.c:201,1
    - Dst: fprintf
      Src: /src/nccl/ext-profiler/example/print_event.c:202,1
    - Dst: fprintf
      Src: /src/nccl/ext-profiler/example/print_event.c:203,1
    - Dst: fprintf
      Src: /src/nccl/ext-profiler/example/print_event.c:206,1
    - Dst: fprintf
      Src: /src/nccl/ext-profiler/example/print_event.c:207,1
    - Dst: fprintf
      Src: /src/nccl/ext-profiler/example/print_event.c:208,1
    - Dst: fprintf
      Src: /src/nccl/ext-profiler/example/print_event.c:209,1
    - Dst: fprintf
      Src: /src/nccl/ext-profiler/example/print_event.c:210,1
    - Dst: fprintf
      Src: /src/nccl/ext-profiler/example/print_event.c:211,1
    - Dst: fprintf
      Src: /src/nccl/ext-profiler/example/print_event.c:212,1
    - Dst: fprintf
      Src: /src/nccl/ext-profiler/example/print_event.c:213,1
    - Dst: fprintf
      Src: /src/nccl/ext-profiler/example/print_event.c:214,1
    - Dst: fprintf
      Src: /src/nccl/ext-profiler/example/print_event.c:217,1
    - Dst: fprintf
      Src: /src/nccl/ext-profiler/example/print_event.c:218,1
    - Dst: fprintf
      Src: /src/nccl/ext-profiler/example/print_event.c:219,1
    - Dst: fprintf
      Src: /src/nccl/ext-profiler/example/print_event.c:220,1
    - Dst: fprintf
      Src: /src/nccl/ext-profiler/example/print_event.c:221,1
    - Dst: fprintf
      Src: /src/nccl/ext-profiler/example/print_event.c:222,1
    - Dst: fprintf
      Src: /src/nccl/ext-profiler/example/print_event.c:225,1
    - Dst: fprintf
      Src: /src/nccl/ext-profiler/example/print_event.c:226,1
    - Dst: fprintf
      Src: /src/nccl/ext-profiler/example/print_event.c:227,1
    - Dst: fprintf
      Src: /src/nccl/ext-profiler/example/print_event.c:230,1
    - Dst: fprintf
      Src: /src/nccl/ext-profiler/example/print_event.c:231,1
    - Dst: fprintf
      Src: /src/nccl/ext-profiler/example/print_event.c:232,1
    - Dst: fprintf
      Src: /src/nccl/ext-profiler/example/print_event.c:233,1
    - Dst: fprintf
      Src: /src/nccl/ext-profiler/example/print_event.c:234,1
    - Dst: fprintf
      Src: /src/nccl/ext-profiler/example/print_event.c:235,1
    - Dst: fprintf
      Src: /src/nccl/ext-profiler/example/print_event.c:236,1
    - Dst: fclose
      Src: /src/nccl/ext-profiler/example/print_event.c:238,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 65
    argCount: 2
    argNames:
    - eHandle
    - tag
    argTypes:
    - void*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 240
    functionName: debugEvent
    functionSourceFile: /src/nccl/ext-profiler/example/print_event.c
    functionUses: 0
    functionsReached:
    - __atomic_load_n
    - fclose
    - fopen
    - getpid
    - sprintf
    - fprintf
    linkageType: ''
    returnType: void
    signature: void debugEvent(void* eHandle, const char* tag)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: printGroupEventHeader
      Src: /src/nccl/ext-profiler/example/print_event.c:247,1
    - Dst: taskEventQueueHead
      Src: /src/nccl/ext-profiler/example/print_event.c:248,1
    - Dst: printEvent
      Src: /src/nccl/ext-profiler/example/print_event.c:251,1
    - Dst: printGroupEventTrailer
      Src: /src/nccl/ext-profiler/example/print_event.c:254,1
    - Dst: printCollEventHeader
      Src: /src/nccl/ext-profiler/example/print_event.c:257,1
    - Dst: printKernelChEventHeader
      Src: /src/nccl/ext-profiler/example/print_event.c:259,1
    - Dst: printEvent
      Src: /src/nccl/ext-profiler/example/print_event.c:261,1
    - Dst: printKernelChEventTrailer
      Src: /src/nccl/ext-profiler/example/print_event.c:263,1
    - Dst: printCollEventTrailer
      Src: /src/nccl/ext-profiler/example/print_event.c:265,1
    - Dst: printP2pEventHeader
      Src: /src/nccl/ext-profiler/example/print_event.c:268,1
    - Dst: printKernelChEventHeader
      Src: /src/nccl/ext-profiler/example/print_event.c:270,1
    - Dst: printEvent
      Src: /src/nccl/ext-profiler/example/print_event.c:271,1
    - Dst: printKernelChEventTrailer
      Src: /src/nccl/ext-profiler/example/print_event.c:272,1
    - Dst: printP2pEventTrailer
      Src: /src/nccl/ext-profiler/example/print_event.c:274,1
    - Dst: printProxyOpEventHeader
      Src: /src/nccl/ext-profiler/example/print_event.c:277,1
    - Dst: printEvent
      Src: /src/nccl/ext-profiler/example/print_event.c:279,1
    - Dst: printProxyOpEventTrailer
      Src: /src/nccl/ext-profiler/example/print_event.c:281,1
    - Dst: printProxyStepEventHeader
      Src: /src/nccl/ext-profiler/example/print_event.c:284,1
    - Dst: printNetPluginEvent
      Src: /src/nccl/ext-profiler/example/print_event.c:286,1
    - Dst: printProxyStepEventTrailer
      Src: /src/nccl/ext-profiler/example/print_event.c:288,1
    - Dst: printProxyCtrlEvent
      Src: /src/nccl/ext-profiler/example/print_event.c:291,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 49
    argCount: 2
    argNames:
    - fh
    - handle
    argTypes:
    - FILE*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 294
    functionName: printEvent
    functionSourceFile: /src/nccl/ext-profiler/example/print_event.c
    functionUses: 1
    functionsReached:
    - taskEventQueueHead
    - printProxyStepEventHeader
    - printProxyCtrlEvent
    - printP2pEventHeader
    - printProxyOpEventTrailer
    - printProxyOpEventHeader
    - printGroupEventTrailer
    - printKernelChEventTrailer
    - printEvent
    - printProxyStepEventTrailer
    - printGroupEventHeader
    - printKernelChEventHeader
    - printCollEventTrailer
    - printP2pEventTrailer
    - printCollEventHeader
    - printNetPluginEvent
    linkageType: ''
    returnType: void
    signature: void printEvent(FILE* fh, void* handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - g
    argTypes:
    - struct group*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12
      start: 10
    functionDepth: 0
    functionLinenumber: 10
    functionLinenumberEnd: 12
    functionName: taskEventQueueEmpty
    functionSourceFile: /src/nccl/ext-profiler/example/event.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int taskEventQueueEmpty(struct group* g)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - g
    - event
    argTypes:
    - struct group*
    - struct taskEventBase*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19
      start: 14
    functionDepth: 0
    functionLinenumber: 14
    functionLinenumberEnd: 19
    functionName: taskEventQueueEnqueue
    functionSourceFile: /src/nccl/ext-profiler/example/event.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void taskEventQueueEnqueue(struct group* g, struct taskEventBase* event)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - g
    argTypes:
    - struct group*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23
      start: 21
    functionDepth: 0
    functionLinenumber: 21
    functionLinenumberEnd: 23
    functionName: taskEventQueueHead
    functionSourceFile: /src/nccl/ext-profiler/example/event.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: struct taskEventBase
    signature: struct taskEventBase * taskEventQueueHead(struct group* g)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - g
    argTypes:
    - struct group*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 30
      start: 25
    functionDepth: 0
    functionLinenumber: 25
    functionLinenumberEnd: 30
    functionName: taskEventQueueDequeue
    functionSourceFile: /src/nccl/ext-profiler/example/event.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: struct taskEventBase
    signature: struct taskEventBase * taskEventQueueDequeue(struct group* g)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - FLAGS
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 43
    functionName: INFO
    functionSourceFile: /src/nccl/ext-profiler/example/plugin.c
    functionUses: 221
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: INFO(FLAGS, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clock_gettime
      Src: /src/nccl/ext-profiler/example/plugin.c:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 48
    functionName: gettime
    functionSourceFile: /src/nccl/ext-profiler/example/plugin.c
    functionUses: 5
    functionsReached:
    - clock_gettime
    linkageType: ''
    returnType: __hidden
    signature: __hidden gettime(void)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: pthread_mutex_lock
      Src: /src/nccl/ext-profiler/example/plugin.c:55,1
    - Dst: __atomic_fetch_add
      Src: /src/nccl/ext-profiler/example/plugin.c:56,1
    - Dst: getenv
      Src: /src/nccl/ext-profiler/example/plugin.c:59,1
    - Dst: __atomic_store_n
      Src: /src/nccl/ext-profiler/example/plugin.c:60,1
    - Dst: atoi
      Src: /src/nccl/ext-profiler/example/plugin.c:60,1
    - Dst: getenv
      Src: /src/nccl/ext-profiler/example/plugin.c:62,1
    - Dst: atoi
      Src: /src/nccl/ext-profiler/example/plugin.c:63,1
    - Dst: getenv
      Src: /src/nccl/ext-profiler/example/plugin.c:65,1
    - Dst: atoi
      Src: /src/nccl/ext-profiler/example/plugin.c:66,1
    - Dst: getenv
      Src: /src/nccl/ext-profiler/example/plugin.c:68,1
    - Dst: atoi
      Src: /src/nccl/ext-profiler/example/plugin.c:69,1
    - Dst: getenv
      Src: /src/nccl/ext-profiler/example/plugin.c:71,1
    - Dst: atoi
      Src: /src/nccl/ext-profiler/example/plugin.c:72,1
    - Dst: getenv
      Src: /src/nccl/ext-profiler/example/plugin.c:74,1
    - Dst: atoi
      Src: /src/nccl/ext-profiler/example/plugin.c:75,1
    - Dst: calloc
      Src: /src/nccl/ext-profiler/example/plugin.c:78,1
    - Dst: pthread_mutex_unlock
      Src: /src/nccl/ext-profiler/example/plugin.c:80,1
    - Dst: getpid
      Src: /src/nccl/ext-profiler/example/plugin.c:87,1
    - Dst: gettime
      Src: /src/nccl/ext-profiler/example/plugin.c:89,1
    - Dst: pthread_mutex_unlock
      Src: /src/nccl/ext-profiler/example/plugin.c:91,1
    - Dst: calloc
      Src: /src/nccl/ext-profiler/example/plugin.c:97,1
    - Dst: INFO
      Src: /src/nccl/ext-profiler/example/plugin.c:103,1
    - Dst: calloc
      Src: /src/nccl/ext-profiler/example/plugin.c:105,1
    - Dst: calloc
      Src: /src/nccl/ext-profiler/example/plugin.c:108,1
    - Dst: calloc
      Src: /src/nccl/ext-profiler/example/plugin.c:111,1
    - Dst: calloc
      Src: /src/nccl/ext-profiler/example/plugin.c:114,1
    - Dst: free
      Src: /src/nccl/ext-profiler/example/plugin.c:129,1
    - Dst: free
      Src: /src/nccl/ext-profiler/example/plugin.c:130,1
    - Dst: free
      Src: /src/nccl/ext-profiler/example/plugin.c:131,1
    - Dst: free
      Src: /src/nccl/ext-profiler/example/plugin.c:132,1
    - Dst: free
      Src: /src/nccl/ext-profiler/example/plugin.c:133,1
    - Dst: free
      Src: /src/nccl/ext-profiler/example/plugin.c:134,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 63
    argCount: 8
    argNames:
    - context
    - eActivationMask
    - commName
    - commHash
    - nNodes
    - nranks
    - rank
    - logfn
    argTypes:
    - void**
    - int*
    - char*
    - uint64_t
    - int
    - int
    - int
    - ncclDebugLogger_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 136
    functionName: ncclResult_t::exampleProfilerInit
    functionSourceFile: /src/nccl/ext-profiler/example/plugin.c
    functionUses: 0
    functionsReached:
    - INFO
    - calloc
    - atoi
    - free
    - gettime
    - getenv
    - pthread_mutex_unlock
    - getpid
    - pthread_mutex_lock
    - __atomic_fetch_add
    - __atomic_store_n
    linkageType: ''
    returnType: __hidden
    signature: __hidden ncclResult_t exampleProfilerInit(void** context, int* eActivationMask,
      const char* commName, uint64_t commHash, int nNodes, int nranks, int rank, ncclDebugLogger_t
      logfn)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/nccl/ext-profiler/example/plugin.c:142,1
    - Dst: sprintf
      Src: /src/nccl/ext-profiler/example/plugin.c:144,1
    - Dst: fopen
      Src: /src/nccl/ext-profiler/example/plugin.c:145,1
    - Dst: fprintf
      Src: /src/nccl/ext-profiler/example/plugin.c:146,1
    - Dst: INFO
      Src: /src/nccl/ext-profiler/example/plugin.c:148,1
    - Dst: printEvent
      Src: /src/nccl/ext-profiler/example/plugin.c:154,1
    - Dst: printEvent
      Src: /src/nccl/ext-profiler/example/plugin.c:160,1
    - Dst: free
      Src: /src/nccl/ext-profiler/example/plugin.c:163,1
    - Dst: free
      Src: /src/nccl/ext-profiler/example/plugin.c:164,1
    - Dst: free
      Src: /src/nccl/ext-profiler/example/plugin.c:165,1
    - Dst: free
      Src: /src/nccl/ext-profiler/example/plugin.c:166,1
    - Dst: free
      Src: /src/nccl/ext-profiler/example/plugin.c:167,1
    - Dst: __atomic_sub_fetch
      Src: /src/nccl/ext-profiler/example/plugin.c:170,1
    - Dst: printEvent
      Src: /src/nccl/ext-profiler/example/plugin.c:174,1
    - Dst: free
      Src: /src/nccl/ext-profiler/example/plugin.c:176,1
    - Dst: fprintf
      Src: /src/nccl/ext-profiler/example/plugin.c:179,1
    - Dst: fclose
      Src: /src/nccl/ext-profiler/example/plugin.c:180,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 1
    argNames:
    - context
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 138
    functionDepth: 2
    functionLinenumber: 138
    functionLinenumberEnd: 183
    functionName: ncclResult_t::exampleProfilerFinalize
    functionSourceFile: /src/nccl/ext-profiler/example/plugin.c
    functionUses: 0
    functionsReached:
    - INFO
    - free
    - __atomic_sub_fetch
    - fclose
    - getenv
    - fopen
    - printEvent
    - sprintf
    - fprintf
    linkageType: ''
    returnType: __hidden
    signature: __hidden ncclResult_t exampleProfilerFinalize(void* context)
  - BBCount: 30
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_fetch_add
      Src: /src/nccl/ext-profiler/example/plugin.c:192,1
    - Dst: __atomic_load_n
      Src: /src/nccl/ext-profiler/example/plugin.c:193,1
    - Dst: taskEventQueueEmpty
      Src: /src/nccl/ext-profiler/example/plugin.c:196,1
    - Dst: taskEventQueueDequeue
      Src: /src/nccl/ext-profiler/example/plugin.c:197,1
    - Dst: memset
      Src: /src/nccl/ext-profiler/example/plugin.c:201,1
    - Dst: __atomic_fetch_add
      Src: /src/nccl/ext-profiler/example/plugin.c:203,1
    - Dst: memset
      Src: /src/nccl/ext-profiler/example/plugin.c:207,1
    - Dst: __atomic_fetch_add
      Src: /src/nccl/ext-profiler/example/plugin.c:209,1
    - Dst: __atomic_fetch_sub
      Src: /src/nccl/ext-profiler/example/plugin.c:214,1
    - Dst: gettime
      Src: /src/nccl/ext-profiler/example/plugin.c:220,1
    - Dst: debugEvent
      Src: /src/nccl/ext-profiler/example/plugin.c:222,1
    - Dst: __atomic_fetch_add
      Src: /src/nccl/ext-profiler/example/plugin.c:229,1
    - Dst: __atomic_load_n
      Src: /src/nccl/ext-profiler/example/plugin.c:230,1
    - Dst: __atomic_fetch_sub
      Src: /src/nccl/ext-profiler/example/plugin.c:235,1
    - Dst: gettime
      Src: /src/nccl/ext-profiler/example/plugin.c:242,1
    - Dst: taskEventQueueEnqueue
      Src: /src/nccl/ext-profiler/example/plugin.c:255,1
    - Dst: __atomic_fetch_add
      Src: /src/nccl/ext-profiler/example/plugin.c:257,1
    - Dst: debugEvent
      Src: /src/nccl/ext-profiler/example/plugin.c:258,1
    - Dst: __atomic_fetch_add
      Src: /src/nccl/ext-profiler/example/plugin.c:265,1
    - Dst: __atomic_load_n
      Src: /src/nccl/ext-profiler/example/plugin.c:266,1
    - Dst: __atomic_fetch_sub
      Src: /src/nccl/ext-profiler/example/plugin.c:271,1
    - Dst: gettime
      Src: /src/nccl/ext-profiler/example/plugin.c:279,1
    - Dst: taskEventQueueEnqueue
      Src: /src/nccl/ext-profiler/example/plugin.c:288,1
    - Dst: __atomic_fetch_add
      Src: /src/nccl/ext-profiler/example/plugin.c:289,1
    - Dst: debugEvent
      Src: /src/nccl/ext-profiler/example/plugin.c:290,1
    - Dst: __atomic_fetch_add
      Src: /src/nccl/ext-profiler/example/plugin.c:292,1
    - Dst: gettime
      Src: /src/nccl/ext-profiler/example/plugin.c:296,1
    - Dst: __atomic_fetch_add
      Src: /src/nccl/ext-profiler/example/plugin.c:306,1
    - Dst: __atomic_fetch_sub
      Src: /src/nccl/ext-profiler/example/plugin.c:312,1
    - Dst: gettime
      Src: /src/nccl/ext-profiler/example/plugin.c:324,1
    - Dst: debugEvent
      Src: /src/nccl/ext-profiler/example/plugin.c:328,1
    - Dst: gettime
      Src: /src/nccl/ext-profiler/example/plugin.c:346,1
    - Dst: __atomic_fetch_add
      Src: /src/nccl/ext-profiler/example/plugin.c:349,1
    - Dst: debugEvent
      Src: /src/nccl/ext-profiler/example/plugin.c:350,1
    - Dst: gettime
      Src: /src/nccl/ext-profiler/example/plugin.c:364,1
    - Dst: __atomic_fetch_add
      Src: /src/nccl/ext-profiler/example/plugin.c:367,1
    - Dst: debugEvent
      Src: /src/nccl/ext-profiler/example/plugin.c:368,1
    - Dst: gettime
      Src: /src/nccl/ext-profiler/example/plugin.c:382,1
    - Dst: debugEvent
      Src: /src/nccl/ext-profiler/example/plugin.c:385,1
    - Dst: gettime
      Src: /src/nccl/ext-profiler/example/plugin.c:396,1
    - Dst: __atomic_fetch_add
      Src: /src/nccl/ext-profiler/example/plugin.c:398,1
    - Dst: debugEvent
      Src: /src/nccl/ext-profiler/example/plugin.c:399,1
    - Dst: gettime
      Src: /src/nccl/ext-profiler/example/plugin.c:407,1
    - Dst: __atomic_fetch_add
      Src: /src/nccl/ext-profiler/example/plugin.c:409,1
    - Dst: debugEvent
      Src: /src/nccl/ext-profiler/example/plugin.c:410,1
    - Dst: __atomic_fetch_add
      Src: /src/nccl/ext-profiler/example/plugin.c:422,1
    - Dst: gettime
      Src: /src/nccl/ext-profiler/example/plugin.c:434,1
    - Dst: debugEvent
      Src: /src/nccl/ext-profiler/example/plugin.c:436,1
    - Dst: __atomic_fetch_add
      Src: /src/nccl/ext-profiler/example/plugin.c:441,1
    - Dst: gettime
      Src: /src/nccl/ext-profiler/example/plugin.c:451,1
    - Dst: debugEvent
      Src: /src/nccl/ext-profiler/example/plugin.c:453,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 218
    argCount: 3
    argNames:
    - context
    - eHandle
    - eDescr
    argTypes:
    - void*
    - void**
    - ncclProfilerEventDescr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 458
    functionName: ncclResult_t::exampleProfilerStartEvent
    functionSourceFile: /src/nccl/ext-profiler/example/plugin.c
    functionUses: 0
    functionsReached:
    - __atomic_load_n
    - __atomic_fetch_sub
    - gettime
    - taskEventQueueDequeue
    - taskEventQueueEmpty
    - taskEventQueueEnqueue
    - debugEvent
    - __atomic_fetch_add
    - memset
    linkageType: ''
    returnType: __hidden
    signature: __hidden ncclResult_t exampleProfilerStartEvent(void* context, void**
      eHandle, ncclProfilerEventDescr_t* eDescr)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_sub_fetch
      Src: /src/nccl/ext-profiler/example/plugin.c:464,1
    - Dst: gettime
      Src: /src/nccl/ext-profiler/example/plugin.c:465,1
    - Dst: __atomic_fetch_add
      Src: /src/nccl/ext-profiler/example/plugin.c:467,1
    - Dst: debugEvent
      Src: /src/nccl/ext-profiler/example/plugin.c:469,1
    - Dst: __atomic_sub_fetch
      Src: /src/nccl/ext-profiler/example/plugin.c:472,1
    - Dst: gettime
      Src: /src/nccl/ext-profiler/example/plugin.c:473,1
    - Dst: debugEvent
      Src: /src/nccl/ext-profiler/example/plugin.c:474,1
    - Dst: updateEvent
      Src: /src/nccl/ext-profiler/example/plugin.c:475,1
    - Dst: debugEvent
      Src: /src/nccl/ext-profiler/example/plugin.c:478,1
    - Dst: __atomic_sub_fetch
      Src: /src/nccl/ext-profiler/example/plugin.c:481,1
    - Dst: gettime
      Src: /src/nccl/ext-profiler/example/plugin.c:482,1
    - Dst: debugEvent
      Src: /src/nccl/ext-profiler/example/plugin.c:483,1
    - Dst: updateEvent
      Src: /src/nccl/ext-profiler/example/plugin.c:484,1
    - Dst: debugEvent
      Src: /src/nccl/ext-profiler/example/plugin.c:487,1
    - Dst: gettime
      Src: /src/nccl/ext-profiler/example/plugin.c:490,1
    - Dst: __atomic_add_fetch
      Src: /src/nccl/ext-profiler/example/plugin.c:493,1
    - Dst: __atomic_store_n
      Src: /src/nccl/ext-profiler/example/plugin.c:496,1
    - Dst: __atomic_load_n
      Src: /src/nccl/ext-profiler/example/plugin.c:498,1
    - Dst: __atomic_store_n
      Src: /src/nccl/ext-profiler/example/plugin.c:499,1
    - Dst: debugEvent
      Src: /src/nccl/ext-profiler/example/plugin.c:501,1
    - Dst: updateEvent
      Src: /src/nccl/ext-profiler/example/plugin.c:504,1
    - Dst: debugEvent
      Src: /src/nccl/ext-profiler/example/plugin.c:505,1
    - Dst: gettime
      Src: /src/nccl/ext-profiler/example/plugin.c:508,1
    - Dst: debugEvent
      Src: /src/nccl/ext-profiler/example/plugin.c:509,1
    - Dst: gettime
      Src: /src/nccl/ext-profiler/example/plugin.c:512,1
    - Dst: debugEvent
      Src: /src/nccl/ext-profiler/example/plugin.c:513,1
    - Dst: gettime
      Src: /src/nccl/ext-profiler/example/plugin.c:516,1
    - Dst: updateEvent
      Src: /src/nccl/ext-profiler/example/plugin.c:517,1
    - Dst: debugEvent
      Src: /src/nccl/ext-profiler/example/plugin.c:518,1
    - Dst: gettime
      Src: /src/nccl/ext-profiler/example/plugin.c:521,1
    - Dst: debugEvent
      Src: /src/nccl/ext-profiler/example/plugin.c:522,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 56
    argCount: 1
    argNames:
    - handle
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 524
      start: 460
    functionDepth: 1
    functionLinenumber: 460
    functionLinenumberEnd: 524
    functionName: updateEvent
    functionSourceFile: /src/nccl/ext-profiler/example/plugin.c
    functionUses: 1
    functionsReached:
    - __atomic_load_n
    - gettime
    - __atomic_sub_fetch
    - updateEvent
    - __atomic_add_fetch
    - debugEvent
    - __atomic_fetch_add
    - __atomic_store_n
    linkageType: ''
    returnType: void
    signature: void updateEvent(void* handle)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: gettime
      Src: /src/nccl/ext-profiler/example/plugin.c:536,1
    - Dst: gettime
      Src: /src/nccl/ext-profiler/example/plugin.c:543,1
    - Dst: gettime
      Src: /src/nccl/ext-profiler/example/plugin.c:550,1
    - Dst: updateEvent
      Src: /src/nccl/ext-profiler/example/plugin.c:554,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - eHandle
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 526
    functionDepth: 2
    functionLinenumber: 526
    functionLinenumberEnd: 556
    functionName: ncclResult_t::exampleProfilerStopEvent
    functionSourceFile: /src/nccl/ext-profiler/example/plugin.c
    functionUses: 0
    functionsReached:
    - gettime
    - updateEvent
    linkageType: ''
    returnType: __hidden
    signature: __hidden ncclResult_t exampleProfilerStopEvent(void* eHandle)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: gettime
      Src: /src/nccl/ext-profiler/example/plugin.c:566,1
    - Dst: gettime
      Src: /src/nccl/ext-profiler/example/plugin.c:573,1
    - Dst: gettime
      Src: /src/nccl/ext-profiler/example/plugin.c:578,1
    - Dst: gettime
      Src: /src/nccl/ext-profiler/example/plugin.c:582,1
    - Dst: gettime
      Src: /src/nccl/ext-profiler/example/plugin.c:586,1
    - Dst: gettime
      Src: /src/nccl/ext-profiler/example/plugin.c:589,1
    - Dst: gettime
      Src: /src/nccl/ext-profiler/example/plugin.c:593,1
    - Dst: debugEvent
      Src: /src/nccl/ext-profiler/example/plugin.c:608,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 48
    argCount: 3
    argNames:
    - eHandle
    - eState
    - eStateArgs
    argTypes:
    - void*
    - ncclProfilerEventState_t
    - ncclProfilerEventStateArgs_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 558
    functionDepth: 1
    functionLinenumber: 558
    functionLinenumberEnd: 610
    functionName: ncclResult_t::exampleProfilerRecordEventState
    functionSourceFile: /src/nccl/ext-profiler/example/plugin.c
    functionUses: 0
    functionsReached:
    - gettime
    - debugEvent
    linkageType: ''
    returnType: __hidden
    signature: __hidden ncclResult_t exampleProfilerRecordEventState(void* eHandle,
      ncclProfilerEventState_t eState, ncclProfilerEventStateArgs_t* eStateArgs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_load_n
      Src: /src/nccl/ext-profiler/example/plugin.c:622,1
    - Dst: __atomic_store_n
      Src: /src/nccl/ext-profiler/example/plugin.c:623,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - eActivationMask
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 621
    functionDepth: 0
    functionLinenumber: 621
    functionLinenumberEnd: 626
    functionName: exampleProfilerStart
    functionSourceFile: /src/nccl/ext-profiler/example/plugin.c
    functionUses: 0
    functionsReached:
    - __atomic_load_n
    - __atomic_store_n
    linkageType: ''
    returnType: int
    signature: int exampleProfilerStart(int eActivationMask)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: __atomic_load_n
      Src: /src/nccl/ext-profiler/example/plugin.c:629,1
    - Dst: __atomic_store_n
      Src: /src/nccl/ext-profiler/example/plugin.c:630,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 628
    functionDepth: 0
    functionLinenumber: 628
    functionLinenumberEnd: 633
    functionName: exampleProfilerStop
    functionSourceFile: /src/nccl/ext-profiler/example/plugin.c
    functionUses: 0
    functionsReached:
    - __atomic_load_n
    - __atomic_store_n
    linkageType: ''
    returnType: int
    signature: int exampleProfilerStop(void)
Fuzzer filename: /src/fuzz_xml.cpp
Fuzzing method: LLVMFuzzerTestOneInput
included-header-files:
- net/net_v8.h
- mlx5/mlx5dvwrap.h
- ctime
- uchar.h
- topo.h
- channel.h
- nvmlwrap.h
- xml.h
- sys/un.h
- common_kernel.h
- nvtxDetail/nvtxImplCudaRt_v3.h
- alloc.h
- profiler/profiler_v4.h
- cpuset.h
- signal.h
- allocator.h
- network/unpack/unpack_defs.h
- infiniband/verbs.h
- mutex
- net_socket_v1.h
- op128.h
- ibvwrap.h
- cassert
- profiler/net_socket.h
- tuner/tuner_v3.h
- profiler/net_ib.h
- gdrapi.h
- profiler/profiler_v2.h
- getopt.h
- mnnvl.h
- net_v7.h
- memory
- profiler_v2.h
- nvtxDetail/nvtxTypes.h
- net_ib_v1.h
- nccl/common.h
- utils.h
- android/api-level.h
- tuner/tuner_v4.h
- initializer_list
- err.h
- cudawrap.h
- cuda_runtime.h
- net_v5.h
- android/log.h
- pwd.h
- dlfcn.h
- nvToolsExtMem.h
- cmath
- profiler_v3.h
- ras_internal.h
- windows.h
- cuda.h
- nvtxDetail/nvtxExtPayloadHelperInternal.h
- cstdint
- enqueue.h
- sys/resource.h
- poll.h
- nvtxExtInit.h
- register_inline.h
- cstdlib
- timer.h
- nccl.h
- network/unpack/unpack.h
- pthread.h
- strongstream.h
- tuner/tuner_v2.h
- algorithm
- nvtxImplCore.h
- stdalign.h
- nccl_profiler.h
- trees.h
- string
- profiler_v4.h
- checks.h
- nvtx3/nvtx3.hpp
- p2p.h
- errno.h
- netinet/tcp.h
- nvtxInitDefs.h
- register.h
- ifaddrs.h
- net_v2.h
- nvtxDetail/nvtxImplOpenCL_v3.h
- sys/syscall.h
- stdint.h
- assert.h
- strings.h
- nvtxDetail/nvtxExtImplPayload_v1.h
- nvtxDetail/nvtxExtImplMem_v1.h
- sys/wait.h
- reduce_kernel.h
- info.h
- gdrwrap.h
- nvtxDetail/nvtxExtTypes.h
- debug.h
- prims_ll128.h
- nvtxDetail/nvtxImpl.h
- Windows.h
- new
- nvtxDetail/nvtxImplSync_v3.h
- nvtxExtImpl.h
- event.h
- ibvcore.h
- net_v6.h
- sys/types.h
- stdlib.h
- x86intrin.h
- nvtx3/nvToolsExtPayload.h
- net/if.h
- ras.h
- utility
- nvtxDetail/nvtxExtImplMemCudaRt_v1.h
- profiler_v1.h
- stdarg.h
- prims_ll.h
- time.h
- math.h
- param.h
- netdb.h
- nvtxInitDecls.h
- dirent.h
- socket.h
- sys/time.h
- net/net_v9.h
- coll_net.h
- nvtx_payload_schemas.h
- tuner.h
- ctype.h
- net.h
- limits.h
- nccl_common.h
- unpack_defs.h
- mlx5/mlx5dvcore.h
- device.h
- limits
- float.h
- prims_simple.h
- core.h
- cuda/atomic
- primitives.h
- cudaTypedefs.h
- nvToolsExtPayload.h
- bits/c++config.h
- nvtxExtHelperMacros.h
- sched.h
- nvtx3/nvToolsExtPayloadHelper.h
- netinet/in.h
- CL/cl.h
- common.h
- transport.h
- nvtxDetail/nvtxImplCuda_v3.h
- sys/socket.h
- nccl_net.h
- cpuid.h
- cstring
- stdio.h
- immintrin.h
- profiler_net.h
- inttypes.h
- net_v10.h
- ../plugin.c
- nvToolsExt.h
- net_v3.h
- symmetric.h
- proxy.h
- type_traits
- cstdarg
- nccl_tuner.h
- profiler.h
- stddef.h
- net_v8.h
- profiler/profiler_v3.h
- ibvsymbols.h
- unistd.h
- climits
- arpa/inet.h
- comm.h
- shm.h
- cerrno
- cinttypes
- string.h
- sys/mman.h
- net/net_v10.h
- stdatomic.h
- net/net_v6.h
- net_v9.h
- wchar.h
- print_event.h
- nvtx.h
- nvtxDetail/nvtxLinkOnce.h
- atomic
- infiniband/mlx5dv.h
- nvml.h
- cstddef
- cstdio
- nvtxInit.h
- profiler/profiler_v1.h
- ipcsocket.h
- driver_types.h
- nvtxDetail/nvtxExtImplCounters_v1.h
- nvtxExtPayloadTypeInfo.h
- linux/limits.h
- group.h
- graph.h
- bootstrap.h
- bitops.h
- mlx5/mlx5dvsymbols.h
- argcheck.h
- memory.h
- chrono
- fcntl.h
- net_device.h
- collectives.h
- rings.h
- shmutils.h
- plugin.h
- net_v4.h
- sys/stat.h
- net/net_v7.h
report: name
sources:
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/fuzz_xml.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - STR2
  - STR
  - initGdrCopy
  - initOnceFunc
  - ncclInit
  - ncclGetVersion
  - ncclGetUniqueId
  - NCCL_NO_OPTIMIZE::commPoison
  - ncclDestructorFnFree
  - ncclCommPushFree
  - ncclDestructorFnCudaFree
  - ncclCommPushCudaFree
  - ncclDestructorFnCudaHostFree
  - ncclCommPushCudaHostFree
  - ncclDestructorFnCudaGdrFree
  - ncclCommPushCudaGdrFree
  - commFree
  - dmaBufSupported
  - ncclCommEnsureReady
  - commAlloc
  - devCommSetup
  - showVersion
  - fillInfo
  - setupChannel
  - computeBuffSizes
  - initTransportsRank
  - commGetSplitInfo
  - getParentRanks
  - ncclCommInitRankFunc
  - NCCL_CONFIG_DEFAULT
  - envConfigOverride
  - copyCommConfig
  - parseCommConfig
  - ncclCommInitJobFree
  - ncclCommInitRankDev
  - ncclCommInitRank
  - ncclCommInitAll
  - ncclCommSetAsyncError
  - ncclCommInitRankConfig
  - ncclCommInitRankScalable
  - commDestroySync
  - commCleanup
  - ncclCommFinalize
  - commReclaim
  - ncclCommDestroy
  - setCommAbortFlags
  - ncclCommAbort
  - childCommCleanupJob
  - ncclCommInitChildComm
  - ncclCommShrink
  - ncclCommSplit
  - ncclGetErrorString
  - ncclGetLastError
  - ncclCommGetAsyncError
  - ncclCommCount
  - ncclCommCuDevice
  - ncclCommUserRank
  source_file: /src/nccl/src/init.cc
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NCCL_GROUP_CUDA_STREAM
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/nccl/src/init.cc
      type_or_value: '0 // CGMD: CUDA 9.2,10.X Don''t need to use an internal CUDA
        stream'
    - item_type: preproc_def
      name: NCCL_GROUP_CUDA_STREAM
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/nccl/src/init.cc
      type_or_value: '1 // CGMD: CUDA 9.0,9.1 Need to use an internal CUDA stream'
    - item_type: preproc_def
      name: NCCL_NO_OPTIMIZE
      pos:
        line_end: 115
        line_start: 114
        source_file: /src/nccl/src/init.cc
      type_or_value: __attribute__((optnone))
    - item_type: preproc_def
      name: NCCL_NO_OPTIMIZE
      pos:
        line_end: 117
        line_start: 116
        source_file: /src/nccl/src/init.cc
      type_or_value: __attribute__((optimize("O0")))
    - item_type: preproc_def
      name: NCCL_WORK_FIFO_BYTES_DEFAULT
      pos:
        line_end: 284
        line_start: 283
        source_file: /src/nccl/src/init.cc
      type_or_value: (1<<20)
    - item_type: preproc_def
      name: VERSION_STRING
      pos:
        line_end: 538
        line_start: 537
        source_file: /src/nccl/src/init.cc
      type_or_value: '"NCCL version " STR(NCCL_MAJOR) "." STR(NCCL_MINOR) "." STR(NCCL_PATCH)
        NCCL_SUFFIX "+cuda" STR(CUDA_MAJOR) "." STR(CUDA_MINOR)'
    - item_type: preproc_def
      name: DEFAULT_LL_BUFFSIZE
      pos:
        line_end: 618
        line_start: 617
        source_file: /src/nccl/src/init.cc
      type_or_value: (NCCL_LL_LINES_PER_THREAD*NCCL_LL_MAX_NTHREADS*NCCL_STEPS*sizeof(union
        ncclLLFifoLine))
    - item_type: preproc_def
      name: DEFAULT_LL128_BUFFSIZE
      pos:
        line_end: 619
        line_start: 618
        source_file: /src/nccl/src/init.cc
      type_or_value: (NCCL_LL128_ELEMS_PER_THREAD*NCCL_LL128_MAX_NTHREADS*NCCL_STEPS*sizeof(uint64_t))
    - item_type: preproc_def
      name: DEFAULT_BUFFSIZE
      pos:
        line_end: 620
        line_start: 619
        source_file: /src/nccl/src/init.cc
      type_or_value: '(1 << 22) '
    - item_type: preproc_def
      name: TIMER_INIT_TOTAL
      pos:
        line_end: 663
        line_start: 662
        source_file: /src/nccl/src/init.cc
      type_or_value: '0'
    - item_type: preproc_def
      name: TIMER_INIT_KERNELS
      pos:
        line_end: 664
        line_start: 663
        source_file: /src/nccl/src/init.cc
      type_or_value: '1'
    - item_type: preproc_def
      name: TIMER_INIT_BOOTSTRAP
      pos:
        line_end: 665
        line_start: 664
        source_file: /src/nccl/src/init.cc
      type_or_value: '2'
    - item_type: preproc_def
      name: TIMER_INIT_ALLGATHER
      pos:
        line_end: 666
        line_start: 665
        source_file: /src/nccl/src/init.cc
      type_or_value: '3'
    - item_type: preproc_def
      name: TIMER_INIT_TOPO
      pos:
        line_end: 667
        line_start: 666
        source_file: /src/nccl/src/init.cc
      type_or_value: '4'
    - item_type: preproc_def
      name: TIMER_INIT_GRAPHS
      pos:
        line_end: 668
        line_start: 667
        source_file: /src/nccl/src/init.cc
      type_or_value: '5'
    - item_type: preproc_def
      name: TIMER_INIT_CONNECT
      pos:
        line_end: 669
        line_start: 668
        source_file: /src/nccl/src/init.cc
      type_or_value: '6'
    - item_type: preproc_def
      name: TIMER_INIT_ALLOC
      pos:
        line_end: 670
        line_start: 669
        source_file: /src/nccl/src/init.cc
      type_or_value: '7'
    - item_type: preproc_def
      name: TIMERS_INIT_COUNT
      pos:
        line_end: 671
        line_start: 670
        source_file: /src/nccl/src/init.cc
      type_or_value: '8'
    - item_type: preproc_def
      name: NCCL_MAX_CGA_CLUSTER_SIZE
      pos:
        line_end: 1288
        line_start: 1287
        source_file: /src/nccl/src/init.cc
      type_or_value: '8'
    - item_type: preproc_def
      name: NCCL_COMMINIT_FUNCNAME_LEN
      pos:
        line_end: 1290
        line_start: 1289
        source_file: /src/nccl/src/init.cc
      type_or_value: '128'
    structs:
    - fields:
      - name: pattern
        type: int
      - name: nChannels
        type: int
      - name: sameChannels
        type: int
      - name: bwIntra
        type: float
      - name: bwInter
        type: float
      - name: typeIntra
        type: int
      - name: typeInter
        type: int
      - name: crossNic
        type: int
      item_type: struct
      name: graphInfo
      pos:
        line_end: 697
        line_start: 688
        source_file: /src/nccl/src/init.cc
    - fields:
      - name: graphInfo[NCCL_NUM_ALGORITHMS]
        type: struct graphInfo
      - name: topoRanks
        type: struct ncclTopoRanks
      - name: cpuArch
        type: int
      - name: cpuVendor
        type: int
      - name: localRanks
        type: int
      item_type: struct
      name: allGatherInfo
      pos:
        line_end: 705
        line_start: 699
        source_file: /src/nccl/src/init.cc
    - fields:
      - name: base
        type: struct ncclAsyncJob
      - name: '* comm'
        type: struct ncclComm
      - name: '** newcomm'
        type: struct ncclComm
      - name: cudaDev
        type: int
      - name: nranks
        type: int
      - name: '* commId'
        type: ncclUniqueId
      - name: '* parent'
        type: struct ncclComm
      - name: color
        type: int
      - name: splitCount
        type: int
      - name: '* excludeRanksList'
        type: int
      - name: excludeRanksCount
        type: int
      - name: funcName[NCCL_COMMINIT_FUNCNAME_LEN]
        type: char
      item_type: struct
      name: ncclCommInitRankAsyncJob
      pos:
        line_end: 1307
        line_start: 1290
        source_file: /src/nccl/src/init.cc
    - fields:
      - name: base
        type: struct ncclAsyncJob
      - name: comm
        type: ncclComm_t
      item_type: struct
      name: ncclCommFinalizeAsyncJob
      pos:
        line_end: 1312
        line_start: 1309
        source_file: /src/nccl/src/init.cc
    - fields:
      - name: key
        type: int
      - name: color
        type: int
      item_type: struct
      name: commSplitInfo
      pos:
        line_end: 1320
        line_start: 1317
        source_file: /src/nccl/src/init.cc
    typedefs: []
    union: []
- function_names:
  - ncclAsyncLaunch
  - ncclAsyncJobMain
  - ncclAsyncJobComplete
  - ncclGroupStart
  - ncclGroupEnd
  - ncclGroupSimulateEnd
  - ncclP2PPreconnectFunc
  - ncclCollPreconnectFunc
  - ncclCommGroupRegisterSymmetric
  - doLaunches
  - groupLocalResetJobState
  - groupCleanup
  - asyncJobLaunch
  - groupLaunch
  - groupLaunchNonBlocking
  - ncclGroupEndInternal
  - ncclGroupJobComplete
  - ncclGroupJobAbort
  source_file: /src/nccl/src/group.cc
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: GROUP_MAX_RECLAIM_STEPS
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/nccl/src/group.cc
      type_or_value: '10'
    structs:
    - fields:
      - name: base
        type: struct ncclAsyncJob
      - name: '* comm'
        type: struct ncclComm
      - name: '* algoNeedConnect'
        type: bool
      item_type: struct
      name: ncclPreconnectJob
      pos:
        line_end: 123
        line_start: 119
        source_file: /src/nccl/src/group.cc
    - fields:
      - name: base
        type: struct ncclAsyncJob
      - name: '* comm'
        type: struct ncclComm
      item_type: struct
      name: ncclGroupSymmetricJob
      pos:
        line_end: 194
        line_start: 191
        source_file: /src/nccl/src/group.cc
    typedefs: []
    union: []
- function_names:
  - NeedProxy
  - expectedProxyResponseFree
  - expectedProxyResponseStore
  - expectedProxyResponseEnqueue
  - expectedProxyResponseDequeue
  - expectedProxyResponseRemove
  - asyncProxyOpEnqueue
  - asyncProxyOpDequeue
  - allocateArgs
  - OP_INDEX
  - getOpIndex
  - printProxyOp
  - dumpProxyState
  - ncclProxyOpToArgs
  - ProxyAppend
  - ncclProxyPost
  - ncclLocalOpAppend
  - incWorkCounter
  - SaveProxyProfiler
  - SaveProxy
  - ncclProxySaveOp
  - removeOp
  - progressOps
  - ncclProxyGetPostedOps
  - ncclDumpProxyState
  - setProxyThreadContext
  - ncclProxyProgress
  - ncclProxyStart
  - ncclProxyProgressCreate
  - ncclProxyProgressDestroy
  - ncclProxyNewConnection
  - ncclProxyGetConnection
  - proxyFree
  - ncclProxyFreeConnections
  - ncclProxyConnect
  - ncclProxyCallBlockingUDS
  - ncclProxyClientGetFdBlocking
  - ncclProxyClientQueryFdBlocking
  - ncclProxyCallAsync
  - ncclPollProxyResponse
  - ncclProxyCallBlocking
  - proxyProgressInit
  - proxyOpsFree
  - ncclProxyShmUnlink
  - proxyConnInit
  - proxyQueryFd
  - proxyGetFd
  - proxyProgressAsync
  - proxyServiceInitOp
  - proxyMatchOpType
  - ncclProxyService
  - proxyUDSRecvReq
  - ncclProxyServiceUDS
  - ncclProxyInit
  - ncclProxyCreate
  - ncclProxyStop
  - ncclProxyDestroy
  source_file: /src/nccl/src/proxy.cc
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ENABLE_TIMER
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/nccl/src/proxy.cc
      type_or_value: '0'
    - item_type: preproc_def
      name: NCCL_MAX_PROXY_CONNECTIONS
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/nccl/src/proxy.cc
      type_or_value: (NCCL_MAX_LOCAL_RANKS+1)
    - item_type: preproc_def
      name: PROXYARGS_ALLOCATE_SIZE
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/nccl/src/proxy.cc
      type_or_value: NCCL_MAX_OPS
    - item_type: preproc_def
      name: DEBUG_PROXY_PRINT
      pos:
        line_end: 227
        line_start: 226
        source_file: /src/nccl/src/proxy.cc
      type_or_value: printf
    - item_type: preproc_def
      name: OP_SEEN
      pos:
        line_end: 233
        line_start: 232
        source_file: /src/nccl/src/proxy.cc
      type_or_value: '0x100000'
    - item_type: preproc_def
      name: NCCL_PROXY_CONN_POOL_SIZE_POW2
      pos:
        line_end: 1011
        line_start: 1010
        source_file: /src/nccl/src/proxy.cc
      type_or_value: '7'
    - item_type: preproc_def
      name: NCCL_PROXY_CONN_POOL_SIZE
      pos:
        line_end: 1012
        line_start: 1011
        source_file: /src/nccl/src/proxy.cc
      type_or_value: (1<<(NCCL_PROXY_CONN_POOL_SIZE_POW2))
    - item_type: preproc_def
      name: NCCL_PROXY_CONN_POOL_MASK
      pos:
        line_end: 1013
        line_start: 1012
        source_file: /src/nccl/src/proxy.cc
      type_or_value: ((NCCL_PROXY_CONN_POOL_SIZE)-1)
    structs:
    - fields:
      - name: '*next'
        type: struct ncclProxyPool
      - name: elems[PROXYARGS_ALLOCATE_SIZE]
        type: struct ncclProxyArgs
      item_type: struct
      name: ncclProxyPool
      pos:
        line_end: 45
        line_start: 42
        source_file: /src/nccl/src/proxy.cc
    - fields:
      - name: '** pools'
        type: struct ncclProxyConnection
      - name: banks
        type: int
      - name: offset
        type: int
      item_type: struct
      name: ncclProxyConnectionPool
      pos:
        line_end: 1017
        line_start: 1013
        source_file: /src/nccl/src/proxy.cc
    - fields:
      - name: transport
        type: int
      - name: send
        type: int
      - name: tpLocalRank
        type: int
      - name: tpRank
        type: int
      - name: sameProcess
        type: int
      item_type: struct
      name: ncclProxyInitReq
      pos:
        line_end: 1075
        line_start: 1069
        source_file: /src/nccl/src/proxy.cc
    - fields:
      - name: '* connection'
        type: ncclProxyConnection
      - name: devShmPath[6]
        type: char
      item_type: struct
      name: ncclProxyInitResp
      pos:
        line_end: 1080
        line_start: 1077
        source_file: /src/nccl/src/proxy.cc
    typedefs: []
    union: []
- function_names:
  - cudaStreamGetCaptureInfo_v2
  - cudaUserObjectCreate
  - cudaGraphRetainUserObject
  - cudaStreamUpdateCaptureDependencies
  - cudaGetDriverEntryPoint
  source_file: /src/nccl/src/enhcompat.cc
  types:
    enum:
    - enumerators:
      - name: cudaErrorStubLibrary
        value: '34'
      item_type: enum
      name: cudaError_t
      pos:
        line_end: 8
        line_start: 8
        source_file: /src/nccl/src/enhcompat.cc
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ncclFuncToString
  - ncclDevRedOpToString
  - ncclDatatypeToString
  - ncclAlgoToString
  - ncclProtoToString
  - ncclAllGather
  - ncclAllReduce
  - ncclBroadcast
  - ncclBcast
  - ncclReduce
  - ncclReduceScatter
  - ncclSend
  - ncclRecv
  source_file: /src/nccl/src/collectives.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ncclMemAlloc
  - ncclMemFree
  - ncclCommSymmetricAllocInternal
  - ncclCommSymmetricFreeInternal
  source_file: /src/nccl/src/allocator.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - BOOTSTRAP_PROF_OPEN
  - BOOTSTRAP_PROF_CLOSE
  - BOOTSTRAP_PID
  - firstRankFromRoot
  - rootIdFromRank
  - nRankFromRoot
  - localIdFromRoot
  - isFirstFromRoot
  - bootstrapNetInit
  - checkAbort
  - netReg
  - netDereg
  - netIsend
  - netIrecv
  - netSendRecv
  - socketSend
  - socketRecv
  - socketSendRecv
  - NET_HANDLE
  - BOOTSTRAP_HANDLE
  - setFilesLimit
  - rootSend
  - bootstrapRoot
  - bootstrapCreateRoot
  - bootstrapGetUniqueId
  - STATE_RING
  - STATE_LISTEN
  - createListenSocket
  - getUDS
  - netGetDevice
  - netRingConnect
  - socketRingConnect
  - ringAllInfo
  - sendToRoot
  - bootstrapInit
  - bootstrapSplit
  - socketConnect
  - bootstrapSend
  - unexpectedEnqueue
  - unexpectedDequeue
  - unexpectedFree
  - socketAccept
  - bootstrapRecv
  - netRingAllGather
  - socketRingAllGather
  - bootstrapAllGather
  - bootstrapP2PBarrier
  - bootstrapIntraNodeBarrier
  - bootstrapBarrier
  - bootstrapIntraNodeAllGather
  - bootstrapP2PBroadcast
  - bootstrapIntraNodeBroadcast
  - bootstrapBroadcast
  - bootstrapClose
  - bootstrapAbort
  source_file: /src/nccl/src/bootstrap.cc
  types:
    enum:
    - enumerators:
      - name: findSubnetIf
        value: '-1'
      - name: dontCareIf
        value: '-2'
      item_type: enum
      name: bootstrapInterface_t
      pos:
        line_end: 131
        line_start: 131
        source_file: /src/nccl/src/bootstrap.cc
    preproc_defs:
    - item_type: preproc_def
      name: BOOTSTRAP_N_CHECK_ABORT
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/nccl/src/bootstrap.cc
      type_or_value: '10000'
    - item_type: preproc_def
      name: BOOTSTRAP_TAG_CONNECT
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/nccl/src/bootstrap.cc
      type_or_value: (0x1 << 31)
    - item_type: preproc_def
      name: BOOTSTRAP_TAG_ALLGATHER
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/nccl/src/bootstrap.cc
      type_or_value: (0x1 << 30)
    - item_type: preproc_def
      name: BOOTSTRAP_TAG_COMMSPLIT
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/nccl/src/bootstrap.cc
      type_or_value: (0x1 << 29)
    - item_type: preproc_def
      name: BOOTSTRAP_TAG_INTRANODE_ALLGATHER
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/nccl/src/bootstrap.cc
      type_or_value: (0x1 << 28)
    - item_type: preproc_def
      name: BOOTSTRAP_INIT_TIME_CREATE
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/nccl/src/bootstrap.cc
      type_or_value: '0'
    - item_type: preproc_def
      name: BOOTSTRAP_INIT_TIME_SEND
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/nccl/src/bootstrap.cc
      type_or_value: '1'
    - item_type: preproc_def
      name: BOOTSTRAP_INIT_TIME_RECV
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/nccl/src/bootstrap.cc
      type_or_value: '2'
    - item_type: preproc_def
      name: BOOTSTRAP_INIT_TIME_RING
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/nccl/src/bootstrap.cc
      type_or_value: '3'
    - item_type: preproc_def
      name: BOOTSTRAP_INIT_TIME_TOTAL
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/nccl/src/bootstrap.cc
      type_or_value: '4'
    - item_type: preproc_def
      name: BOOTSTRAP_INIT_TIME_DELAY
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/nccl/src/bootstrap.cc
      type_or_value: '5'
    - item_type: preproc_def
      name: BOOTSTRAP_INIT_TIME_N
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/nccl/src/bootstrap.cc
      type_or_value: '6'
    - item_type: preproc_def
      name: BOOTSTRAP_INIT_ROOT_WAIT
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/nccl/src/bootstrap.cc
      type_or_value: '0'
    - item_type: preproc_def
      name: BOOTSTRAP_INIT_ROOT_SEND
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/nccl/src/bootstrap.cc
      type_or_value: '1'
    - item_type: preproc_def
      name: BOOTSTRAP_INIT_ROOT_RECV
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/nccl/src/bootstrap.cc
      type_or_value: '2'
    - item_type: preproc_def
      name: BOOTSTRAP_INIT_ROOT_N
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/nccl/src/bootstrap.cc
      type_or_value: '3'
    - item_type: preproc_def
      name: MAX_OOB_DEVS
      pos:
        line_end: 484
        line_start: 483
        source_file: /src/nccl/src/bootstrap.cc
      type_or_value: '16'
    structs:
    - fields:
      - name: '* listenSock'
        type: struct ncclSocket
      - name: magic
        type: uint64_t
      item_type: struct
      name: bootstrapRootArgs
      pos:
        line_end: 81
        line_start: 78
        source_file: /src/nccl/src/bootstrap.cc
    - fields:
      - name: rank
        type: int
      - name: nranks
        type: int
      - name: iroot
        type: int
      - name: nroots
        type: int
      - name: listenRootAddress
        type: union ncclSocketAddress
      - name: connectInfo
        type: union ringConnectInfo
      item_type: struct
      name: extInfo
      pos:
        line_end: 243
        line_start: 236
        source_file: /src/nccl/src/bootstrap.cc
    - fields:
      - name: peer
        type: int
      - name: tag
        type: int
      - name: sock
        type: struct ncclSocket
      - name: '* next'
        type: struct unexConn
      item_type: struct
      name: unexConn
      pos:
        line_end: 426
        line_start: 421
        source_file: /src/nccl/src/bootstrap.cc
    - fields: []
      item_type: struct
      name: bootstrapRing_t
      pos:
        line_end: 439
        line_start: 428
        source_file: /src/nccl/src/bootstrap.cc
    - fields:
      - name: peerSocket
        type: struct ncclSocket
      item_type: struct
      name: bootstrapListen_t
      pos:
        line_end: 450
        line_start: 440
        source_file: /src/nccl/src/bootstrap.cc
    - fields:
      - name: ring
        type: struct bootstrapRing_t
      - name: listen
        type: struct bootstrapListen_t
      - name: '* net'
        type: ncclNet_t
      - name: '* peerProxyAddressesUDS'
        type: uint64_t
      - name: '* peerProxyAddresses'
        type: union ncclSocketAddress
      - name: '* peerP2pAddresses'
        type: union ncclSocketAddress
      - name: '* unexpectedConnections'
        type: struct unexConn
      - name: cudaDev
        type: int
      - name: rank
        type: int
      - name: nranks
        type: int
      - name: magic
        type: uint64_t
      - name: '* abortFlag'
        type: uint32_t
      item_type: struct
      name: bootstrapState
      pos:
        line_end: 465
        line_start: 452
        source_file: /src/nccl/src/bootstrap.cc
    - fields:
      - name: peerAddress
        type: union ncclSocketAddress
      - name: peerProxy
        type: union ncclSocketAddress
      - name: peerUDS
        type: uint64_t
      - name: rasRank
        type: struct rasRankInit
      item_type: struct
      name: bootstrapRingData
      pos:
        line_end: 570
        line_start: 565
        source_file: /src/nccl/src/bootstrap.cc
    - fields:
      - name: rank
        type: int
      - name: tag
        type: int
      item_type: struct
      name: socketAckInfo
      pos:
        line_end: 863
        line_start: 860
        source_file: /src/nccl/src/bootstrap.cc
    typedefs: []
    union:
    - fields:
      - name: addr
        type: union ncclSocketAddress
      - name: handle[NCCL_NET_HANDLE_MAXSIZE]
        type: char
      item_type: union
      name: ringConnectInfo
      pos:
        line_end: 234
        line_start: 231
        source_file: /src/nccl/src/bootstrap.cc
- function_names:
  - initChannel
  - initNvlsChannel
  - initCollnetChannel
  - freeChannel
  source_file: /src/nccl/src/channel.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ncclMnnvlCheck
  source_file: /src/nccl/src/mnnvl.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ncclInitKernelsForDevice
  - ncclFuncTrafficPerByte
  - addProxyOpIfNeeded
  - addWorkBatchToPlan
  - finishPlan
  - testBudget
  - ncclTasksRegAndEnqueue
  - ncclPrepareTasks
  - addProfilerProxyOpIfNeeded
  - scheduleCollTasksToPlan
  - addP2pToPlan
  - calcP2pChannelCount
  - scheduleP2pTasksToPlan
  - waitWorkFifoAvailable
  - uploadWork_cleanup_fn
  - uploadWork_cleanup_fn
  - uploadWork
  - uploadProxyOps
  - hostStreamPlanTask
  - hostStreamPlanCallback
  - reclaimPlan
  - persistentDestructor
  - getImplicitOrder
  - ncclLaunchPrepare
  - ncclLaunchKernelBefore_NoUncapturedCuda
  - ncclLaunchKernel
  - ncclLaunchKernelAfter_NoCuda
  - KernelFinishCallback_fn
  - KernelFinishCallback_fn
  - ncclLaunchFinish
  - getCollNetSupport
  - initCollCostTable
  - updateCollCostTable
  - topoGetAlgoInfo
  - getAlgoInfo
  - calcCollChunking
  - hostToDevRedOp
  - taskAppend
  - ncclEnqueueCheck
  - ncclRedOpCreatePreMulSum
  - ncclRedOpDestroy
  source_file: /src/nccl/src/enqueue.cc
  types:
    enum:
    - enumerators:
      - name: ncclImplicitOrderNone
      - name: ncclImplicitOrderLaunch
      - name: ncclImplicitOrderSerial
      item_type: enum
      name: ncclImplicitOrder
      pos:
        line_end: 1378
        line_start: 1374
        source_file: /src/nccl/src/enqueue.cc
    - enumerators:
      - name: ncclImplicitOrderNone
      - name: ncclImplicitOrderLaunch
      - name: ncclImplicitOrderSerial
      item_type: enum
      name: ncclImplicitOrder
      pos:
        line_end: 1378
        line_start: 1374
        source_file: /src/nccl/src/enqueue.cc
    preproc_defs: []
    structs:
    - fields:
      - name: inArgsBytes
        type: ssize_t
      - name: outArgsBytes
        type: ssize_t
      item_type: struct
      name: ncclKernelPlanBudget
      pos:
        line_end: 254
        line_start: 251
        source_file: /src/nccl/src/enqueue.cc
    - fields:
      - name: base
        type: struct ncclCommEventCallback
      - name: '*hostBuf'
        type: void
      item_type: struct
      name: uploadWork_cleanup_t
      pos:
        line_end: 1117
        line_start: 1114
        source_file: /src/nccl/src/enqueue.cc
    - fields:
      - name: base
        type: struct ncclCommEventCallback
      - name: '*hostBuf'
        type: void
      item_type: struct
      name: uploadWork_cleanup_t
      pos:
        line_end: 1117
        line_start: 1114
        source_file: /src/nccl/src/enqueue.cc
    - fields:
      - name: base
        type: struct ncclCommEventCallback
      - name: workFifoConsumed
        type: uint32_t
      item_type: struct
      name: KernelFinishCallback
      pos:
        line_end: 1649
        line_start: 1646
        source_file: /src/nccl/src/enqueue.cc
    - fields:
      - name: base
        type: struct ncclCommEventCallback
      - name: workFifoConsumed
        type: uint32_t
      item_type: struct
      name: KernelFinishCallback
      pos:
        line_end: 1649
        line_start: 1646
        source_file: /src/nccl/src/enqueue.cc
    typedefs: []
    union: []
- function_names:
  - kernelMask_coll
  - kernelMask_user
  - softmin
  - softplus
  - model
  - queryModel
  - ncclSymImplemented
  - ncclSymPickKernel
  - ncclSymKernelIdToString
  source_file: /src/nccl/src/symmetric.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - selectTransport
  - ncclTransportP2pConnect
  - dumpData
  - ncclTransportCheckP2pType
  - ncclTransportP2pSetup
  - ncclTransportCollNetSetup
  - ncclTransportCollNetCheck
  - ncclTransportCollNetFree
  source_file: /src/nccl/src/transport.cc
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ENABLE_TIMER
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/nccl/src/transport.cc
      type_or_value: '0'
    structs:
    - fields:
      - name: isMaster
        type: int
      - name: connect
        type: ncclConnect
      item_type: struct
      name: '*allConnects = NULL'
      pos:
        line_end: 330
        line_start: 327
        source_file: /src/nccl/src/transport.cc
    typedefs: []
    union: []
- function_names:
  - ncclDebugInit
  - ncclDebugLog
  - ncclResetDebugInit
  - ncclSetThreadName
  source_file: /src/nccl/src/debug.cc
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NCCL_DEBUG_RESET_TRIGGERED
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/nccl/src/debug.cc
      type_or_value: (-2)
    structs: []
    typedefs: []
    union: []
- function_names:
  - initNvtxRegisteredEnums
  source_file: /src/nccl/src/init_nvtx.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - load128
  - store128
  - shmemCvtPtr
  - loadShmem128
  - storeShmem128
  - loadShmemMisaligned128
  - cvta_to_shared
  - cvta_to_global
  - cvta_from_shared
  - cvta_from_global
  - __forceinline__ typename BytePackOf<T>::Pack toPack(T value)
  - fromPack
  - __forceinline__ BytePack<0> ld_global<0>(uintptr_t addr)
  - __forceinline__ BytePack<0> ld_shared<0>(uint32_t addr)
  - __forceinline__ BytePack<0> ld_volatile_global<0>(uintptr_t addr)
  - __forceinline__ BytePack<0> ld_volatile_shared<0>(uint32_t addr)
  - __forceinline__ BytePack<0> ld_relaxed_gpu_global<0>(uintptr_t addr)
  - __forceinline__
  - __forceinline__
  - st_relaxed_gpu_global
  - DEFINE_ld_st__size_space
  - DEFINE_ld_st_gpu_relaxed__size
  - DEFINE_ld_st__size
  - DEFINE_ld_st_16__space
  - __forceinline__ BytePack<16> ld_relaxed_gpu_global<16>(uintptr_t addr)
  - st_relaxed_gpu_global
  - ld_volatile_global
  - ld_relaxed_sys_global
  - ld_relaxed_gpu_global
  - ld_acquire_sys_global
  - st_volatile_global
  - st_relaxed_sys_global
  - st_release_sys_global
  - fence_acq_rel_sys
  - fence_acq_rel_gpu
  - multimem_st_global
  - multimem_st_global
  - multimem_st_global
  - multimem_st_global
  - multimem_st_global
  - multimem_st_global
  - multimem_st_global
  - loadPack
  - storePack
  - copyGlobalShared_WarpUnrolled
  source_file: /src/nccl/src/device/op128.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PTX_relaxed_gpu
      pos:
        line_end: 232
        line_start: 231
        source_file: /src/nccl/src/device/op128.h
      type_or_value: '"relaxed.gpu"'
    - item_type: preproc_def
      name: PTX_relaxed_gpu
      pos:
        line_end: 234
        line_start: 233
        source_file: /src/nccl/src/device/op128.h
      type_or_value: '"volatile"'
    structs:
    - fields:
      - name: Size
        type: int
      item_type: struct
      name: BytePackOf
      pos:
        line_end: 161
        line_start: 158
        source_file: /src/nccl/src/device/op128.h
    - fields:
      - name: Size
        type: int
      item_type: struct
      name: BytePackOf<BytePack<0>>
      pos:
        line_end: 166
        line_start: 163
        source_file: /src/nccl/src/device/op128.h
    typedefs: []
    union:
    - fields: []
      item_type: union
      name: BytePack<0>
      pos:
        line_end: 98
        line_start: 98
        source_file: /src/nccl/src/device/op128.h
    - fields:
      - name: u8[1]
        type: uint8_t
      item_type: union
      name: BytePack<1>
      pos:
        line_end: 102
        line_start: 100
        source_file: /src/nccl/src/device/op128.h
    - fields:
      - name: half[2]
        type: BytePack<1>
      - name: b1[2]
        type: BytePack<1>
      - name: u8[2]
        type: uint8_t
      - name: u16[1]
        type: uint16_t
      item_type: union
      name: BytePack<2>
      pos:
        line_end: 109
        line_start: 104
        source_file: /src/nccl/src/device/op128.h
    - fields:
      - name: half[2]
        type: BytePack<2>
      - name: b1[4]
        type: BytePack<1>
      - name: b2[2]
        type: BytePack<2>
      - name: u8[4]
        type: uint8_t
      - name: u16[2]
        type: uint16_t
      - name: u32[1]
        type: uint32_t
      item_type: union
      name: BytePack<4>
      pos:
        line_end: 118
        line_start: 111
        source_file: /src/nccl/src/device/op128.h
    - fields:
      - name: half[2]
        type: BytePack<4>
      - name: b1[8]
        type: BytePack<1>
      - name: b2[4]
        type: BytePack<2>
      - name: b4[2]
        type: BytePack<4>
      - name: u8[8]
        type: uint8_t
      - name: u16[4]
        type: uint16_t
      - name: u32[2]
        type: uint32_t
      - name: u64[1]
        type: uint64_t
      item_type: union
      name: BytePack<8>
      pos:
        line_end: 129
        line_start: 120
        source_file: /src/nccl/src/device/op128.h
    - fields:
      - name: half[2]
        type: BytePack<8>
      - name: b1[16]
        type: BytePack<1>
      - name: b2[8]
        type: BytePack<2>
      - name: b4[4]
        type: BytePack<4>
      - name: b8[2]
        type: BytePack<8>
      - name: u8[16]
        type: uint8_t
      - name: u16[8]
        type: uint16_t
      - name: u32[4]
        type: uint32_t
      - name: u64[2]
        type: uint64_t
      - name: ul2[1]
        type: ulong2
      item_type: union
      name: BytePack<16>
      pos:
        line_end: 142
        line_start: 131
        source_file: /src/nccl/src/device/op128.h
    - fields:
      - name: half[2]
        type: BytePack<Size/2>
      - name: b1[Size]
        type: BytePack<1>
      - name: b2[Size/2]
        type: BytePack<2>
      - name: b4[Size/4]
        type: BytePack<4>
      - name: b8[Size/8]
        type: BytePack<8>
      - name: b16[Size/16]
        type: BytePack<16>
      - name: u8[Size]
        type: uint8_t
      - name: u16[Size/2]
        type: uint16_t
      - name: u32[Size/4]
        type: uint32_t
      - name: u64[Size/8]
        type: uint64_t
      item_type: union
      name: BytePack
      pos:
        line_end: 155
        line_start: 144
        source_file: /src/nccl/src/device/op128.h
- function_names:
  - runRing
  - runRing
  - run
  - run
  - run
  - run
  - "operator()(\n        int tid, int tn, int slice, int maxSliceSize,\n        int
    nSrcs, void** srcPtrs, int nDsts, void** dstPtrs, int32_t* dstSizes, uint32_t
    sendDirectFlag, uint32_t recvDirectFlag\n      )"
  - run
  - "operator()(\n        int tid, int tn, int slice, int maxSliceSize,\n        int
    nSrcs, void** srcPtrs, int nDsts, void** dstPtrs, int32_t* dstSizes, uint32_t
    sendDirectFlag, uint32_t recvDirectFlag\n      )"
  - run
  source_file: /src/nccl/src/device/all_gather.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: __forceinline__
        type: __device__
      item_type: struct
      name: RunWorkColl<ncclFuncAllGather, T, RedOp, NCCL_ALGO_RING, NCCL_PROTO_SIMPLE>
      pos:
        line_end: 94
        line_start: 86
        source_file: /src/nccl/src/device/all_gather.h
    - fields:
      - name: __forceinline__
        type: __device__
      item_type: struct
      name: RunWorkColl<ncclFuncAllGather, T, RedOp, NCCL_ALGO_RING, NCCL_PROTO_LL>
      pos:
        line_end: 101
        line_start: 97
        source_file: /src/nccl/src/device/all_gather.h
    - fields:
      - name: __forceinline__
        type: __device__
      item_type: struct
      name: RunWorkColl<ncclFuncAllGather, T, RedOp, NCCL_ALGO_RING, NCCL_PROTO_LL128>
      pos:
        line_end: 108
        line_start: 104
        source_file: /src/nccl/src/device/all_gather.h
    - fields:
      - name: __forceinline__
        type: __device__
      item_type: struct
      name: RunWorkColl<ncclFuncAllGather, T, RedOp, NCCL_ALGO_PAT, NCCL_PROTO_SIMPLE>
      pos:
        line_end: 171
        line_start: 111
        source_file: /src/nccl/src/device/all_gather.h
    - fields:
      - name: __forceinline__
        type: __device__
      item_type: struct
      name: RunWorkColl<ncclFuncAllGather, T, RedOp, NCCL_ALGO_NVLS, NCCL_PROTO_SIMPLE>
      pos:
        line_end: 394
        line_start: 174
        source_file: /src/nccl/src/device/all_gather.h
    - fields:
      - name: '* work'
        type: struct ncclDevWorkColl
      - name: chunkSize
        type: ssize_t
      - name: railGridOffset
        type: ssize_t
      item_type: struct
      name: Scatterer
      pos:
        line_end: 243
        line_start: 176
        source_file: /src/nccl/src/device/all_gather.h
    - fields:
      - name: __forceinline__
        type: __device__
      item_type: struct
      name: RunWorkColl<ncclFuncAllGather, T, RedOp, NCCL_ALGO_COLLNET_DIRECT, NCCL_PROTO_SIMPLE>
      pos:
        line_end: 560
        line_start: 397
        source_file: /src/nccl/src/device/all_gather.h
    - fields:
      - name: '* work'
        type: struct ncclDevWorkColl
      - name: chunkSize
        type: ssize_t
      - name: railGridOffset
        type: ssize_t
      item_type: struct
      name: Scatterer
      pos:
        line_end: 469
        line_start: 399
        source_file: /src/nccl/src/device/all_gather.h
    typedefs: []
    union: []
- function_names:
  - runRing
  - runRing
  - run
  - run
  - run
  source_file: /src/nccl/src/device/reduce.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: __forceinline__
        type: __device__
      item_type: struct
      name: RunWorkColl<ncclFuncReduce, T, RedOp, NCCL_ALGO_RING, NCCL_PROTO_SIMPLE>
      pos:
        line_end: 61
        line_start: 56
        source_file: /src/nccl/src/device/reduce.h
    - fields:
      - name: __forceinline__
        type: __device__
      item_type: struct
      name: RunWorkColl<ncclFuncReduce, T, RedOp, NCCL_ALGO_RING, NCCL_PROTO_LL>
      pos:
        line_end: 68
        line_start: 64
        source_file: /src/nccl/src/device/reduce.h
    - fields:
      - name: __forceinline__
        type: __device__
      item_type: struct
      name: RunWorkColl<ncclFuncReduce, T, RedOp, NCCL_ALGO_RING, NCCL_PROTO_LL128>
      pos:
        line_end: 75
        line_start: 71
        source_file: /src/nccl/src/device/reduce.h
    typedefs: []
    union: []
- function_names:
  - calcBytePerStep
  - calcBytePerGrain
  - calcBytePerStep
  - calcBytePerGrain
  - calcBytePerStep
  - calcBytePerGrain
  - FanAsymmetric
  - nrecv
  - nsend
  - FanSymmetric
  - FanSymmetric
  - nrecv
  - nsend
  - directSend
  - directSendFromOutput
  - directRecv
  - directCopySend
  - directRecvCopyDirectSend
  - directRecvDirectSend
  - recvReduceCopyDirectSend
  - directRecvReduceDirectSend
  - directRecvReduceCopyDirectSend
  - checkAbort
  source_file: /src/nccl/src/device/primitives.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NCCL_SPINS_BEFORE_CHECK_ABORT
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/nccl/src/device/primitives.h
      type_or_value: '10000'
    structs:
    - fields:
      - name: Id
        type: int
      - name: SlicePerChunk
        type: int
      - name: StepPerSlice
        type: int
      - name: Unroll
        type: int
      - name: MultimemSrcs
        type: int
      - name: MultimemDsts
        type: int
      - name: MaxGroupWidth
        type: int
      item_type: struct
      name: ProtoSimple
      pos:
        line_end: 42
        line_start: 24
        source_file: /src/nccl/src/device/primitives.h
    - fields:
      - name: Id
        type: int
      - name: MaxGroupWidth
        type: int
      item_type: struct
      name: ProtoLL
      pos:
        line_end: 57
        line_start: 44
        source_file: /src/nccl/src/device/primitives.h
    - fields:
      - name: Id
        type: int
      - name: MaxGroupWidth
        type: int
      item_type: struct
      name: ProtoLL128
      pos:
        line_end: 72
        line_start: 59
        source_file: /src/nccl/src/device/primitives.h
    - fields:
      - name: MaxRecv
        type: int
      - name: nr
        type: int
      - name: FanAsymmetric(int nrecv, int nsend)
        type: __device__
      item_type: struct
      name: FanAsymmetric
      pos:
        line_end: 90
        line_start: 81
        source_file: /src/nccl/src/device/primitives.h
    - fields:
      - name: MaxRecv
        type: int
      - name: n
        type: int
      item_type: struct
      name: FanSymmetric
      pos:
        line_end: 102
        line_start: 93
        source_file: /src/nccl/src/device/primitives.h
    - fields:
      - name: __forceinline__
        type: __device__
      - name: __forceinline__
        type: __device__
      item_type: struct
      name: PrimitivesWithoutDirect
      pos:
        line_end: 139
        line_start: 110
        source_file: /src/nccl/src/device/primitives.h
    typedefs: []
    union: []
- function_names:
  - runRing
  - runTreeUpDown
  - runTreeSplit
  - runRing
  - runTreeUpDown
  - runTreeSplit
  - run
  - run
  - run
  - run
  - run
  - run
  - run
  - run
  - run
  - run
  source_file: /src/nccl/src/device/all_reduce.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: __forceinline__
        type: __device__
      item_type: struct
      name: RunWorkColl<ncclFuncAllReduce, T, RedOp, NCCL_ALGO_RING, NCCL_PROTO_SIMPLE>
      pos:
        line_end: 237
        line_start: 232
        source_file: /src/nccl/src/device/all_reduce.h
    - fields:
      - name: __forceinline__
        type: __device__
      item_type: struct
      name: RunWorkColl<ncclFuncAllReduce, T, RedOp, NCCL_ALGO_TREE, NCCL_PROTO_SIMPLE>
      pos:
        line_end: 248
        line_start: 240
        source_file: /src/nccl/src/device/all_reduce.h
    - fields:
      - name: __forceinline__
        type: __device__
      item_type: struct
      name: RunWorkColl<ncclFuncAllReduce, T, RedOp, NCCL_ALGO_COLLNET_DIRECT, NCCL_PROTO_SIMPLE>
      pos:
        line_end: 384
        line_start: 251
        source_file: /src/nccl/src/device/all_reduce.h
    - fields:
      - name: __forceinline__
        type: __device__
      item_type: struct
      name: RunWorkColl<ncclFuncAllReduce, T, RedOp, NCCL_ALGO_NVLS, NCCL_PROTO_SIMPLE>
      pos:
        line_end: 517
        line_start: 387
        source_file: /src/nccl/src/device/all_reduce.h
    - fields:
      - name: __forceinline__
        type: __device__
      item_type: struct
      name: RunWorkColl<ncclFuncAllReduce, T, RedOp, NCCL_ALGO_NVLS_TREE, NCCL_PROTO_SIMPLE>
      pos:
        line_end: 625
        line_start: 520
        source_file: /src/nccl/src/device/all_reduce.h
    - fields:
      - name: __forceinline__
        type: __device__
      item_type: struct
      name: RunWorkColl<ncclFuncAllReduce, T, RedOp, NCCL_ALGO_COLLNET_CHAIN, NCCL_PROTO_SIMPLE>
      pos:
        line_end: 751
        line_start: 628
        source_file: /src/nccl/src/device/all_reduce.h
    - fields:
      - name: __forceinline__
        type: __device__
      item_type: struct
      name: RunWorkColl<ncclFuncAllReduce, T, RedOp, NCCL_ALGO_RING, NCCL_PROTO_LL>
      pos:
        line_end: 758
        line_start: 754
        source_file: /src/nccl/src/device/all_reduce.h
    - fields:
      - name: __forceinline__
        type: __device__
      item_type: struct
      name: RunWorkColl<ncclFuncAllReduce, T, RedOp, NCCL_ALGO_TREE, NCCL_PROTO_LL>
      pos:
        line_end: 765
        line_start: 761
        source_file: /src/nccl/src/device/all_reduce.h
    - fields:
      - name: __forceinline__
        type: __device__
      item_type: struct
      name: RunWorkColl<ncclFuncAllReduce, T, RedOp, NCCL_ALGO_RING, NCCL_PROTO_LL128>
      pos:
        line_end: 772
        line_start: 768
        source_file: /src/nccl/src/device/all_reduce.h
    - fields:
      - name: __forceinline__
        type: __device__
      item_type: struct
      name: RunWorkColl<ncclFuncAllReduce, T, RedOp, NCCL_ALGO_TREE, NCCL_PROTO_LL128>
      pos:
        line_end: 779
        line_start: 775
        source_file: /src/nccl/src/device/all_reduce.h
    typedefs: []
    union: []
- function_names:
  - runRing
  - runRing
  - run
  - run
  - run
  source_file: /src/nccl/src/device/broadcast.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: __forceinline__
        type: __device__
      item_type: struct
      name: RunWorkColl<ncclFuncBroadcast, T, RedOp, NCCL_ALGO_RING, NCCL_PROTO_SIMPLE>
      pos:
        line_end: 69
        line_start: 64
        source_file: /src/nccl/src/device/broadcast.h
    - fields:
      - name: __forceinline__
        type: __device__
      item_type: struct
      name: RunWorkColl<ncclFuncBroadcast, T, RedOp, NCCL_ALGO_RING, NCCL_PROTO_LL>
      pos:
        line_end: 76
        line_start: 72
        source_file: /src/nccl/src/device/broadcast.h
    - fields:
      - name: __forceinline__
        type: __device__
      item_type: struct
      name: RunWorkColl<ncclFuncBroadcast, T, RedOp, NCCL_ALGO_RING, NCCL_PROTO_LL128>
      pos:
        line_end: 83
        line_start: 79
        source_file: /src/nccl/src/device/broadcast.h
    typedefs: []
    union: []
- function_names:
  - ncclScratchForWarp
  - barrier_sync
  - barrier_sync
  - barrier_sync_aligned
  - barrier_sync_aligned
  - barrier_red_or
  - barrier_red_or
  - copyToShmem16
  - loadWorkBatchToShmem
  - globaltimer
  - run
  - run
  - profilerEnabled
  - profiler
  - ncclKernelMain
  - DEFINE_ncclDevKernel
  - DEFINE_ncclDevKernel_nop
  - DEFINE_ncclDevFunc
  source_file: /src/nccl/src/device/common.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: COLL_UNROLL
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/nccl/src/device/common.h
      type_or_value: (ncclCollUnroll())
    - item_type: preproc_def
      name: START
      pos:
        line_end: 299
        line_start: 298
        source_file: /src/nccl/src/device/common.h
      type_or_value: '0'
    - item_type: preproc_def
      name: STOP
      pos:
        line_end: 300
        line_start: 299
        source_file: /src/nccl/src/device/common.h
      type_or_value: '1'
    - item_type: preproc_def
      name: FINI
      pos:
        line_end: 301
        line_start: 300
        source_file: /src/nccl/src/device/common.h
      type_or_value: '2'
    structs:
    - fields:
      - name: '*recvConns[NCCL_MAX_ARITY]'
        type: ncclConnInfo
      - name: '*sendConns[NCCL_MAX_ARITY]'
        type: ncclConnInfo
      - name: '* userInput'
        type: void
      - name: '* userOutput'
        type: void
      - name: '* srcs[NCCL_MAX_ARITY+1]'
        type: void
      - name: '* dsts[NCCL_MAX_ARITY+1]'
        type: void
      - name: devicePlugin
        type: "union {\n    unpackGroupShmem unpack;\n  }"
      - name: dstSizes[NCCL_MAX_ARITY+1]
        type: int32_t
      item_type: struct
      name: ncclShmemGroup
      pos:
        line_end: 39
        line_start: 28
        source_file: /src/nccl/src/device/common.h
    - fields:
      - name: args
        type: struct ncclDevKernelArgs
      - name: channelId
        type: int
      - name: aborted
        type: int
      - name: comm
        type: struct ncclDevComm
      - name: channel
        type: struct ncclDevChannel
      - name: batchIx
        type: int
      - name: workType
        type: enum ncclDevWorkType
      - name: directMode
        type: uint8_t
      - name: funcId
        type: uint16_t
      - name: nWorks
        type: int
      - name: workSize
        type: int
      - name: workCounter
        type: uint64_t
      - name: profilerEnabled
        type: bool
      - name: groups[NCCL_MAX_GROUPS]
        type: struct ncclShmemGroup
      - name: redOpArgs[NCCL_MAX_NVLS_ARITY+1]
        type: uint64_t
      - name: workStorage[1024]
        type: char
      - name: devicePlugin
        type: "union {\n    unpackShmem unpack;\n  }"
      item_type: struct
      name: ncclShmemData
      pos:
        line_end: 64
        line_start: 41
        source_file: /src/nccl/src/device/common.h
    - fields: []
      item_type: struct
      name: RunWorkColl
      pos:
        line_end: 253
        line_start: 249
        source_file: /src/nccl/src/device/common.h
    - fields:
      - name: __forceinline__
        type: __device__
      item_type: struct
      name: RunWorkBatch
      pos:
        line_end: 296
        line_start: 264
        source_file: /src/nccl/src/device/common.h
    typedefs:
    - item_type: typedef
      name: (*ncclDevFuncPtr_t)()
      pos:
        line_end: 25
        line_start: 25
        source_file: /src/nccl/src/device/common.h
      type: void
    union: []
- function_names:
  - ~Primitives()
  - "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk, StepPerSlice,
    Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::barrier"
  - "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk, StepPerSlice,
    Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::subBarrier"
  - "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk, StepPerSlice,
    Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::patBarrier"
  - "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk, StepPerSlice,
    Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::barrierAny"
  - "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk, StepPerSlice,
    Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::subBarrierAny"
  - "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk, StepPerSlice,
    Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::loadStepValue"
  - "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk, StepPerSlice,
    Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::waitPeer"
  - "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk, StepPerSlice,
    Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::postPeer"
  - "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk, StepPerSlice,
    Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::genericOp"
  - "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk, StepPerSlice,
    Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::sendPeerNotify"
  - "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk, StepPerSlice,
    Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::recvPeerNotify"
  - "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk, StepPerSlice,
    Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::process"
  - "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk, StepPerSlice,
    Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::ScatterGatherOp"
  - "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk, StepPerSlice,
    Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::loadRecvConn"
  - "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk, StepPerSlice,
    Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::loadSendConn"
  - "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk, StepPerSlice,
    Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::if"
  - "Primitives<\n    T, RedOp, Fan, Direct, ProtoSimple<SlicePerChunk, StepPerSlice,
    Unroll, MultimemSrcs, MultimemDsts>, P2p, isNetOffload\n  >::if"
  - setDataPtrs
  - moveDataPtrs
  - send
  - sendFromOutput
  - directSend
  - directSendFromOutput
  - recv
  - directRecv
  - directRecvCopy
  - copySend
  - directCopySend
  - recvSend
  - recvCopySend
  - directRecvCopyDirectSend
  - directRecvDirectSend
  - recvDirectSend
  - directRecvSend
  - recvCopyDirectSend
  - recvReduceCopy
  - directRecvReduceCopy
  - recvReduceSend
  - directRecvReduceSend
  - recvReduceDirectSend
  - directRecvReduceDirectSend
  - recvReduceCopySend
  - recvReduceCopyDirectSend
  - directRecvReduceCopyDirectSend
  - scatter
  - directScatter
  - gather
  - directGather
  - patReduce
  - patCopy
  source_file: /src/nccl/src/device/prims_simple.h
  types:
    enum:
    - enumerators:
      - name: primsModeDefault
        value: '0'
      - name: primsModePatAg
        value: '2'
      - name: primsModePatRs
        value: '1'
      item_type: enum
      name: primsMode
      pos:
        line_end: 13
        line_start: 9
        source_file: /src/nccl/src/device/prims_simple.h
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ~Primitives()
  - Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::recvOffset
  - Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::sendOffset
  - Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::recvPtr
  - Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::sendPtr
  - Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::recvFlag
  - Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::sendFlag
  - Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::barrier
  - Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::waitSend
  - Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::incRecv
  - Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::postRecv
  - Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::incSend
  - Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::readLL
  - Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::readLLBeginAll
  - Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::readLLFinish
  - Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::storeLL
  - Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::load
  - Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::store
  - Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::loadBegin
  - Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::loadFinish
  - Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::storeData
  - Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::LLGenericOp
  - Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::loadRecvConn
  - Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::loadRecvSync
  - Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::loadSendConn
  - Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::loadSendSync
  - Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::while
  - Primitives<T, RedOp, Fan, Direct, ProtoLL, P2p, isNetOffload>::while
  - setDataPtrs
  - moveDataPtrs
  - send
  - sendFromOutput
  - recv
  - recvReduceSend
  - recvReduceCopy
  - copySend
  - recvCopySend
  - recvReduceCopySend
  source_file: /src/nccl/src/device/prims_ll.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: misalign
        type: int
      item_type: struct
      name: DataLoader
      pos:
        line_end: 205
        line_start: 169
        source_file: /src/nccl/src/device/prims_ll.h
    typedefs: []
    union: []
- function_names:
  - ~Primitives()
  - Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::recvOffset
  - Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::sendOffset
  - Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::recvPtr
  - Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::sendPtr
  - Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::recvFlag
  - Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::sendFlag
  - Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::barrier
  - Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::waitSend
  - Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::postRecv
  - Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::postSend
  - Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::loadRegsBegin
  - Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::loadRegsFinish
  - Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::storeRegs
  - Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::recvReduceSendCopy
  - Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::GenericOp
  - Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::loadRecvConn
  - Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::loadRecvSync
  - Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::loadSendConn
  - Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::loadSendSync
  - Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::while
  - Primitives<T, RedOp, Fan, Direct, ProtoLL128, P2p, isNetOffload>::while
  - setDataPtrs
  - moveDataPtrs
  - send
  - sendFromOutput
  - recv
  - recvReduceSend
  - recvReduceCopy
  - copySend
  - recvCopySend
  - recvReduceCopySend
  source_file: /src/nccl/src/device/prims_ll128.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NCCL_LL128_FLAGTHREAD
      pos:
        line_end: 9
        line_start: 8
        source_file: /src/nccl/src/device/prims_ll128.h
      type_or_value: (NCCL_LL128_LINEELEMS-1)
    - item_type: preproc_def
      name: WARP_MASK
      pos:
        line_end: 174
        line_start: 173
        source_file: /src/nccl/src/device/prims_ll128.h
      type_or_value: '0xffffffff'
    structs: []
    typedefs: []
    union: []
- function_names:
  - runRing
  - runRing
  - run
  - run
  - run
  - run
  - "operator()(\n        int tid, int tn, int slice, int maxSliceSize,\n        int
    nSrcs, void** srcPtrs, int nDsts, void** dstPtrs, int32_t* dstSizes, uint32_t
    sendDirectFlag, uint32_t recvDirectFlag\n      )"
  - run
  - "operator()(\n        int tid, int tn, int slice, int maxSliceSize,\n        int
    nSrcs, void** srcPtrs, int nDsts, void** dstPtrs, int32_t* dstSizes, uint32_t
    sendDirectFlag, uint32_t recvDirectFlag\n      )"
  - run
  source_file: /src/nccl/src/device/reduce_scatter.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: __forceinline__
        type: __device__
      item_type: struct
      name: RunWorkColl<ncclFuncReduceScatter, T, RedOp, NCCL_ALGO_RING, NCCL_PROTO_SIMPLE>
      pos:
        line_end: 63
        line_start: 58
        source_file: /src/nccl/src/device/reduce_scatter.h
    - fields:
      - name: __forceinline__
        type: __device__
      item_type: struct
      name: RunWorkColl<ncclFuncReduceScatter, T, RedOp, NCCL_ALGO_RING, NCCL_PROTO_LL>
      pos:
        line_end: 70
        line_start: 66
        source_file: /src/nccl/src/device/reduce_scatter.h
    - fields:
      - name: __forceinline__
        type: __device__
      item_type: struct
      name: RunWorkColl<ncclFuncReduceScatter, T, RedOp, NCCL_ALGO_RING, NCCL_PROTO_LL128>
      pos:
        line_end: 77
        line_start: 73
        source_file: /src/nccl/src/device/reduce_scatter.h
    - fields:
      - name: __forceinline__
        type: __device__
      item_type: struct
      name: RunWorkColl<ncclFuncReduceScatter, T, RedOp, NCCL_ALGO_PAT, NCCL_PROTO_SIMPLE>
      pos:
        line_end: 140
        line_start: 80
        source_file: /src/nccl/src/device/reduce_scatter.h
    - fields:
      - name: __forceinline__
        type: __device__
      item_type: struct
      name: RunWorkColl<ncclFuncReduceScatter, T, RedOp, NCCL_ALGO_NVLS, NCCL_PROTO_SIMPLE>
      pos:
        line_end: 347
        line_start: 143
        source_file: /src/nccl/src/device/reduce_scatter.h
    - fields:
      - name: '* work'
        type: struct ncclDevWorkColl
      - name: chunkCount
        type: int
      - name: railGridOffset
        type: ssize_t
      item_type: struct
      name: Scatterer
      pos:
        line_end: 210
        line_start: 145
        source_file: /src/nccl/src/device/reduce_scatter.h
    - fields:
      - name: __forceinline__
        type: __device__
      item_type: struct
      name: RunWorkColl<ncclFuncReduceScatter, T, RedOp, NCCL_ALGO_COLLNET_DIRECT,
        NCCL_PROTO_SIMPLE>
      pos:
        line_end: 510
        line_start: 350
        source_file: /src/nccl/src/device/reduce_scatter.h
    - fields:
      - name: '* work'
        type: struct ncclDevWorkColl
      - name: chunkSize
        type: int
      - name: railGridOffset
        type: ssize_t
      item_type: struct
      name: Scatterer
      pos:
        line_end: 420
        line_start: 352
        source_file: /src/nccl/src/device/reduce_scatter.h
    typedefs: []
    union: []
- function_names:
  - runSend
  - runRecv
  - run
  source_file: /src/nccl/src/device/sendrecv.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: __forceinline__
        type: __device__
      item_type: struct
      name: RunWorkBatch<ncclFuncSendRecv, T, RedOp, NCCL_ALGO_RING, NCCL_PROTO_SIMPLE>
      pos:
        line_end: 172
        line_start: 11
        source_file: /src/nccl/src/device/sendrecv.h
    - fields:
      - name: workSendMask
        type: uint32_t
      - name: workRecvMask
        type: uint32_t
      item_type: struct
      name: Shared
      pos:
        line_end: 58
        line_start: 55
        source_file: /src/nccl/src/device/sendrecv.h
    typedefs: []
    union: []
- function_names:
  - FuncCopy
  - FuncSum
  - FuncProd
  - FuncMinMax
  - loadArg
  - loadArg
  - cast
  - reduce
  - preOp
  - postOp
  - load
  - __forceinline__ BytePack<BytePackOf<PackA>::Size*sizeof(B)/sizeof(A)>::applyCast
  - applyReduce
  - applyPreOp
  - applyPostOp
  - __forceinline__ BytePack<BytePerPack>::applyLoadMultimem
  - cast
  - cast
  - cast
  - cast
  - cast
  - cast
  - cast
  - cast
  - EASY_CAST
  - reduce
  - __forceinline__ static BytePack<Size>::reduce
  - reduce
  - reduce
  - reduce
  - reduce
  - reduce
  - reduce
  - reduce
  - SPECIALIZE_REDUCE
  - __forceinline__ static BytePack<Size>::preOp
  - preOp
  - __forceinline__ static BytePack<Size>::postOp
  - postOp
  - loadArg
  - FuncPreMulSum
  - FuncPreMulSum
  - FuncPreMulSum
  - FuncPreMulSum
  - FuncPreMulSum
  - FuncPreMulSum
  - FuncPreMulSum
  - reduce
  - preOp
  - preOp
  - preOp
  - preOp
  - preOp
  - preOp
  - preOp
  - preOp
  - preOp
  - loadArg
  - FuncSumPostDiv
  - divide
  - reduce
  - postOp
  - DEFINE_Apply_LoadMultimem_sum
  - DEFINE_Apply_LoadMultimem_minmax
  - DEFINE_Apply_LoadMultimem_sum_v4
  - DEFINE_Apply_LoadMultimem_minmax_v4
  - DEFINE_Apply_LoadMultimem_sum_v4_and_xparts
  - DEFINE_Apply_LoadMultimem_minmax_v4_and_xparts
  - load
  source_file: /src/nccl/src/device/reduce_kernel.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RegCode_for_size_1
      pos:
        line_end: 826
        line_start: 825
        source_file: /src/nccl/src/device/reduce_kernel.h
      type_or_value: '"r"'
    - item_type: preproc_def
      name: RegCode_for_size_2
      pos:
        line_end: 827
        line_start: 826
        source_file: /src/nccl/src/device/reduce_kernel.h
      type_or_value: '"h"'
    - item_type: preproc_def
      name: RegCode_for_size_4
      pos:
        line_end: 828
        line_start: 827
        source_file: /src/nccl/src/device/reduce_kernel.h
      type_or_value: '"r"'
    - item_type: preproc_def
      name: RegCode_for_size_8
      pos:
        line_end: 829
        line_start: 828
        source_file: /src/nccl/src/device/reduce_kernel.h
      type_or_value: '"l"'
    - item_type: preproc_def
      name: RegSize_for_size_1
      pos:
        line_end: 831
        line_start: 830
        source_file: /src/nccl/src/device/reduce_kernel.h
      type_or_value: '4'
    - item_type: preproc_def
      name: RegSize_for_size_2
      pos:
        line_end: 832
        line_start: 831
        source_file: /src/nccl/src/device/reduce_kernel.h
      type_or_value: '2'
    - item_type: preproc_def
      name: RegSize_for_size_4
      pos:
        line_end: 833
        line_start: 832
        source_file: /src/nccl/src/device/reduce_kernel.h
      type_or_value: '4'
    - item_type: preproc_def
      name: RegSize_for_size_8
      pos:
        line_end: 834
        line_start: 833
        source_file: /src/nccl/src/device/reduce_kernel.h
      type_or_value: '8'
    - item_type: preproc_def
      name: PtxAcc_for_f16
      pos:
        line_end: 843
        line_start: 842
        source_file: /src/nccl/src/device/reduce_kernel.h
      type_or_value: '".acc::f32"'
    - item_type: preproc_def
      name: PtxAcc_for_bf16
      pos:
        line_end: 844
        line_start: 843
        source_file: /src/nccl/src/device/reduce_kernel.h
      type_or_value: '".acc::f32"'
    - item_type: preproc_def
      name: PtxAcc_for_f16x2
      pos:
        line_end: 845
        line_start: 844
        source_file: /src/nccl/src/device/reduce_kernel.h
      type_or_value: '".acc::f32"'
    - item_type: preproc_def
      name: PtxAcc_for_bf16x2
      pos:
        line_end: 846
        line_start: 845
        source_file: /src/nccl/src/device/reduce_kernel.h
      type_or_value: '".acc::f32"'
    - item_type: preproc_def
      name: PtxAcc_for_e4m3
      pos:
        line_end: 853
        line_start: 852
        source_file: /src/nccl/src/device/reduce_kernel.h
      type_or_value: '".acc::f16"'
    - item_type: preproc_def
      name: PtxAcc_for_e5m2
      pos:
        line_end: 854
        line_start: 853
        source_file: /src/nccl/src/device/reduce_kernel.h
      type_or_value: '".acc::f16"'
    - item_type: preproc_def
      name: PtxAcc_for_e4m3x4
      pos:
        line_end: 855
        line_start: 854
        source_file: /src/nccl/src/device/reduce_kernel.h
      type_or_value: '".acc::f16"'
    - item_type: preproc_def
      name: PtxAcc_for_e5m2x4
      pos:
        line_end: 856
        line_start: 855
        source_file: /src/nccl/src/device/reduce_kernel.h
      type_or_value: '".acc::f16"'
    structs:
    - fields: []
      item_type: struct
      name: IsFloatingPoint
      pos:
        line_end: 15
        line_start: 15
        source_file: /src/nccl/src/device/reduce_kernel.h
    - fields: []
      item_type: struct
      name: IsFloatingPoint<half>
      pos:
        line_end: 17
        line_start: 17
        source_file: /src/nccl/src/device/reduce_kernel.h
    - fields: []
      item_type: struct
      name: IsFloatingPoint<__nv_bfloat16>
      pos:
        line_end: 20
        line_start: 20
        source_file: /src/nccl/src/device/reduce_kernel.h
    - fields: []
      item_type: struct
      name: IsFloatingPoint<__nv_fp8_e4m3>
      pos:
        line_end: 24
        line_start: 24
        source_file: /src/nccl/src/device/reduce_kernel.h
    - fields: []
      item_type: struct
      name: IsFloatingPoint<__nv_fp8_e5m2>
      pos:
        line_end: 26
        line_start: 26
        source_file: /src/nccl/src/device/reduce_kernel.h
    - fields: []
      item_type: struct
      name: IsFloatingPoint<float>
      pos:
        line_end: 29
        line_start: 29
        source_file: /src/nccl/src/device/reduce_kernel.h
    - fields: []
      item_type: struct
      name: IsFloatingPoint<double>
      pos:
        line_end: 31
        line_start: 31
        source_file: /src/nccl/src/device/reduce_kernel.h
    - fields:
      - name: __forceinline__
        type: __device__
      item_type: struct
      name: FuncCopy
      pos:
        line_end: 40
        line_start: 40
        source_file: /src/nccl/src/device/reduce_kernel.h
    - fields:
      - name: __forceinline__
        type: __device__
      item_type: struct
      name: FuncSum
      pos:
        line_end: 42
        line_start: 42
        source_file: /src/nccl/src/device/reduce_kernel.h
    - fields:
      - name: __forceinline__
        type: __device__
      item_type: struct
      name: FuncProd
      pos:
        line_end: 44
        line_start: 44
        source_file: /src/nccl/src/device/reduce_kernel.h
    - fields:
      - name: xormask
        type: BytePack<sizeof(T)>
      - name: isMinNotMax
        type: bool
      - name: __forceinline__
        type: __device__
      item_type: struct
      name: FuncMinMax
      pos:
        line_end: 55
        line_start: 47
        source_file: /src/nccl/src/device/reduce_kernel.h
    - fields:
      - name: ArgUsed
        type: bool
      - name: __forceinline__
        type: __device__
      item_type: struct
      name: RedOpArg
      pos:
        line_end: 67
        line_start: 64
        source_file: /src/nccl/src/device/reduce_kernel.h
    - fields:
      - name: ArgUsed
        type: bool
      - name: __forceinline__
        type: __device__
      item_type: struct
      name: RedOpArg<FuncMinMax<T>>
      pos:
        line_end: 78
        line_start: 70
        source_file: /src/nccl/src/device/reduce_kernel.h
    - fields: []
      item_type: struct
      name: Apply_Cast_MaybeEmpty
      pos:
        line_end: 121
        line_start: 121
        source_file: /src/nccl/src/device/reduce_kernel.h
    - fields:
      - name: BytePack<0>
        type: __device__
      item_type: struct
      name: Apply_Cast_MaybeEmpty<A, B, /*EltPerPack=*/0>
      pos:
        line_end: 125
        line_start: 123
        source_file: /src/nccl/src/device/reduce_kernel.h
    - fields: []
      item_type: struct
      name: Apply_Reduce_MaybeEmpty
      pos:
        line_end: 128
        line_start: 128
        source_file: /src/nccl/src/device/reduce_kernel.h
    - fields:
      - name: BytePack<0>
        type: __device__
      item_type: struct
      name: Apply_Reduce_MaybeEmpty<Fn, 0>
      pos:
        line_end: 132
        line_start: 130
        source_file: /src/nccl/src/device/reduce_kernel.h
    - fields: []
      item_type: struct
      name: Apply_PreOp_MaybeEmpty
      pos:
        line_end: 135
        line_start: 135
        source_file: /src/nccl/src/device/reduce_kernel.h
    - fields:
      - name: IsIdentity
        type: bool
      - name: BytePack<0>
        type: __device__
      item_type: struct
      name: Apply_PreOp_MaybeEmpty<Fn, 0>
      pos:
        line_end: 140
        line_start: 137
        source_file: /src/nccl/src/device/reduce_kernel.h
    - fields: []
      item_type: struct
      name: Apply_PostOp_MaybeEmpty
      pos:
        line_end: 143
        line_start: 143
        source_file: /src/nccl/src/device/reduce_kernel.h
    - fields:
      - name: IsIdentity
        type: bool
      - name: BytePack<0>
        type: __device__
      item_type: struct
      name: Apply_PostOp_MaybeEmpty<Fn, 0>
      pos:
        line_end: 148
        line_start: 145
        source_file: /src/nccl/src/device/reduce_kernel.h
    - fields: []
      item_type: struct
      name: Apply_LoadMultimem_MaybeEmpty
      pos:
        line_end: 151
        line_start: 151
        source_file: /src/nccl/src/device/reduce_kernel.h
    - fields:
      - name: BytePack<0>
        type: __device__
      item_type: struct
      name: Apply_LoadMultimem_MaybeEmpty<Fn, 0>
      pos:
        line_end: 155
        line_start: 153
        source_file: /src/nccl/src/device/reduce_kernel.h
    - fields:
      - name: __forceinline__
        type: __device__
      item_type: struct
      name: Apply_Cast
      pos:
        line_end: 208
        line_start: 201
        source_file: /src/nccl/src/device/reduce_kernel.h
    - fields:
      - name: __forceinline__
        type: __device__
      item_type: struct
      name: Apply_Cast<A, B, /*EltPerPack=*/1>
      pos:
        line_end: 215
        line_start: 211
        source_file: /src/nccl/src/device/reduce_kernel.h
    - fields:
      - name: __forceinline__
        type: __device__
      item_type: struct
      name: Apply_Cast<__half, float, /*EltPerPack=*/1>
      pos:
        line_end: 222
        line_start: 218
        source_file: /src/nccl/src/device/reduce_kernel.h
    - fields:
      - name: __forceinline__
        type: __device__
      item_type: struct
      name: Apply_Cast<float, __half, /*EltPerPack=*/1>
      pos:
        line_end: 228
        line_start: 224
        source_file: /src/nccl/src/device/reduce_kernel.h
    - fields:
      - name: __forceinline__
        type: __device__
      item_type: struct
      name: Apply_Cast<__half, float, /*EltPerPack=*/2>
      pos:
        line_end: 235
        line_start: 231
        source_file: /src/nccl/src/device/reduce_kernel.h
    - fields:
      - name: __forceinline__
        type: __device__
      item_type: struct
      name: Apply_Cast<float, __half, /*EltPerPack=*/2>
      pos:
        line_end: 241
        line_start: 237
        source_file: /src/nccl/src/device/reduce_kernel.h
    - fields:
      - name: __forceinline__
        type: __device__
      item_type: struct
      name: Apply_Cast<__nv_bfloat16, float, /*EltPerPack=*/2>
      pos:
        line_end: 249
        line_start: 245
        source_file: /src/nccl/src/device/reduce_kernel.h
    - fields:
      - name: __forceinline__
        type: __device__
      item_type: struct
      name: Apply_Cast<float ,__nv_bfloat16, /*EltPerPack=*/2>
      pos:
        line_end: 255
        line_start: 251
        source_file: /src/nccl/src/device/reduce_kernel.h
    - fields:
      - name: __forceinline__
        type: __device__
      item_type: struct
      name: Apply_Reduce<Fn, /*EltPerPack=*/0>
      pos:
        line_end: 290
        line_start: 286
        source_file: /src/nccl/src/device/reduce_kernel.h
    - fields: []
      item_type: struct
      name: Apply_Reduce
      pos:
        line_end: 304
        line_start: 297
        source_file: /src/nccl/src/device/reduce_kernel.h
    - fields:
      - name: __forceinline__
        type: __device__
      item_type: struct
      name: Apply_Reduce<FuncCopy<T>, /*EltPerPack=*/1>
      pos:
        line_end: 312
        line_start: 308
        source_file: /src/nccl/src/device/reduce_kernel.h
    - fields:
      - name: __forceinline__
        type: __device__
      item_type: struct
      name: Apply_Reduce<FuncSum<T>, /*EltPerPack=*/1>
      pos:
        line_end: 318
        line_start: 314
        source_file: /src/nccl/src/device/reduce_kernel.h
    - fields:
      - name: __forceinline__
        type: __device__
      item_type: struct
      name: Apply_Reduce<FuncProd<T>, /*EltPerPack=*/1>
      pos:
        line_end: 324
        line_start: 320
        source_file: /src/nccl/src/device/reduce_kernel.h
    - fields:
      - name: __forceinline__
        type: __device__
      item_type: struct
      name: Apply_Reduce<FuncMinMax<T>, /*EltPerPack=*/1>
      pos:
        line_end: 330
        line_start: 326
        source_file: /src/nccl/src/device/reduce_kernel.h
    - fields:
      - name: __forceinline__
        type: __device__
      item_type: struct
      name: Apply_Reduce<FuncSum<uint8_t>, /*EltPerPack=*/4>
      pos:
        line_end: 343
        line_start: 334
        source_file: /src/nccl/src/device/reduce_kernel.h
    - fields:
      - name: BytePack<4>
        type: __device__
      item_type: struct
      name: Apply_Reduce<FuncMinMax<uint8_t>, /*EltPerPack=*/4>
      pos:
        line_end: 367
        line_start: 346
        source_file: /src/nccl/src/device/reduce_kernel.h
    - fields:
      - name: __forceinline__
        type: __device__
      item_type: struct
      name: Apply_Reduce<FuncProd<uint8_t>, /*EltPerPack=*/4>
      pos:
        line_end: 382
        line_start: 370
        source_file: /src/nccl/src/device/reduce_kernel.h
    - fields:
      - name: IsIdentity
        type: bool
      item_type: struct
      name: Apply_PreOp<Fn, /*EltPerPack=*/1>
      pos:
        line_end: 490
        line_start: 484
        source_file: /src/nccl/src/device/reduce_kernel.h
    - fields:
      - name: IsIdentity
        type: bool
      - name: __forceinline__
        type: __device__
      item_type: struct
      name: Apply_PreOp<Fn, /*EltPerPack=*/0>
      pos:
        line_end: 498
        line_start: 493
        source_file: /src/nccl/src/device/reduce_kernel.h
    - fields:
      - name: IsIdentity
        type: bool
      item_type: struct
      name: Apply_PostOp<Fn, /*EltPerPack=*/1>
      pos:
        line_end: 531
        line_start: 525
        source_file: /src/nccl/src/device/reduce_kernel.h
    - fields:
      - name: IsIdentity
        type: bool
      - name: __forceinline__
        type: __device__
      item_type: struct
      name: Apply_PostOp<Fn, /*EltPerPack=*/0>
      pos:
        line_end: 539
        line_start: 534
        source_file: /src/nccl/src/device/reduce_kernel.h
    - fields:
      - name: ArgUsed
        type: bool
      - name: __forceinline__
        type: __device__
      item_type: struct
      name: RedOpArg<FuncPreMulSum<T>>
      pos:
        line_end: 554
        line_start: 546
        source_file: /src/nccl/src/device/reduce_kernel.h
    - fields:
      - name: scalar
        type: T
      - name: __forceinline__
        type: __device__
      item_type: struct
      name: FuncPreMulSum
      pos:
        line_end: 566
        line_start: 558
        source_file: /src/nccl/src/device/reduce_kernel.h
    - fields: []
      item_type: struct
      name: FuncPreMulSum<half>
      pos:
        line_end: 590
        line_start: 572
        source_file: /src/nccl/src/device/reduce_kernel.h
    - fields: []
      item_type: struct
      name: FuncPreMulSum<__nv_bfloat16>
      pos:
        line_end: 615
        line_start: 597
        source_file: /src/nccl/src/device/reduce_kernel.h
    - fields:
      - name: scalar2
        type: __half2
      - name: __forceinline__
        type: __device__
      item_type: struct
      name: FuncPreMulSum<__nv_fp8_e4m3>
      pos:
        line_end: 630
        line_start: 621
        source_file: /src/nccl/src/device/reduce_kernel.h
    - fields:
      - name: scalar2
        type: __half2
      - name: __forceinline__
        type: __device__
      item_type: struct
      name: FuncPreMulSum<__nv_fp8_e5m2>
      pos:
        line_end: 642
        line_start: 633
        source_file: /src/nccl/src/device/reduce_kernel.h
    - fields:
      - name: __forceinline__
        type: __device__
      item_type: struct
      name: Apply_Reduce<FuncPreMulSum<T>, EltPerPack>
      pos:
        line_end: 652
        line_start: 647
        source_file: /src/nccl/src/device/reduce_kernel.h
    - fields:
      - name: IsIdentity
        type: bool
      - name: __forceinline__
        type: __device__
      item_type: struct
      name: Apply_PreOp<FuncPreMulSum<T>, /*EltPerPack=*/1>
      pos:
        line_end: 661
        line_start: 656
        source_file: /src/nccl/src/device/reduce_kernel.h
    - fields:
      - name: IsIdentity
        type: bool
      - name: __forceinline__
        type: __device__
      item_type: struct
      name: Apply_PreOp<FuncPreMulSum<half>, /*EltPerPack=*/1>
      pos:
        line_end: 676
        line_start: 667
        source_file: /src/nccl/src/device/reduce_kernel.h
    - fields:
      - name: IsIdentity
        type: bool
      - name: __forceinline__
        type: __device__
      item_type: struct
      name: Apply_PreOp<FuncPreMulSum<half>, /*EltPerPack=*/2>
      pos:
        line_end: 684
        line_start: 679
        source_file: /src/nccl/src/device/reduce_kernel.h
    - fields:
      - name: IsIdentity
        type: bool
      - name: __forceinline__
        type: __device__
      item_type: struct
      name: Apply_PreOp<FuncPreMulSum<__nv_bfloat16>, /*EltPerPack=*/1>
      pos:
        line_end: 703
        line_start: 692
        source_file: /src/nccl/src/device/reduce_kernel.h
    - fields:
      - name: IsIdentity
        type: bool
      - name: __forceinline__
        type: __device__
      item_type: struct
      name: Apply_PreOp<FuncPreMulSum<__nv_bfloat16>, /*EltPerPack=*/2>
      pos:
        line_end: 713
        line_start: 706
        source_file: /src/nccl/src/device/reduce_kernel.h
    - fields:
      - name: IsIdentity
        type: bool
      - name: __forceinline__
        type: __device__
      item_type: struct
      name: Apply_PreOp<FuncPreMulSum<__nv_fp8_e4m3>, /*EltPerPack=*/1>
      pos:
        line_end: 730
        line_start: 723
        source_file: /src/nccl/src/device/reduce_kernel.h
    - fields:
      - name: IsIdentity
        type: bool
      - name: __forceinline__
        type: __device__
      item_type: struct
      name: Apply_PreOp<FuncPreMulSum<__nv_fp8_e4m3>, /*EltPerPack=*/2>
      pos:
        line_end: 739
        line_start: 732
        source_file: /src/nccl/src/device/reduce_kernel.h
    - fields:
      - name: IsIdentity
        type: bool
      - name: __forceinline__
        type: __device__
      item_type: struct
      name: Apply_PreOp<FuncPreMulSum<__nv_fp8_e5m2>, /*EltPerPack=*/1>
      pos:
        line_end: 749
        line_start: 742
        source_file: /src/nccl/src/device/reduce_kernel.h
    - fields:
      - name: IsIdentity
        type: bool
      - name: __forceinline__
        type: __device__
      item_type: struct
      name: Apply_PreOp<FuncPreMulSum<__nv_fp8_e5m2>, /*EltPerPack=*/2>
      pos:
        line_end: 758
        line_start: 751
        source_file: /src/nccl/src/device/reduce_kernel.h
    - fields:
      - name: ArgUsed
        type: bool
      - name: __forceinline__
        type: __device__
      item_type: struct
      name: RedOpArg<FuncSumPostDiv<T>>
      pos:
        line_end: 771
        line_start: 766
        source_file: /src/nccl/src/device/reduce_kernel.h
    - fields:
      - name: divisor
        type: uint32_t
      - name: recip
        type: UintType
      - name: __forceinline__
        type: __device__
      - name: __forceinline__
        type: __device__
      item_type: struct
      name: FuncSumPostDiv
      pos:
        line_end: 803
        line_start: 774
        source_file: /src/nccl/src/device/reduce_kernel.h
    - fields:
      - name: __forceinline__
        type: __device__
      item_type: struct
      name: Apply_Reduce<FuncSumPostDiv<T>, EltPerPack>
      pos:
        line_end: 812
        line_start: 806
        source_file: /src/nccl/src/device/reduce_kernel.h
    - fields:
      - name: IsIdentity
        type: bool
      - name: __forceinline__
        type: __device__
      item_type: struct
      name: Apply_PostOp<FuncSumPostDiv<T>, /*EltPerPack=*/1>
      pos:
        line_end: 820
        line_start: 815
        source_file: /src/nccl/src/device/reduce_kernel.h
    - fields:
      - name: __forceinline__
        type: __device__
      item_type: struct
      name: Apply_LoadMultimem
      pos:
        line_end: 967
        line_start: 962
        source_file: /src/nccl/src/device/reduce_kernel.h
    - fields:
      - name: IsSum
        type: bool
      - name: IsMinMax
        type: bool
      - name: IsFloat
        type: bool
      - name: BigPackSize
        type: int
      item_type: struct
      name: LoadMultimem_BigPackSize
      pos:
        line_end: 984
        line_start: 971
        source_file: /src/nccl/src/device/reduce_kernel.h
    typedefs: []
    union: []
- function_names:
  - min
  - loadInt
  - reduceCopyPacks
  - reduceCopy
  source_file: /src/nccl/src/device/common_kernel.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - load64gpu
  - ncclNetDeviceUnpackSetup
  - ncclNetDeviceIncrementHead
  - ncclNetDeviceSaveHead
  - bulkLoad
  - bulkLoad
  - bulkLoad
  - bulkLoad
  - bulkLoad
  - bulkLoad
  - ppw
  - ncclNetDeviceUnpack
  - ncclNetDeviceUnpack
  - ncclNetDeviceUnpackInner
  source_file: /src/nccl/src/device/network/unpack/unpack.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PAGE_META_SIZE
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/nccl/src/device/network/unpack/unpack.h
      type_or_value: '16'
    - item_type: preproc_def
      name: META_LOAD_SIZE
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/nccl/src/device/network/unpack/unpack.h
      type_or_value: '16'
    - item_type: preproc_def
      name: DATA_LOAD_SIZE
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/nccl/src/device/network/unpack/unpack.h
      type_or_value: '16'
    - item_type: preproc_def
      name: PAGE_SIZE
      pos:
        line_end: 151
        line_start: 150
        source_file: /src/nccl/src/device/network/unpack/unpack.h
      type_or_value: '4096'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/src/device/network/unpack/unpack_defs.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NCCL_NET_DEVICE_UNPACK_MAX_QUEUE_DEPTH
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/nccl/src/device/network/unpack/unpack_defs.h
      type_or_value: '16'
    - item_type: preproc_def
      name: NET_UNPACK_MAX_QUEUE_DEPTH
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/nccl/src/device/network/unpack/unpack_defs.h
      type_or_value: 16  // MAX_REQUESTS
    - item_type: preproc_def
      name: NET_UNPACK_MAX_SLICE_SIZE
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/nccl/src/device/network/unpack/unpack_defs.h
      type_or_value: 4194304  // 4MB per Irecv call
    - item_type: preproc_def
      name: SLICE_PAGE_SIZE
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/nccl/src/device/network/unpack/unpack_defs.h
      type_or_value: '4096'
    - item_type: preproc_def
      name: NET_UNPACK_MAX_SLICE_PAGES
      pos:
        line_end: 32
        line_start: 30
        source_file: /src/nccl/src/device/network/unpack/unpack_defs.h
      type_or_value: (NET_UNPACK_MAX_SLICE_SIZE / SLICE_PAGE_SIZE * 2)  // * 2 for
        slack, wasteful..
    - item_type: preproc_def
      name: NET_UNPACK_MAX_GROUPS
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/nccl/src/device/network/unpack/unpack_defs.h
      type_or_value: 16 // Forked from NCCL_MAX_GROUPS in devcomm.h
    - item_type: preproc_def
      name: NET_UNPACK_MAX_NPEERS
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/nccl/src/device/network/unpack/unpack_defs.h
      type_or_value: 2  // The most you should have is 2 network peers per-group (indexed
        by index)
    - item_type: preproc_def
      name: WARP_SHM_PAGE_CNT
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/nccl/src/device/network/unpack/unpack_defs.h
      type_or_value: '4'
    - item_type: preproc_def
      name: WARP_SHM_SIZE
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/nccl/src/device/network/unpack/unpack_defs.h
      type_or_value: (WARP_SHM_PAGE_CNT * sizeof(union loadMeta))
    structs:
    - fields:
      - name: mem[NCCL_NET_DEVICE_UNPACK_MAX_QUEUE_DEPTH][NET_UNPACK_MAX_SLICE_PAGES]
        type: loadMeta
      - name: cnt[NCCL_NET_DEVICE_UNPACK_MAX_QUEUE_DEPTH]
        type: uint64_t
      item_type: struct
      name: netUnpackMeta
      pos:
        line_end: 36
        line_start: 33
        source_file: /src/nccl/src/device/network/unpack/unpack_defs.h
    - fields:
      - name: '*meta'
        type: struct netUnpackMeta
      - name: '* bounce_buf'
        type: void
      - name: head
        type: uint64_t
      item_type: struct
      name: unpackNetDeviceHandle
      pos:
        line_end: 42
        line_start: 38
        source_file: /src/nccl/src/device/network/unpack/unpack_defs.h
    - fields:
      - name: '* bounce_buf'
        type: void
      item_type: struct
      name: unpackShmem
      pos:
        line_end: 52
        line_start: 50
        source_file: /src/nccl/src/device/network/unpack/unpack_defs.h
    - fields:
      - name: unpackNetDeviceIndexMask
        type: int
      - name: head[NET_UNPACK_MAX_NPEERS]
        type: uint64_t
      - name: '* g_meta[NET_UNPACK_MAX_NPEERS]'
        type: struct netUnpackMeta
      item_type: struct
      name: unpackGroupShmem
      pos:
        line_end: 58
        line_start: 54
        source_file: /src/nccl/src/device/network/unpack/unpack_defs.h
    typedefs: []
    union:
    - fields:
      - name: r64[2]
        type: uint64_t
      item_type: union
      name: loadMeta
      pos:
        line_end: 22
        line_start: 15
        source_file: /src/nccl/src/device/network/unpack/unpack_defs.h
- function_names:
  - profilerProxyConnect
  - profilerProxyProgress
  source_file: /src/nccl/src/transport/profiler.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - nvlsCanConnect
  - nvlsSendFree
  - nvlsRecvFree
  - nvlsGroupCreate
  - nvlsGroupConnect
  - nvlsGroupUnbind
  - ncclNvlsDeregBuffer
  - nvlsGroupUnmapMem
  - ncclNvlsInit
  - ncclNvlsTreeConnect
  - nvlsAllocateMem
  - ncclNvlsBufferSetup
  - ncclNvlsSetup
  - ncclNvlsFree
  - tryRegisterBuffer
  - nvlsRegisterBuffer
  - ncclNvlsLocalRegisterBuffer
  - cleanupNvls
  - ncclNvlsGraphRegisterBuffer
  - ncclNvlsSymmetricInit
  - ncclNvlsSymmetricFinalize
  - ncclNvlsSymmetricMap
  - ncclNvlsSymmetricFree
  - ncclNvlsRegResourcesQuery
  - ncclNvlsInit
  - ncclNvlsBufferSetup
  - ncclNvlsSetup
  - ncclNvlsFree
  - ncclNvlsTreeConnect
  - ncclNvlsGraphRegisterBuffer
  - ncclNvlsLocalRegisterBuffer
  - ncclNvlsDeregBuffer
  - ncclNvlsSymmetricInit
  - ncclNvlsSymmetricMap
  - ncclNvlsSymmetricFree
  - ncclNvlsSymmetricFinalize
  - ncclNvlsRegResourcesQuery
  source_file: /src/nccl/src/transport/nvls.cc
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NVLS_MEM_ALIGN_SIZE
      pos:
        line_end: 146
        line_start: 145
        source_file: /src/nccl/src/transport/nvls.cc
      type_or_value: (1 << 21)
    - item_type: preproc_def
      name: NVLS_NCHANNELS_SM90
      pos:
        line_end: 147
        line_start: 146
        source_file: /src/nccl/src/transport/nvls.cc
      type_or_value: '16'
    - item_type: preproc_def
      name: NVLS_NCHANNELS_SM100
      pos:
        line_end: 148
        line_start: 147
        source_file: /src/nccl/src/transport/nvls.cc
      type_or_value: '32'
    - item_type: preproc_def
      name: NVLS_NCHANNELS_SM100_NVL
      pos:
        line_end: 149
        line_start: 148
        source_file: /src/nccl/src/transport/nvls.cc
      type_or_value: '24'
    structs:
    - fields:
      - name: offset
        type: uintptr_t
      - name: size
        type: size_t
      item_type: struct
      name: graphRegData
      pos:
        line_end: 22
        line_start: 19
        source_file: /src/nccl/src/transport/nvls.cc
    - fields:
      - name: reg
        type: struct ncclReg
      - name: offset
        type: intptr_t
      item_type: struct
      name: localRegData
      pos:
        line_end: 27
        line_start: 24
        source_file: /src/nccl/src/transport/nvls.cc
    - fields:
      - name: base
        type: struct ncclCommCallback
      - name: '*reg'
        type: struct ncclReg
      - name: '*comm'
        type: struct ncclComm
      item_type: struct
      name: ncclNvlsCleanupCallback
      pos:
        line_end: 778
        line_start: 774
        source_file: /src/nccl/src/transport/nvls.cc
    typedefs: []
    union: []
- function_names:
  - NCCL_NET_MAP_OFFSET_BANK
  - NCCL_NET_MAP_OFFSET_NULL
  - NCCL_NET_MAP_GET_POINTER
  - NCCL_NET_MAP_DEV_MEM
  - NCCL_NET_MAP_ADD_POINTER
  - canConnect
  - getHandleForAddressRangeFlags
  - sendSetup
  - recvSetup
  - collNetDumpMap
  - sendConnect
  - recvConnect
  - sendFree
  - recvFree
  - sendProxySetup
  - sharedListen
  - sharedConnect
  - sharedFree
  - sharedBuffersInit
  - sharedBuffersGet
  - sharedBuffersDestroy
  - recvProxySetup
  - sendProxyConnect
  - recvProxyConnect
  - sendProxyFree
  - recvProxyFree
  - calcAlgoOffset
  - calcRegionOffset
  - LAST_OF_GROUP
  - calcStepsPerGroup
  - collNetRegIallreduce
  - collNetIallreduce
  - collNetRegIallgather
  - collNetIallgather
  - collNetRegIreducescatter
  - collNetIreducescatter
  - sendProxyProgress
  - collNetRecvFlush
  - recvProxyProgress
  - collnetRegisterBuffer
  - ncclCollnetLocalRegisterBuffer
  - cleanupCollnet
  - ncclCollnetGraphRegisterBuffer
  - ncclCollnetDeregBuffer
  - sendProxyRegBuffer
  - recvProxyRegBuffer
  - sendProxyDeregBuffer
  - recvProxyDeregBuffer
  - ncclCollNetChainBufferSetup
  - ncclCollNetDirectBufferSetup
  - collNetInitRailRankMap
  - ncclCollNetSetup
  source_file: /src/nccl/src/transport/coll_net.cc
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: COLLNET_GROUP_NSUBS
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/nccl/src/transport/coll_net.cc
      type_or_value: '8'
    - item_type: preproc_def
      name: COLLNET_MAX_GROUPS
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/nccl/src/transport/coll_net.cc
      type_or_value: (NCCL_PROXY_MAX_SUBS/COLLNET_GROUP_NSUBS)
    - item_type: preproc_def
      name: NCCL_NET_MAP_HOSTMEM
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/nccl/src/transport/coll_net.cc
      type_or_value: '0'
    - item_type: preproc_def
      name: NCCL_NET_MAP_DEVMEM
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/nccl/src/transport/coll_net.cc
      type_or_value: '1'
    - item_type: preproc_def
      name: NCCL_NET_MAP_SHARED_HOSTMEM
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/nccl/src/transport/coll_net.cc
      type_or_value: '2'
    - item_type: preproc_def
      name: NCCL_NET_MAP_SHARED_DEVMEM
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/nccl/src/transport/coll_net.cc
      type_or_value: '3'
    - item_type: preproc_def
      name: NCCL_NET_MAP_GDCMEM
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/nccl/src/transport/coll_net.cc
      type_or_value: '4'
    - item_type: preproc_def
      name: NCCL_NET_MAP_MEMS
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/nccl/src/transport/coll_net.cc
      type_or_value: '5'
    - item_type: preproc_def
      name: NCCL_NET_MAP_MASK_DEVMEM
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/nccl/src/transport/coll_net.cc
      type_or_value: '0x40000000'
    - item_type: preproc_def
      name: NCCL_NET_MAP_MASK_SHARED
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/nccl/src/transport/coll_net.cc
      type_or_value: '0x80000000'
    - item_type: preproc_def
      name: NCCL_NET_MAP_MASK_USED
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/nccl/src/transport/coll_net.cc
      type_or_value: '0x20000000'
    - item_type: preproc_def
      name: NCCL_NET_MAP_MASK_OFFSET
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/nccl/src/transport/coll_net.cc
      type_or_value: '0x1fffffff'
    structs:
    - fields:
      - name: collNetHandle
        type: collNetHandle_t
      item_type: struct
      name: collNetRecvConnectInfo
      pos:
        line_end: 22
        line_start: 20
        source_file: /src/nccl/src/transport/coll_net.cc
    - fields:
      - name: '* mhandles[NCCL_NUM_PROTOCOLS]'
        type: void
      - name: '* reqFifo'
        type: void
      item_type: struct
      name: collNetSendConnectInfo
      pos:
        line_end: 28
        line_start: 25
        source_file: /src/nccl/src/transport/coll_net.cc
    - fields:
      - name: '* gpuPtr'
        type: char
      - name: '* cpuPtr'
        type: char
      - name: size
        type: int
      item_type: struct
      name: connectMapMem
      pos:
        line_end: 78
        line_start: 74
        source_file: /src/nccl/src/transport/coll_net.cc
    - fields:
      - name: shared
        type: int
      - name: mems[NCCL_NET_MAP_MEMS]
        type: struct connectMapMem
      - name: offsets
        type: "struct {\n    uint32_t sendMem;\n    uint32_t recvMem;\n    uint32_t
          buffs[NCCL_NUM_PROTOCOLS];\n  }"
      item_type: struct
      name: connectMap
      pos:
        line_end: 90
        line_start: 80
        source_file: /src/nccl/src/transport/coll_net.cc
    - fields:
      - name: turnIsSendNotRecv
        type: bool
      - name: size
        type: int
      item_type: struct
      name: reqSlot
      pos:
        line_end: 95
        line_start: 92
        source_file: /src/nccl/src/transport/coll_net.cc
    - fields:
      - name: map
        type: struct connectMap
      - name: '* collNetComm'
        type: void
      - name: '* sendMem'
        type: struct ncclSendMem
      - name: '* recvMem'
        type: struct ncclRecvMem
      - name: rank
        type: int
      - name: nranks
        type: int
      - name: netDev
        type: int
      - name: useGdr
        type: enum ncclTopoGdrMode
      - name: useDmaBuf
        type: int
      - name: '* gdcSync'
        type: uint64_t
      - name: '* gdrDesc'
        type: void
      - name: '* sendMhandles[NCCL_NUM_PROTOCOLS]'
        type: void
      - name: '* recvMhandles[NCCL_NUM_PROTOCOLS]'
        type: void
      - name: step
        type: uint64_t
      - name: (*reqFifo)[NCCL_STEPS]
        type: struct reqSlot
      - name: collNetRank
        type: int
      - name: maxCollBytes
        type: size_t
      item_type: struct
      name: sendResources
      pos:
        line_end: 116
        line_start: 97
        source_file: /src/nccl/src/transport/coll_net.cc
    - fields:
      - name: map
        type: struct connectMap
      - name: '* collNetComm'
        type: void
      - name: '* sendMem'
        type: struct ncclSendMem
      - name: '* recvMem'
        type: struct ncclRecvMem
      - name: rank
        type: int
      - name: nranks
        type: int
      - name: netDev
        type: int
      - name: useGdr
        type: enum ncclTopoGdrMode
      - name: useDmaBuf
        type: int
      - name: needFlush
        type: int
      - name: '* gdcSync'
        type: uint64_t
      - name: '* gdcFlush'
        type: uint64_t
      - name: '* gdrDesc'
        type: void
      - name: '* mhandles[NCCL_NUM_PROTOCOLS]'
        type: void
      - name: step
        type: uint64_t
      - name: reqFifo[COLLNET_MAX_GROUPS][NCCL_STEPS]
        type: struct reqSlot
      - name: collNetRank
        type: int
      - name: maxCollBytes
        type: size_t
      item_type: struct
      name: recvResources
      pos:
        line_end: 138
        line_start: 118
        source_file: /src/nccl/src/transport/coll_net.cc
    - fields:
      - name: netDev
        type: int
      - name: useGdr
        type: enum ncclTopoGdrMode
      - name: needFlush
        type: int
      - name: '* collNet'
        type: struct ncclCollNetSharedRes
      item_type: struct
      name: setupReq
      pos:
        line_end: 161
        line_start: 156
        source_file: /src/nccl/src/transport/coll_net.cc
    - fields:
      - name: rank
        type: int
      - name: nranks
        type: int
      - name: '* connectInfos'
        type: struct ncclConnect
      item_type: struct
      name: collNetConnectArgs
      pos:
        line_end: 242
        line_start: 238
        source_file: /src/nccl/src/transport/coll_net.cc
    - fields:
      - name: '* collNetListenComms[MAXCHANNELS]'
        type: void
      - name: '* collNetComms[MAXCHANNELS]'
        type: void
      - name: commRefCount[NCCL_MAX_NETDEVS]
        type: int
      item_type: struct
      name: sharedResources
      pos:
        line_end: 348
        line_start: 344
        source_file: /src/nccl/src/transport/coll_net.cc
    - fields:
      - name: buffer
        type: uintptr_t
      - name: size
        type: size_t
      item_type: struct
      name: collnetRegInfo
      pos:
        line_end: 1177
        line_start: 1174
        source_file: /src/nccl/src/transport/coll_net.cc
    - fields:
      - name: base
        type: struct ncclCommCallback
      - name: '*comm'
        type: struct ncclComm
      - name: '*reg'
        type: struct ncclReg
      item_type: struct
      name: ncclCollnetCleanupCallback
      pos:
        line_end: 1245
        line_start: 1241
        source_file: /src/nccl/src/transport/coll_net.cc
    - fields:
      - name: headPosition
        type: int
      - name: isMaster
        type: int
      item_type: struct
      name: collnetShareInfo
      pos:
        line_end: 1484
        line_start: 1481
        source_file: /src/nccl/src/transport/coll_net.cc
    typedefs: []
    union: []
- function_names:
  - ncclTransportRingConnect
  - ncclTransportTreeConnect
  - ncclTransportPatConnect
  source_file: /src/nccl/src/transport/generic.cc
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: useNetPXN
        type: bool
      - name: useGdr
        type: bool
      item_type: struct
      name: ringConnInfo
      pos:
        line_end: 8
        line_start: 5
        source_file: /src/nccl/src/transport/generic.cc
    typedefs: []
    union: []
- function_names:
  - ncclNetSocketGetPciPath
  - ncclNetSocketInit
  - ncclNetSocketDevices
  - ncclNetSocketGetSpeed
  - ncclNetSocketGetProperties
  - persistentSocketThread
  - ncclNetSocketGetNsockNthread
  - ncclNetSocketListen
  - ncclNetSocketConnect
  - ncclNetSocketAccept
  - ncclNetSocketGetRequest
  - ncclNetSocketGetTask
  - ncclNetSocketInlineSize
  - ncclNetSocketTest
  - ncclNetSocketRegMr
  - ncclNetSocketDeregMr
  - ncclNetSocketIsend
  - ncclNetSocketIrecv
  - ncclNetSocketIflush
  - ncclNetSocketCloseListen
  - ncclNetSocketClose
  source_file: /src/nccl/src/transport/net_socket.cc
  types:
    enum:
    - enumerators:
      - name: ncclNetSocketCommStateStart
        value: '0'
      - name: ncclNetSocketCommStateAccept
        value: '3'
      - name: ncclNetSocketCommStateConnect
        value: '1'
      - name: ncclNetSocketCommStateRecv
        value: '5'
      - name: ncclNetSocketCommStateSend
        value: '4'
      item_type: enum
      name: ncclNetSocketCommState
      pos:
        line_end: 138
        line_start: 132
        source_file: /src/nccl/src/transport/net_socket.cc
    preproc_defs:
    - item_type: preproc_def
      name: MAX_LINE_LEN
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/nccl/src/transport/net_socket.cc
      type_or_value: (2047)
    - item_type: preproc_def
      name: MAX_SOCKETS
      pos:
        line_end: 124
        line_start: 123
        source_file: /src/nccl/src/transport/net_socket.cc
      type_or_value: '64'
    - item_type: preproc_def
      name: MAX_THREADS
      pos:
        line_end: 125
        line_start: 124
        source_file: /src/nccl/src/transport/net_socket.cc
      type_or_value: '16'
    - item_type: preproc_def
      name: MAX_REQUESTS
      pos:
        line_end: 126
        line_start: 125
        source_file: /src/nccl/src/transport/net_socket.cc
      type_or_value: NCCL_NET_MAX_REQUESTS
    - item_type: preproc_def
      name: SOCKET_CTRL_SIZE
      pos:
        line_end: 366
        line_start: 365
        source_file: /src/nccl/src/transport/net_socket.cc
      type_or_value: (sizeof(int))
    structs:
    - fields:
      - name: addr
        type: union ncclSocketAddress
      - name: devName[MAX_IF_NAME_SIZE]
        type: char
      - name: '* pciPath'
        type: char
      item_type: struct
      name: ncclNetSocketDev
      pos:
        line_end: 25
        line_start: 21
        source_file: /src/nccl/src/transport/net_socket.cc
    - fields:
      - name: state
        type: enum ncclNetSocketCommState
      - name: iteration
        type: uint8_t
      - name: '* sock'
        type: struct ncclSocket
      - name: '* comm'
        type: struct ncclNetSocketComm
      item_type: struct
      name: ncclNetSocketCommStage
      pos:
        line_end: 145
        line_start: 140
        source_file: /src/nccl/src/transport/net_socket.cc
    - fields:
      - name: connectAddr
        type: union ncclSocketAddress
      - name: magic
        type: uint64_t
      - name: nSocks
        type: int
      - name: nThreads
        type: int
      - name: stage
        type: struct ncclNetSocketCommStage
      item_type: struct
      name: ncclNetSocketHandle
      pos:
        line_end: 153
        line_start: 147
        source_file: /src/nccl/src/transport/net_socket.cc
    - fields:
      - name: op
        type: int
      - name: '* data'
        type: void
      - name: size
        type: int
      - name: '* sock'
        type: struct ncclSocket
      - name: offset
        type: int
      - name: used
        type: int
      - name: result
        type: ncclResult_t
      item_type: struct
      name: ncclNetSocketTask
      pos:
        line_end: 163
        line_start: 155
        source_file: /src/nccl/src/transport/net_socket.cc
    - fields:
      - name: '* eHandle'
        type: void
      - name: '* pHandle'
        type: void
      item_type: struct
      name: ncclProfilerInfo
      pos:
        line_end: 168
        line_start: 165
        source_file: /src/nccl/src/transport/net_socket.cc
    - fields:
      - name: op
        type: int
      - name: '* data'
        type: void
      - name: size
        type: int
      - name: '* inlineData'
        type: void
      - name: '* ctrlSock'
        type: struct ncclSocket
      - name: offset
        type: int
      - name: used
        type: int
      - name: '* comm'
        type: struct ncclNetSocketComm
      - name: '* tasks[MAX_SOCKETS]'
        type: struct ncclNetSocketTask
      - name: nSubs
        type: int
      - name: pInfo
        type: struct ncclProfilerInfo
      item_type: struct
      name: ncclNetSocketRequest
      pos:
        line_end: 182
        line_start: 170
        source_file: /src/nccl/src/transport/net_socket.cc
    - fields:
      - name: next
        type: int
      - name: len
        type: int
      - name: '* tasks'
        type: struct ncclNetSocketTask
      item_type: struct
      name: ncclNetSocketTaskQueue
      pos:
        line_end: 188
        line_start: 184
        source_file: /src/nccl/src/transport/net_socket.cc
    - fields:
      - name: threadTaskQueue
        type: struct ncclNetSocketTaskQueue
      - name: stop
        type: int
      - name: '* comm'
        type: struct ncclNetSocketComm
      - name: '* pInfo'
        type: struct ncclProfilerInfo
      - name: threadLock
        type: pthread_mutex_t
      - name: threadCond
        type: pthread_cond_t
      item_type: struct
      name: ncclNetSocketThreadResources
      pos:
        line_end: 197
        line_start: 190
        source_file: /src/nccl/src/transport/net_socket.cc
    - fields:
      - name: sock
        type: struct ncclSocket
      - name: stage
        type: struct ncclNetSocketCommStage
      - name: nSocks
        type: int
      - name: nThreads
        type: int
      - name: dev
        type: int
      item_type: struct
      name: ncclNetSocketListenComm
      pos:
        line_end: 205
        line_start: 199
        source_file: /src/nccl/src/transport/net_socket.cc
    - fields:
      - name: ctrlSock
        type: struct ncclSocket
      - name: socks[MAX_SOCKETS]
        type: struct ncclSocket
      - name: dev
        type: int
      - name: cudaDev
        type: int
      - name: nSocks
        type: int
      - name: nThreads
        type: int
      - name: nextSock
        type: int
      - name: '* inlineData'
        type: void
      - name: requests[MAX_REQUESTS]
        type: struct ncclNetSocketRequest
      - name: helperThread[MAX_THREADS]
        type: pthread_t
      - name: threadResources[MAX_THREADS]
        type: struct ncclNetSocketThreadResources
      item_type: struct
      name: ncclNetSocketComm
      pos:
        line_end: 219
        line_start: 207
        source_file: /src/nccl/src/transport/net_socket.cc
    typedefs: []
    union: []
- function_names:
  - NCCL_NET_MAP_OFFSET_BANK
  - NCCL_NET_MAP_OFFSET_NULL
  - NCCL_NET_MAP_GET_POINTER
  - NCCL_NET_MAP_DEV_MEM
  - NCCL_NET_MAP_ADD_POINTER
  - canConnect
  - getHandleForAddressRangeFlags
  - sendSetup
  - recvSetup
  - netMapShm
  - netCreateShm
  - netDumpMap
  - sendConnect
  - recvConnect
  - sendFree
  - recvFree
  - sharedNetBuffersInit
  - sharedBuffersGet
  - sharedNetBuffersDestroy
  - proxySharedInit
  - sendProxySetup
  - recvProxySetup
  - ncclNetGetDeviceHandle
  - sendProxyConnect
  - recvProxyConnect
  - sendProxyFree
  - recvProxyFree
  - sendProxyProgress
  - recvProxyProgress
  - ncclNetDeregBuffer
  - netRegisterBuffer
  - ncclNetLocalRegisterBuffer
  - cleanupNet
  - ncclNetGraphRegisterBuffer
  - sendProxyRegBuffer
  - recvProxyRegBuffer
  - sendProxyDeregBuffer
  - recvProxyDeregBuffer
  source_file: /src/nccl/src/transport/net.cc
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NCCL_NET_MAP_HOSTMEM
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/nccl/src/transport/net.cc
      type_or_value: '0'
    - item_type: preproc_def
      name: NCCL_NET_MAP_DEVMEM
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/nccl/src/transport/net.cc
      type_or_value: '1'
    - item_type: preproc_def
      name: NCCL_NET_MAP_SHARED_HOSTMEM
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/nccl/src/transport/net.cc
      type_or_value: '2'
    - item_type: preproc_def
      name: NCCL_NET_MAP_SHARED_DEVMEM
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/nccl/src/transport/net.cc
      type_or_value: '3'
    - item_type: preproc_def
      name: NCCL_NET_MAP_GDCMEM
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/nccl/src/transport/net.cc
      type_or_value: '4'
    - item_type: preproc_def
      name: NCCL_NET_MAP_MEMS
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/nccl/src/transport/net.cc
      type_or_value: '5'
    - item_type: preproc_def
      name: NCCL_NET_MAP_MASK_DEVMEM
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/nccl/src/transport/net.cc
      type_or_value: '0x40000000'
    - item_type: preproc_def
      name: NCCL_NET_MAP_MASK_SHARED
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/nccl/src/transport/net.cc
      type_or_value: '0x80000000'
    - item_type: preproc_def
      name: NCCL_NET_MAP_MASK_USED
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/nccl/src/transport/net.cc
      type_or_value: '0x20000000'
    - item_type: preproc_def
      name: NCCL_NET_MAP_MASK_OFFSET
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/nccl/src/transport/net.cc
      type_or_value: '0x1fffffff'
    - item_type: preproc_def
      name: NCCL_SHARED_STEPS
      pos:
        line_end: 527
        line_start: 526
        source_file: /src/nccl/src/transport/net.cc
      type_or_value: '16'
    structs:
    - fields:
      - name: '* gpuPtr'
        type: char
      - name: '* cpuPtr'
        type: char
      - name: size
        type: int
      - name: ipcDesc
        type: ncclIpcDesc
      - name: attachDesc
        type: ncclShmIpcDesc_t
      - name: createDesc
        type: ncclShmIpcDesc_t
      item_type: struct
      name: connectMapMem
      pos:
        line_end: 69
        line_start: 62
        source_file: /src/nccl/src/transport/net.cc
    - fields:
      - name: sameProcess
        type: int
      - name: shared
        type: int
      - name: cudaDev
        type: int
      - name: mems[NCCL_NET_MAP_MEMS]
        type: struct connectMapMem
      - name: offsets
        type: "struct {\n    uint32_t sendMem;\n    uint32_t recvMem;\n    uint32_t
          buffs[NCCL_NUM_PROTOCOLS];\n  }"
      item_type: struct
      name: connectMap
      pos:
        line_end: 83
        line_start: 71
        source_file: /src/nccl/src/transport/net.cc
    - fields:
      - name: map
        type: struct connectMap
      - name: '* netSendComm'
        type: void
      - name: '* sendMem'
        type: struct ncclSendMem
      - name: '* recvMem'
        type: struct ncclRecvMem
      - name: tpRank
        type: int
      - name: tpLocalRank
        type: int
      - name: tpRemoteRank
        type: int
      - name: netDev
        type: int
      - name: useGdr
        type: enum ncclTopoGdrMode
      - name: useDmaBuf
        type: int
      - name: maxRecvs
        type: int
      - name: '* gdcSync'
        type: uint64_t
      - name: '* gdrDesc'
        type: void
      - name: shared
        type: int
      - name: channelId
        type: int
      - name: connIndex
        type: int
      - name: '* buffers[NCCL_NUM_PROTOCOLS]'
        type: char
      - name: buffSizes[NCCL_NUM_PROTOCOLS]
        type: int
      - name: '* mhandles[NCCL_NUM_PROTOCOLS]'
        type: void
      - name: step
        type: uint64_t
      - name: llLastCleaning
        type: uint64_t
      - name: netDeviceVersion
        type: int
      - name: netDeviceType
        type: ncclNetDeviceType
      - name: '* netDeviceHandle'
        type: ncclNetDeviceHandle_t
      - name: maxP2pBytes
        type: size_t
      item_type: struct
      name: sendNetResources
      pos:
        line_end: 112
        line_start: 85
        source_file: /src/nccl/src/transport/net.cc
    - fields:
      - name: map
        type: struct connectMap
      - name: '* netListenComm'
        type: void
      - name: '* netRecvComm'
        type: void
      - name: '* sendMem'
        type: struct ncclSendMem
      - name: '* recvMem'
        type: struct ncclRecvMem
      - name: tpRank
        type: int
      - name: tpLocalRank
        type: int
      - name: tpRemoteRank
        type: int
      - name: tpRemoteProxyRank
        type: int
      - name: netDev
        type: int
      - name: useGdr
        type: enum ncclTopoGdrMode
      - name: useDmaBuf
        type: int
      - name: needFlush
        type: int
      - name: maxRecvs
        type: int
      - name: '* gdcSync'
        type: uint64_t
      - name: '* gdcFlush'
        type: uint64_t
      - name: '* gdrDesc'
        type: void
      - name: shared
        type: int
      - name: channelId
        type: int
      - name: connIndex
        type: int
      - name: '* buffers[NCCL_NUM_PROTOCOLS]'
        type: char
      - name: buffSizes[NCCL_NUM_PROTOCOLS]
        type: int
      - name: '* mhandles[NCCL_NUM_PROTOCOLS]'
        type: void
      - name: step
        type: uint64_t
      - name: llLastCleaning
        type: uint64_t
      - name: netDeviceVersion
        type: int
      - name: netDeviceType
        type: ncclNetDeviceType
      - name: '* netDeviceHandle'
        type: ncclNetDeviceHandle_t
      - name: maxP2pBytes
        type: size_t
      item_type: struct
      name: recvNetResources
      pos:
        line_end: 145
        line_start: 114
        source_file: /src/nccl/src/transport/net.cc
    - fields:
      - name: buffer
        type: uintptr_t
      - name: size
        type: size_t
      item_type: struct
      name: netRegInfo
      pos:
        line_end: 150
        line_start: 147
        source_file: /src/nccl/src/transport/net.cc
    - fields:
      - name: tpRank
        type: int
      - name: tpLocalRank
        type: int
      - name: tpRemoteRank
        type: int
      - name: shared
        type: int
      - name: netDev
        type: int
      - name: useGdr
        type: enum ncclTopoGdrMode
      - name: needFlush
        type: int
      - name: channelId
        type: int
      - name: connIndex
        type: int
      item_type: struct
      name: setupReq
      pos:
        line_end: 175
        line_start: 165
        source_file: /src/nccl/src/transport/net.cc
    - fields:
      - name: handle
        type: ncclNetHandle_t
      - name: trafficClass
        type: int
      item_type: struct
      name: netSendConnectArgs
      pos:
        line_end: 310
        line_start: 307
        source_file: /src/nccl/src/transport/net.cc
    - fields:
      - name: proxyRank
        type: int
      item_type: struct
      name: netRecvConnectArgs
      pos:
        line_end: 314
        line_start: 312
        source_file: /src/nccl/src/transport/net.cc
    - fields:
      - name: base
        type: struct ncclCommCallback
      - name: '*comm'
        type: struct ncclComm
      - name: '*reg'
        type: struct ncclReg
      item_type: struct
      name: ncclNetCleanupCallback
      pos:
        line_end: 1616
        line_start: 1612
        source_file: /src/nccl/src/transport/net.cc
    typedefs: []
    union: []
- function_names:
  - NCCL_IB_LLSTR
  - ncclIbStatsInit
  - ncclIbStatsFatalError
  - ncclIbStatsCheckFatalCount
  - ncclIbQpFatalError
  - ncclIbCqFatalError
  - ncclIbDevFatalError
  - ncclIbAsyncThreadMain
  - envIbAddrFamily
  - envIbAddrRange
  - getGidAddrFamily
  - matchGidAddrPrefix
  - NETMASK
  - configuredGid
  - linkLocalGid
  - validGid
  - ncclIbRoceGetVersionNum
  - ncclUpdateGidIndex
  - ncclIbExtractLocalSubnetPrefix
  - ncclIbExtractFlid
  - ncclIbGetGidIndex
  - ncclIbMatchVfPath
  - ncclIbGetPciPath
  - firstBitSet
  - ncclIbWidth
  - ncclIbSpeed
  - ncclIbRelaxedOrderingCapable
  - ncclMlx5dvDmaBufCapable
  - ncclIbMakeVDeviceInternal
  - ncclIbMakeVDevice
  - ncclIbInit
  - ncclIbDevices
  - KNL_MODULE_LOADED
  - ibGdrSupportInitOnce
  - ncclIbGdrSupport
  - ibDmaBufSupportInitOnce
  - ncclIbDmaBufSupport
  - ncclIbGetPhysProperties
  - ncclIbGetProperties
  - ncclIbAddEvent
  - ncclIbInitCommDevBase
  - ncclIbDestroyBase
  - ncclIbCreateQp
  - ncclIbRtrQp
  - ncclIbRtsQp
  - ncclIbListen
  - ncclIbConnect
  - ncclIbCheckVProps
  - ncclIbAccept
  - ncclIbGetRequest
  - ncclIbFreeRequest
  - ncclIbRegMrDmaBufInternal
  - ncclIbGetNetCommDevBase
  - ncclIbRegMrDmaBuf
  - ncclIbRegMr
  - ncclIbDeregMrInternal
  - ncclIbDeregMr
  - ncclIbMultiSend
  - ncclIbIsend
  - ncclIbPostFifo
  - ncclIbIrecv
  - ncclIbIflush
  - HCA_NAME
  - getReqQpIndex
  - ncclIbTest
  - ncclIbCloseSend
  - ncclIbCloseRecv
  - ncclIbCloseListen
  source_file: /src/nccl/src/transport/net_ib.cc
  types:
    enum:
    - enumerators:
      - name: IB_PROVIDER_NONE
        value: '0'
      - name: IB_PROVIDER_MAX
        value: '2'
      - name: IB_PROVIDER_MLX5
        value: '1'
      item_type: enum
      name: ncclIbProvider
      pos:
        line_end: 63
        line_start: 59
        source_file: /src/nccl/src/transport/net_ib.cc
    - enumerators:
      - name: ncclIbCommStateStart
        value: '0'
      - name: ncclIbCommStateConnect
        value: '1'
      - name: ncclIbCommStateSend
        value: '4'
      - name: ncclIbCommStateAccept
        value: '3'
      - name: ncclIbCommStateRecv
        value: '5'
      - name: ncclIbCommStateConnecting
        value: '6'
      - name: ncclIbCommStateConnected
        value: '7'
      - name: ncclIbCommStatePendingReady
        value: '8'
      - name: ncclIbCommStateSendDevList
        value: '9'
      - name: ncclIbCommStateRecvDevList
        value: '10'
      item_type: enum
      name: ncclIbCommState
      pos:
        line_end: 942
        line_start: 931
        source_file: /src/nccl/src/transport/net_ib.cc
    preproc_defs:
    - item_type: preproc_def
      name: ENABLE_TIMER
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/nccl/src/transport/net_ib.cc
      type_or_value: '0'
    - item_type: preproc_def
      name: MAXSUFFIXSIZE
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/nccl/src/transport/net_ib.cc
      type_or_value: '16'
    - item_type: preproc_def
      name: MAXNAMESIZE
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/nccl/src/transport/net_ib.cc
      type_or_value: (64 + MAXSUFFIXSIZE)
    - item_type: preproc_def
      name: NCCL_IB_MAX_DEVS_PER_NIC
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/nccl/src/transport/net_ib.cc
      type_or_value: '4'
    - item_type: preproc_def
      name: MAX_MERGED_DEV_NAME
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/nccl/src/transport/net_ib.cc
      type_or_value: (MAXNAMESIZE*NCCL_IB_MAX_DEVS_PER_NIC)+NCCL_IB_MAX_DEVS_PER_NIC
    - item_type: preproc_def
      name: MAX_IB_DEVS
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/nccl/src/transport/net_ib.cc
      type_or_value: '32'
    - item_type: preproc_def
      name: MAX_IB_VDEVS
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/nccl/src/transport/net_ib.cc
      type_or_value: MAX_IB_DEVS*8
    - item_type: preproc_def
      name: NCCL_IB_SL_DEFAULT
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/nccl/src/transport/net_ib.cc
      type_or_value: '0'
    - item_type: preproc_def
      name: NCCL_IB_TC_DEFAULT
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/nccl/src/transport/net_ib.cc
      type_or_value: '0'
    - item_type: preproc_def
      name: NCCL_NET_IB_MAX_RECVS
      pos:
        line_end: 842
        line_start: 841
        source_file: /src/nccl/src/transport/net_ib.cc
      type_or_value: '8'
    - item_type: preproc_def
      name: MAX_REQUESTS
      pos:
        line_end: 889
        line_start: 888
        source_file: /src/nccl/src/transport/net_ib.cc
      type_or_value: (NCCL_NET_MAX_REQUESTS*NCCL_NET_IB_MAX_RECVS)
    - item_type: preproc_def
      name: NCCL_IB_MAX_QPS
      pos:
        line_end: 892
        line_start: 891
        source_file: /src/nccl/src/transport/net_ib.cc
      type_or_value: '128'
    - item_type: preproc_def
      name: NCCL_NET_IB_REQ_UNUSED
      pos:
        line_end: 965
        line_start: 964
        source_file: /src/nccl/src/transport/net_ib.cc
      type_or_value: '0'
    - item_type: preproc_def
      name: NCCL_NET_IB_REQ_SEND
      pos:
        line_end: 966
        line_start: 965
        source_file: /src/nccl/src/transport/net_ib.cc
      type_or_value: '1'
    - item_type: preproc_def
      name: NCCL_NET_IB_REQ_RECV
      pos:
        line_end: 967
        line_start: 966
        source_file: /src/nccl/src/transport/net_ib.cc
      type_or_value: '2'
    - item_type: preproc_def
      name: NCCL_NET_IB_REQ_FLUSH
      pos:
        line_end: 968
        line_start: 967
        source_file: /src/nccl/src/transport/net_ib.cc
      type_or_value: '3'
    - item_type: preproc_def
      name: MAX_QPS_PER_REQ
      pos:
        line_end: 971
        line_start: 970
        source_file: /src/nccl/src/transport/net_ib.cc
      type_or_value: '8'
    structs:
    - fields:
      - name: addr
        type: uintptr_t
      - name: pages
        type: size_t
      - name: refs
        type: int
      - name: '*mr'
        type: ibv_mr
      item_type: struct
      name: ncclIbMr
      pos:
        line_end: 39
        line_start: 34
        source_file: /src/nccl/src/transport/net_ib.cc
    - fields:
      - name: '*slots'
        type: struct ncclIbMr
      - name: capacity
        type: int
      item_type: struct
      name: ncclIbMrCache
      pos:
        line_end: 44
        line_start: 41
        source_file: /src/nccl/src/transport/net_ib.cc
    - fields:
      - name: vProps
        type: ncclNetVDeviceProps_t
      - name: speed
        type: int
      - name: devName[MAX_MERGED_DEV_NAME]
        type: char
      item_type: struct
      name: ncclIbMergedDev
      pos:
        line_end: 53
        line_start: 49
        source_file: /src/nccl/src/transport/net_ib.cc
    - fields:
      - name: fatalErrorCount
        type: int
      item_type: struct
      name: ncclIbStats
      pos:
        line_end: 57
        line_start: 55
        source_file: /src/nccl/src/transport/net_ib.cc
    - fields:
      - name: lock
        type: pthread_mutex_t
      - name: device
        type: int
      - name: guid
        type: uint64_t
      - name: portNum
        type: uint8_t
      - name: link
        type: uint8_t
      - name: speed
        type: int
      - name: '* context'
        type: ibv_context
      - name: pdRefs
        type: int
      - name: '* pd'
        type: ibv_pd
      - name: devName[MAXNAMESIZE]
        type: char
      - name: '* pciPath'
        type: char
      - name: '* virtualPciPath'
        type: char
      - name: realPort
        type: int
      - name: maxQp
        type: int
      - name: latency
        type: float
      - name: mrCache
        type: struct ncclIbMrCache
      - name: ar
        type: int
      - name: portAttr
        type: struct ibv_port_attr
      - name: stats
        type: struct ncclIbStats
      - name: dmaBufSupported
        type: int
      - name: ibProvider
        type: enum ncclIbProvider
      - name: capsProvider
        type: "union {\n    struct {\n      int dataDirect;\n    } mlx5;\n  }"
      item_type: struct
      name: ncclIbDev
      pos:
        line_end: 98
        line_start: 71
        source_file: /src/nccl/src/transport/net_ib.cc
    - fields:
      - name: once
        type: pthread_once_t
      item_type: struct
      name: oncewrap
      pos:
        line_end: 829
        line_start: 827
        source_file: /src/nccl/src/transport/net_ib.cc
    - fields:
      - name: qpn
        type: uint32_t
      - name: ece
        type: struct ibv_ece
      - name: ece_supported
        type: int
      - name: devIndex
        type: int
      item_type: struct
      name: ncclIbQpInfo
      pos:
        line_end: 901
        line_start: 894
        source_file: /src/nccl/src/transport/net_ib.cc
    - fields:
      - name: lid
        type: uint32_t
      - name: ib_port
        type: uint8_t
      - name: mtu
        type: enum ibv_mtu
      - name: link_layer
        type: uint8_t
      - name: gid
        type: union ibv_gid
      - name: fifoRkey
        type: uint32_t
      - name: remoteGid
        type: union ibv_gid
      item_type: struct
      name: ncclIbDevInfo
      pos:
        line_end: 918
        line_start: 904
        source_file: /src/nccl/src/transport/net_ib.cc
    - fields:
      - name: qpInfo[NCCL_IB_MAX_QPS]
        type: struct ncclIbQpInfo
      - name: devs[NCCL_IB_MAX_DEVS_PER_NIC]
        type: struct ncclIbDevInfo
      - name: devName[MAX_MERGED_DEV_NAME]
        type: char
      - name: fifoAddr
        type: uint64_t
      - name: ndevs
        type: int
      - name: tc
        type: int
      - name: sl
        type: int
      item_type: struct
      name: ncclIbConnectionMetadata
      pos:
        line_end: 929
        line_start: 921
        source_file: /src/nccl/src/transport/net_ib.cc
    - fields:
      - name: state
        type: enum ncclIbCommState
      - name: offset
        type: int
      - name: '* buffer'
        type: void
      - name: '* comm'
        type: void
      item_type: struct
      name: ncclIbCommStage
      pos:
        line_end: 949
        line_start: 944
        source_file: /src/nccl/src/transport/net_ib.cc
    - fields:
      - name: connectAddr
        type: union ncclSocketAddress
      - name: magic
        type: uint64_t
      - name: stage
        type: struct ncclIbCommStage
      item_type: struct
      name: ncclIbHandle
      pos:
        line_end: 955
        line_start: 951
        source_file: /src/nccl/src/transport/net_ib.cc
    - fields:
      - name: link_layer
        type: uint8_t
      - name: localGid
        type: union ibv_gid
      - name: localGidIndex
        type: int32_t
      item_type: struct
      name: ncclIbGidInfo
      pos:
        line_end: 962
        line_start: 958
        source_file: /src/nccl/src/transport/net_ib.cc
    - fields:
      - name: '* qpEventHandles[MAX_QPS_PER_REQ]'
        type: void
      - name: qpIndex[MAX_QPS_PER_REQ]
        type: int
      - name: nEventHandles
        type: int
      - name: data
        type: ncclProfilerNetIbDescr_v1_t
      - name: '* pHandle'
        type: void
      item_type: struct
      name: ncclProfilerInfo
      pos:
        line_end: 977
        line_start: 971
        source_file: /src/nccl/src/transport/net_ib.cc
    - fields:
      - name: '* base'
        type: struct ncclIbNetCommBase
      - name: type
        type: int
      - name: '* sock'
        type: struct ncclSocket
      - name: events[NCCL_IB_MAX_DEVS_PER_NIC]
        type: int
      - name: '* devBases[NCCL_IB_MAX_DEVS_PER_NIC]'
        type: struct ncclIbNetCommDevBase
      - name: nreqs
        type: int
      item_type: struct
      name: ncclIbRequest
      pos:
        line_end: 1000
        line_start: 979
        source_file: /src/nccl/src/transport/net_ib.cc
    - fields:
      - name: ibDevN
        type: int
      - name: '* pd'
        type: struct ibv_pd
      - name: '* cq'
        type: struct ibv_cq
      - name: pad[2]
        type: uint64_t
      - name: gidInfo
        type: struct ncclIbGidInfo
      item_type: struct
      name: ncclIbNetCommDevBase
      pos:
        line_end: 1008
        line_start: 1002
        source_file: /src/nccl/src/transport/net_ib.cc
    - fields:
      - name: dev
        type: int
      - name: sock
        type: struct ncclSocket
      - name: stage
        type: struct ncclIbCommStage
      item_type: struct
      name: ncclIbListenComm
      pos:
        line_end: 1014
        line_start: 1010
        source_file: /src/nccl/src/transport/net_ib.cc
    - fields:
      - name: addr
        type: uint64_t
      - name: size
        type: uint64_t
      - name: rkeys[NCCL_IB_MAX_DEVS_PER_NIC]
        type: uint32_t
      - name: nreqs
        type: uint32_t
      - name: tag
        type: uint32_t
      - name: idx
        type: uint64_t
      - name: padding[16]
        type: char
      item_type: struct
      name: ncclIbSendFifo
      pos:
        line_end: 1024
        line_start: 1016
        source_file: /src/nccl/src/transport/net_ib.cc
    - fields:
      - name: '* qp'
        type: struct ibv_qp
      - name: devIndex
        type: int
      - name: remDevIdx
        type: int
      item_type: struct
      name: ncclIbQp
      pos:
        line_end: 1030
        line_start: 1026
        source_file: /src/nccl/src/transport/net_ib.cc
    - fields:
      - name: elems[MAX_REQUESTS][NCCL_NET_IB_MAX_RECVS]
        type: int
      - name: fifoTail
        type: uint64_t
      - name: addr
        type: uint64_t
      - name: rkeys[NCCL_IB_MAX_DEVS_PER_NIC]
        type: uint32_t
      - name: flags
        type: uint32_t
      - name: '* mrs[NCCL_IB_MAX_DEVS_PER_NIC]'
        type: struct ibv_mr
      - name: sge
        type: struct ibv_sge
      item_type: struct
      name: ncclIbRemSizesFifo
      pos:
        line_end: 1040
        line_start: 1032
        source_file: /src/nccl/src/transport/net_ib.cc
    - fields:
      - name: base
        type: struct ncclIbNetCommDevBase
      - name: '* fifoMr'
        type: struct ibv_mr
      item_type: struct
      name: ncclIbSendCommDev
      pos:
        line_end: 1046
        line_start: 1043
        source_file: /src/nccl/src/transport/net_ib.cc
    - fields:
      - name: '* mrs[NCCL_IB_MAX_DEVS_PER_NIC]'
        type: ibv_mr
      item_type: struct
      name: ncclIbMrHandle
      pos:
        line_end: 1052
        line_start: 1050
        source_file: /src/nccl/src/transport/net_ib.cc
    - fields:
      - name: vProps
        type: ncclNetVDeviceProps_t
      - name: isSend
        type: bool
      - name: reqs[MAX_REQUESTS]
        type: struct ncclIbRequest
      - name: qps[NCCL_IB_MAX_QPS]
        type: struct ncclIbQp
      - name: nqps
        type: int
      - name: qpIndex
        type: int
      - name: devIndex
        type: int
      - name: sock
        type: struct ncclSocket
      - name: ready
        type: int
      - name: nRemDevs
        type: int
      - name: nDataQps
        type: int
      - name: remDevs[NCCL_IB_MAX_DEVS_PER_NIC]
        type: struct ncclIbDevInfo
      - name: stats
        type: struct ncclIbStats
      item_type: struct
      name: ncclIbNetCommBase
      pos:
        line_end: 1070
        line_start: 1054
        source_file: /src/nccl/src/transport/net_ib.cc
    - fields:
      - name: base
        type: struct ncclIbNetCommBase
      - name: fifo[MAX_REQUESTS][NCCL_NET_IB_MAX_RECVS]
        type: struct ncclIbSendFifo
      - name: sges[NCCL_NET_IB_MAX_RECVS]
        type: struct ibv_sge
      - name: wrs[NCCL_NET_IB_MAX_RECVS + 1]
        type: struct ibv_send_wr
      - name: devs[NCCL_IB_MAX_DEVS_PER_NIC]
        type: struct ncclIbSendCommDev
      - name: '* fifoReqs[MAX_REQUESTS][NCCL_NET_IB_MAX_RECVS]'
        type: struct ncclIbRequest
      - name: remSizesFifo
        type: struct ncclIbRemSizesFifo
      - name: fifoHead
        type: uint64_t
      - name: ar
        type: int
      item_type: struct
      name: ncclIbSendComm
      pos:
        line_end: 1084
        line_start: 1072
        source_file: /src/nccl/src/transport/net_ib.cc
    - fields:
      - name: '* hostMr'
        type: struct ibv_mr
      - name: sge
        type: struct ibv_sge
      - name: qp
        type: struct ncclIbQp
      item_type: struct
      name: ncclIbGpuFlush
      pos:
        line_end: 1098
        line_start: 1094
        source_file: /src/nccl/src/transport/net_ib.cc
    - fields:
      - name: elems[MAX_REQUESTS][NCCL_NET_IB_MAX_RECVS]
        type: struct ncclIbSendFifo
      - name: fifoTail
        type: uint64_t
      - name: addr
        type: uint64_t
      - name: flags
        type: uint32_t
      item_type: struct
      name: ncclIbRemFifo
      pos:
        line_end: 1105
        line_start: 1100
        source_file: /src/nccl/src/transport/net_ib.cc
    - fields:
      - name: base
        type: struct ncclIbNetCommDevBase
      - name: gpuFlush
        type: struct ncclIbGpuFlush
      - name: '* fifoMr'
        type: struct ibv_mr
      - name: fifoSge
        type: struct ibv_sge
      - name: '* sizesFifoMr'
        type: struct ibv_mr
      item_type: struct
      name: ncclIbRecvCommDev
      pos:
        line_end: 1113
        line_start: 1107
        source_file: /src/nccl/src/transport/net_ib.cc
    - fields:
      - name: base
        type: struct ncclIbNetCommBase
      - name: devs[NCCL_IB_MAX_DEVS_PER_NIC]
        type: struct ncclIbRecvCommDev
      - name: remFifo
        type: struct ncclIbRemFifo
      - name: sizesFifo[MAX_REQUESTS][NCCL_NET_IB_MAX_RECVS]
        type: int
      - name: gpuFlushHostMem
        type: int
      - name: flushEnabled
        type: int
      item_type: struct
      name: ncclIbRecvComm
      pos:
        line_end: 1122
        line_start: 1115
        source_file: /src/nccl/src/transport/net_ib.cc
    typedefs: []
    union: []
- function_names:
  - busIdToCudaDev
  - p2pCanConnect
  - TRACE_DUMP_IPC
  - ncclP2pAllocateShareableBuffer
  - ncclP2pFreeShareableBuffer
  - ncclP2pImportShareableBuffer
  - P2P_SAME_PID
  - p2pGetInfo
  - p2pMap
  - p2pSendSetup
  - p2pRecvSetup
  - p2pSendConnect
  - p2pRecvConnect
  - p2pSendFree
  - p2pRecvFree
  - p2pSendProxySetup
  - p2pRecvProxySetup
  - p2pSendProxyConnect
  - p2pSendProxyFree
  - p2pRecvProxyFree
  - p2pSendProxyProgress
  - ipcRegisterBuffer
  - ncclIpcLocalRegisterBuffer
  - cleanupIpc
  - ncclIpcGraphRegisterBuffer
  - ncclIpcDeregBuffer
  - p2pProxyRegister
  - p2pProxyDeregister
  - ncclIpcSymmetricInit
  - ncclIpcSymmetricFinalize
  - ncclIpcSymmetricMap
  - ncclIpcSymmetricFree
  - initCeOperation
  source_file: /src/nccl/src/transport/p2p.cc
  types:
    enum:
    - enumerators:
      - name: P2P_DIRECT
      - name: P2P_IPC
      - name: P2P_INTERMEDIATE
      - name: P2P_CUMEM
      item_type: enum
      name: p2pType
      pos:
        line_end: 16
        line_start: 16
        source_file: /src/nccl/src/transport/p2p.cc
    preproc_defs: []
    structs:
    - fields:
      - name: '* directPtr'
        type: void
      - name: size
        type: size_t
      - name: ipcDesc
        type: ncclIpcDesc
      item_type: struct
      name: ncclP2pBuff
      pos:
        line_end: 22
        line_start: 18
        source_file: /src/nccl/src/transport/p2p.cc
    - fields:
      - name: size
        type: size_t
      - name: refcount
        type: int
      item_type: struct
      name: ncclP2pRequest
      pos:
        line_end: 27
        line_start: 24
        source_file: /src/nccl/src/transport/p2p.cc
    - fields:
      - name: rank
        type: int
      - name: read
        type: int
      - name: p2pBuff
        type: struct ncclP2pBuff
      - name: desc
        type: ncclShmIpcDesc_t
      item_type: struct
      name: p2pConnectInfo
      pos:
        line_end: 35
        line_start: 29
        source_file: /src/nccl/src/transport/p2p.cc
    - fields:
      - name: ipcDesc
        type: ncclIpcDesc
      - name: legacyIpcCap
        type: bool
      - name: impFd
        type: int
      - name: size
        type: size_t
      - name: offset
        type: uintptr_t
      item_type: struct
      name: p2pIpcExpInfo
      pos:
        line_end: 44
        line_start: 38
        source_file: /src/nccl/src/transport/p2p.cc
    - fields:
      - name: sendMem
        type: struct ncclSendMem
      - name: recvMem
        type: struct ncclRecvMem
      item_type: struct
      name: p2pShm
      pos:
        line_end: 49
        line_start: 46
        source_file: /src/nccl/src/transport/p2p.cc
    - fields:
      - name: '* shm'
        type: struct p2pShm
      - name: '* devShm'
        type: struct p2pShm
      - name: desc
        type: ncclShmIpcDesc_t
      - name: '* ceRecvMem'
        type: struct ncclRecvMem
      - name: '* ceDevBuff'
        type: char
      - name: '* recvFifo'
        type: char
      - name: step
        type: uint64_t
      - name: stream
        type: cudaStream_t
      - name: events[NCCL_STEPS]
        type: cudaEvent_t
      item_type: struct
      name: p2pShmProxyInfo
      pos:
        line_end: 67
        line_start: 50
        source_file: /src/nccl/src/transport/p2p.cc
    - fields:
      - name: type
        type: enum p2pType
      - name: '* sendMemIpc'
        type: void
      - name: sendMemSameProc
        type: int
      - name: '* recvMemIpc'
        type: void
      - name: recvMemSameProc
        type: int
      - name: proxyInfo
        type: struct p2pShmProxyInfo
      - name: '* shm'
        type: struct p2pShm
      - name: '* devShm'
        type: struct p2pShm
      - name: desc
        type: ncclShmIpcDesc_t
      item_type: struct
      name: p2pResources
      pos:
        line_end: 85
        line_start: 70
        source_file: /src/nccl/src/transport/p2p.cc
    - fields:
      - name: p2pBuff
        type: struct ncclP2pBuff
      item_type: struct
      name: p2pCuMemProxyInfo
      pos:
        line_end: 90
        line_start: 88
        source_file: /src/nccl/src/transport/p2p.cc
    - fields:
      - name: base
        type: struct ncclCommCallback
      - name: '*comm'
        type: struct ncclComm
      - name: '*reg'
        type: struct ncclReg
      item_type: struct
      name: ncclIpcCleanupCallback
      pos:
        line_end: 981
        line_start: 977
        source_file: /src/nccl/src/transport/p2p.cc
    typedefs: []
    union: []
- function_names:
  - shmCanConnect
  - shmSendSetup
  - shmRecvSetup
  - shmSendConnect
  - shmRecvConnect
  - shmSendFree
  - shmRecvFree
  - shmSendProxyConnect
  - shmRecvProxyConnect
  - shmSendProxyFree
  - shmRecvProxyFree
  - shmSendProxyProgress
  - shmRecvProxyProgress
  - shmSendProxySetup
  - shmRecvProxySetup
  - initCeOperation
  - ncclShmAllocateShareableBuffer
  - ncclShmImportShareableBuffer
  - ncclShmIpcClose
  source_file: /src/nccl/src/transport/shm.cc
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SHM_PATH_MAX
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/nccl/src/transport/shm.cc
      type_or_value: '128'
    - item_type: preproc_def
      name: SHM_HANDLE_TYPE
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/nccl/src/transport/shm.cc
      type_or_value: ncclCuMemHandleType
    - item_type: preproc_def
      name: SHM_SEND_SIDE
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/nccl/src/transport/shm.cc
      type_or_value: '1'
    - item_type: preproc_def
      name: SHM_RECV_SIDE
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/nccl/src/transport/shm.cc
      type_or_value: '2'
    - item_type: preproc_def
      name: MAX_SHM_NAME_LEN
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/nccl/src/transport/shm.cc
      type_or_value: '1024'
    structs:
    - fields:
      - name: '*hptr'
        type: void
      - name: '*dptr'
        type: void
      item_type: struct
      name: shmBuffInfo
      pos:
        line_end: 17
        line_start: 14
        source_file: /src/nccl/src/transport/shm.cc
    - fields:
      - name: rank
        type: int
      - name: desc
        type: ncclShmIpcDesc_t
      - name: buf
        type: struct shmBuffInfo
      item_type: struct
      name: shmConnectInfo
      pos:
        line_end: 23
        line_start: 19
        source_file: /src/nccl/src/transport/shm.cc
    - fields:
      - name: '* remHostMem'
        type: struct ncclRecvMem
      - name: '* devRemHostMem'
        type: struct ncclRecvMem
      - name: remDesc
        type: ncclShmIpcDesc_t
      - name: '* hostMem'
        type: struct ncclSendMem
      - name: '* devHostMem'
        type: struct ncclSendMem
      item_type: struct
      name: shmSendResources
      pos:
        line_end: 31
        line_start: 25
        source_file: /src/nccl/src/transport/shm.cc
    - fields:
      - name: '* remHostMem'
        type: struct ncclSendMem
      - name: '* devRemHostMem'
        type: struct ncclSendMem
      - name: remDesc
        type: ncclShmIpcDesc_t
      - name: '* hostMem'
        type: struct ncclRecvMem
      - name: '* devHostMem'
        type: struct ncclRecvMem
      item_type: struct
      name: shmRecvResources
      pos:
        line_end: 39
        line_start: 33
        source_file: /src/nccl/src/transport/shm.cc
    - fields:
      - name: '* ceRecvMem'
        type: struct ncclRecvMem
      - name: '* devFifo'
        type: char
      - name: '* shmFifo'
        type: char
      - name: '* sendMem'
        type: struct ncclSendMem
      - name: '* recvMem'
        type: struct ncclRecvMem
      - name: step
        type: uint64_t
      - name: stream
        type: cudaStream_t
      - name: events[NCCL_STEPS]
        type: cudaEvent_t
      - name: desc
        type: ncclShmIpcDesc_t
      item_type: struct
      name: shmProxyInfo
      pos:
        line_end: 55
        line_start: 41
        source_file: /src/nccl/src/transport/shm.cc
    - fields:
      - name: size
        type: size_t
      - name: legacy
        type: bool
      item_type: struct
      name: shmRequest
      pos:
        line_end: 60
        line_start: 57
        source_file: /src/nccl/src/transport/shm.cc
    typedefs: []
    union: []
- function_names:
  - ncclProfilerPluginLoad
  - ncclProfilerPluginUnload
  - TIME_START_EVENT
  - TIME_STOP_EVENT
  - TIME_PRINT_EVENTS
  - TIME_START_EVENT
  - TIME_STOP_EVENT
  - TIME_PRINT_EVENTS
  - ncclProfilerPluginInit
  - ncclProfilerPluginFinalize
  - ncclProfilerStartGroupEvent
  - ncclProfilerStopGroupEvent
  - ncclProfilerStartTaskEvents
  - ncclProfilerStopTaskEvents
  - ncclProfilerStartProxyOpEvent
  - ncclProfilerStopProxyOpEvent
  - ncclProfilerStartSendProxyStepEvent
  - ncclProfilerStartRecvProxyStepEvent
  - ncclProfilerStopProxyStepEvent
  - ncclProfilerStartProxyCtrlEvent
  - ncclProfilerStopProxyCtrlEvent
  - ncclProfilerStartKernelChEvent
  - ncclProfilerStopKernelChEvent
  - ncclProfilerRecordProxyOpEventState
  - ncclProfilerRecordProxyStepEventState
  - ncclProfilerRecordProxyCtrlEventState
  - ncclProfilerAddPidToProxyOp
  - proxyProfilerConnect
  - ncclProfilerNeedsProxy
  - ncclProfilerPluginLoaded
  - ncclProfilerCallback
  source_file: /src/nccl/src/plugin/profiler.cc
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_STR_LEN
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/nccl/src/plugin/profiler.cc
      type_or_value: '256'
    - item_type: preproc_def
      name: ENABLE_TIMER
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/nccl/src/plugin/profiler.cc
      type_or_value: '0'
    structs: []
    typedefs: []
    union: []
- function_names:
  - tryOpenLib
  - appendNameToList
  - openPluginLib
  - ncclOpenNetPluginLib
  - ncclOpenTunerPluginLib
  - ncclOpenProfilerPluginLib
  - ncclGetNetPluginLib
  - ncclClosePluginLib
  source_file: /src/nccl/src/plugin/plugin_open.cc
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_STR_LEN
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/nccl/src/plugin/plugin_open.cc
      type_or_value: '255'
    - item_type: preproc_def
      name: NUM_LIBS
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/nccl/src/plugin/plugin_open.cc
      type_or_value: '3'
    structs: []
    typedefs: []
    union: []
- function_names:
  - ncclTunerPluginLoad
  - ncclTunerPluginUnload
  source_file: /src/nccl/src/plugin/tuner.cc
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_PLUGIN_LOAD
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/nccl/src/plugin/tuner.cc
      type_or_value: '4'
    structs: []
    typedefs: []
    union: []
- function_names:
  - ncclNetPluginUnload
  - ncclNetPluginLoad
  - ncclNetCheckDeviceVersion
  - ncclNetPluginInit
  - ncclNetPluginAssignToComm
  - ncclNetPluginDisableOtherExternal
  - initPluginLibsOnceFunc
  - ncclNetInit
  - ncclNetFinalize
  - ncclGpuGdrSupport
  source_file: /src/nccl/src/plugin/net.cc
  types:
    enum:
    - enumerators:
      - name: ncclNetPluginStateDisabled
        value: '-2'
      - name: ncclNetPluginStateLoadFailed
        value: '-1'
      - name: ncclNetPluginStateInitReady
        value: '1'
      - name: ncclNetPluginStateEnabled
        value: '2'
      - name: ncclNetPluginStateLoadReady
        value: '0'
      item_type: enum
      name: ncclNetPluginState
      pos:
        line_end: 46
        line_start: 40
        source_file: /src/nccl/src/plugin/net.cc
    preproc_defs:
    - item_type: preproc_def
      name: NCCL_NET_VERSION_COUNT
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/nccl/src/plugin/net.cc
      type_or_value: '5'
    - item_type: preproc_def
      name: NCCL_NET_NUM_INTERNAL_PLUGINS
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/nccl/src/plugin/net.cc
      type_or_value: '2'
    - item_type: preproc_def
      name: MAX_STR_LEN
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/nccl/src/plugin/net.cc
      type_or_value: '255'
    structs:
    - fields:
      - name: name[MAX_STR_LEN]
        type: char
      - name: '* dlHandle'
        type: void
      - name: '* ncclNet'
        type: ncclNet_t
      - name: ncclNetVer
        type: int
      - name: '* ncclCollNet'
        type: ncclCollNet_t
      - name: ncclNetPluginState
        type: ncclNetPluginState_t
      - name: ncclCollNetPluginState
        type: ncclNetPluginState_t
      - name: ncclNetPluginRefCount
        type: int
      item_type: struct
      name: netPluginLib
      pos:
        line_end: 58
        line_start: 49
        source_file: /src/nccl/src/plugin/net.cc
    typedefs:
    - item_type: typedef
      name: '* getNcclNet_t(void* netPluginLib)'
      pos:
        line_end: 18
        line_start: 18
        source_file: /src/nccl/src/plugin/net.cc
    - item_type: typedef
      name: '* getNcclCollNet_t(void* netPluginLib)'
      pos:
        line_end: 19
        line_start: 19
        source_file: /src/nccl/src/plugin/net.cc
    - item_type: typedef
      name: ncclNetPluginState_t
      pos:
        line_end: 46
        line_start: 40
        source_file: /src/nccl/src/plugin/net.cc
    union: []
- function_names:
  - getNcclNet_v10
  - getNcclCollNet_v10
  source_file: /src/nccl/src/plugin/net/net_v10.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ncclNet_getProperties
  - ncclNet_connect
  - ncclNet_isend
  - ncclNet_irecv
  - ncclCollNet_getProperties
  - ncclCollNet_iallreduce
  - ncclCollNet_iallgather
  - ncclCollNet_ireducescatter
  - ncclNet_init
  - getNcclNet_v8
  - ncclCollNet_init
  - getNcclCollNet_v8
  source_file: /src/nccl/src/plugin/net/net_v8.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ncclNet_getProperties
  - ncclNet_regMr
  - ncclNet_connect
  - ncclNet_accept
  - ncclNet_isend
  - ncclNet_irecv
  - ncclCollNet_getProperties
  - ncclCollNet_regMr
  - ncclCollNet_iallreduce
  - ncclNet_init
  - getNcclNet_v6
  - ncclCollNet_init
  - getNcclCollNet_v6
  source_file: /src/nccl/src/plugin/net/net_v6.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ncclNet_getProperties
  - ncclNet_connect
  - ncclNet_regMr
  - ncclNet_isend
  - ncclNet_irecv
  - ncclCollNet_getProperties
  - ncclCollNet_regMr
  - ncclCollNet_iallreduce
  - ncclNet_init
  - getNcclNet_v7
  - ncclCollNet_init
  - getNcclCollNet_v7
  source_file: /src/nccl/src/plugin/net/net_v7.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ncclNet_getProperties
  - ncclNet_isend
  - ncclNet_irecv
  - ncclNet_connect
  - ncclNet_makeVDevice
  - ncclCollNet_getProperties
  - ncclCollNet_iallgather
  - ncclCollNet_ireducescatter
  - ncclNet_init
  - getNcclNet_v9
  - ncclCollNet_init
  - getNcclCollNet_v9
  source_file: /src/nccl/src/plugin/net/net_v9.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ncclStringToFunc
  - ncclStringToAlgo
  - ncclStringToProto
  - ncclStringToDatatype
  - ncclProfiler_startEvent
  - ncclProfiler_recordEventState
  - ncclProfiler_init
  - getNcclProfiler_v1
  source_file: /src/nccl/src/plugin/profiler/profiler_v1.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - getNcclProfiler_v4
  source_file: /src/nccl/src/plugin/profiler/profiler_v4.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ncclProfiler_startEvent
  - ncclProfiler_recordEventState
  - ncclProfiler_init
  - getNcclProfiler_v3
  source_file: /src/nccl/src/plugin/profiler/profiler_v3.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ncclProfiler_startEvent
  - ncclProfiler_recordEventState
  - ncclProfiler_init
  - getNcclProfiler_v2
  source_file: /src/nccl/src/plugin/profiler/profiler_v2.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - getNcclTuner_v4
  source_file: /src/nccl/src/plugin/tuner/tuner_v4.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ncclTuner_getCollInfo
  - ncclTuner_init
  - getNcclTuner_v3
  source_file: /src/nccl/src/plugin/tuner/tuner_v3.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - hasNvlsSupport
  - hasCollNetSupport
  - ncclTuner_getCollInfo
  - ncclTuner_init
  - getNcclTuner_v2
  source_file: /src/nccl/src/plugin/tuner/tuner_v2.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - GDRLOCK
  - GDRUNLOCK
  - GDRLOCKCALL
  - wc_store_fence
  - wc_store_fence
  - wc_store_fence
  - wc_store_fence
  - wrap_gdr_symbols
  - wrap_gdr_open
  - wrap_gdr_close
  - wrap_gdr_pin_buffer
  - wrap_gdr_unpin_buffer
  - wrap_gdr_get_info
  - wrap_gdr_map
  - wrap_gdr_unmap
  - wrap_gdr_runtime_get_version
  - wrap_gdr_driver_get_version
  - wrap_gdr_copy_to_mapping
  - wrap_gdr_copy_from_mapping
  - ncclGdrInit
  - ncclGdrCudaCalloc
  - ncclGdrCudaCopy
  - ncclGdrCudaFree
  source_file: /src/nccl/src/include/gdrwrap.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: e
      pos:
        line_end: 35
        line_start: 26
        source_file: /src/nccl/src/include/gdrwrap.h
      type_or_value: "= cmd;                                            \\\n    if(
        e != 0 ) {                                      \\\n      WARN(\"GDRCOPY failure
        %d\", e);                    \\\n      return ncclSystemError;                           \\\n
        \   }                                                   \\\n} while(false)"
    - item_type: preproc_def
      name: GPU_PAGE_SHIFT
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/nccl/src/include/gdrwrap.h
      type_or_value: '16'
    - item_type: preproc_def
      name: GPU_PAGE_SIZE
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/nccl/src/include/gdrwrap.h
      type_or_value: (1UL << GPU_PAGE_SHIFT)
    - item_type: preproc_def
      name: GPU_PAGE_OFFSET
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/nccl/src/include/gdrwrap.h
      type_or_value: (GPU_PAGE_SIZE-1)
    - item_type: preproc_def
      name: GPU_PAGE_MASK
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/nccl/src/include/gdrwrap.h
      type_or_value: (~GPU_PAGE_OFFSET)
    structs:
    - fields:
      - name: h
        type: unsigned long
      item_type: struct
      name: gdr_mh_s
      pos:
        line_end: 115
        line_start: 113
        source_file: /src/nccl/src/include/gdrwrap.h
    - fields:
      - name: va
        type: uint64_t
      - name: mapped_size
        type: uint64_t
      - name: page_size
        type: uint32_t
      - name: tm_cycles
        type: uint64_t
      - name: cycles_per_ms
        type: uint32_t
      - name: mapped
        type: unsigned
      - name: wc_mapping
        type: unsigned
      item_type: struct
      name: gdr_info
      pos:
        line_end: 125
        line_start: 117
        source_file: /src/nccl/src/include/gdrwrap.h
    - fields:
      - name: '*gdrDevMem'
        type: void
      - name: '*gdrMap'
        type: void
      - name: gdrOffset
        type: size_t
      - name: gdrMapSize
        type: size_t
      - name: gdrMh
        type: gdr_mh_t
      item_type: struct
      name: gdr_mem_desc
      pos:
        line_end: 157
        line_start: 151
        source_file: /src/nccl/src/include/gdrwrap.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/src/include/p2p.h
  types:
    enum:
    - enumerators:
      - name: NCCL_IPC_SENDRECV
        value: '0'
      - name: NCCL_IPC_COLLECTIVE
        value: '1'
      item_type: enum
      name: ncclIpcRegType
      pos:
        line_end: 45
        line_start: 42
        source_file: /src/nccl/src/include/p2p.h
    preproc_defs:
    - item_type: preproc_def
      name: CU_DEVICE_ATTRIBUTE_HANDLE_TYPE_FABRIC_SUPPORTED
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/nccl/src/include/p2p.h
      type_or_value: ((CUdevice_attribute)128)
    - item_type: preproc_def
      name: CU_MEM_HANDLE_TYPE_FABRIC
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/nccl/src/include/p2p.h
      type_or_value: ((CUmemAllocationHandleType)0x8ULL)
    - item_type: preproc_def
      name: CU_IPC_HANDLE_SIZE
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/nccl/src/include/p2p.h
      type_or_value: '64'
    structs:
    - fields:
      - name: data[CU_IPC_HANDLE_SIZE]
        type: unsigned char
      item_type: struct
      name: CUmemFabricHandle_st
      pos:
        line_end: 23
        line_start: 21
        source_file: /src/nccl/src/include/p2p.h
    - fields:
      - name: '* rmtRegAddr'
        type: void
      - name: legacyIpcCap
        type: bool
      - name: offset
        type: uintptr_t
      item_type: struct
      name: ncclIpcImpInfo
      pos:
        line_end: 51
        line_start: 47
        source_file: /src/nccl/src/include/p2p.h
    - fields:
      - name: peerRank
        type: int
      - name: '* baseAddr'
        type: void
      - name: '* ipcProxyconn'
        type: struct ncclProxyConnector
      - name: impInfo
        type: struct ncclIpcImpInfo
      item_type: struct
      name: ncclIpcRegInfo
      pos:
        line_end: 58
        line_start: 53
        source_file: /src/nccl/src/include/p2p.h
    typedefs:
    - item_type: typedef
      name: CUmemFabricHandle
      pos:
        line_end: 24
        line_start: 24
        source_file: /src/nccl/src/include/p2p.h
    union:
    - fields:
      - name: data
        type: uint64_t
      - name: handle
        type: CUmemFabricHandle
      item_type: union
      name: ncclCuDesc
      pos:
        line_end: 30
        line_start: 27
        source_file: /src/nccl/src/include/p2p.h
    - fields:
      - name: devIpc
        type: cudaIpcMemHandle_t
      item_type: union
      name: ncclIpcDesc
      pos:
        line_end: 40
        line_start: 32
        source_file: /src/nccl/src/include/p2p.h
- function_names:
  - NCCL_NVTX_DEFINE_STRUCT_WITH_SCHEMA_ENTRIES
  source_file: /src/nccl/src/include/nvtx_payload_schemas.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: NcclNvtxParamsCommInitRankConfig
      pos:
        line_end: 52
        line_start: 52
        source_file: /src/nccl/src/include/nvtx_payload_schemas.h
    - item_type: typedef
      name: NcclNvtxParamsCommInitRankScalable
      pos:
        line_end: 53
        line_start: 53
        source_file: /src/nccl/src/include/nvtx_payload_schemas.h
    - item_type: typedef
      name: NcclNvtxParamsCommAbort
      pos:
        line_end: 54
        line_start: 54
        source_file: /src/nccl/src/include/nvtx_payload_schemas.h
    - item_type: typedef
      name: NcclNvtxParamsCommDestroy
      pos:
        line_end: 55
        line_start: 55
        source_file: /src/nccl/src/include/nvtx_payload_schemas.h
    union: []
- function_names: []
  source_file: /src/nccl/src/include/ipcsocket.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NCCL_IPC_SOCKNAME_LEN
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/nccl/src/include/ipcsocket.h
      type_or_value: '64'
    structs:
    - fields:
      - name: fd
        type: int
      - name: socketName[NCCL_IPC_SOCKNAME_LEN]
        type: char
      - name: '* abortFlag'
        type: uint32_t
      item_type: struct
      name: ncclIpcSocket
      pos:
        line_end: 28
        line_start: 24
        source_file: /src/nccl/src/include/ipcsocket.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/src/include/net_device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NCCL_NET_DEVICE_INVALID_VERSION
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/nccl/src/include/net_device.h
      type_or_value: '0x0'
    - item_type: preproc_def
      name: NCCL_NET_MTU_SIZE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/nccl/src/include/net_device.h
      type_or_value: '4096'
    - item_type: preproc_def
      name: NCCL_NET_DEVICE_UNPACK_VERSION
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/nccl/src/include/net_device.h
      type_or_value: '0x7  '
    structs:
    - fields:
      - name: netDeviceType
        type: ncclNetDeviceType
      - name: netDeviceVersion
        type: int
      - name: '* handle'
        type: void
      - name: size
        type: size_t
      - name: needsProxyProgress
        type: int
      item_type: struct
      name: ncclNetDeviceHandle_v7_t
      pos:
        line_end: 24
        line_start: 18
        source_file: /src/nccl/src/include/net_device.h
    typedefs:
    - item_type: typedef
      name: ncclNetDeviceType
      pos:
        line_end: 16
        line_start: 16
        source_file: /src/nccl/src/include/net_device.h
    - item_type: typedef
      name: ncclNetDeviceHandle_v8_t
      pos:
        line_end: 26
        line_start: 26
        source_file: /src/nccl/src/include/net_device.h
    - item_type: typedef
      name: ncclNetDeviceHandle_v9_t
      pos:
        line_end: 27
        line_start: 27
        source_file: /src/nccl/src/include/net_device.h
    - item_type: typedef
      name: ncclNetDeviceHandle_v10_t
      pos:
        line_end: 28
        line_start: 28
        source_file: /src/nccl/src/include/net_device.h
    - item_type: typedef
      name: ncclNetDeviceHandle_t
      pos:
        line_end: 29
        line_start: 29
        source_file: /src/nccl/src/include/net_device.h
    union: []
- function_names:
  - NCCL_PARAM
  source_file: /src/nccl/src/include/param.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ncclSizeOfT
  - ncclSizeOfT
  - ncclCuMemHostAlloc
  - ncclCuMemHostFree
  - ncclCuMemHostAlloc
  - ncclCuMemHostFree
  - ncclCudaHostCallocDebug
  - ncclCudaHostFree
  - ncclCudaHostCalloc
  - ncclCallocDebug
  - ncclCalloc
  - ncclRealloc
  - ncclCuMemAllocAddr
  - ncclCuMemFreeAddr
  - ncclCuMemAlloc
  - ncclCuMemFree
  - ncclCuMemAlloc
  - ncclCuMemFree
  - ncclCuMemAllocAddr
  - ncclCuMemFreeAddr
  - ncclCudaMallocDebug
  - ncclCudaMalloc
  - ncclCudaCallocDebug
  - ncclCudaCalloc
  - ncclCudaCallocAsyncDebug
  - ncclCudaCallocAsync
  - ncclCudaMemcpy
  - ncclCudaMemcpyAsync
  - ncclCudaFree
  - ncclIbMallocDebug
  - ncclIbMalloc
  source_file: /src/nccl/src/include/alloc.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/src/include/mnnvl.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/src/include/allocator.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/src/include/tuner.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ncclTypeSize
  - RingAlgorithm::incRefCount
  - RingAlgorithm::decRefCount
  - RingAlgorithm::RingAlgorithm
  - ~RingAlgorithm()
  - RingARAlgorithm::getNextSendAddr
  - RingARAlgorithm::getNextRecvAddr
  - RingARAlgorithm::RingARAlgorithm
  - ~RingARAlgorithm()
  - RingAGAlgorithm::getNextSendAddr
  - RingAGAlgorithm::getNextRecvAddr
  - RingAGAlgorithm::RingAGAlgorithm
  - ~RingAGAlgorithm()
  - RingBCAlgorithm::getNextSendAddr
  - RingBCAlgorithm::getNextRecvAddr
  - RingBCAlgorithm::RingBCAlgorithm
  - ~RingBCAlgorithm()
  - PatRSAlgorithm::min
  - PatRSAlgorithm::getNelem
  - PatRSAlgorithm::mirrorInvert
  - PatRSAlgorithm::firstBitSet
  - PatRSAlgorithm::resetA
  - PatRSAlgorithm::reset
  - PatRSAlgorithm::nBitsSet
  - PatRSAlgorithm::newPeer
  - PatRSAlgorithm::PatRSAlgorithm
  - PatRSAlgorithm::getParallelFactor
  - PatRSAlgorithm::getNextOp
  - PatAGAlgorithm::min
  - PatAGAlgorithm::getNelem
  - PatAGAlgorithm::mirror
  - PatAGAlgorithm::firstBitSet
  - PatAGAlgorithm::resetA
  - PatAGAlgorithm::reset
  - PatAGAlgorithm::nextAs
  - PatAGAlgorithm::PatAGAlgorithm
  - PatAGAlgorithm::getParallelFactor
  - PatAGAlgorithm::getNextOp
  source_file: /src/nccl/src/include/collectives.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NCCL_MAX_NET_SIZE
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/nccl/src/include/collectives.h
      type_or_value: (1024*1024*1024L) // Rather than send INT_MAX which is 2G-1,
        send a power of two.
    - item_type: preproc_def
      name: ALLREDUCE_SLICESTEPS
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/nccl/src/include/collectives.h
      type_or_value: (NCCL_STEPS/4)
    - item_type: preproc_def
      name: ALLREDUCE_CHUNKSTEPS
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/nccl/src/include/collectives.h
      type_or_value: (NCCL_STEPS/2)
    - item_type: preproc_def
      name: ALLGATHER_SLICESTEPS
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/nccl/src/include/collectives.h
      type_or_value: (NCCL_STEPS/4)
    - item_type: preproc_def
      name: ALLGATHER_CHUNKSTEPS
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/nccl/src/include/collectives.h
      type_or_value: (NCCL_STEPS/2)
    - item_type: preproc_def
      name: REDUCESCATTER_SLICESTEPS
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/nccl/src/include/collectives.h
      type_or_value: (NCCL_STEPS/4)
    - item_type: preproc_def
      name: REDUCESCATTER_CHUNKSTEPS
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/nccl/src/include/collectives.h
      type_or_value: (NCCL_STEPS/2)
    - item_type: preproc_def
      name: BROADCAST_SLICESTEPS
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/nccl/src/include/collectives.h
      type_or_value: '1'
    - item_type: preproc_def
      name: BROADCAST_CHUNKSTEPS
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/nccl/src/include/collectives.h
      type_or_value: '1'
    - item_type: preproc_def
      name: REDUCE_SLICESTEPS
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/nccl/src/include/collectives.h
      type_or_value: '1'
    - item_type: preproc_def
      name: REDUCE_CHUNKSTEPS
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/nccl/src/include/collectives.h
      type_or_value: '1'
    - item_type: preproc_def
      name: NCCL_MAX_SLICE_PER_CHUNK
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/nccl/src/include/collectives.h
      type_or_value: 2  // max value for CHUNKSTEPS/SLICESTEPS, must accord with above
    - item_type: preproc_def
      name: NCCL_MAX_NET_SIZE
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/nccl/src/include/collectives.h
      type_or_value: (1024*1024*1024L) // Rather than send INT_MAX which is 2G-1,
        send a power of two.
    - item_type: preproc_def
      name: NCCL_MODE_NORMAL
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/nccl/src/include/collectives.h
      type_or_value: '0'
    - item_type: preproc_def
      name: NCCL_MODE_OFFSET
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/nccl/src/include/collectives.h
      type_or_value: '1'
    - item_type: preproc_def
      name: NCCL_MODE_PTR
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/nccl/src/include/collectives.h
      type_or_value: '2'
    - item_type: preproc_def
      name: NCCL_PAT_NWORKERS
      pos:
        line_end: 391
        line_start: 390
        source_file: /src/nccl/src/include/collectives.h
      type_or_value: '512'
    - item_type: preproc_def
      name: NCCL_SHMEM_PAT_STEPS
      pos:
        line_end: 413
        line_start: 412
        source_file: /src/nccl/src/include/collectives.h
      type_or_value: '32'
    structs:
    - fields:
      - name: mode
        type: int
      - name: offset
        type: int
      - name: size
        type: ssize_t
      - name: '* ptr'
        type: void
      item_type: struct
      name: ncclConnFifo
      pos:
        line_end: 68
        line_start: 63
        source_file: /src/nccl/src/include/collectives.h
    - fields:
      - name: recvDim
        type: int
      - name: inpIx
        type: size_t
      item_type: struct
      name: ncclPatStep
      pos:
        line_end: 398
        line_start: 395
        source_file: /src/nccl/src/include/collectives.h
    - fields:
      - name: step
        type: uint64_t
      - name: '* conn'
        type: struct ncclConnInfo
      - name: '* connFifo'
        type: struct ncclConnFifo
      - name: '* buff'
        type: void
      - name: '*headPtr'
        type: uint64_t
      - name: '*tailPtr'
        type: uint64_t
      - name: stepCache
        type: uint64_t
      - name: accSize
        type: long long int
      - name: connStepSize
        type: int
      item_type: struct
      name: ncclPatPeer
      pos:
        line_end: 410
        line_start: 400
        source_file: /src/nccl/src/include/collectives.h
    - fields:
      - name: patSteps[NCCL_SHMEM_PAT_STEPS]
        type: struct ncclPatStep
      - name: parallelFactor
        type: int
      - name: localAccSize
        type: long long int
      - name: sendDims[32]
        type: struct ncclPatPeer
      - name: recvDims[32]
        type: struct ncclPatPeer
      item_type: struct
      name: ncclPatShmem
      pos:
        line_end: 419
        line_start: 413
        source_file: /src/nccl/src/include/collectives.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/src/include/trees.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ncclP2pChannelBaseForRound
  source_file: /src/nccl/src/include/channel.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - log2i
  - compareInts
  - clockNano
  - getRandomData
  - ncclAtomicRefCountIncrement
  - ncclAtomicRefCountDecrement
  - ncclMemoryStackConstruct
  - ncclMemoryStack::allocate
  - ncclMemoryStackAlloc
  - ncclMemoryStackAlloc
  - ncclMemoryStackAllocInlineArray
  - ncclMemoryStackPush
  - ncclMemoryStackPop
  - ncclMemoryPoolConstruct
  - ncclMemoryPoolAlloc
  - ncclMemoryPoolFree
  - ncclMemoryPoolTakeAll
  - ncclIntruQueueConstruct
  - ncclIntruQueueEmpty
  - ncclIntruQueueHead
  - ncclIntruQueueTail
  - ncclIntruQueueEnqueue
  - ncclIntruQueueEnqueueFront
  - ncclIntruQueueDequeue
  - ncclIntruQueueDelete
  - ncclIntruQueueTryDequeue
  - ncclIntruQueueTransfer
  - ncclThreadSignalStaticInitializer
  - ncclThreadSignalConstruct
  - ncclThreadSignalDestruct
  - ncclIntruQueueMpscConstruct
  - ncclIntruQueueMpscEmpty
  - ncclIntruQueueMpscEnqueue
  - ncclIntruQueueMpscDequeueAll
  - ncclIntruQueueMpscAbandon
  source_file: /src/nccl/src/include/utils.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: prefix[64]
        type: char
      - name: port
        type: int
      item_type: struct
      name: netIf
      pos:
        line_end: 36
        line_start: 33
        source_file: /src/nccl/src/include/utils.h
    - fields:
      - name: mutex
        type: pthread_mutex_t
      - name: cond
        type: pthread_cond_t
      item_type: struct
      name: ncclThreadSignal
      pos:
        line_end: 160
        line_start: 157
        source_file: /src/nccl/src/include/utils.h
    - fields:
      - name: '* allocateSpilled(struct ncclMemoryStack* me, size_t size, size_t align)'
        type: void
      - name: '* allocate(struct ncclMemoryStack* me, size_t size, size_t align)'
        type: void
      - name: stub
        type: struct Hunk
      - name: topFrame
        type: struct Frame
      item_type: struct
      name: ncclMemoryStack
      pos:
        line_end: 216
        line_start: 195
        source_file: /src/nccl/src/include/utils.h
    - fields:
      - name: '* above'
        type: struct Hunk
      - name: size
        type: size_t
      item_type: struct
      name: Hunk
      pos:
        line_end: 199
        line_start: 196
        source_file: /src/nccl/src/include/utils.h
    - fields:
      - name: '* next'
        type: struct Unhunk
      - name: '* obj'
        type: void
      item_type: struct
      name: Unhunk
      pos:
        line_end: 203
        line_start: 200
        source_file: /src/nccl/src/include/utils.h
    - fields:
      - name: '* hunk'
        type: struct Hunk
      - name: bumper
        type: uintptr_t
      - name: '* unhunks'
        type: struct Unhunk
      - name: '* below'
        type: struct Frame
      item_type: struct
      name: Frame
      pos:
        line_end: 209
        line_start: 204
        source_file: /src/nccl/src/include/utils.h
    - fields:
      - name: '* head'
        type: struct Cell
      - name: '* tail'
        type: struct Cell
      item_type: struct
      name: ncclMemoryPool
      pos:
        line_end: 291
        line_start: 285
        source_file: /src/nccl/src/include/utils.h
    - fields:
      - name: '*next'
        type: Cell
      item_type: struct
      name: Cell
      pos:
        line_end: 288
        line_start: 286
        source_file: /src/nccl/src/include/utils.h
    - fields:
      - name: '*head'
        type: T
      item_type: struct
      name: ncclIntruQueue
      pos:
        line_end: 337
        line_start: 335
        source_file: /src/nccl/src/include/utils.h
    - fields:
      - name: '* head'
        type: T
      - name: tail
        type: uintptr_t
      - name: '* waiting'
        type: struct ncclThreadSignal
      item_type: struct
      name: ncclIntruQueueMpsc
      pos:
        line_end: 449
        line_start: 445
        source_file: /src/nccl/src/include/utils.h
    typedefs: []
    union: []
- function_names:
  - wrap_ibv_poll_cq
  - wrap_ibv_post_send
  - wrap_ibv_post_recv
  - ibvGetGidStr
  source_file: /src/nccl/src/include/ibvwrap.h
  types:
    enum:
    - enumerators:
      - name: IBV_SUCCESS
        value: '0'
      item_type: enum
      name: ibv_return_enum
      pos:
        line_end: 29
        line_start: 26
        source_file: /src/nccl/src/include/ibvwrap.h
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: ibv_return_t
      pos:
        line_end: 29
        line_start: 26
        source_file: /src/nccl/src/include/ibvwrap.h
    union: []
- function_names: []
  source_file: /src/nccl/src/include/info.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: coll
        type: ncclFunc_t
      - name: '* opName'
        type: char
      - name: '* sendbuff'
        type: void
      - name: '* recvbuff'
        type: void
      - name: count
        type: size_t
      - name: datatype
        type: ncclDataType_t
      - name: op
        type: ncclRedOp_t
      - name: root
        type: int
      - name: comm
        type: ncclComm_t
      - name: stream
        type: cudaStream_t
      - name: chunkSteps
        type: int
      - name: sliceSteps
        type: int
      item_type: struct
      name: ncclInfo
      pos:
        line_end: 30
        line_start: 15
        source_file: /src/nccl/src/include/info.h
    typedefs: []
    union: []
- function_names:
  - minval
  - minval
  - maxval
  - maxval
  - DIVUP
  - ROUNDUP
  - ALIGN_POWER
  - ALIGN_SIZE
  - divUp
  - roundUp
  - roundDown
  - alignUp
  - alignDown
  - isPow2
  - add4G
  - incWrap4G
  - decWrap4G
  - idivRcp32
  - idivRcp64
  - mul32hi
  - mul64hi
  - imulRcp32
  - imulRcp64
  - idivmodFast32
  - idivmodFast64
  - idivFast32
  - idivFast64
  - imodFast32
  - imodFast64
  - countOneBits
  - firstOneBit
  - popFirstOneBit
  - log2Down
  - log2Up
  - pow2Up
  - pow2Down
  - reverseSubBits
  - reverseBits
  - u32fpEncode
  - u32fpDecode
  - u32fp8MaxValue
  - u32fp8Encode
  - u32fp8Decode
  - eatHash
  - eatHash
  - digestHash
  - getHash
  - getHash
  source_file: /src/nccl/src/include/bitops.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields: []
      item_type: struct
      name: ncclToUnsigned<char>
      pos:
        line_end: 353
        line_start: 353
        source_file: /src/nccl/src/include/bitops.h
    - fields: []
      item_type: struct
      name: ncclToUnsigned<signed char>
      pos:
        line_end: 354
        line_start: 354
        source_file: /src/nccl/src/include/bitops.h
    - fields: []
      item_type: struct
      name: ncclToUnsigned<unsigned char>
      pos:
        line_end: 355
        line_start: 355
        source_file: /src/nccl/src/include/bitops.h
    - fields: []
      item_type: struct
      name: ncclToUnsigned<signed short>
      pos:
        line_end: 356
        line_start: 356
        source_file: /src/nccl/src/include/bitops.h
    - fields: []
      item_type: struct
      name: ncclToUnsigned<unsigned short>
      pos:
        line_end: 357
        line_start: 357
        source_file: /src/nccl/src/include/bitops.h
    - fields: []
      item_type: struct
      name: ncclToUnsigned<signed int>
      pos:
        line_end: 358
        line_start: 358
        source_file: /src/nccl/src/include/bitops.h
    - fields: []
      item_type: struct
      name: ncclToUnsigned<unsigned int>
      pos:
        line_end: 359
        line_start: 359
        source_file: /src/nccl/src/include/bitops.h
    - fields: []
      item_type: struct
      name: ncclToUnsigned<signed long>
      pos:
        line_end: 360
        line_start: 360
        source_file: /src/nccl/src/include/bitops.h
    - fields: []
      item_type: struct
      name: ncclToUnsigned<unsigned long>
      pos:
        line_end: 361
        line_start: 361
        source_file: /src/nccl/src/include/bitops.h
    - fields: []
      item_type: struct
      name: ncclToUnsigned<signed long long>
      pos:
        line_end: 362
        line_start: 362
        source_file: /src/nccl/src/include/bitops.h
    - fields: []
      item_type: struct
      name: ncclToUnsigned<unsigned long long>
      pos:
        line_end: 363
        line_start: 363
        source_file: /src/nccl/src/include/bitops.h
    typedefs: []
    union: []
- function_names:
  - hexToInt
  - ncclStrToCpuset
  - ncclCpusetToStr
  - ncclCpusetToRangeStr
  source_file: /src/nccl/src/include/cpuset.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CPU_SET_N_U32
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/nccl/src/include/cpuset.h
      type_or_value: (sizeof(cpu_set_t)/sizeof(uint32_t))
    structs: []
    typedefs: []
    union: []
- function_names:
  - ncclFuncSendCount
  - ncclFuncRecvCount
  - ncclFuncMaxSendRecvCount
  source_file: /src/nccl/src/include/enqueue.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NCCL_LL_ALIGNMENT_PER_THREAD
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/nccl/src/include/enqueue.h
      type_or_value: sizeof(uint64_t)
    - item_type: preproc_def
      name: NCCL_LL128_ALIGNMENT_PER_WARP
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/nccl/src/include/enqueue.h
      type_or_value: '480'
    - item_type: preproc_def
      name: NCCL_SIMPLE_ALIGNMENT
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/nccl/src/include/enqueue.h
      type_or_value: (WARP_SIZE * 8LL * 16LL)
    - item_type: preproc_def
      name: NCCL_BYTES_ALIGNMENT
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/nccl/src/include/enqueue.h
      type_or_value: '16'
    structs: []
    typedefs: []
    union: []
- function_names:
  - CUDACHECK
  - CUDACHECKGOTO
  - CUDACHECKIGNORE
  - SYSCHECK
  - SYSCHECKSYNC
  - SYSCHECKGOTO
  - PTHREADCHECK
  - PTHREADCHECKGOTO
  - NEQCHECK
  - EQCHECK
  - NCCLWAIT
  - NCCLWAITGOTO
  - NCCLCHECKTHREAD
  - CUDACHECKTHREAD
  source_file: /src/nccl/src/include/checks.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RES
      pos:
        line_end: 102
        line_start: 94
        source_file: /src/nccl/src/include/checks.h
      type_or_value: "= ncclSystemError;    \\\n    INFO(NCCL_ALL,\"%s:%d -> %d (%s)\",
        __FILE__, __LINE__, RES, strerror(errno));    \\\n    goto label; \\\n  }
        \\\n} while (0)"
    - item_type: preproc_def
      name: RES
      pos:
        line_end: 119
        line_start: 111
        source_file: /src/nccl/src/include/checks.h
      type_or_value: "= ncclSystemError;    \\\n    INFO(NCCL_ALL,\"%s:%d -> %d (%s)\",
        __FILE__, __LINE__, RES, strerror(errno));    \\\n    goto label; \\\n  }
        \\\n} while (0)"
    - item_type: preproc_def
      name: if
      pos:
        line_end: 129
        line_start: 121
        source_file: /src/nccl/src/include/checks.h
      type_or_value: "(ncclDebugNoWarn == 0) INFO(NCCL_ALL,\"%s:%d -> %d\", __FILE__,
        __LINE__, RES);    \\\n    return RES; \\\n  } \\\n} while (0)"
    - item_type: preproc_def
      name: if
      pos:
        line_end: 138
        line_start: 130
        source_file: /src/nccl/src/include/checks.h
      type_or_value: "(ncclDebugNoWarn == 0) INFO(NCCL_ALL,\"%s:%d -> %d\", __FILE__,
        __LINE__, RES);    \\\n    goto label; \\\n  } \\\n} while (0)"
    structs: []
    typedefs: []
    union: []
- function_names:
  - container_of
  - vext_field_avail
  - verbs_get_ctx
  - verbs_get_ctx_op
  - verbs_set_ctx_op
  - verbs_get_device
  - ibv_post_send
  - ibv_query_port_ex
  source_file: /src/nccl/src/include/ibvcore.h
  types:
    enum:
    - enumerators:
      - name: IBV_NODE_UNKNOWN
        value: '-1'
      - name: IBV_NODE_CA
        value: '1'
      - name: IBV_NODE_RNIC
      - name: IBV_NODE_SWITCH
      - name: IBV_NODE_ROUTER
      - name: IBV_EXP_NODE_TYPE_START
        value: '32'
      - name: IBV_EXP_NODE_MIC
        value: IBV_EXP_NODE_TYPE_START
      item_type: enum
      name: ibv_node_type
      pos:
        line_end: 56
        line_start: 44
        source_file: /src/nccl/src/include/ibvcore.h
    - enumerators:
      - name: IBV_TRANSPORT_UNKNOWN
        value: '-1'
      - name: IBV_TRANSPORT_IB
        value: '0'
      - name: IBV_EXP_TRANSPORT_SCIF
        value: IBV_EXP_TRANSPORT_TYPE_START
      - name: IBV_EXP_TRANSPORT_TYPE_START
        value: '32'
      - name: IBV_TRANSPORT_IWARP
      item_type: enum
      name: ibv_transport_type
      pos:
        line_end: 68
        line_start: 58
        source_file: /src/nccl/src/include/ibvcore.h
    - enumerators:
      - name: IBV_DEVICE_RESIZE_MAX_WR
        value: '1'
      - name: IBV_DEVICE_AUTO_PATH_MIG
        value: 1 <<  4
      - name: IBV_DEVICE_BAD_PKEY_CNTR
        value: 1 <<  1
      - name: IBV_DEVICE_BAD_QKEY_CNTR
        value: 1 <<  2
      - name: IBV_DEVICE_RAW_MULTI
        value: 1 <<  3
      - name: IBV_DEVICE_CHANGE_PHY_PORT
        value: 1 <<  5
      - name: IBV_DEVICE_UD_AV_PORT_ENFORCE
        value: 1 <<  6
      - name: IBV_DEVICE_CURR_QP_STATE_MOD
        value: 1 <<  7
      - name: IBV_DEVICE_SHUTDOWN_PORT
        value: 1 <<  8
      - name: IBV_DEVICE_INIT_TYPE
        value: 1 <<  9
      - name: IBV_DEVICE_SYS_IMAGE_GUID
        value: 1 << 11
      - name: IBV_DEVICE_SRQ_RESIZE
        value: 1 << 13
      - name: IBV_DEVICE_XRC
        value: 1 << 20
      - name: IBV_DEVICE_MANAGED_FLOW_STEERING
        value: 1 << 29
      - name: IBV_DEVICE_N_NOTIFY_CQ
        value: 1 << 14
      - name: IBV_DEVICE_PORT_ACTIVE_EVENT
        value: 1 << 10
      - name: IBV_DEVICE_RC_RNR_NAK_GEN
        value: 1 << 12
      item_type: enum
      name: ibv_device_cap_flags
      pos:
        line_end: 88
        line_start: 70
        source_file: /src/nccl/src/include/ibvcore.h
    - enumerators:
      - name: IBV_ATOMIC_NONE
      - name: IBV_ATOMIC_GLOB
      - name: IBV_ATOMIC_HCA
      item_type: enum
      name: ibv_atomic_cap
      pos:
        line_end: 94
        line_start: 90
        source_file: /src/nccl/src/include/ibvcore.h
    - enumerators:
      - name: IBV_MTU_256
        value: '1'
      - name: IBV_MTU_512
        value: '2'
      - name: IBV_MTU_1024
        value: '3'
      - name: IBV_MTU_4096
        value: '5'
      - name: IBV_MTU_2048
        value: '4'
      item_type: enum
      name: ibv_mtu
      pos:
        line_end: 145
        line_start: 139
        source_file: /src/nccl/src/include/ibvcore.h
    - enumerators:
      - name: IBV_PORT_NOP
        value: '0'
      - name: IBV_PORT_DOWN
        value: '1'
      - name: IBV_PORT_ACTIVE
        value: '4'
      - name: IBV_PORT_INIT
        value: '2'
      - name: IBV_PORT_ARMED
        value: '3'
      - name: IBV_PORT_ACTIVE_DEFER
        value: '5'
      item_type: enum
      name: ibv_port_state
      pos:
        line_end: 154
        line_start: 147
        source_file: /src/nccl/src/include/ibvcore.h
    - enumerators:
      - name: IBV_PORT_SL_MAP_SUP
        value: 1 <<  6
      - name: IBV_PORT_SYS_IMAGE_GUID_SUP
        value: 1 << 11
      - name: IBV_PORT_SNMP_TUNNEL_SUP
        value: 1 << 17
      - name: IBV_PORT_CLIENT_REG_SUP
        value: 1 << 25
      - name: IBV_PORT_MKEY_NVRAM
        value: 1 <<  7
      - name: IBV_PORT_IP_BASED_GIDS
        value: 1 << 26
      - name: IBV_PORT_REINIT_SUP
        value: 1 << 18
      - name: IBV_PORT_PKEY_SW_EXT_PORT_TRAP_SUP
        value: 1 << 12
      - name: IBV_PORT_SM
        value: 1 <<  1
      - name: IBV_PORT_OPT_IPD_SUP
        value: 1 <<  4
      - name: IBV_PORT_NOTICE_SUP
        value: 1 <<  2
      - name: IBV_PORT_PKEY_NVRAM
        value: 1 <<  8
      - name: IBV_PORT_DEVICE_MGMT_SUP
        value: 1 << 19
      - name: IBV_PORT_EXTENDED_SPEEDS_SUP
        value: 1 << 14
      - name: IBV_PORT_AUTO_MIGR_SUP
        value: 1 <<  5
      - name: IBV_PORT_TRAP_SUP
        value: 1 <<  3
      - name: IBV_PORT_LED_INFO_SUP
        value: 1 <<  9
      - name: IBV_PORT_CM_SUP
        value: 1 << 16
      - name: IBV_PORT_VENDOR_CLASS
        value: 1 << 24
      item_type: enum
      name: ibv_port_cap_flags
      pos:
        line_end: 188
        line_start: 168
        source_file: /src/nccl/src/include/ibvcore.h
    - enumerators:
      - name: IBV_EVENT_QP_FATAL
      - name: IBV_EVENT_SQ_DRAINED
      - name: IBV_EVENT_PORT_ACTIVE
      - name: IBV_EVENT_SM_CHANGE
      - name: IBV_EVENT_CLIENT_REREGISTER
      - name: IBV_EXP_EVENT_DCT_ACCESS_ERR
      - name: IBV_EVENT_COMM_EST
      - name: IBV_EVENT_DEVICE_FATAL
      - name: IBV_EVENT_PKEY_CHANGE
      - name: IBV_EVENT_QP_LAST_WQE_REACHED
      - name: IBV_EVENT_CQ_ERR
      - name: IBV_EVENT_QP_ACCESS_ERR
      - name: IBV_EVENT_PATH_MIG_ERR
      - name: IBV_EVENT_SRQ_LIMIT_REACHED
      - name: IBV_EVENT_LID_CHANGE
      - name: IBV_EXP_EVENT_DCT_KEY_VIOLATION
        value: '32'
      - name: IBV_EVENT_QP_REQ_ERR
      - name: IBV_EVENT_PATH_MIG
      - name: IBV_EVENT_PORT_ERR
      - name: IBV_EVENT_SRQ_ERR
      - name: IBV_EVENT_GID_CHANGE
      - name: IBV_EXP_EVENT_DCT_REQ_ERR
      item_type: enum
      name: ibv_event_type
      pos:
        line_end: 243
        line_start: 216
        source_file: /src/nccl/src/include/ibvcore.h
    - enumerators:
      - name: IBV_WC_LOC_QP_OP_ERR
      - name: IBV_WC_LOC_ACCESS_ERR
      - name: IBV_WC_REM_ABORT_ERR
      - name: IBV_WC_RETRY_EXC_ERR
      - name: IBV_WC_RESP_TIMEOUT_ERR
      - name: IBV_WC_GENERAL_ERR
      - name: IBV_WC_LOC_LEN_ERR
      - name: IBV_WC_WR_FLUSH_ERR
      - name: IBV_WC_BAD_RESP_ERR
      - name: IBV_WC_REM_OP_ERR
      - name: IBV_WC_REM_INV_RD_REQ_ERR
      - name: IBV_WC_FATAL_ERR
      - name: IBV_WC_LOC_PROT_ERR
      - name: IBV_WC_MW_BIND_ERR
      - name: IBV_WC_LOC_RDD_VIOL_ERR
      - name: IBV_WC_INV_EEC_STATE_ERR
      - name: IBV_WC_REM_ACCESS_ERR
      - name: IBV_WC_SUCCESS
      - name: IBV_WC_LOC_EEC_OP_ERR
      - name: IBV_WC_REM_INV_REQ_ERR
      - name: IBV_WC_RNR_RETRY_EXC_ERR
      - name: IBV_WC_INV_EECN_ERR
      item_type: enum
      name: ibv_wc_status
      pos:
        line_end: 281
        line_start: 258
        source_file: /src/nccl/src/include/ibvcore.h
    - enumerators:
      - name: IBV_WC_SEND
      - name: IBV_WC_FETCH_ADD
      - name: IBV_WC_COMP_SWAP
      - name: IBV_WC_RDMA_READ
      - name: IBV_WC_RDMA_WRITE
      - name: IBV_WC_BIND_MW
      - name: IBV_WC_RECV
        value: 1 << 7
      - name: IBV_WC_RECV_RDMA_WITH_IMM
      item_type: enum
      name: ibv_wc_opcode
      pos:
        line_end: 297
        line_start: 284
        source_file: /src/nccl/src/include/ibvcore.h
    - enumerators:
      - name: IBV_WC_GRH
        value: 1 << 0
      - name: IBV_WC_WITH_IMM
        value: 1 << 1
      item_type: enum
      name: ibv_wc_flags
      pos:
        line_end: 302
        line_start: 299
        source_file: /src/nccl/src/include/ibvcore.h
    - enumerators:
      - name: IBV_ACCESS_LOCAL_WRITE
        value: '1'
      - name: IBV_ACCESS_REMOTE_READ
        value: (1<<2)
      - name: IBV_ACCESS_REMOTE_WRITE
        value: (1<<1)
      - name: IBV_ACCESS_MW_BIND
        value: (1<<4)
      - name: IBV_ACCESS_REMOTE_ATOMIC
        value: (1<<3)
      - name: IBV_ACCESS_RELAXED_ORDERING
        value: (1<<20)
      item_type: enum
      name: ibv_access_flags
      pos:
        line_end: 327
        line_start: 320
        source_file: /src/nccl/src/include/ibvcore.h
    - enumerators:
      - name: IBV_XRCD_INIT_ATTR_FD
        value: 1 << 0
      - name: IBV_XRCD_INIT_ATTR_RESERVED
        value: 1 << 2
      - name: IBV_XRCD_INIT_ATTR_OFLAGS
        value: 1 << 1
      item_type: enum
      name: ibv_xrcd_init_attr_mask
      pos:
        line_end: 338
        line_start: 334
        source_file: /src/nccl/src/include/ibvcore.h
    - enumerators:
      - name: IBV_REREG_MR_CHANGE_TRANSLATION
        value: (1 << 0)
      - name: IBV_REREG_MR_CHANGE_ACCESS
        value: (1 << 2)
      - name: IBV_REREG_MR_CHANGE_PD
        value: (1 << 1)
      - name: IBV_REREG_MR_KEEP_VALID
        value: (1 << 3)
      item_type: enum
      name: ibv_rereg_mr_flags
      pos:
        line_end: 355
        line_start: 350
        source_file: /src/nccl/src/include/ibvcore.h
    - enumerators:
      - name: IBV_MW_TYPE_1
        value: '1'
      - name: IBV_MW_TYPE_2
        value: '2'
      item_type: enum
      name: ibv_mw_type
      pos:
        line_end: 370
        line_start: 367
        source_file: /src/nccl/src/include/ibvcore.h
    - enumerators:
      - name: IBV_RATE_MAX
        value: '0'
      - name: IBV_RATE_20_GBPS
        value: '6'
      - name: IBV_RATE_10_GBPS
        value: '3'
      - name: IBV_RATE_5_GBPS
        value: '5'
      - name: IBV_RATE_2_5_GBPS
        value: '2'
      - name: IBV_RATE_30_GBPS
        value: '4'
      - name: IBV_RATE_40_GBPS
        value: '7'
      - name: IBV_RATE_60_GBPS
        value: '8'
      - name: IBV_RATE_80_GBPS
        value: '9'
      - name: IBV_RATE_120_GBPS
        value: '10'
      - name: IBV_RATE_56_GBPS
        value: '12'
      - name: IBV_RATE_25_GBPS
        value: '15'
      - name: IBV_RATE_100_GBPS
        value: '16'
      - name: IBV_RATE_300_GBPS
        value: '18'
      - name: IBV_RATE_168_GBPS
        value: '14'
      - name: IBV_RATE_14_GBPS
        value: '11'
      - name: IBV_RATE_112_GBPS
        value: '13'
      - name: IBV_RATE_200_GBPS
        value: '17'
      item_type: enum
      name: ibv_rate
      pos:
        line_end: 414
        line_start: 395
        source_file: /src/nccl/src/include/ibvcore.h
    - enumerators:
      - name: IBV_SRQ_MAX_WR
        value: 1 << 0
      - name: IBV_SRQ_LIMIT
        value: 1 << 1
      item_type: enum
      name: ibv_srq_attr_mask
      pos:
        line_end: 456
        line_start: 453
        source_file: /src/nccl/src/include/ibvcore.h
    - enumerators:
      - name: IBV_SRQT_BASIC
      - name: IBV_SRQT_XRC
      item_type: enum
      name: ibv_srq_type
      pos:
        line_end: 472
        line_start: 469
        source_file: /src/nccl/src/include/ibvcore.h
    - enumerators:
      - name: IBV_SRQ_INIT_ATTR_TYPE
        value: 1 << 0
      - name: IBV_SRQ_INIT_ATTR_CQ
        value: 1 << 3
      - name: IBV_SRQ_INIT_ATTR_PD
        value: 1 << 1
      - name: IBV_SRQ_INIT_ATTR_RESERVED
        value: 1 << 4
      - name: IBV_SRQ_INIT_ATTR_XRCD
        value: 1 << 2
      item_type: enum
      name: ibv_srq_init_attr_mask
      pos:
        line_end: 480
        line_start: 474
        source_file: /src/nccl/src/include/ibvcore.h
    - enumerators:
      - name: IBV_QPT_RC
        value: '2'
      - name: IBV_QPT_UD
      - name: IBV_QPT_XRC
      - name: IBV_QPT_UC
      - name: IBV_QPT_RAW_PACKET
        value: '8'
      - name: IBV_QPT_RAW_ETH
        value: '8'
      - name: IBV_QPT_XRC_SEND
        value: '9'
      - name: IBV_QPT_XRC_RECV
      - name: IBV_EXP_QP_TYPE_START
        value: '32'
      - name: IBV_EXP_QPT_DC_INI
        value: IBV_EXP_QP_TYPE_START
      item_type: enum
      name: ibv_qp_type
      pos:
        line_end: 509
        line_start: 493
        source_file: /src/nccl/src/include/ibvcore.h
    - enumerators:
      - name: IBV_QP_INIT_ATTR_PD
        value: 1 << 0
      - name: IBV_QP_INIT_ATTR_XRCD
        value: 1 << 1
      - name: IBV_QP_INIT_ATTR_RESERVED
        value: 1 << 2
      item_type: enum
      name: ibv_qp_init_attr_mask
      pos:
        line_end: 535
        line_start: 531
        source_file: /src/nccl/src/include/ibvcore.h
    - enumerators:
      - name: IBV_QP_OPEN_ATTR_NUM
        value: 1 << 0
      - name: IBV_QP_OPEN_ATTR_XRCD
        value: 1 << 1
      - name: IBV_QP_OPEN_ATTR_CONTEXT
        value: 1 << 2
      - name: IBV_QP_OPEN_ATTR_TYPE
        value: 1 << 3
      - name: IBV_QP_OPEN_ATTR_RESERVED
        value: 1 << 4
      item_type: enum
      name: ibv_qp_open_attr_mask
      pos:
        line_end: 557
        line_start: 551
        source_file: /src/nccl/src/include/ibvcore.h
    - enumerators:
      - name: IBV_QP_ACCESS_FLAGS
        value: "1 << \t3"
      - name: IBV_QP_AV
        value: "1 << \t7"
      - name: IBV_QP_MIN_RNR_TIMER
        value: 1 << 15
      - name: IBV_QP_RNR_RETRY
        value: 1 << 11
      - name: IBV_QP_CAP
        value: 1 << 19
      - name: IBV_QP_PKEY_INDEX
        value: "1 << \t4"
      - name: IBV_QP_PATH_MTU
        value: "1 << \t8"
      - name: IBV_QP_RQ_PSN
        value: 1 << 12
      - name: IBV_QP_SQ_PSN
        value: 1 << 16
      - name: IBV_QP_STATE
        value: "1 << \t0"
      - name: IBV_QP_CUR_STATE
        value: "1 << \t1"
      - name: IBV_QP_PORT
        value: "1 << \t5"
      - name: IBV_QP_TIMEOUT
        value: "1 << \t9"
      - name: IBV_QP_MAX_DEST_RD_ATOMIC
        value: 1 << 17
      - name: IBV_QP_MAX_QP_RD_ATOMIC
        value: 1 << 13
      - name: IBV_QP_EN_SQD_ASYNC_NOTIFY
        value: "1 << \t2"
      - name: IBV_QP_QKEY
        value: "1 << \t6"
      - name: IBV_QP_ALT_PATH
        value: 1 << 14
      - name: IBV_QP_RETRY_CNT
        value: 1 << 10
      - name: IBV_QP_PATH_MIG_STATE
        value: 1 << 18
      - name: IBV_QP_DEST_QPN
        value: 1 << 20
      item_type: enum
      name: ibv_qp_attr_mask
      pos:
        line_end: 589
        line_start: 567
        source_file: /src/nccl/src/include/ibvcore.h
    - enumerators:
      - name: IBV_QPS_RESET
      - name: IBV_QPS_SQD
      - name: IBV_QPS_RTS
      - name: IBV_QPS_RTR
      - name: IBV_QPS_INIT
      - name: IBV_QPS_SQE
      - name: IBV_QPS_ERR
      - name: IBV_QPS_UNKNOWN
      item_type: enum
      name: ibv_qp_state
      pos:
        line_end: 600
        line_start: 591
        source_file: /src/nccl/src/include/ibvcore.h
    - enumerators:
      - name: IBV_MIG_MIGRATED
      - name: IBV_MIG_REARM
      - name: IBV_MIG_ARMED
      item_type: enum
      name: ibv_mig_state
      pos:
        line_end: 606
        line_start: 602
        source_file: /src/nccl/src/include/ibvcore.h
    - enumerators:
      - name: IBV_WR_RDMA_WRITE
      - name: IBV_WR_RDMA_WRITE_WITH_IMM
      - name: IBV_WR_RDMA_READ
      - name: IBV_WR_SEND_WITH_IMM
      - name: IBV_WR_SEND
      - name: IBV_WR_ATOMIC_CMP_AND_SWP
      - name: IBV_WR_ATOMIC_FETCH_AND_ADD
      item_type: enum
      name: ibv_wr_opcode
      pos:
        line_end: 644
        line_start: 636
        source_file: /src/nccl/src/include/ibvcore.h
    - enumerators:
      - name: IBV_SEND_FENCE
        value: 1 << 0
      - name: IBV_SEND_SIGNALED
        value: 1 << 1
      - name: IBV_SEND_SOLICITED
        value: 1 << 2
      - name: IBV_SEND_INLINE
        value: 1 << 3
      item_type: enum
      name: ibv_send_flags
      pos:
        line_end: 651
        line_start: 646
        source_file: /src/nccl/src/include/ibvcore.h
    - enumerators:
      - name: IBV_XRC_QP_EVENT_FLAG
        value: '0x80000000'
      item_type: enum
      name: ibv_event_flags
      pos:
        line_end: 738
        line_start: 736
        source_file: /src/nccl/src/include/ibvcore.h
    - enumerators:
      - name: IBV_FLOW_ATTR_FLAGS_ALLOW_LOOP_BACK
        value: '1'
      - name: IBV_FLOW_ATTR_FLAGS_DONT_TRAP
        value: 1 << 1
      item_type: enum
      name: ibv_flow_flags
      pos:
        line_end: 787
        line_start: 784
        source_file: /src/nccl/src/include/ibvcore.h
    - enumerators:
      - name: IBV_FLOW_ATTR_NORMAL
        value: '0x0'
      - name: IBV_FLOW_ATTR_ALL_DEFAULT
        value: '0x1'
      - name: IBV_FLOW_ATTR_MC_DEFAULT
        value: '0x2'
      item_type: enum
      name: ibv_flow_attr_type
      pos:
        line_end: 800
        line_start: 789
        source_file: /src/nccl/src/include/ibvcore.h
    - enumerators:
      - name: IBV_FLOW_SPEC_ETH
        value: '0x20'
      - name: IBV_FLOW_SPEC_TCP
        value: '0x40'
      - name: IBV_FLOW_SPEC_IPV4
        value: '0x30'
      - name: IBV_FLOW_SPEC_UDP
        value: '0x41'
      item_type: enum
      name: ibv_flow_spec_type
      pos:
        line_end: 807
        line_start: 802
        source_file: /src/nccl/src/include/ibvcore.h
    - enumerators:
      - name: VERBS_CONTEXT_XRCD
        value: (uint64_t)1 << 0
      - name: VERBS_CONTEXT_SRQ
        value: (uint64_t)1 << 1
      - name: VERBS_CONTEXT_EXP
        value: (uint64_t)1 << 62
      - name: VERBS_CONTEXT_RESERVED
        value: (uint64_t)1 << 3
      - name: VERBS_CONTEXT_QP
        value: (uint64_t)1 << 2
      item_type: enum
      name: verbs_context_mask
      pos:
        line_end: 994
        line_start: 988
        source_file: /src/nccl/src/include/ibvcore.h
    preproc_defs:
    - item_type: preproc_def
      name: __attribute_const
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/nccl/src/include/ibvcore.h
      type_or_value: __attribute__((const))
    structs:
    - fields:
      - name: fw_ver[64]
        type: char
      - name: node_guid
        type: uint64_t
      - name: sys_image_guid
        type: uint64_t
      - name: max_mr_size
        type: uint64_t
      - name: page_size_cap
        type: uint64_t
      - name: vendor_id
        type: uint32_t
      - name: vendor_part_id
        type: uint32_t
      - name: hw_ver
        type: uint32_t
      - name: max_qp
        type: int
      - name: max_qp_wr
        type: int
      - name: device_cap_flags
        type: int
      - name: max_sge
        type: int
      - name: max_sge_rd
        type: int
      - name: max_cq
        type: int
      - name: max_cqe
        type: int
      - name: max_mr
        type: int
      - name: max_pd
        type: int
      - name: max_qp_rd_atom
        type: int
      - name: max_ee_rd_atom
        type: int
      - name: max_res_rd_atom
        type: int
      - name: max_qp_init_rd_atom
        type: int
      - name: max_ee_init_rd_atom
        type: int
      - name: atomic_cap
        type: enum ibv_atomic_cap
      - name: max_ee
        type: int
      - name: max_rdd
        type: int
      - name: max_mw
        type: int
      - name: max_raw_ipv6_qp
        type: int
      - name: max_raw_ethy_qp
        type: int
      - name: max_mcast_grp
        type: int
      - name: max_mcast_qp_attach
        type: int
      - name: max_total_mcast_qp_attach
        type: int
      - name: max_ah
        type: int
      - name: max_fmr
        type: int
      - name: max_map_per_fmr
        type: int
      - name: max_srq
        type: int
      - name: max_srq_wr
        type: int
      - name: max_srq_sge
        type: int
      - name: max_pkeys
        type: uint16_t
      - name: local_ca_ack_delay
        type: uint8_t
      - name: phys_port_cnt
        type: uint8_t
      item_type: struct
      name: ibv_device_attr
      pos:
        line_end: 137
        line_start: 96
        source_file: /src/nccl/src/include/ibvcore.h
    - fields:
      - name: state
        type: enum ibv_port_state
      - name: max_mtu
        type: enum ibv_mtu
      - name: active_mtu
        type: enum ibv_mtu
      - name: gid_tbl_len
        type: int
      - name: port_cap_flags
        type: uint32_t
      - name: max_msg_sz
        type: uint32_t
      - name: bad_pkey_cntr
        type: uint32_t
      - name: qkey_viol_cntr
        type: uint32_t
      - name: pkey_tbl_len
        type: uint16_t
      - name: lid
        type: uint16_t
      - name: sm_lid
        type: uint16_t
      - name: lmc
        type: uint8_t
      - name: max_vl_num
        type: uint8_t
      - name: sm_sl
        type: uint8_t
      - name: subnet_timeout
        type: uint8_t
      - name: init_type_reply
        type: uint8_t
      - name: active_width
        type: uint8_t
      - name: active_speed
        type: uint8_t
      - name: phys_state
        type: uint8_t
      - name: link_layer
        type: uint8_t
      - name: flags
        type: uint8_t
      - name: port_cap_flags2
        type: uint16_t
      - name: active_speed_ex
        type: uint32_t
      item_type: struct
      name: ibv_port_attr
      pos:
        line_end: 214
        line_start: 190
        source_file: /src/nccl/src/include/ibvcore.h
    - fields:
      - name: element
        type: "union {\n\t\tstruct ibv_cq  *cq;\n\t\tstruct ibv_qp  *qp;\n\t\tstruct
          ibv_srq *srq;\n\t\tstruct ibv_exp_dct *dct;\n\t\tint\t\tport_num;\n\t\t/*
          For source compatible with Legacy API */\n\t\tuint32_t\txrc_qp_num;\n\t}"
      - name: event_type
        type: enum ibv_event_type
      item_type: struct
      name: ibv_async_event
      pos:
        line_end: 256
        line_start: 245
        source_file: /src/nccl/src/include/ibvcore.h
    - fields:
      - name: wr_id
        type: uint64_t
      - name: status
        type: enum ibv_wc_status
      - name: opcode
        type: enum ibv_wc_opcode
      - name: vendor_err
        type: uint32_t
      - name: byte_len
        type: uint32_t
      - name: imm_data
        type: uint32_t
      - name: qp_num
        type: uint32_t
      - name: src_qp
        type: uint32_t
      - name: wc_flags
        type: int
      - name: pkey_index
        type: uint16_t
      - name: slid
        type: uint16_t
      - name: sl
        type: uint8_t
      - name: dlid_path_bits
        type: uint8_t
      item_type: struct
      name: ibv_wc
      pos:
        line_end: 318
        line_start: 304
        source_file: /src/nccl/src/include/ibvcore.h
    - fields:
      - name: '*context'
        type: struct ibv_context
      - name: handle
        type: uint32_t
      item_type: struct
      name: ibv_pd
      pos:
        line_end: 332
        line_start: 329
        source_file: /src/nccl/src/include/ibvcore.h
    - fields:
      - name: comp_mask
        type: uint32_t
      - name: fd
        type: int
      - name: oflags
        type: int
      item_type: struct
      name: ibv_xrcd_init_attr
      pos:
        line_end: 344
        line_start: 340
        source_file: /src/nccl/src/include/ibvcore.h
    - fields:
      - name: '*context'
        type: struct ibv_context
      item_type: struct
      name: ibv_xrcd
      pos:
        line_end: 348
        line_start: 346
        source_file: /src/nccl/src/include/ibvcore.h
    - fields:
      - name: '*context'
        type: struct ibv_context
      - name: '*pd'
        type: struct ibv_pd
      - name: '*addr'
        type: void
      - name: length
        type: size_t
      - name: handle
        type: uint32_t
      - name: lkey
        type: uint32_t
      - name: rkey
        type: uint32_t
      item_type: struct
      name: ibv_mr
      pos:
        line_end: 365
        line_start: 357
        source_file: /src/nccl/src/include/ibvcore.h
    - fields:
      - name: '*context'
        type: struct ibv_context
      - name: '*pd'
        type: struct ibv_pd
      - name: rkey
        type: uint32_t
      item_type: struct
      name: ibv_mw
      pos:
        line_end: 376
        line_start: 372
        source_file: /src/nccl/src/include/ibvcore.h
    - fields:
      - name: dgid
        type: union ibv_gid
      - name: flow_label
        type: uint32_t
      - name: sgid_index
        type: uint8_t
      - name: hop_limit
        type: uint8_t
      - name: traffic_class
        type: uint8_t
      item_type: struct
      name: ibv_global_route
      pos:
        line_end: 384
        line_start: 378
        source_file: /src/nccl/src/include/ibvcore.h
    - fields:
      - name: version_tclass_flow
        type: uint32_t
      - name: paylen
        type: uint16_t
      - name: next_hdr
        type: uint8_t
      - name: hop_limit
        type: uint8_t
      - name: sgid
        type: union ibv_gid
      - name: dgid
        type: union ibv_gid
      item_type: struct
      name: ibv_grh
      pos:
        line_end: 393
        line_start: 386
        source_file: /src/nccl/src/include/ibvcore.h
    - fields:
      - name: grh
        type: struct ibv_global_route
      - name: dlid
        type: uint16_t
      - name: sl
        type: uint8_t
      - name: src_path_bits
        type: uint8_t
      - name: static_rate
        type: uint8_t
      - name: is_global
        type: uint8_t
      - name: port_num
        type: uint8_t
      item_type: struct
      name: ibv_ah_attr
      pos:
        line_end: 451
        line_start: 443
        source_file: /src/nccl/src/include/ibvcore.h
    - fields:
      - name: max_wr
        type: uint32_t
      - name: max_sge
        type: uint32_t
      - name: srq_limit
        type: uint32_t
      item_type: struct
      name: ibv_srq_attr
      pos:
        line_end: 462
        line_start: 458
        source_file: /src/nccl/src/include/ibvcore.h
    - fields:
      - name: '*srq_context'
        type: void
      - name: attr
        type: struct ibv_srq_attr
      item_type: struct
      name: ibv_srq_init_attr
      pos:
        line_end: 467
        line_start: 464
        source_file: /src/nccl/src/include/ibvcore.h
    - fields:
      - name: '*srq_context'
        type: void
      - name: attr
        type: struct ibv_srq_attr
      - name: comp_mask
        type: uint32_t
      - name: srq_type
        type: enum ibv_srq_type
      - name: '*pd'
        type: struct ibv_pd
      - name: '*xrcd'
        type: struct ibv_xrcd
      - name: '*cq'
        type: struct ibv_cq
      item_type: struct
      name: ibv_srq_init_attr_ex
      pos:
        line_end: 491
        line_start: 482
        source_file: /src/nccl/src/include/ibvcore.h
    - fields:
      - name: max_send_wr
        type: uint32_t
      - name: max_recv_wr
        type: uint32_t
      - name: max_send_sge
        type: uint32_t
      - name: max_recv_sge
        type: uint32_t
      - name: max_inline_data
        type: uint32_t
      item_type: struct
      name: ibv_qp_cap
      pos:
        line_end: 517
        line_start: 511
        source_file: /src/nccl/src/include/ibvcore.h
    - fields:
      - name: '*qp_context'
        type: void
      - name: '*send_cq'
        type: struct ibv_cq
      - name: '*recv_cq'
        type: struct ibv_cq
      - name: '*srq'
        type: struct ibv_srq
      - name: cap
        type: struct ibv_qp_cap
      - name: qp_type
        type: enum ibv_qp_type
      - name: sq_sig_all
        type: int
      - name: '*xrc_domain'
        type: struct ibv_xrc_domain
      item_type: struct
      name: ibv_qp_init_attr
      pos:
        line_end: 529
        line_start: 519
        source_file: /src/nccl/src/include/ibvcore.h
    - fields:
      - name: '*qp_context'
        type: void
      - name: '*send_cq'
        type: struct ibv_cq
      - name: '*recv_cq'
        type: struct ibv_cq
      - name: '*srq'
        type: struct ibv_srq
      - name: cap
        type: struct ibv_qp_cap
      - name: qp_type
        type: enum ibv_qp_type
      - name: sq_sig_all
        type: int
      - name: comp_mask
        type: uint32_t
      - name: '*pd'
        type: struct ibv_pd
      - name: '*xrcd'
        type: struct ibv_xrcd
      item_type: struct
      name: ibv_qp_init_attr_ex
      pos:
        line_end: 549
        line_start: 537
        source_file: /src/nccl/src/include/ibvcore.h
    - fields:
      - name: comp_mask
        type: uint32_t
      - name: qp_num
        type: uint32_t
      - name: '*xrcd'
        type: struct ibv_xrcd
      - name: '*qp_context'
        type: void
      - name: qp_type
        type: enum ibv_qp_type
      item_type: struct
      name: ibv_qp_open_attr
      pos:
        line_end: 565
        line_start: 559
        source_file: /src/nccl/src/include/ibvcore.h
    - fields:
      - name: qp_state
        type: enum ibv_qp_state
      - name: cur_qp_state
        type: enum ibv_qp_state
      - name: path_mtu
        type: enum ibv_mtu
      - name: path_mig_state
        type: enum ibv_mig_state
      - name: qkey
        type: uint32_t
      - name: rq_psn
        type: uint32_t
      - name: sq_psn
        type: uint32_t
      - name: dest_qp_num
        type: uint32_t
      - name: qp_access_flags
        type: int
      - name: cap
        type: struct ibv_qp_cap
      - name: ah_attr
        type: struct ibv_ah_attr
      - name: alt_ah_attr
        type: struct ibv_ah_attr
      - name: pkey_index
        type: uint16_t
      - name: alt_pkey_index
        type: uint16_t
      - name: en_sqd_async_notify
        type: uint8_t
      - name: sq_draining
        type: uint8_t
      - name: max_rd_atomic
        type: uint8_t
      - name: max_dest_rd_atomic
        type: uint8_t
      - name: min_rnr_timer
        type: uint8_t
      - name: port_num
        type: uint8_t
      - name: timeout
        type: uint8_t
      - name: retry_cnt
        type: uint8_t
      - name: rnr_retry
        type: uint8_t
      - name: alt_port_num
        type: uint8_t
      - name: alt_timeout
        type: uint8_t
      item_type: struct
      name: ibv_qp_attr
      pos:
        line_end: 634
        line_start: 608
        source_file: /src/nccl/src/include/ibvcore.h
    - fields:
      - name: addr
        type: uint64_t
      - name: length
        type: uint32_t
      - name: lkey
        type: uint32_t
      item_type: struct
      name: ibv_sge
      pos:
        line_end: 657
        line_start: 653
        source_file: /src/nccl/src/include/ibvcore.h
    - fields:
      - name: wr_id
        type: uint64_t
      - name: '*next'
        type: struct ibv_send_wr
      - name: '*sg_list'
        type: struct ibv_sge
      - name: num_sge
        type: int
      - name: opcode
        type: enum ibv_wr_opcode
      - name: send_flags
        type: int
      - name: imm_data
        type: uint32_t
      - name: wr
        type: "union {\n\t\tstruct {\n\t\t\tuint64_t\tremote_addr;\n\t\t\tuint32_t\trkey;\n\t\t}
          rdma;\n\t\tstruct {\n\t\t\tuint64_t\tremote_addr;\n\t\t\tuint64_t\tcompare_add;\n\t\t\tuint64_t\tswap;\n\t\t\tuint32_t\trkey;\n\t\t}
          atomic;\n\t\tstruct {\n\t\t\tstruct ibv_ah  *ah;\n\t\t\tuint32_t\tremote_qpn;\n\t\t\tuint32_t\tremote_qkey;\n\t\t}
          ud;\n\t}"
      item_type: struct
      name: ibv_send_wr
      pos:
        line_end: 693
        line_start: 659
        source_file: /src/nccl/src/include/ibvcore.h
    - fields:
      - name: wr_id
        type: uint64_t
      - name: '*next'
        type: struct ibv_recv_wr
      - name: '*sg_list'
        type: struct ibv_sge
      - name: num_sge
        type: int
      item_type: struct
      name: ibv_recv_wr
      pos:
        line_end: 700
        line_start: 695
        source_file: /src/nccl/src/include/ibvcore.h
    - fields:
      - name: wr_id
        type: uint64_t
      - name: '*mr'
        type: struct ibv_mr
      - name: '*addr'
        type: void
      - name: length
        type: size_t
      - name: send_flags
        type: int
      - name: mw_access_flags
        type: int
      item_type: struct
      name: ibv_mw_bind
      pos:
        line_end: 709
        line_start: 702
        source_file: /src/nccl/src/include/ibvcore.h
    - fields:
      - name: '*context'
        type: struct ibv_context
      - name: '*srq_context'
        type: void
      - name: '*pd'
        type: struct ibv_pd
      - name: handle
        type: uint32_t
      - name: mutex
        type: pthread_mutex_t
      - name: cond
        type: pthread_cond_t
      - name: events_completed
        type: uint32_t
      - name: xrc_srq_num_bin_compat_padding
        type: uint32_t
      - name: '*xrc_domain_bin_compat_padding'
        type: struct ibv_xrc_domain
      - name: '*xrc_cq_bin_compat_padding'
        type: struct ibv_cq
      - name: '*ibv_srq_padding'
        type: void
      - name: xrc_srq_num
        type: uint32_t
      - name: '*xrc_domain'
        type: struct ibv_xrc_domain
      - name: '*xrc_cq'
        type: struct ibv_cq
      item_type: struct
      name: ibv_srq
      pos:
        line_end: 733
        line_start: 711
        source_file: /src/nccl/src/include/ibvcore.h
    - fields:
      - name: '*context'
        type: struct ibv_context
      - name: '*qp_context'
        type: void
      - name: '*pd'
        type: struct ibv_pd
      - name: '*send_cq'
        type: struct ibv_cq
      - name: '*recv_cq'
        type: struct ibv_cq
      - name: '*srq'
        type: struct ibv_srq
      - name: handle
        type: uint32_t
      - name: qp_num
        type: uint32_t
      - name: state
        type: enum ibv_qp_state
      - name: qp_type
        type: enum ibv_qp_type
      - name: mutex
        type: pthread_mutex_t
      - name: cond
        type: pthread_cond_t
      - name: events_completed
        type: uint32_t
      item_type: struct
      name: ibv_qp
      pos:
        line_end: 757
        line_start: 742
        source_file: /src/nccl/src/include/ibvcore.h
    - fields:
      - name: '*context'
        type: struct ibv_context
      - name: fd
        type: int
      - name: refcnt
        type: int
      item_type: struct
      name: ibv_comp_channel
      pos:
        line_end: 763
        line_start: 759
        source_file: /src/nccl/src/include/ibvcore.h
    - fields:
      - name: '*context'
        type: struct ibv_context
      - name: '*channel'
        type: struct ibv_comp_channel
      - name: '*cq_context'
        type: void
      - name: handle
        type: uint32_t
      - name: cqe
        type: int
      - name: mutex
        type: pthread_mutex_t
      - name: cond
        type: pthread_cond_t
      - name: comp_events_completed
        type: uint32_t
      - name: async_events_completed
        type: uint32_t
      item_type: struct
      name: ibv_cq
      pos:
        line_end: 776
        line_start: 765
        source_file: /src/nccl/src/include/ibvcore.h
    - fields:
      - name: '*context'
        type: struct ibv_context
      - name: '*pd'
        type: struct ibv_pd
      - name: handle
        type: uint32_t
      item_type: struct
      name: ibv_ah
      pos:
        line_end: 782
        line_start: 778
        source_file: /src/nccl/src/include/ibvcore.h
    - fields:
      - name: dst_mac[6]
        type: uint8_t
      - name: src_mac[6]
        type: uint8_t
      - name: ether_type
        type: uint16_t
      - name: vlan_tag
        type: uint16_t
      item_type: struct
      name: ibv_flow_eth_filter
      pos:
        line_end: 817
        line_start: 809
        source_file: /src/nccl/src/include/ibvcore.h
    - fields:
      - name: type
        type: enum ibv_flow_spec_type
      - name: size
        type: uint16_t
      - name: val
        type: struct ibv_flow_eth_filter
      - name: mask
        type: struct ibv_flow_eth_filter
      item_type: struct
      name: ibv_flow_spec_eth
      pos:
        line_end: 824
        line_start: 819
        source_file: /src/nccl/src/include/ibvcore.h
    - fields:
      - name: src_ip
        type: uint32_t
      - name: dst_ip
        type: uint32_t
      item_type: struct
      name: ibv_flow_ipv4_filter
      pos:
        line_end: 829
        line_start: 826
        source_file: /src/nccl/src/include/ibvcore.h
    - fields:
      - name: type
        type: enum ibv_flow_spec_type
      - name: size
        type: uint16_t
      - name: val
        type: struct ibv_flow_ipv4_filter
      - name: mask
        type: struct ibv_flow_ipv4_filter
      item_type: struct
      name: ibv_flow_spec_ipv4
      pos:
        line_end: 836
        line_start: 831
        source_file: /src/nccl/src/include/ibvcore.h
    - fields:
      - name: dst_port
        type: uint16_t
      - name: src_port
        type: uint16_t
      item_type: struct
      name: ibv_flow_tcp_udp_filter
      pos:
        line_end: 841
        line_start: 838
        source_file: /src/nccl/src/include/ibvcore.h
    - fields:
      - name: type
        type: enum ibv_flow_spec_type
      - name: size
        type: uint16_t
      - name: val
        type: struct ibv_flow_tcp_udp_filter
      - name: mask
        type: struct ibv_flow_tcp_udp_filter
      item_type: struct
      name: ibv_flow_spec_tcp_udp
      pos:
        line_end: 848
        line_start: 843
        source_file: /src/nccl/src/include/ibvcore.h
    - fields: []
      item_type: struct
      name: ibv_flow_spec
      pos:
        line_end: 860
        line_start: 850
        source_file: /src/nccl/src/include/ibvcore.h
    - fields:
      - name: comp_mask
        type: uint32_t
      - name: type
        type: enum ibv_flow_attr_type
      - name: size
        type: uint16_t
      - name: priority
        type: uint16_t
      - name: num_of_specs
        type: uint8_t
      - name: port
        type: uint8_t
      - name: flags
        type: uint32_t
      item_type: struct
      name: ibv_flow_attr
      pos:
        line_end: 874
        line_start: 862
        source_file: /src/nccl/src/include/ibvcore.h
    - fields:
      - name: comp_mask
        type: uint32_t
      - name: '*context'
        type: struct ibv_context
      - name: handle
        type: uint32_t
      item_type: struct
      name: ibv_flow
      pos:
        line_end: 880
        line_start: 876
        source_file: /src/nccl/src/include/ibvcore.h
    - fields:
      - name: "*\t(*alloc_context)(struct ibv_device *device, int cmd_fd)"
        type: struct ibv_context
      - name: (*free_context)(struct ibv_context *context)
        type: void
      item_type: struct
      name: ibv_device_ops
      pos:
        line_end: 888
        line_start: 885
        source_file: /src/nccl/src/include/ibvcore.h
    - fields:
      - name: ops
        type: struct ibv_device_ops
      - name: node_type
        type: enum ibv_node_type
      - name: transport_type
        type: enum ibv_transport_type
      - name: name[IBV_SYSFS_NAME_MAX]
        type: char
      - name: dev_name[IBV_SYSFS_NAME_MAX]
        type: char
      - name: dev_path[IBV_SYSFS_PATH_MAX]
        type: char
      - name: ibdev_path[IBV_SYSFS_PATH_MAX]
        type: char
      item_type: struct
      name: ibv_device
      pos:
        line_end: 907
        line_start: 895
        source_file: /src/nccl/src/include/ibvcore.h
    - fields:
      - name: device
        type: struct ibv_device
      - name: sz
        type: size_t
      - name: size_of_context
        type: size_t
      - name: "(*init_context)(struct verbs_device *device,\n\t\t\t\tstruct ibv_context
          *ctx, int cmd_fd)"
        type: int
      - name: "(*uninit_context)(struct verbs_device *device,\n\t\t\t\tstruct ibv_context
          *ctx)"
        type: void
      item_type: struct
      name: verbs_device
      pos:
        line_end: 918
        line_start: 909
        source_file: /src/nccl/src/include/ibvcore.h
    - fields:
      - name: "(*query_device)(struct ibv_context *context,\n\t\t\t\t\t      struct
          ibv_device_attr *device_attr)"
        type: int
      - name: "(*query_port)(struct ibv_context *context, uint8_t port_num,\n\t\t\t\t\t
          \     struct ibv_port_attr *port_attr)"
        type: int
      - name: "*\t\t(*alloc_pd)(struct ibv_context *context)"
        type: struct ibv_pd
      - name: (*dealloc_pd)(struct ibv_pd *pd)
        type: int
      - name: "*\t\t(*reg_mr)(struct ibv_pd *pd, void *addr, size_t length,\n\t\t\t\t\t
          \ int access)"
        type: struct ibv_mr
      - name: "*\t\t(*rereg_mr)(struct ibv_mr *mr,\n\t\t\t\t\t    int flags,\n\t\t\t\t\t
          \   struct ibv_pd *pd, void *addr,\n\t\t\t\t\t    size_t length,\n\t\t\t\t\t
          \   int access)"
        type: struct ibv_mr
      - name: (*dereg_mr)(struct ibv_mr *mr)
        type: int
      - name: "*\t\t(*alloc_mw)(struct ibv_pd *pd, enum ibv_mw_type type)"
        type: struct ibv_mw
      - name: "(*bind_mw)(struct ibv_qp *qp, struct ibv_mw *mw,\n\t\t\t\t\t   struct
          ibv_mw_bind *mw_bind)"
        type: int
      - name: (*dealloc_mw)(struct ibv_mw *mw)
        type: int
      - name: "*\t\t(*create_cq)(struct ibv_context *context, int cqe,\n\t\t\t\t\t
          \    struct ibv_comp_channel *channel,\n\t\t\t\t\t     int comp_vector)"
        type: struct ibv_cq
      - name: (*poll_cq)(struct ibv_cq *cq, int num_entries, struct ibv_wc *wc)
        type: int
      - name: (*req_notify_cq)(struct ibv_cq *cq, int solicited_only)
        type: int
      - name: (*cq_event)(struct ibv_cq *cq)
        type: void
      - name: (*resize_cq)(struct ibv_cq *cq, int cqe)
        type: int
      - name: (*destroy_cq)(struct ibv_cq *cq)
        type: int
      - name: "*\t(*create_srq)(struct ibv_pd *pd,\n\t\t\t\t\t      struct ibv_srq_init_attr
          *srq_init_attr)"
        type: struct ibv_srq
      - name: "(*modify_srq)(struct ibv_srq *srq,\n\t\t\t\t\t      struct ibv_srq_attr
          *srq_attr,\n\t\t\t\t\t      int srq_attr_mask)"
        type: int
      - name: "(*query_srq)(struct ibv_srq *srq,\n\t\t\t\t\t     struct ibv_srq_attr
          *srq_attr)"
        type: int
      - name: (*destroy_srq)(struct ibv_srq *srq)
        type: int
      - name: "(*post_srq_recv)(struct ibv_srq *srq,\n\t\t\t\t\t\t struct ibv_recv_wr
          *recv_wr,\n\t\t\t\t\t\t struct ibv_recv_wr **bad_recv_wr)"
        type: int
      - name: "*\t\t(*create_qp)(struct ibv_pd *pd, struct ibv_qp_init_attr *attr)"
        type: struct ibv_qp
      - name: "(*query_qp)(struct ibv_qp *qp, struct ibv_qp_attr *attr,\n\t\t\t\t\t
          \   int attr_mask,\n\t\t\t\t\t    struct ibv_qp_init_attr *init_attr)"
        type: int
      - name: "(*modify_qp)(struct ibv_qp *qp, struct ibv_qp_attr *attr,\n\t\t\t\t\t
          \    int attr_mask)"
        type: int
      - name: (*destroy_qp)(struct ibv_qp *qp)
        type: int
      - name: "(*post_send)(struct ibv_qp *qp, struct ibv_send_wr *wr,\n\t\t\t\t\t
          \    struct ibv_send_wr **bad_wr)"
        type: int
      - name: "(*post_recv)(struct ibv_qp *qp, struct ibv_recv_wr *wr,\n\t\t\t\t\t
          \    struct ibv_recv_wr **bad_wr)"
        type: int
      - name: "*\t\t(*create_ah)(struct ibv_pd *pd, struct ibv_ah_attr *attr)"
        type: struct ibv_ah
      - name: (*destroy_ah)(struct ibv_ah *ah)
        type: int
      - name: "(*attach_mcast)(struct ibv_qp *qp, const union ibv_gid *gid,\n\t\t\t\t\t\tuint16_t
          lid)"
        type: int
      - name: "(*detach_mcast)(struct ibv_qp *qp, const union ibv_gid *gid,\n\t\t\t\t\t\tuint16_t
          lid)"
        type: int
      - name: (*async_event)(struct ibv_async_event *event)
        type: void
      item_type: struct
      name: ibv_context_ops
      pos:
        line_end: 976
        line_start: 920
        source_file: /src/nccl/src/include/ibvcore.h
    - fields:
      - name: '*device'
        type: struct ibv_device
      - name: ops
        type: struct ibv_context_ops
      - name: cmd_fd
        type: int
      - name: async_fd
        type: int
      - name: num_comp_vectors
        type: int
      - name: mutex
        type: pthread_mutex_t
      - name: '*abi_compat'
        type: void
      item_type: struct
      name: ibv_context
      pos:
        line_end: 986
        line_start: 978
        source_file: /src/nccl/src/include/ibvcore.h
    - fields:
      - name: "(*query_port)(struct ibv_context *context, uint8_t port_num,\n\t\t\t
          \ struct ibv_port_attr *port_attr,\n\t\t\t  size_t port_attr_len)"
        type: int
      - name: (*_reserved[25]) (void)
        type: int
      - name: '*priv'
        type: struct verbs_ex_private
      - name: "(*query_device_ex)(struct ibv_context *context,\n\t\t\t       const
          struct ibv_query_device_ex_input *input,\n\t\t\t       struct ibv_device_attr_ex
          *attr,\n\t\t\t       size_t attr_size)"
        type: int
      - name: (*ibv_destroy_flow) (struct ibv_flow *flow)
        type: int
      - name: (*ABI_placeholder2) (void)
        type: void
      - name: "* (*ibv_create_flow) (struct ibv_qp *qp,\n\t\t\t\t\t      struct ibv_flow_attr
          *flow_attr)"
        type: struct ibv_flow
      - name: (*ABI_placeholder1) (void)
        type: void
      - name: "* (*open_qp)(struct ibv_context *context,\n\t\t\tstruct ibv_qp_open_attr
          *attr)"
        type: struct ibv_qp
      - name: "* (*create_qp_ex)(struct ibv_context *context,\n\t\t\tstruct ibv_qp_init_attr_ex
          *qp_init_attr_ex)"
        type: struct ibv_qp
      - name: (*get_srq_num)(struct ibv_srq *srq, uint32_t *srq_num)
        type: int
      - name: "*\t(*create_srq_ex)(struct ibv_context *context,\n\t\t\t\t\t\t struct
          ibv_srq_init_attr_ex *srq_init_attr_ex)"
        type: struct ibv_srq
      - name: "*\t(*open_xrcd)(struct ibv_context *context,\n\t\t\t\t\t     struct
          ibv_xrcd_init_attr *xrcd_init_attr)"
        type: struct ibv_xrcd
      - name: (*close_xrcd)(struct ibv_xrcd *xrcd)
        type: int
      - name: _ABI_placeholder3
        type: uint64_t
      - name: sz
        type: size_t
      - name: context
        type: struct ibv_context
      item_type: struct
      name: verbs_context
      pos:
        line_end: 1025
        line_start: 996
        source_file: /src/nccl/src/include/ibvcore.h
    - fields:
      - name: vendor_id
        type: uint32_t
      - name: options
        type: uint32_t
      - name: comp_mask
        type: uint32_t
      item_type: struct
      name: ibv_ece
      pos:
        line_end: 1071
        line_start: 1058
        source_file: /src/nccl/src/include/ibvcore.h
    typedefs: []
    union:
    - fields:
      - name: raw[16]
        type: uint8_t
      - name: global
        type: "struct {\n\t\tuint64_t\tsubnet_prefix;\n\t\tuint64_t\tinterface_id;\n\t}"
      item_type: union
      name: ibv_gid
      pos:
        line_end: 25
        line_start: 19
        source_file: /src/nccl/src/include/ibvcore.h
- function_names:
  - payload_schema::payload_schema
  - payload_schema::payload_schema
  - ~payload_schema()
  - payload_schema::payload_schema
  - '& operator=(payload_schema const&)'
  - payload_schema::payload_schema
  - '& operator=(payload_schema&&)'
  - NVTX3_PAYLOAD
  - NVTX3_FUNC_WITH_PARAMS
  - ncclNvtxRange::ncclNvtxRange
  - ~ncclNvtxRange() noexcept
  - ncclNvtxRange::setPayloadData
  - ncclNvtxRange::ncclNvtxRange
  - ncclNvtxRange::ncclNvtxRange
  - '& operator=(ncclNvtxRange const&)'
  - ncclNvtxRange::ncclNvtxRange
  - '& operator=(ncclNvtxRange&&)'
  - NVTX3_RANGE
  - NVTX3_RANGE_ADD_PAYLOAD
  source_file: /src/nccl/src/include/nvtx.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NVTX3_CONSTEXPR_IF_CPP14
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/nccl/src/include/nvtx.h
      type_or_value: constexpr
    - item_type: preproc_def
      name: NVTX_SID_CommInitRank
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/nccl/src/include/nvtx.h
      type_or_value: '0'
    - item_type: preproc_def
      name: NVTX_SID_CommInitAll
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/nccl/src/include/nvtx.h
      type_or_value: '1'
    - item_type: preproc_def
      name: NVTX_SID_CommDestroy
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/nccl/src/include/nvtx.h
      type_or_value: 2 // same schema as NVTX_SID_CommInitRank
    - item_type: preproc_def
      name: NVTX_SID_CommAbort
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/nccl/src/include/nvtx.h
      type_or_value: 3 // same schema as NVTX_SID_CommInitRank
    - item_type: preproc_def
      name: NVTX_SID_AllGather
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/nccl/src/include/nvtx.h
      type_or_value: '4'
    - item_type: preproc_def
      name: NVTX_SID_AllReduce
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/nccl/src/include/nvtx.h
      type_or_value: '5'
    - item_type: preproc_def
      name: NVTX_SID_Broadcast
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/nccl/src/include/nvtx.h
      type_or_value: '6'
    - item_type: preproc_def
      name: NVTX_SID_ReduceScatter
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/nccl/src/include/nvtx.h
      type_or_value: '7'
    - item_type: preproc_def
      name: NVTX_SID_Reduce
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/nccl/src/include/nvtx.h
      type_or_value: '8'
    - item_type: preproc_def
      name: NVTX_SID_Send
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/nccl/src/include/nvtx.h
      type_or_value: '9'
    - item_type: preproc_def
      name: NVTX_SID_Recv
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/nccl/src/include/nvtx.h
      type_or_value: '10'
    - item_type: preproc_def
      name: NVTX_SID_CommInitRankConfig
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/nccl/src/include/nvtx.h
      type_or_value: 11 // same schema as NVTX_SID_CommInitRank
    - item_type: preproc_def
      name: NVTX_SID_CommInitRankScalable
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/nccl/src/include/nvtx.h
      type_or_value: 12 // same schema as NVTX_SID_CommInitRank
    - item_type: preproc_def
      name: NVTX_SID_CommSplit
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/nccl/src/include/nvtx.h
      type_or_value: '13'
    - item_type: preproc_def
      name: NVTX_SID_CommFinalize
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/nccl/src/include/nvtx.h
      type_or_value: '14'
    - item_type: preproc_def
      name: NVTX_SID_CommShrink
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/nccl/src/include/nvtx.h
      type_or_value: '15'
    - item_type: preproc_def
      name: NVTX_PAYLOAD_ENTRY_NCCL_REDOP
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/nccl/src/include/nvtx.h
      type_or_value: 16 + NVTX_PAYLOAD_ENTRY_TYPE_SCHEMA_ID_STATIC_START
    structs:
    - fields:
      - name: '* name'
        type: char
      item_type: struct
      name: nccl_domain
      pos:
        line_end: 41
        line_start: 41
        source_file: /src/nccl/src/include/nvtx.h
    typedefs: []
    union: []
- function_names:
  - VERSION
  - WARN
  - INFO
  - TRACE_CALL
  - TRACE
  source_file: /src/nccl/src/include/debug.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NCCL_THREAD_NAMELEN
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/nccl/src/include/debug.h
      type_or_value: '16'
    structs: []
    typedefs: []
    union: []
- function_names:
  - NCCL_API
  - NCCL_API
  source_file: /src/nccl/src/include/core.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ncclSymLLMaxSlots
  - ncclSymLLEpochSize
  - size
  - ncclSymDevBase_getLLBuf
  source_file: /src/nccl/src/include/symmetric.h
  types:
    enum:
    - enumerators:
      - name: ncclSymKernelId_AllReduce_AGxLL_R
      - name: ncclSymKernelId_AllGather_LL
      - name: ncclSymKernelId_AllReduce_AGxLLMC_R
      - name: ncclSymKernelId_AllReduce_RSxLDMC_AGxSTMC
      - name: ncclSymKernelId_AllReduce_RSxLD_AGxST
      - name: ncclSymKernelId_AllGather_LLMC
      - name: ncclSymKernelId_AllGather_ST
      - name: ncclSymKernelId_AllGather_STMC
      - name: ncclSymKernelId_ReduceScatter_LL
      - name: ncclSymKernelId_ReduceScatter_LD
      - name: ncclSymKernelId_ReduceScatter_LDMC
      - name: ncclSymKernelId_Count
      item_type: enum
      name: ncclSymKernelId
      pos:
        line_end: 77
        line_start: 61
        source_file: /src/nccl/src/include/symmetric.h
    preproc_defs: []
    structs:
    - fields:
      - name: llEpoch[ncclSymMaxBlocks]
        type: uint32_t
      - name: barEpochMc[ncclSymMaxBlocks]
        type: uint32_t
      - name: barInboxMc[ncclSymMaxBlocks]
        type: uint32_t
      - name: barInboxPerPeer[]
        type: uint32_t
      item_type: struct
      name: ncclSymDevBase
      pos:
        line_end: 30
        line_start: 19
        source_file: /src/nccl/src/include/symmetric.h
    - fields:
      - name: '* base'
        type: ncclSymDevBase
      - name: '* baseMc'
        type: ncclSymDevBase
      - name: stride4G
        type: uint32_t
      - name: nRanks
        type: int
      - name: nRanks_rcp32
        type: uint32_t
      item_type: struct
      name: ncclSymDevComm
      pos:
        line_end: 50
        line_start: 44
        source_file: /src/nccl/src/include/symmetric.h
    - fields:
      - name: comm
        type: struct ncclSymDevComm
      - name: rootRank
        type: int
      - name: redOpArg
        type: uint64_t
      - name: nElts
        type: size_t
      - name: '* input'
        type: char
      - name: '* output'
        type: char
      item_type: struct
      name: ncclSymDevArgs
      pos:
        line_end: 59
        line_start: 52
        source_file: /src/nccl/src/include/symmetric.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/src/include/shmutils.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*cnt[2]'
        type: size_t
      - name: '*ptr[2]'
        type: void
      - name: round
        type: int
      - name: maxTypeSize
        type: size_t
      item_type: struct
      name: ncclShmemCollBuff
      pos:
        line_end: 21
        line_start: 16
        source_file: /src/nccl/src/include/shmutils.h
    typedefs:
    - item_type: typedef
      name: '* ncclShmHandle_t'
      pos:
        line_end: 11
        line_start: 11
        source_file: /src/nccl/src/include/shmutils.h
      type: void
    union: []
- function_names:
  - ncclRegFind
  - ncclRegFindSymmetric
  source_file: /src/nccl/src/include/register_inline.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/src/include/shm.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: shmSuffix[7]
        type: char
      - name: handle
        type: ncclShmHandle_t
      - name: shmSize
        type: size_t
      item_type: struct
      name: shmLegacyIpc
      pos:
        line_end: 9
        line_start: 5
        source_file: /src/nccl/src/include/shm.h
    - fields:
      - name: '*ptr'
        type: void
      - name: size
        type: size_t
      item_type: struct
      name: shmCuIpc
      pos:
        line_end: 18
        line_start: 11
        source_file: /src/nccl/src/include/shm.h
    - fields:
      - name: legacy
        type: bool
      item_type: struct
      name: shmIpcDesc
      pos:
        line_end: 27
        line_start: 20
        source_file: /src/nccl/src/include/shm.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/src/include/transport.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NTRANSPORTS
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/nccl/src/include/transport.h
      type_or_value: '4'
    - item_type: preproc_def
      name: TRANSPORT_UNDEFINED
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/nccl/src/include/transport.h
      type_or_value: '-1'
    - item_type: preproc_def
      name: TRANSPORT_P2P
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/nccl/src/include/transport.h
      type_or_value: '0'
    - item_type: preproc_def
      name: TRANSPORT_SHM
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/nccl/src/include/transport.h
      type_or_value: '1'
    - item_type: preproc_def
      name: TRANSPORT_NET
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/nccl/src/include/transport.h
      type_or_value: '2'
    - item_type: preproc_def
      name: TRANSPORT_COLLNET
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/nccl/src/include/transport.h
      type_or_value: '3'
    - item_type: preproc_def
      name: TRANSPORT_PROFILER
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/nccl/src/include/transport.h
      type_or_value: '4'
    - item_type: preproc_def
      name: CONNECT_SIZE
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/nccl/src/include/transport.h
      type_or_value: '256'
    - item_type: preproc_def
      name: NCCL_MAX_PAGE_SIZE
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/nccl/src/include/transport.h
      type_or_value: (512L * 1024L * 1024L)
    - item_type: preproc_def
      name: NCCL_REC_PAGE_SIZE
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/nccl/src/include/transport.h
      type_or_value: (2L * 1024L * 1024L)
    - item_type: preproc_def
      name: NVLS_HANDLE_SIZE
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/nccl/src/include/transport.h
      type_or_value: '64'
    structs:
    - fields:
      - name: rank
        type: int
      - name: cudaDev
        type: int
      - name: nvmlDev
        type: int
      - name: gdrSupport
        type: int
      - name: hostHash
        type: uint64_t
      - name: pidHash
        type: uint64_t
      - name: shmDev
        type: dev_t
      - name: busId
        type: int64_t
      - name: '* comm'
        type: struct ncclComm
      - name: cudaCompCap
        type: int
      - name: totalGlobalMem
        type: size_t
      - name: fabricInfo
        type: nvmlGpuFabricInfoV_t
      - name: cuMemSupport
        type: int
      - name: version
        type: int
      item_type: struct
      name: ncclPeerInfo
      pos:
        line_end: 54
        line_start: 38
        source_file: /src/nccl/src/include/transport.h
    - fields:
      - name: data[CONNECT_SIZE]
        type: char
      item_type: struct
      name: ncclConnect
      pos:
        line_end: 61
        line_start: 59
        source_file: /src/nccl/src/include/transport.h
    - fields:
      - name: refCount
        type: int
      - name: inited
        type: bool
      - name: bufProp
        type: CUmulticastObjectProp
      - name: signalProp
        type: CUmulticastObjectProp
      - name: accessDesc
        type: CUmemAccessDesc
      - name: dev
        type: int
      - name: creditUCSize
        type: size_t
      - name: creditMCSize
        type: size_t
      - name: buffUCSize
        type: size_t
      - name: buffMCSize
        type: size_t
      - name: mcBuffHandle
        type: CUmemGenericAllocationHandle
      - name: mcCreditHandle
        type: CUmemGenericAllocationHandle
      - name: '* mcBuff'
        type: char
      - name: '* mcCredit'
        type: char
      - name: ucBuffHandle
        type: CUmemGenericAllocationHandle
      - name: ucCreditHandle
        type: CUmemGenericAllocationHandle
      - name: '* ucBuff'
        type: char
      - name: '* ucCredit'
        type: char
      - name: nChannels
        type: int
      - name: nHeads
        type: int
      - name: nvlsShmem
        type: struct ncclShmemCollBuff
      - name: '*nvlsShmemHandle'
        type: void
      item_type: struct
      name: ncclNvlsSharedRes
      pos:
        line_end: 89
        line_start: 66
        source_file: /src/nccl/src/include/transport.h
    - fields:
      - name: refCount
        type: int
      - name: size
        type: int
      - name: '* cudaBuff'
        type: char
      - name: '* hostBuff'
        type: char
      - name: '* proxyAppend[2*NCCL_MAX_NETDEVS]'
        type: struct ncclProxyArgs
      - name: '* resources'
        type: void
      - name: nChannels
        type: int
      - name: buffSize
        type: size_t
      item_type: struct
      name: ncclCollNetSharedRes
      pos:
        line_end: 102
        line_start: 93
        source_file: /src/nccl/src/include/transport.h
    - fields:
      - name: (*setup)(struct ncclComm* comm, struct ncclTopoGraph* graph, struct
          ncclPeerInfo*, struct ncclPeerInfo*, struct ncclConnect*, struct ncclConnector*,
          int channelId, int connIndex)
        type: ncclResult_t
      - name: (*connect)(struct ncclComm* comm, struct ncclConnect*, int nranks, int
          rank, struct ncclConnector*)
        type: ncclResult_t
      - name: (*free)(struct ncclConnector*)
        type: ncclResult_t
      - name: (*proxySharedInit)(struct ncclProxyConnection* connection, struct ncclProxyState*
          proxyState, int nChannels)
        type: ncclResult_t
      - name: (*proxySetup)(struct ncclProxyConnection* connection, struct ncclProxyState*
          proxyState, void* reqBuff, int reqSize, void* respBuff, int respSize, int*
          done)
        type: ncclResult_t
      - name: (*proxyConnect)(struct ncclProxyConnection* connection, struct ncclProxyState*
          proxyState, void* reqBuff, int reqSize, void* respBuff, int respSize, int*
          done)
        type: ncclResult_t
      - name: (*proxyFree)(struct ncclProxyConnection* connection, struct ncclProxyState*
          proxyState)
        type: ncclResult_t
      - name: (*proxyProgress)(struct ncclProxyState* proxyState, struct ncclProxyArgs*)
        type: ncclResult_t
      - name: (*proxyRegister)(struct ncclProxyConnection* connection, struct ncclProxyState*
          proxyState, void* reqBuff, int reqSize, void* respBuff, int respSize, int*
          done)
        type: ncclResult_t
      - name: (*proxyDeregister)(struct ncclProxyConnection* connection, struct ncclProxyState*
          proxyState, void* reqBuff, int reqSize, int* done)
        type: ncclResult_t
      item_type: struct
      name: ncclTransportComm
      pos:
        line_end: 115
        line_start: 104
        source_file: /src/nccl/src/include/transport.h
    - fields:
      - name: name[8]
        type: char
      - name: (*canConnect)(int*, struct ncclComm* comm, struct ncclTopoGraph* graph,
          struct ncclPeerInfo*, struct ncclPeerInfo*)
        type: ncclResult_t
      - name: send
        type: struct ncclTransportComm
      - name: recv
        type: struct ncclTransportComm
      item_type: struct
      name: ncclTransport
      pos:
        line_end: 122
        line_start: 117
        source_file: /src/nccl/src/include/transport.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/src/include/ras.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: addr
        type: union ncclSocketAddress
      - name: pid
        type: pid_t
      - name: cudaDev
        type: int
      - name: nvmlDev
        type: int
      - name: hostHash
        type: uint64_t
      - name: pidHash
        type: uint64_t
      item_type: struct
      name: rasRankInit
      pos:
        line_end: 19
        line_start: 12
        source_file: /src/nccl/src/include/ras.h
    typedefs: []
    union: []
- function_names:
  - ncclCudaGraphNone
  - ncclCudaGraphValid
  - ncclCudaGraphSame
  source_file: /src/nccl/src/include/strongstream.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields: []
      item_type: struct
      name: ncclCudaGraph
      pos:
        line_end: 33
        line_start: 27
        source_file: /src/nccl/src/include/strongstream.h
    - fields:
      - name: liveStream
        type: cudaStream_t
      - name: '* liveAcquiredBy'
        type: void
      item_type: struct
      name: ncclStrongStream
      pos:
        line_end: 127
        line_start: 114
        source_file: /src/nccl/src/include/strongstream.h
    - fields:
      - name: '* next'
        type: struct ncclCudaContext
      - name: hcontext
        type: CUcontext
      - name: refCount
        type: int
      - name: launchOrder
        type: struct ncclStrongStream
      item_type: struct
      name: ncclCudaContext
      pos:
        line_end: 134
        line_start: 129
        source_file: /src/nccl/src/include/strongstream.h
    typedefs: []
    union: []
- function_names:
  - collNetName
  - collNetDevices
  - collNetGetProperties
  - collNetListen
  - collNetConnect
  - collNetReduceSupport
  - collNetRegMr
  - collNetRegMrDmaBuf
  - collNetDeregMr
  - collNetIallreduce
  - collNetIflush
  - collNetTest
  - collNetCloseColl
  - collNetCloseListen
  - collNetSupport
  source_file: /src/nccl/src/include/coll_net.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: collNetHandle_t[NCCL_NET_HANDLE_MAXSIZE]
      pos:
        line_end: 12
        line_start: 12
        source_file: /src/nccl/src/include/coll_net.h
      type: char
    union: []
- function_names: []
  source_file: /src/nccl/src/include/proxy.h
  types:
    enum:
    - enumerators:
      - name: ncclProxyOpNone
      - name: ncclProxyOpProgress
      - name: ncclProxyOpReady
      item_type: enum
      name: ncclProxyOpState
      pos:
        line_end: 38
        line_start: 38
        source_file: /src/nccl/src/include/proxy.h
    - enumerators:
      - name: connUninitialized
        value: '0'
      - name: connConnected
        value: '4'
      - name: connSetupDone
        value: '3'
      - name: connInitialized
        value: '1'
      - name: connSharedInitialized
        value: '2'
      - name: numConnStates
        value: '5'
      item_type: enum
      name: proxyConnectState
      pos:
        line_end: 354
        line_start: 347
        source_file: /src/nccl/src/include/proxy.h
    - enumerators:
      - name: proxyRing
        value: '0'
      - name: proxyTo
        value: '2'
      - name: proxyFrom
        value: '1'
      item_type: enum
      name: proxyMode
      pos:
        line_end: 377
        line_start: 373
        source_file: /src/nccl/src/include/proxy.h
    - enumerators:
      - name: ncclProxyMsgInit
        value: '1'
      - name: ncclProxyMsgSharedInit
        value: '2'
      - name: ncclProxyMsgSetup
        value: '3'
      - name: ncclProxyMsgConnect
        value: '4'
      - name: ncclProxyMsgStart
        value: '5'
      - name: ncclProxyMsgClose
        value: '6'
      - name: ncclProxyMsgAbort
        value: '7'
      - name: ncclProxyMsgStop
        value: '8'
      - name: ncclProxyMsgGetFd
        value: '9'
      - name: ncclProxyMsgQueryFd
        value: '10'
      - name: ncclProxyMsgDeregister
        value: '12'
      - name: ncclProxyMsgRegister
        value: '11'
      item_type: enum
      name: ncclProxyMsgType
      pos:
        line_end: 399
        line_start: 386
        source_file: /src/nccl/src/include/proxy.h
    preproc_defs:
    - item_type: preproc_def
      name: NCCL_PROXY_MAX_SUBS
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/nccl/src/include/proxy.h
      type_or_value: MAXCHANNELS
    - item_type: preproc_def
      name: NCCL_MAX_NETDEVS
      pos:
        line_end: 193
        line_start: 192
        source_file: /src/nccl/src/include/proxy.h
      type_or_value: '128'
    - item_type: preproc_def
      name: MAX_OPS_PER_PEER
      pos:
        line_end: 199
        line_start: 198
        source_file: /src/nccl/src/include/proxy.h
      type_or_value: (2*MAXCHANNELS*2*NCCL_MAX_DEV_WORK_P2P_PER_BATCH)
    structs:
    - fields:
      - name: '* connection'
        type: struct ncclProxyConnection
      - name: nbytes
        type: ssize_t
      - name: opCount
        type: uint64_t
      - name: root
        type: int
      - name: next
        type: int
      - name: nsteps
        type: int
      - name: chunkSize
        type: size_t
      - name: sliceSize
        type: size_t
      - name: loopSize
        type: size_t
      - name: loopOffset
        type: size_t
      - name: channelSize
        type: size_t
      - name: sliceSteps
        type: uint8_t
      - name: chunkSteps
        type: uint8_t
      - name: channelId
        type: uint8_t
      - name: dtype
        type: uint8_t
      - name: redOp
        type: uint8_t
      - name: coll
        type: uint8_t
      - name: pattern
        type: uint8_t
      - name: protocol
        type: uint8_t
      - name: algorithm
        type: uint8_t
      - name: reg
        type: uint8_t
      - name: '* sendMhandle'
        type: void
      - name: '* recvMhandle'
        type: void
      - name: '* sendbuff'
        type: uint8_t
      - name: '* recvbuff'
        type: uint8_t
      - name: isOneRPN
        type: int
      - name: '*ringAlgo'
        type: RingAlgorithm
      - name: specifics
        type: union ncclProxyOpSpecifics
      - name: task
        type: "union {\n    struct ncclTaskColl* coll;\n    struct ncclTaskP2p* p2p;\n
          \ }"
      - name: incWorkCounter
        type: bool
      - name: eActivationMask
        type: int
      - name: '* taskEventHandle'
        type: void
      - name: rank
        type: int
      - name: peer
        type: int
      - name: pid
        type: pid_t
      - name: '* profilerContext'
        type: void
      - name: workCounter
        type: uint64_t
      - name: '*enqNext'
        type: struct ncclProxyOp
      item_type: struct
      name: ncclProxyOp
      pos:
        line_end: 105
        line_start: 53
        source_file: /src/nccl/src/include/proxy.h
    - fields:
      - name: '* stepEventHandle'
        type: void
      - name: '* subArgPtr'
        type: struct ncclProxySubArgs
      item_type: struct
      name: ncclProxyEventHandle
      pos:
        line_end: 112
        line_start: 109
        source_file: /src/nccl/src/include/proxy.h
    - fields:
      - name: '* connection'
        type: struct ncclProxyConnection
      - name: reg
        type: int
      - name: '* sendMhandle'
        type: void
      - name: '* recvMhandle'
        type: void
      - name: '* sendbuff'
        type: uint8_t
      - name: '* recvbuff'
        type: uint8_t
      - name: offset
        type: size_t
      - name: loopSize
        type: ssize_t
      - name: loopOffset
        type: ssize_t
      - name: channelId
        type: int
      - name: nsteps
        type: int
      - name: nbytes
        type: ssize_t
      - name: chunkSize
        type: ssize_t
      - name: peer
        type: int
      - name: isOneRPN
        type: int
      - name: '*ringAlgo'
        type: RingAlgorithm
      - name: groupSize
        type: int
      - name: base
        type: uint64_t
      - name: posted
        type: uint64_t
      - name: received
        type: uint64_t
      - name: flushed
        type: uint64_t
      - name: transmitted
        type: uint64_t
      - name: done
        type: uint64_t
      - name: end
        type: uint64_t
      - name: regBufferReady
        type: int
      - name: '* requests[NCCL_STEPS]'
        type: void
      - name: eActivationMask
        type: int
      - name: rank
        type: int
      - name: pid
        type: pid_t
      - name: '* profilerContext'
        type: void
      - name: '* taskEventHandle'
        type: void
      - name: '* opEventHandle'
        type: void
      - name: '* kernelEventHandle'
        type: void
      - name: pHandles[NCCL_STEPS]
        type: struct ncclProxyEventHandle
      - name: transSize
        type: size_t
      - name: workCounter
        type: uint64_t
      - name: '* recvRequestsCache[NCCL_STEPS]'
        type: void
      - name: recvRequestsSubCount
        type: int
      item_type: struct
      name: ncclProxySubArgs
      pos:
        line_end: 157
        line_start: 114
        source_file: /src/nccl/src/include/proxy.h
    - fields:
      - name: subs[NCCL_PROXY_MAX_SUBS]
        type: struct ncclProxySubArgs
      - name: progress
        type: proxyProgressFunc_t
      - name: nsubs
        type: int
      - name: done
        type: int
      - name: onePPN
        type: int
      - name: opCount
        type: uint64_t
      - name: sliceSteps
        type: int
      - name: chunkSteps
        type: int
      - name: chunkSize
        type: size_t
      - name: totalSendSize
        type: size_t
      - name: totalRecvSize
        type: size_t
      - name: sendSizePerRound
        type: size_t
      - name: recvSizePerRound
        type: size_t
      - name: dtype
        type: uint8_t
      - name: redOp
        type: uint8_t
      - name: pattern
        type: uint8_t
      - name: coll
        type: uint8_t
      - name: protocol
        type: uint8_t
      - name: algorithm
        type: uint8_t
      - name: state
        type: int
      - name: '* sharedBuff[NCCL_STEPS]'
        type: char
      - name: sharedSize[NCCL_STEPS]
        type: int
      - name: idle
        type: int
      - name: '* next'
        type: struct ncclProxyArgs
      - name: '* nextPeer'
        type: struct ncclProxyArgs
      - name: '** proxyAppendPtr'
        type: struct ncclProxyArgs
      - name: specifics
        type: union ncclProxyOpSpecifics
      item_type: struct
      name: ncclProxyArgs
      pos:
        line_end: 191
        line_start: 159
        source_file: /src/nccl/src/include/proxy.h
    - fields:
      - name: ops[MAX_OPS_PER_PEER*NCCL_MAX_LOCAL_RANKS]
        type: struct ncclProxyOp
      - name: nextOps
        type: int
      - name: nextOpsEnd
        type: int
      - name: freeOps[NCCL_MAX_LOCAL_RANKS]
        type: int
      - name: mutex
        type: pthread_mutex_t
      - name: cond
        type: pthread_cond_t
      item_type: struct
      name: ncclProxyOpsPool
      pos:
        line_end: 207
        line_start: 200
        source_file: /src/nccl/src/include/proxy.h
    - fields:
      - name: '* pool'
        type: ncclProxyOpsPool
      - name: handle
        type: ncclShmHandle_t
      - name: count
        type: int
      - name: freeOp
        type: int
      - name: nextOps
        type: int
      - name: nextOpsEnd
        type: int
      item_type: struct
      name: ncclProxyOps
      pos:
        line_end: 216
        line_start: 209
        source_file: /src/nccl/src/include/proxy.h
    - fields:
      - name: refcount
        type: int
      - name: size
        type: int
      - name: '* cudaBuff'
        type: char
      - name: '* hostBuff'
        type: char
      - name: ipcDesc
        type: ncclIpcDesc
      - name: '* proxyAppend[MAXCHANNELS]'
        type: struct ncclProxyArgs
      item_type: struct
      name: ncclProxySharedP2p
      pos:
        line_end: 226
        line_start: 218
        source_file: /src/nccl/src/include/proxy.h
    - fields:
      - name: send
        type: struct ncclProxySharedP2p
      - name: recv
        type: struct ncclProxySharedP2p
      item_type: struct
      name: ncclProxyPeer
      pos:
        line_end: 231
        line_start: 228
        source_file: /src/nccl/src/include/proxy.h
    - fields:
      - name: activeConnect[MAXCHANNELS]
        type: int
      - name: activeAccept[MAXCHANNELS]
        type: int
      - name: '* sendComm[MAXCHANNELS]'
        type: void
      - name: '* recvComm[MAXCHANNELS]'
        type: void
      - name: sendRefCount[MAXCHANNELS]
        type: int
      - name: recvRefCount[MAXCHANNELS]
        type: int
      item_type: struct
      name: ncclSharedNetComms
      pos:
        line_end: 240
        line_start: 233
        source_file: /src/nccl/src/include/proxy.h
    - fields:
      - name: '* opsPool'
        type: struct ncclProxyOpsPool
      - name: handle
        type: ncclShmHandle_t
      - name: opsPoolShmSuffix[6]
        type: char
      - name: thread
        type: pthread_t
      - name: stop
        type: int
      - name: '** localPeers'
        type: struct ncclProxyPeer
      - name: '* netComms[NCCL_MAX_NETDEVS]'
        type: struct ncclSharedNetComms
      - name: '* active'
        type: struct ncclProxyArgs
      - name: '* pool'
        type: struct ncclProxyArgs
      - name: '* pools'
        type: struct ncclProxyPool
      - name: nextOps
        type: int
      item_type: struct
      name: ncclProxyProgressState
      pos:
        line_end: 257
        line_start: 243
        source_file: /src/nccl/src/include/proxy.h
    - fields:
      - name: '*                             opId'
        type: void
      - name: respSize
        type: int
      - name: done
        type: bool
      - name: '*                             respBuff'
        type: void
      - name: res
        type: ncclResult_t
      - name: '* next'
        type: struct ncclExpectedProxyResponse
      item_type: struct
      name: ncclExpectedProxyResponse
      pos:
        line_end: 267
        line_start: 260
        source_file: /src/nccl/src/include/proxy.h
    - fields:
      - name: type
        type: int
      - name: '* connection'
        type: struct ncclProxyConnection
      - name: reqSize
        type: int
      - name: '*reqBuff'
        type: char
      - name: '* opId'
        type: void
      - name: '* next'
        type: ncclProxyAsyncOp
      item_type: struct
      name: ncclProxyAsyncOp
      pos:
        line_end: 276
        line_start: 269
        source_file: /src/nccl/src/include/proxy.h
    - fields:
      - name: sock
        type: struct ncclSocket
      - name: tpRank
        type: int
      - name: tpLocalRank
        type: int
      - name: '* asyncOps'
        type: ncclProxyAsyncOp
      - name: asyncOpCounter
        type: int
      item_type: struct
      name: ncclProxyLocalPeer
      pos:
        line_end: 284
        line_start: 278
        source_file: /src/nccl/src/include/proxy.h
    - fields:
      - name: '* opId'
        type: void
      - name: res
        type: ncclResult_t
      - name: respSize
        type: int
      item_type: struct
      name: ncclProxyRpcResponseHeader
      pos:
        line_end: 292
        line_start: 288
        source_file: /src/nccl/src/include/proxy.h
    - fields:
      - name: type
        type: int
      - name: rank
        type: int
      - name: reqSize
        type: int
      - name: respSize
        type: int
      - name: '*opId'
        type: void
      - name: data[16]
        type: uint64_t
      item_type: struct
      name: ncclIpcHdr
      pos:
        line_end: 302
        line_start: 295
        source_file: /src/nccl/src/include/proxy.h
    - fields:
      - name: refCount
        type: int
      - name: tpRank
        type: int
      - name: tpnRanks
        type: int
      - name: tpLocalnRanks
        type: int
      - name: cudaDev
        type: int
      - name: p2pnChannels
        type: int
      - name: p2pChunkSize
        type: int
      - name: nChannels
        type: int
      - name: buffSizes[NCCL_NUM_PROTOCOLS]
        type: int
      - name: allocP2pNetLLBuffers
        type: bool
      - name: dmaBufSupport
        type: bool
      - name: '* ncclNet'
        type: ncclNet_t
      - name: '* ncclCollNet'
        type: ncclCollNet_t
      - name: '* abortFlag'
        type: uint32_t
      - name: directMode
        type: bool
      - name: thread
        type: pthread_t
      - name: threadUDS
        type: pthread_t
      - name: '* listenSock'
        type: struct ncclSocket
      - name: ipcSock
        type: struct ncclIpcSocket
      - name: stop
        type: int
      - name: cudaCtx
        type: CUcontext
      - name: asyncResult
        type: ncclResult_t
      - name: '* peerAddresses'
        type: union ncclSocketAddress
      - name: '* peerSocks'
        type: struct ncclSocket
      - name: '* proxyOps'
        type: struct ncclProxyOps
      - name: '** sharedDevMems'
        type: void
      - name: peerIpcSock
        type: struct ncclIpcSocket
      - name: '*peerAddressesUDS'
        type: uint64_t
      - name: progressState
        type: struct ncclProxyProgressState
      - name: '* profilerContext'
        type: void
      - name: '* expectedResponses'
        type: struct ncclExpectedProxyResponse
      item_type: struct
      name: ncclProxyState
      pos:
        line_end: 345
        line_start: 304
        source_file: /src/nccl/src/include/proxy.h
    - fields:
      - name: send
        type: int
      - name: tpLocalRank
        type: int
      - name: '* sock'
        type: struct ncclSocket
      - name: '* tcomm'
        type: struct ncclTransportComm
      - name: '*proxyAppend'
        type: struct ncclProxyArgs
      - name: '**proxyAppendPtr'
        type: struct ncclProxyArgs
      - name: '* transportResources'
        type: void
      - name: '* netDeviceHandle'
        type: ncclNetDeviceHandle_t
      - name: '* mhandles[NCCL_NUM_PROTOCOLS]'
        type: void
      - name: state
        type: proxyConnectState
      - name: '* collNet'
        type: struct ncclCollNetSharedRes
      - name: needsProxyProgress
        type: int
      item_type: struct
      name: ncclProxyConnection
      pos:
        line_end: 369
        line_start: 356
        source_file: /src/nccl/src/include/proxy.h
    typedefs:
    - item_type: typedef
      name: ncclPattern_t
      pos:
        line_end: 36
        line_start: 19
        source_file: /src/nccl/src/include/proxy.h
    - item_type: typedef
      name: (*proxyProgressFunc_t)(struct ncclProxyState*, struct ncclProxyArgs*)
      pos:
        line_end: 41
        line_start: 41
        source_file: /src/nccl/src/include/proxy.h
    - item_type: typedef
      name: (*threadFunc_t)(struct ncclProxyArgs*)
      pos:
        line_end: 371
        line_start: 371
        source_file: /src/nccl/src/include/proxy.h
    union:
    - fields:
      - name: collnetDirect
        type: "struct {\n    size_t sizePerRank;\n    int nNodes, node;\n  }"
      item_type: union
      name: ncclProxyOpSpecifics
      pos:
        line_end: 51
        line_start: 46
        source_file: /src/nccl/src/include/proxy.h
- function_names: []
  source_file: /src/nccl/src/include/nccl_common.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NCCL_NUM_FUNCTIONS
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/nccl/src/include/nccl_common.h
      type_or_value: 5 // Send/Recv not included for now
    - item_type: preproc_def
      name: NCCL_NUM_ALGORITHMS
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/nccl/src/include/nccl_common.h
      type_or_value: 7 // Tree/Ring/CollNet*/PAT
    - item_type: preproc_def
      name: NCCL_ALGO_UNDEF
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/nccl/src/include/nccl_common.h
      type_or_value: '-1'
    - item_type: preproc_def
      name: NCCL_ALGO_TREE
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/nccl/src/include/nccl_common.h
      type_or_value: '0'
    - item_type: preproc_def
      name: NCCL_ALGO_RING
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/nccl/src/include/nccl_common.h
      type_or_value: '1'
    - item_type: preproc_def
      name: NCCL_ALGO_COLLNET_DIRECT
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/nccl/src/include/nccl_common.h
      type_or_value: '2'
    - item_type: preproc_def
      name: NCCL_ALGO_COLLNET_CHAIN
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/nccl/src/include/nccl_common.h
      type_or_value: '3'
    - item_type: preproc_def
      name: NCCL_ALGO_NVLS
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/nccl/src/include/nccl_common.h
      type_or_value: '4'
    - item_type: preproc_def
      name: NCCL_ALGO_NVLS_TREE
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/nccl/src/include/nccl_common.h
      type_or_value: '5'
    - item_type: preproc_def
      name: NCCL_ALGO_PAT
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/nccl/src/include/nccl_common.h
      type_or_value: '6'
    - item_type: preproc_def
      name: NCCL_NUM_PROTOCOLS
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/nccl/src/include/nccl_common.h
      type_or_value: 3 // Simple/LL/LL128
    - item_type: preproc_def
      name: NCCL_PROTO_UNDEF
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/nccl/src/include/nccl_common.h
      type_or_value: '-1'
    - item_type: preproc_def
      name: NCCL_PROTO_LL
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/nccl/src/include/nccl_common.h
      type_or_value: '0'
    - item_type: preproc_def
      name: NCCL_PROTO_LL128
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/nccl/src/include/nccl_common.h
      type_or_value: '1'
    - item_type: preproc_def
      name: NCCL_PROTO_SIMPLE
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/nccl/src/include/nccl_common.h
      type_or_value: '2'
    - item_type: preproc_def
      name: NCCL_ALGO_PROTO_IGNORE
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/nccl/src/include/nccl_common.h
      type_or_value: '-1.0'
    structs: []
    typedefs:
    - item_type: typedef
      name: ncclDebugLogLevel
      pos:
        line_end: 18
        line_start: 11
        source_file: /src/nccl/src/include/nccl_common.h
    - item_type: typedef
      name: ncclDebugLogSubSys
      pos:
        line_end: 38
        line_start: 20
        source_file: /src/nccl/src/include/nccl_common.h
    - item_type: typedef
      name: (*ncclDebugLogger_t)(ncclDebugLogLevel level, unsigned long flags, const
        char *file, int line, const char *fmt, ...)
      pos:
        line_end: 40
        line_start: 40
        source_file: /src/nccl/src/include/nccl_common.h
      type: void
    - item_type: typedef
      name: (*ncclProfilerCallback_t)(void** eHandle, int type, void* pHandle, int64_t
        pluginId, void* extData)
      pos:
        line_end: 50
        line_start: 50
        source_file: /src/nccl/src/include/nccl_common.h
    - item_type: typedef
      name: ncclFunc_t
      pos:
        line_end: 63
        line_start: 53
        source_file: /src/nccl/src/include/nccl_common.h
    union: []
- function_names: []
  source_file: /src/nccl/src/include/ibvsymbols.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: (*ibv_internal_fork_init)(void)
        type: int
      - name: '** (*ibv_internal_get_device_list)(int *num_devices)'
        type: struct ibv_device
      - name: (*ibv_internal_free_device_list)(struct ibv_device **list)
        type: void
      - name: '* (*ibv_internal_get_device_name)(struct ibv_device *device)'
        type: char
      - name: '* (*ibv_internal_open_device)(struct ibv_device* device)'
        type: struct ibv_context
      - name: (*ibv_internal_close_device)(struct ibv_context *context)
        type: int
      - name: (*ibv_internal_get_async_event)(struct ibv_context *context, struct
          ibv_async_event *event)
        type: int
      - name: (*ibv_internal_ack_async_event)(struct ibv_async_event *event)
        type: void
      - name: (*ibv_internal_query_device)(struct ibv_context *context, struct ibv_device_attr
          *device_attr)
        type: int
      - name: (*ibv_internal_query_port)(struct ibv_context *context, uint8_t port_num,
          struct ibv_port_attr *port_attr)
        type: int
      - name: (*ibv_internal_query_gid)(struct ibv_context *context, uint8_t port_num,
          int index, union ibv_gid *gid)
        type: int
      - name: (*ibv_internal_query_qp)(struct ibv_qp *qp, struct ibv_qp_attr *attr,
          int attr_mask, struct ibv_qp_init_attr *init_attr)
        type: int
      - name: '* (*ibv_internal_alloc_pd)(struct ibv_context *context)'
        type: struct ibv_pd
      - name: (*ibv_internal_dealloc_pd)(struct ibv_pd *pd)
        type: int
      - name: '* (*ibv_internal_reg_mr)(struct ibv_pd *pd, void *addr, size_t length,
          int access)'
        type: struct ibv_mr
      - name: '* (*ibv_internal_reg_mr_iova2)(struct ibv_pd *pd, void *addr, size_t
          length, uint64_t iova, unsigned int access)'
        type: struct ibv_mr
      - name: '* (*ibv_internal_reg_dmabuf_mr)(struct ibv_pd *pd, uint64_t offset,
          size_t length, uint64_t iova, int fd, int access)'
        type: struct ibv_mr
      - name: (*ibv_internal_dereg_mr)(struct ibv_mr *mr)
        type: int
      - name: '* (*ibv_internal_create_cq)(struct ibv_context *context, int cqe, void
          *cq_context, struct ibv_comp_channel *channel, int comp_vector)'
        type: struct ibv_cq
      - name: (*ibv_internal_destroy_cq)(struct ibv_cq *cq)
        type: int
      - name: '* (*ibv_internal_create_qp)(struct ibv_pd *pd, struct ibv_qp_init_attr
          *qp_init_attr)'
        type: struct ibv_qp
      - name: (*ibv_internal_modify_qp)(struct ibv_qp *qp, struct ibv_qp_attr *attr,
          int attr_mask)
        type: int
      - name: (*ibv_internal_destroy_qp)(struct ibv_qp *qp)
        type: int
      - name: '* (*ibv_internal_event_type_str)(enum ibv_event_type event)'
        type: char
      - name: (*ibv_internal_query_ece)(struct ibv_qp *qp, struct ibv_ece *ece)
        type: int
      - name: (*ibv_internal_set_ece)(struct ibv_qp *qp, struct ibv_ece *ece)
        type: int
      item_type: struct
      name: ncclIbvSymbols
      pos:
        line_end: 40
        line_start: 12
        source_file: /src/nccl/src/include/ibvsymbols.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/src/include/profiler.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: initialized
        type: bool
      - name: '* workStarted'
        type: struct ncclDevProfiler
      - name: '* workCompleted'
        type: struct ncclDevProfiler
      - name: workCounter[MAXCHANNELS]
        type: uint64_t
      - name: sendProxyConn[MAXCHANNELS]
        type: struct ncclProxyConnector
      - name: recvProxyConn[MAXCHANNELS]
        type: struct ncclProxyConnector
      item_type: struct
      name: ncclProfilerProxy
      pos:
        line_end: 28
        line_start: 21
        source_file: /src/nccl/src/include/profiler.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/src/include/register.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '* devPeerRmtAddrs'
        type: uintptr_t
      - name: '* hostPeerRmtAddrs'
        type: uintptr_t
      item_type: struct
      name: ncclPeerRegIpcAddr
      pos:
        line_end: 23
        line_start: 20
        source_file: /src/nccl/src/include/register.h
    - fields:
      - name: '* handle'
        type: void
      - name: '* proxyConn'
        type: struct ncclProxyConnector
      - name: '* next'
        type: struct ncclRegNetHandles
      item_type: struct
      name: ncclRegNetHandles
      pos:
        line_end: 29
        line_start: 25
        source_file: /src/nccl/src/include/register.h
    - fields:
      - name: '*next'
        type: struct ncclSymRegTask
      - name: '* buff'
        type: void
      - name: baseSize
        type: size_t
      - name: memHandle
        type: CUmemGenericAllocationHandle
      - name: '* regHandle'
        type: struct ncclReg
      - name: alignment
        type: size_t
      item_type: struct
      name: ncclSymRegTask
      pos:
        line_end: 38
        line_start: 31
        source_file: /src/nccl/src/include/register.h
    - fields:
      - name: begAddr
        type: uintptr_t
      - name: localRefs
        type: int
      - name: graphRefs
        type: int
      - name: state
        type: uint32_t
      - name: '* netHandleHead'
        type: struct ncclRegNetHandles
      - name: regAddr
        type: CUdeviceptr
      - name: regUCSize
        type: size_t
      - name: dev
        type: int
      - name: mcHandle
        type: CUmemGenericAllocationHandle
      - name: caddrs[NCCL_MAX_LOCAL_RANKS]
        type: uintptr_t
      - name: '* collnetHandle'
        type: void
      - name: '* collnetProxyconn'
        type: struct ncclProxyConnector
      - name: regIpcAddrs
        type: struct ncclPeerRegIpcAddr
      - name: '* ipcInfos[NCCL_MAX_LOCAL_RANKS]'
        type: struct ncclIpcRegInfo
      - name: '* baseSymPtr'
        type: void
      - name: symSize
        type: size_t
      - name: winFlags
        type: int
      item_type: struct
      name: ncclReg
      pos:
        line_end: 64
        line_start: 40
        source_file: /src/nccl/src/include/register.h
    - fields:
      - name: '**slots'
        type: struct ncclReg
      - name: capacity
        type: int
      - name: pageSize
        type: uintptr_t
      item_type: struct
      name: ncclRegCache
      pos:
        line_end: 70
        line_start: 66
        source_file: /src/nccl/src/include/register.h
    - fields:
      - name: '* handle'
        type: struct ncclReg
      item_type: struct
      name: ncclWindow
      pos:
        line_end: 74
        line_start: 72
        source_file: /src/nccl/src/include/register.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/src/include/net.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: ncclNetHandle_t[NCCL_NET_HANDLE_MAXSIZE]
      pos:
        line_end: 14
        line_start: 14
        source_file: /src/nccl/src/include/net.h
      type: char
    union: []
- function_names:
  - NVML_STRUCT_VERSION
  - NVML_GPU_FABRIC_HEALTH_GET
  - NVML_GPU_FABRIC_HEALTH_TEST
  source_file: /src/nccl/src/include/nvmlwrap.h
  types:
    enum:
    - enumerators:
      - name: NVML_FEATURE_DISABLED
        value: '0'
      - name: NVML_FEATURE_ENABLED
        value: '1'
      item_type: enum
      name: nvmlEnableState_enum
      pos:
        line_end: 35
        line_start: 31
        source_file: /src/nccl/src/include/nvmlwrap.h
    - enumerators:
      - name: NVML_NVLINK_CAP_P2P_SUPPORTED
        value: '0'
      - name: NVML_NVLINK_CAP_SYSMEM_ATOMICS
        value: '3'
      - name: NVML_NVLINK_CAP_SLI_BRIDGE
        value: '4'
      - name: NVML_NVLINK_CAP_P2P_ATOMICS
        value: '2'
      - name: NVML_NVLINK_CAP_SYSMEM_ACCESS
        value: '1'
      - name: NVML_NVLINK_CAP_VALID
        value: '5'
      - name: NVML_NVLINK_CAP_COUNT
      item_type: enum
      name: nvmlNvLinkCapability_enum
      pos:
        line_end: 47
        line_start: 37
        source_file: /src/nccl/src/include/nvmlwrap.h
    - enumerators:
      - name: NVML_SUCCESS
        value: '0'
      - name: NVML_ERROR_NO_PERMISSION
        value: '4'
      - name: NVML_ERROR_INVALID_ARGUMENT
        value: '2'
      - name: NVML_ERROR_NOT_FOUND
        value: '6'
      - name: NVML_ERROR_INSUFFICIENT_POWER
        value: '8'
      - name: NVML_ERROR_TIMEOUT
        value: '10'
      - name: NVML_ERROR_CORRUPTED_INFOROM
        value: '14'
      - name: NVML_ERROR_LIB_RM_VERSION_MISMATCH
        value: '18'
      - name: NVML_ERROR_LIBRARY_NOT_FOUND
        value: '12'
      - name: NVML_ERROR_RESET_REQUIRED
        value: '16'
      - name: NVML_ERROR_UNKNOWN
        value: '999'
      - name: NVML_ERROR_UNINITIALIZED
        value: '1'
      - name: NVML_ERROR_NOT_SUPPORTED
        value: '3'
      - name: NVML_ERROR_ALREADY_INITIALIZED
        value: '5'
      - name: NVML_ERROR_INSUFFICIENT_SIZE
        value: '7'
      - name: NVML_ERROR_DRIVER_NOT_LOADED
        value: '9'
      - name: NVML_ERROR_GPU_IS_LOST
        value: '15'
      - name: NVML_ERROR_FUNCTION_NOT_FOUND
        value: '13'
      - name: NVML_ERROR_OPERATING_SYSTEM
        value: '17'
      - name: NVML_ERROR_IRQ_ISSUE
        value: '11'
      - name: NVML_ERROR_IN_USE
        value: '19'
      item_type: enum
      name: nvmlReturn_enum
      pos:
        line_end: 72
        line_start: 49
        source_file: /src/nccl/src/include/nvmlwrap.h
    - enumerators:
      - name: NVML_P2P_STATUS_OK
        value: '0'
      - name: NVML_P2P_STATUS_GPU_NOT_SUPPORTED
      - name: NVML_P2P_STATUS_IOH_TOPOLOGY_NOT_SUPPORTED
      - name: NVML_P2P_STATUS_DISABLED_BY_REGKEY
      - name: NVML_P2P_STATUS_CHIPSET_NOT_SUPPORED
      - name: NVML_P2P_STATUS_NOT_SUPPORTED
      - name: NVML_P2P_STATUS_UNKNOWN
      item_type: enum
      name: nvmlGpuP2PStatus_enum
      pos:
        line_end: 102
        line_start: 93
        source_file: /src/nccl/src/include/nvmlwrap.h
    - enumerators:
      - name: NVML_P2P_CAPS_INDEX_READ
        value: '0'
      - name: NVML_P2P_CAPS_INDEX_NVLINK
      - name: NVML_P2P_CAPS_INDEX_ATOMICS
      - name: NVML_P2P_CAPS_INDEX_WRITE
      - name: NVML_P2P_CAPS_INDEX_PROP
      - name: NVML_P2P_CAPS_INDEX_UNKNOWN
      item_type: enum
      name: nvmlGpuP2PCapsIndex_enum
      pos:
        line_end: 113
        line_start: 105
        source_file: /src/nccl/src/include/nvmlwrap.h
    - enumerators:
      - name: NVML_VALUE_TYPE_DOUBLE
        value: '0'
      - name: NVML_VALUE_TYPE_UNSIGNED_LONG_LONG
        value: '3'
      - name: NVML_VALUE_TYPE_SIGNED_LONG_LONG
        value: '4'
      - name: NVML_VALUE_TYPE_UNSIGNED_INT
        value: '1'
      - name: NVML_VALUE_TYPE_UNSIGNED_LONG
        value: '2'
      - name: NVML_VALUE_TYPE_COUNT
      item_type: enum
      name: nvmlValueType_enum
      pos:
        line_end: 128
        line_start: 118
        source_file: /src/nccl/src/include/nvmlwrap.h
    preproc_defs:
    - item_type: preproc_def
      name: NCCL_NVML_DIRECT
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/nccl/src/include/nvmlwrap.h
      type_or_value: '0'
    - item_type: preproc_def
      name: NVML_API_VERSION
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/nccl/src/include/nvmlwrap.h
      type_or_value: '12'
    - item_type: preproc_def
      name: NVML_DEVICE_PCI_BUS_ID_BUFFER_SIZE
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/nccl/src/include/nvmlwrap.h
      type_or_value: '16'
    - item_type: preproc_def
      name: NVML_FI_DEV_NVLINK_SPEED_MBPS_COMMON
      pos:
        line_end: 151
        line_start: 150
        source_file: /src/nccl/src/include/nvmlwrap.h
      type_or_value: 90  //!< Common NVLink Speed in MBps for active links
    - item_type: preproc_def
      name: NVML_FI_DEV_NVLINK_LINK_COUNT
      pos:
        line_end: 152
        line_start: 151
        source_file: /src/nccl/src/include/nvmlwrap.h
      type_or_value: 91  //!< Number of NVLinks present on the device
    - item_type: preproc_def
      name: NVML_FI_DEV_NVLINK_REMOTE_NVLINK_ID
      pos:
        line_end: 159
        line_start: 158
        source_file: /src/nccl/src/include/nvmlwrap.h
      type_or_value: 146 //!< Remote device NVLink ID
    - item_type: preproc_def
      name: NVML_FI_DEV_NVSWITCH_CONNECTED_LINK_COUNT
      pos:
        line_end: 164
        line_start: 163
        source_file: /src/nccl/src/include/nvmlwrap.h
      type_or_value: 147  //!< Number of NVLinks connected to NVSwitch
    - item_type: preproc_def
      name: NVML_FI_DEV_NVLINK_GET_SPEED
      pos:
        line_end: 166
        line_start: 165
        source_file: /src/nccl/src/include/nvmlwrap.h
      type_or_value: '164'
    - item_type: preproc_def
      name: NVML_FI_DEV_NVLINK_GET_STATE
      pos:
        line_end: 167
        line_start: 166
        source_file: /src/nccl/src/include/nvmlwrap.h
      type_or_value: '165'
    - item_type: preproc_def
      name: NVML_FI_DEV_NVLINK_GET_VERSION
      pos:
        line_end: 168
        line_start: 167
        source_file: /src/nccl/src/include/nvmlwrap.h
      type_or_value: '166'
    - item_type: preproc_def
      name: NVML_FI_DEV_C2C_LINK_COUNT
      pos:
        line_end: 170
        line_start: 169
        source_file: /src/nccl/src/include/nvmlwrap.h
      type_or_value: 170 //!< Number of C2C Links present on the device
    - item_type: preproc_def
      name: NVML_FI_DEV_C2C_LINK_GET_STATUS
      pos:
        line_end: 171
        line_start: 170
        source_file: /src/nccl/src/include/nvmlwrap.h
      type_or_value: 171 //!< C2C Link Status 0=INACTIVE 1=ACTIVE
    - item_type: preproc_def
      name: NVML_FI_DEV_C2C_LINK_GET_MAX_BW
      pos:
        line_end: 172
        line_start: 171
        source_file: /src/nccl/src/include/nvmlwrap.h
      type_or_value: 172 //!< C2C Link Speed in MBps for active links
    - item_type: preproc_def
      name: NVML_FI_MAX
      pos:
        line_end: 174
        line_start: 173
        source_file: /src/nccl/src/include/nvmlwrap.h
      type_or_value: 173 //!< One greater than the largest field ID defined above
    - item_type: preproc_def
      name: NVML_GPU_FABRIC_UUID_LEN
      pos:
        line_end: 191
        line_start: 190
        source_file: /src/nccl/src/include/nvmlwrap.h
      type_or_value: '16'
    - item_type: preproc_def
      name: NVML_GPU_FABRIC_STATE_NOT_SUPPORTED
      pos:
        line_end: 193
        line_start: 192
        source_file: /src/nccl/src/include/nvmlwrap.h
      type_or_value: '0'
    - item_type: preproc_def
      name: NVML_GPU_FABRIC_STATE_NOT_STARTED
      pos:
        line_end: 194
        line_start: 193
        source_file: /src/nccl/src/include/nvmlwrap.h
      type_or_value: '1'
    - item_type: preproc_def
      name: NVML_GPU_FABRIC_STATE_IN_PROGRESS
      pos:
        line_end: 195
        line_start: 194
        source_file: /src/nccl/src/include/nvmlwrap.h
      type_or_value: '2'
    - item_type: preproc_def
      name: NVML_GPU_FABRIC_STATE_COMPLETED
      pos:
        line_end: 196
        line_start: 195
        source_file: /src/nccl/src/include/nvmlwrap.h
      type_or_value: '3'
    - item_type: preproc_def
      name: NVML_GPU_FABRIC_HEALTH_MASK_DEGRADED_BW_NOT_SUPPORTED
      pos:
        line_end: 207
        line_start: 206
        source_file: /src/nccl/src/include/nvmlwrap.h
      type_or_value: '0'
    - item_type: preproc_def
      name: NVML_GPU_FABRIC_HEALTH_MASK_DEGRADED_BW_TRUE
      pos:
        line_end: 208
        line_start: 207
        source_file: /src/nccl/src/include/nvmlwrap.h
      type_or_value: '1'
    - item_type: preproc_def
      name: NVML_GPU_FABRIC_HEALTH_MASK_DEGRADED_BW_FALSE
      pos:
        line_end: 209
        line_start: 208
        source_file: /src/nccl/src/include/nvmlwrap.h
      type_or_value: '2'
    - item_type: preproc_def
      name: NVML_GPU_FABRIC_HEALTH_MASK_SHIFT_DEGRADED_BW
      pos:
        line_end: 211
        line_start: 210
        source_file: /src/nccl/src/include/nvmlwrap.h
      type_or_value: '0'
    - item_type: preproc_def
      name: NVML_GPU_FABRIC_HEALTH_MASK_WIDTH_DEGRADED_BW
      pos:
        line_end: 212
        line_start: 211
        source_file: /src/nccl/src/include/nvmlwrap.h
      type_or_value: '0x11'
    - item_type: preproc_def
      name: nvmlGpuFabricInfo_v2
      pos:
        line_end: 254
        line_start: 253
        source_file: /src/nccl/src/include/nvmlwrap.h
      type_or_value: NVML_STRUCT_VERSION(GpuFabricInfo, 2)
    - item_type: preproc_def
      name: NVML_CC_SYSTEM_FEATURE_DISABLED
      pos:
        line_end: 259
        line_start: 258
        source_file: /src/nccl/src/include/nvmlwrap.h
      type_or_value: '0'
    - item_type: preproc_def
      name: NVML_CC_SYSTEM_FEATURE_ENABLED
      pos:
        line_end: 260
        line_start: 259
        source_file: /src/nccl/src/include/nvmlwrap.h
      type_or_value: '1'
    - item_type: preproc_def
      name: NVML_CC_SYSTEM_MULTIGPU_NONE
      pos:
        line_end: 271
        line_start: 270
        source_file: /src/nccl/src/include/nvmlwrap.h
      type_or_value: '0'
    - item_type: preproc_def
      name: NVML_CC_SYSTEM_MULTIGPU_PROTECTED_PCIE
      pos:
        line_end: 272
        line_start: 271
        source_file: /src/nccl/src/include/nvmlwrap.h
      type_or_value: '1'
    - item_type: preproc_def
      name: nvmlSystemConfComputeSettings_v1
      pos:
        line_end: 286
        line_start: 285
        source_file: /src/nccl/src/include/nvmlwrap.h
      type_or_value: NVML_STRUCT_VERSION(SystemConfComputeSettings, 1)
    structs:
    - fields:
      - name: busId[NVML_DEVICE_PCI_BUS_ID_BUFFER_SIZE]
        type: char
      - name: domain
        type: unsigned int
      - name: bus
        type: unsigned int
      - name: device
        type: unsigned int
      - name: pciDeviceId
        type: unsigned int
      - name: pciSubSystemId
        type: unsigned int
      - name: reserved0
        type: unsigned int
      - name: reserved1
        type: unsigned int
      - name: reserved2
        type: unsigned int
      - name: reserved3
        type: unsigned int
      item_type: struct
      name: nvmlPciInfo_st
      pos:
        line_end: 90
        line_start: 74
        source_file: /src/nccl/src/include/nvmlwrap.h
    - fields:
      - name: fieldId
        type: unsigned int
      - name: scopeId
        type: unsigned int
      - name: timestamp
        type: long long
      - name: latencyUsec
        type: long long
      - name: valueType
        type: nvmlValueType_t
      - name: nvmlReturn
        type: nvmlReturn_t
      - name: value
        type: nvmlValue_t
      item_type: struct
      name: nvmlFieldValue_st
      pos:
        line_end: 187
        line_start: 178
        source_file: /src/nccl/src/include/nvmlwrap.h
    - fields:
      - name: clusterUuid[NVML_GPU_FABRIC_UUID_LEN]
        type: unsigned char
      - name: status
        type: nvmlReturn_t
      - name: cliqueId
        type: unsigned int
      - name: state
        type: nvmlGpuFabricState_t
      item_type: struct
      name: nvmlGpuFabricInfo_t
      pos:
        line_end: 204
        line_start: 199
        source_file: /src/nccl/src/include/nvmlwrap.h
    - fields:
      - name: version
        type: unsigned int
      - name: clusterUuid[NVML_GPU_FABRIC_UUID_LEN]
        type: unsigned char
      - name: status
        type: nvmlReturn_t
      - name: cliqueId
        type: unsigned int
      - name: state
        type: nvmlGpuFabricState_t
      - name: healthMask
        type: unsigned int
      item_type: struct
      name: nvmlGpuFabricInfo_v2_t
      pos:
        line_end: 246
        line_start: 239
        source_file: /src/nccl/src/include/nvmlwrap.h
    - fields:
      - name: environment
        type: unsigned int
      - name: ccFeature
        type: unsigned int
      - name: devToolsMode
        type: unsigned int
      item_type: struct
      name: nvmlConfComputeSystemState_st
      pos:
        line_end: 265
        line_start: 261
        source_file: /src/nccl/src/include/nvmlwrap.h
    - fields:
      - name: version
        type: unsigned int
      - name: environment
        type: unsigned int
      - name: ccFeature
        type: unsigned int
      - name: devToolsMode
        type: unsigned int
      - name: multiGpuMode
        type: unsigned int
      item_type: struct
      name: nvmlSystemConfComputeSettings_v1_t
      pos:
        line_end: 282
        line_start: 276
        source_file: /src/nccl/src/include/nvmlwrap.h
    - fields:
      - name: handle
        type: nvmlDevice_t
      - name: computeCapabilityMajor
        type: int
      item_type: struct
      name: ncclNvmlDeviceInfo
      pos:
        line_end: 294
        line_start: 291
        source_file: /src/nccl/src/include/nvmlwrap.h
    - fields:
      - name: p2pStatusRead
        type: nvmlGpuP2PStatus_t
      item_type: struct
      name: ncclNvmlDevicePairInfo
      pos:
        line_end: 297
        line_start: 295
        source_file: /src/nccl/src/include/nvmlwrap.h
    - fields:
      - name: CCEnabled
        type: bool
      - name: multiGpuProtectedPCIE
        type: bool
      item_type: struct
      name: ncclNvmlCCStatus
      pos:
        line_end: 305
        line_start: 302
        source_file: /src/nccl/src/include/nvmlwrap.h
    typedefs:
    - item_type: typedef
      name: nvmlEnableState_t
      pos:
        line_end: 35
        line_start: 31
        source_file: /src/nccl/src/include/nvmlwrap.h
    - item_type: typedef
      name: nvmlNvLinkCapability_t
      pos:
        line_end: 47
        line_start: 37
        source_file: /src/nccl/src/include/nvmlwrap.h
    - item_type: typedef
      name: nvmlReturn_t
      pos:
        line_end: 72
        line_start: 49
        source_file: /src/nccl/src/include/nvmlwrap.h
    - item_type: typedef
      name: nvmlGpuP2PStatus_t
      pos:
        line_end: 102
        line_start: 93
        source_file: /src/nccl/src/include/nvmlwrap.h
    - item_type: typedef
      name: nvmlGpuP2PCapsIndex_t
      pos:
        line_end: 113
        line_start: 105
        source_file: /src/nccl/src/include/nvmlwrap.h
    - item_type: typedef
      name: nvmlValueType_t
      pos:
        line_end: 128
        line_start: 118
        source_file: /src/nccl/src/include/nvmlwrap.h
    - item_type: typedef
      name: nvmlGpuFabricState_t
      pos:
        line_end: 197
        line_start: 197
        source_file: /src/nccl/src/include/nvmlwrap.h
      type: unsigned char
    - item_type: typedef
      name: nvmlGpuFabricInfoV_t
      pos:
        line_end: 248
        line_start: 248
        source_file: /src/nccl/src/include/nvmlwrap.h
    - item_type: typedef
      name: nvmlSystemConfComputeSettings_t
      pos:
        line_end: 284
        line_start: 284
        source_file: /src/nccl/src/include/nvmlwrap.h
    union:
    - fields:
      - name: dVal
        type: double
      - name: uiVal
        type: unsigned int
      - name: ulVal
        type: unsigned long
      - name: ullVal
        type: unsigned long long
      - name: sllVal
        type: signed long long
      item_type: union
      name: nvmlValue_st
      pos:
        line_end: 141
        line_start: 134
        source_file: /src/nccl/src/include/nvmlwrap.h
- function_names:
  - ncclGroupStartInternal
  - ncclGroupErrCheck
  - ncclGroupCommJoin
  - ncclGroupCommPreconnect
  - ncclGroupCommLeave
  source_file: /src/nccl/src/include/group.h
  types:
    enum:
    - enumerators:
      - name: ncclGroupJobRunning
        value: '0'
      - name: ncclGroupJobDone
        value: '1'
      - name: ncclGroupJobJoined
        value: '2'
      item_type: enum
      name: ncclGroupJobState
      pos:
        line_end: 29
        line_start: 25
        source_file: /src/nccl/src/include/group.h
    preproc_defs: []
    structs:
    - fields:
      - name: '* next'
        type: struct ncclAsyncJob
      - name: thread
        type: pthread_t
      - name: result
        type: ncclResult_t
      - name: (*func)(struct ncclAsyncJob*)
        type: ncclResult_t
      - name: (*undo)(struct ncclAsyncJob*)
        type: void
      - name: (*destructor)(void*)
        type: void
      - name: state
        type: ncclGroupJobState_t
      - name: '* abortFlag'
        type: uint32_t
      - name: '* abortFlagDev'
        type: uint32_t
      - name: '* childAbortFlag'
        type: uint32_t
      - name: '* childAbortFlagDev'
        type: uint32_t
      - name: comm
        type: ncclComm_t
      - name: destroyFlag
        type: int
      item_type: struct
      name: ncclAsyncJob
      pos:
        line_end: 45
        line_start: 31
        source_file: /src/nccl/src/include/group.h
    - fields:
      - name: base
        type: struct ncclAsyncJob
      - name: groupRefCount
        type: int
      - name: nonBlockingInit
        type: bool
      - name: joined
        type: bool
      - name: '*groupCommHead[ncclGroupTaskTypeNum]'
        type: struct ncclComm
      - name: '*groupCommPreconnectHead'
        type: struct ncclComm
      - name: groupError
        type: ncclResult_t
      - name: abortFlag
        type: bool
      - name: asyncJobs
        type: struct ncclIntruQueue<struct ncclAsyncJob, &ncclAsyncJob::next>
      item_type: struct
      name: ncclGroupJob
      pos:
        line_end: 64
        line_start: 54
        source_file: /src/nccl/src/include/group.h
    typedefs:
    - item_type: typedef
      name: (*ncclInitFunc_t)(ncclComm_t* newcomm, int ndev, ncclUniqueId commId,
        int myrank, int cudaDev)
      pos:
        line_end: 21
        line_start: 21
        source_file: /src/nccl/src/include/group.h
    - item_type: typedef
      name: ncclGroupJobState_t
      pos:
        line_end: 29
        line_start: 25
        source_file: /src/nccl/src/include/group.h
    union: []
- function_names:
  - ncclTaskCollSorterInsert
  - ncclTaskCollSorterEmpty
  - ncclTaskCollSorterDequeueAll
  - ncclCommPollCallbacks
  - ncclCommPollEventCallbacks
  - ncclCommIntraBarrierIn
  - ncclCommIntraBarrierOut
  - ncclUserRedOpMangle
  source_file: /src/nccl/src/include/comm.h
  types:
    enum:
    - enumerators:
      - name: ThreadStart
      - name: ThreadStop
      item_type: enum
      name: helperThreadState
      pos:
        line_end: 67
        line_start: 67
        source_file: /src/nccl/src/include/comm.h
    - enumerators:
      - name: ncclGroupTaskTypeCollective
        value: '0'
      - name: ncclGroupTaskTypeNum
        value: '2'
      - name: ncclGroupTaskTypeSymRegister
        value: '1'
      item_type: enum
      name: ncclGroupTaskType
      pos:
        line_end: 417
        line_start: 413
        source_file: /src/nccl/src/include/comm.h
    - enumerators:
      - name: ncclLaunchModeInvalid
        value: '0'
      - name: ncclLaunchModeParallel
      - name: ncclLaunchModeGroup
      item_type: enum
      name: ncclLaunchMode
      pos:
        line_end: 651
        line_start: 647
        source_file: /src/nccl/src/include/comm.h
    preproc_defs:
    - item_type: preproc_def
      name: CACHE_LINE_SIZE
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/nccl/src/include/comm.h
      type_or_value: '128'
    - item_type: preproc_def
      name: MEM_ALIGN
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/nccl/src/include/comm.h
      type_or_value: '4096'
    - item_type: preproc_def
      name: CUDA_IPC_MIN
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/nccl/src/include/comm.h
      type_or_value: 2097152UL
    - item_type: preproc_def
      name: NCCL_LL_THREAD_THRESHOLD
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/nccl/src/include/comm.h
      type_or_value: '8'
    - item_type: preproc_def
      name: NCCL_LL128_THREAD_THRESHOLD
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/nccl/src/include/comm.h
      type_or_value: '8'
    - item_type: preproc_def
      name: NCCL_SIMPLE_THREAD_THRESHOLD
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/nccl/src/include/comm.h
      type_or_value: '64'
    - item_type: preproc_def
      name: NCCL_IPC_POOL_SIZE
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/nccl/src/include/comm.h
      type_or_value: (2*NCCL_MAX_LOCAL_RANKS*NCCL_MAX_OPS)
    - item_type: preproc_def
      name: NCCL_MAGIC
      pos:
        line_end: 412
        line_start: 411
        source_file: /src/nccl/src/include/comm.h
      type_or_value: 0x0280028002800280 // Nickel atomic number is 28.
    structs:
    - fields:
      - name: '*func'
        type: void
      - name: gridDim
        type: dim3
      - name: blockDim
        type: dim3
      - name: '**args'
        type: void
      - name: sharedMem
        type: size_t
      - name: stream
        type: cudaStream_t
      item_type: struct
      name: cudaLaunchParams
      pos:
        line_end: 29
        line_start: 22
        source_file: /src/nccl/src/include/comm.h
    - fields: []
      item_type: struct
      name: ncclSendMem
      pos:
        line_end: 53
        line_start: 41
        source_file: /src/nccl/src/include/comm.h
    - fields: []
      item_type: struct
      name: ncclRecvMem
      pos:
        line_end: 65
        line_start: 55
        source_file: /src/nccl/src/include/comm.h
    - fields:
      - name: '* comm'
        type: ncclComm
      - name: threadLock
        type: pthread_mutex_t
      - name: threadCond
        type: pthread_cond_t
      - name: threadState
        type: enum helperThreadState
      - name: '* ipcBases[NCCL_IPC_POOL_SIZE]'
        type: void
      - name: ipcTail
        type: int
      - name: ipcHead
        type: int
      item_type: struct
      name: ncclGraphHelperResources
      pos:
        line_end: 79
        line_start: 71
        source_file: /src/nccl/src/include/comm.h
    - fields:
      - name: freeNext
        type: int
      - name: datatype
        type: ncclDataType_t
      - name: opFull
        type: ncclDevRedOpFull
      item_type: struct
      name: ncclUserRedOp
      pos:
        line_end: 85
        line_start: 81
        source_file: /src/nccl/src/include/comm.h
    - fields:
      - name: localRanks
        type: int
      - name: '* localRankToRank'
        type: int
      item_type: struct
      name: ncclNodeRanks
      pos:
        line_end: 90
        line_start: 87
        source_file: /src/nccl/src/include/comm.h
    - fields:
      - name: id
        type: int
      - name: size
        type: int
      - name: '*ranks'
        type: int
      item_type: struct
      name: cliqueInfo
      pos:
        line_end: 96
        line_start: 92
        source_file: /src/nccl/src/include/comm.h
    - fields:
      - name: '* next'
        type: struct ncclDestructor
      - name: '* obj'
        type: void
      - name: (*fn)(struct ncclDestructor* me)
        type: ncclResult_t
      item_type: struct
      name: ncclDestructor
      pos:
        line_end: 102
        line_start: 98
        source_file: /src/nccl/src/include/comm.h
    - fields:
      - name: '* next'
        type: struct ncclCommCallback
      - name: (*fn)(struct ncclComm* comm, struct ncclCommCallback* cb)
        type: ncclResult_t
      item_type: struct
      name: ncclCommCallback
      pos:
        line_end: 107
        line_start: 104
        source_file: /src/nccl/src/include/comm.h
    - fields:
      - name: '* next'
        type: struct ncclCommEventCallback
      - name: event
        type: cudaEvent_t
      - name: (*fn)(struct ncclComm* comm, struct ncclCommEventCallback* cb)
        type: ncclResult_t
      item_type: struct
      name: ncclCommEventCallback
      pos:
        line_end: 112
        line_start: 108
        source_file: /src/nccl/src/include/comm.h
    - fields:
      - name: refCount
        type: int
      - name: '* owner'
        type: struct ncclComm
      - name: '* peers[MAXCHANNELS]'
        type: struct ncclChannelPeer
      - name: '* devPeers[MAXCHANNELS]'
        type: struct ncclDevChannelPeer
      - name: p2pOpCount[MAXCHANNELS]
        type: uint64_t
      - name: collOpCount
        type: uint64_t
      - name: tpNRanks
        type: int
      - name: tpNLocalRanks
        type: int
      - name: tpNChannels
        type: int
      - name: tpP2pNChannels
        type: int
      - name: tpP2pChunkSize
        type: int
      - name: magic
        type: uint64_t
      - name: '* tpRankToLocalRank'
        type: int
      - name: deviceStream
        type: struct ncclStrongStream
      - name: persistentRefs
        type: int
      - name: launchEvent
        type: cudaEvent_t
      - name: '* proxyState'
        type: struct ncclProxyState
      item_type: struct
      name: ncclSharedResources
      pos:
        line_end: 139
        line_start: 114
        source_file: /src/nccl/src/include/comm.h
    - fields:
      - name: '** peers'
        type: struct ncclChannelPeer
      - name: '** devPeers'
        type: struct ncclDevChannelPeer
      - name: '** devPeersHostPtr'
        type: struct ncclDevChannelPeer
      - name: ring
        type: struct ncclRing
      - name: '* devRingUserRanks'
        type: int
      - name: tree
        type: struct ncclTree
      - name: collnetChain
        type: struct ncclTree
      - name: collnetDirect
        type: struct ncclDirect
      - name: nvls
        type: struct ncclNvls
      - name: id
        type: int
      - name: workFifoProduced
        type: uint32_t
      - name: '* collnetPeers'
        type: struct ncclChannelPeer
      - name: '* collnetDevPeers'
        type: struct ncclDevChannelPeer
      - name: '* nvlsPeers'
        type: struct ncclChannelPeer
      - name: '* nvlsDevPeers'
        type: struct ncclDevChannelPeer
      item_type: struct
      name: ncclChannel
      pos:
        line_end: 163
        line_start: 141
        source_file: /src/nccl/src/include/comm.h
    - fields:
      - name: '* next'
        type: struct ncclWorkBatchList
      - name: batch
        type: struct ncclDevWorkBatch
      item_type: struct
      name: ncclWorkBatchList
      pos:
        line_end: 168
        line_start: 165
        source_file: /src/nccl/src/include/comm.h
    - fields:
      - name: '* next'
        type: struct ncclWorkList
      - name: workType
        type: enum ncclDevWorkType
      - name: size
        type: int
      item_type: struct
      name: ncclWorkList
      pos:
        line_end: 174
        line_start: 169
        source_file: /src/nccl/src/include/comm.h
    - fields:
      - name: '*next'
        type: struct ncclCollnetHandleList
      - name: '* collnetHandle'
        type: void
      - name: size
        type: size_t
      - name: '* buffer'
        type: void
      - name: '* proxyconn'
        type: struct ncclProxyConnector
      item_type: struct
      name: ncclCollnetHandleList
      pos:
        line_end: 182
        line_start: 176
        source_file: /src/nccl/src/include/comm.h
    - fields:
      - name: '* next'
        type: struct ncclTaskColl
      - name: func
        type: ncclFunc_t
      - name: '* sendbuff'
        type: void
      - name: '* recvbuff'
        type: void
      - name: count
        type: size_t
      - name: root
        type: int
      - name: datatype
        type: ncclDataType_t
      - name: opHost
        type: ncclRedOp_t
      - name: opDev
        type: struct ncclDevRedOpFull
      - name: chunkSteps
        type: int
      - name: trafficBytes
        type: size_t
      - name: nMaxChannels
        type: int32_t
      - name: nWarps
        type: int32_t
      - name: algorithm
        type: int32_t
      - name: isCollnet
        type: uint32_t
      - name: devFuncId
        type: uint32_t
      - name: regBufType
        type: int
      - name: nCleanupQueueElts
        type: int
      - name: '* sendMhandle'
        type: void
      - name: '* recvMhandle'
        type: void
      - name: '** sendNetHandles'
        type: void
      - name: '** recvNetHandles'
        type: void
      - name: '** srecvNetHandles'
        type: void
      - name: sendbuffOffset
        type: uintptr_t
      - name: recvbuffOffset
        type: uintptr_t
      - name: '* sendbuffRmtAddrs'
        type: uintptr_t
      - name: '* recvbuffRmtAddrs'
        type: uintptr_t
      - name: eActivationMask
        type: int
      - name: '* eventHandle'
        type: void
      - name: nChannels
        type: uint8_t
      item_type: struct
      name: ncclTaskColl
      pos:
        line_end: 221
        line_start: 184
        source_file: /src/nccl/src/include/comm.h
    - fields:
      - name: '* next'
        type: struct ncclTaskP2p
      - name: func
        type: ncclFunc_t
      - name: '* buff'
        type: void
      - name: count
        type: size_t
      - name: datatype
        type: ncclDataType_t
      - name: root
        type: int
      - name: bytes
        type: size_t
      - name: eActivationMask
        type: int
      - name: '* eventHandle'
        type: void
      - name: nChannels
        type: uint8_t
      item_type: struct
      name: ncclTaskP2p
      pos:
        line_end: 235
        line_start: 222
        source_file: /src/nccl/src/include/comm.h
    - fields:
      - name: reclaimer
        type: struct ncclCommCallback
      - name: '* comm'
        type: struct ncclComm
      - name: '* next'
        type: struct ncclKernelPlan
      - name: persistent
        type: bool
      - name: isHostCbEnq
        type: bool
      - name: isSymColl
        type: bool
      - name: workStorageType
        type: enum ncclDevWorkStorageType
      - name: kernelSpecialized
        type: bool
      - name: '* kernelFn'
        type: void
      - name: kernelArgsSize
        type: size_t
      - name: channelMask
        type: uint64_t
      - name: hasProxyOps
        type: bool
      - name: threadPerBlock
        type: int
      - name: collOpCount
        type: int
      - name: nWorkBatches
        type: int
      - name: workBytes
        type: size_t
      - name: workQueue
        type: struct ncclIntruQueue<struct ncclWorkList, &ncclWorkList::next>
      - name: cleanupQueue
        type: struct ncclIntruQueue<struct ncclCommCallback, &ncclCommCallback::next>
      - name: '* workBufPersistent'
        type: void
      - name: p2pTaskQueue
        type: struct ncclIntruQueue<struct ncclTaskP2p, &ncclTaskP2p::next>
      - name: collTaskQueue
        type: struct ncclIntruQueue<struct ncclTaskColl, &ncclTaskColl::next>
      - name: proxyOpQueue
        type: struct ncclIntruQueue<struct ncclProxyOp, &ncclProxyOp::enqNext>
      - name: '* groupEventHandle'
        type: void
      item_type: struct
      name: ncclKernelPlan
      pos:
        line_end: 273
        line_start: 237
        source_file: /src/nccl/src/include/comm.h
    - fields:
      - name: UnitLog2
        type: int
      - name: UnitSize
        type: size_t
      - name: MaxLog2
        type: int
      - name: MaxSize
        type: size_t
      - name: BitsPerPow2
        type: int
      - name: BinsPerPow2
        type: int
      - name: BinCount
        type: int
      - name: '* head'
        type: struct ncclTaskColl
      - name: '* tail'
        type: struct ncclTaskColl
      - name: binEdge
        type: int
      - name: '** bins[BinCount]'
        type: struct ncclTaskColl
      item_type: struct
      name: ncclTaskCollSorter
      pos:
        line_end: 298
        line_start: 280
        source_file: /src/nccl/src/include/comm.h
    - fields:
      - name: '*next'
        type: struct ncclCudaStreamList
      - name: stream
        type: cudaStream_t
      item_type: struct
      name: ncclCudaStreamList
      pos:
        line_end: 347
        line_start: 344
        source_file: /src/nccl/src/include/comm.h
    - fields:
      - name: collSorter
        type: struct ncclTaskCollSorter
      - name: '* peers'
        type: struct Peer
      - name: nTasksColl
        type: int
      - name: persistent
        type: bool
      - name: isSymColl
        type: bool
      - name: '* streams'
        type: struct ncclCudaStreamList
      - name: streamRecent
        type: cudaStream_t
      - name: capturingGraph
        type: struct ncclCudaGraph
      - name: collTaskQueue
        type: struct ncclIntruQueue<struct ncclTaskColl, &ncclTaskColl::next>
      - name: collWorkQueue
        type: struct ncclIntruQueue<struct ncclWorkList, &ncclWorkList::next>
      - name: tmpCollWorkQueue
        type: struct ncclIntruQueue<struct ncclWorkList, &ncclWorkList::next>
      - name: collCleanupQueue
        type: struct ncclIntruQueue<struct ncclCommCallback, &ncclCommCallback::next>
      - name: wipPlan
        type: "struct WipPlan {\n    struct Channel {\n      struct {\n        int
          workBytes; // Sum size of work metadata referenced by this batch.\n        int
          nP2ps; // Number of p2p works in this batch\n        int p2pRounds[NCCL_MAX_DEV_WORK_P2P_PER_BATCH];
          // which rounds are present in this batch.\n      } wipBatch; // work-in-progress
          batch which will be next tail of workBatchQueue\n      int nWorkBatchesP2p;
          // number of p2p batches for this channel.\n      struct ncclIntruQueue<struct
          ncclWorkBatchList, &ncclWorkBatchList::next> workBatchQueue;\n      struct
          ncclIntruQueue<struct ncclProxyOp, &ncclProxyOp::enqNext> proxyOpQueue;\n
          \   } channels[MAXCHANNELS];\n  }"
      - name: planQueue
        type: struct ncclIntruQueue<struct ncclKernelPlan, &ncclKernelPlan::next>
      - name: '* unlaunchedPlansHead'
        type: struct ncclKernelPlan
      item_type: struct
      name: ncclKernelPlanner
      pos:
        line_end: 409
        line_start: 349
        source_file: /src/nccl/src/include/comm.h
    - fields:
      - name: sendSeen
        type: bool
      - name: sendQueue
        type: struct ncclIntruQueue<struct ncclTaskP2p, &ncclTaskP2p::next>
      - name: recvQueue
        type: struct ncclIntruQueue<struct ncclTaskP2p, &ncclTaskP2p::next>
      item_type: struct
      name: Peer
      pos:
        line_end: 358
        line_start: 354
        source_file: /src/nccl/src/include/comm.h
    - fields:
      - name: channels[MAXCHANNELS]
        type: "struct Channel {\n      struct {\n        int workBytes; // Sum size
          of work metadata referenced by this batch.\n        int nP2ps; // Number
          of p2p works in this batch\n        int p2pRounds[NCCL_MAX_DEV_WORK_P2P_PER_BATCH];
          // which rounds are present in this batch.\n      } wipBatch; // work-in-progress
          batch which will be next tail of workBatchQueue\n      int nWorkBatchesP2p;
          // number of p2p batches for this channel.\n      struct ncclIntruQueue<struct
          ncclWorkBatchList, &ncclWorkBatchList::next> workBatchQueue;\n      struct
          ncclIntruQueue<struct ncclProxyOp, &ncclProxyOp::enqNext> proxyOpQueue;\n
          \   }"
      item_type: struct
      name: WipPlan
      pos:
        line_end: 399
        line_start: 388
        source_file: /src/nccl/src/include/comm.h
    - fields:
      - name: wipBatch
        type: "struct {\n        int workBytes; // Sum size of work metadata referenced
          by this batch.\n        int nP2ps; // Number of p2p works in this batch\n
          \       int p2pRounds[NCCL_MAX_DEV_WORK_P2P_PER_BATCH]; // which rounds
          are present in this batch.\n      }"
      - name: nWorkBatchesP2p
        type: int
      - name: workBatchQueue
        type: struct ncclIntruQueue<struct ncclWorkBatchList, &ncclWorkBatchList::next>
      - name: proxyOpQueue
        type: struct ncclIntruQueue<struct ncclProxyOp, &ncclProxyOp::enqNext>
      item_type: struct
      name: Channel
      pos:
        line_end: 398
        line_start: 389
        source_file: /src/nccl/src/include/comm.h
    - fields:
      - name: startMagic
        type: uint64_t
      - name: memPermanent
        type: struct ncclMemoryStack
      - name: '* destructorHead'
        type: struct ncclDestructor
      - name: '* context'
        type: struct ncclCudaContext
      - name: '* sharedRes'
        type: struct ncclSharedResources
      - name: '* topParentRanks'
        type: int
      - name: '* topParentLocalRanks'
        type: int
      - name: channels[MAXCHANNELS]
        type: struct ncclChannel
      - name: '* peerInfo'
        type: struct ncclPeerInfo
      - name: '* topo'
        type: struct ncclTopoSystem
      - name: '* gproxyConn'
        type: struct ncclProxyConnector
      - name: legacyRegCleanupQueue
        type: struct ncclIntruQueue<struct ncclCommCallback, &ncclCommCallback::next>
      - name: peerInfoValid
        type: bool
      - name: '* ncclNet'
        type: ncclNet_t
      - name: netPluginIndex
        type: int
      - name: ncclNetVer
        type: int
      - name: netDeviceType
        type: ncclNetDeviceType
      - name: '* ncclCollNet'
        type: ncclCollNet_t
      - name: '* bootstrap'
        type: void
      - name: '* connectSend'
        type: uint64_t
      - name: '* connectRecv'
        type: uint64_t
      - name: graphs[NCCL_NUM_ALGORITHMS]
        type: struct ncclTopoGraph
      - name: maxTreePattern
        type: int
      - name: initAlgoChannels[NCCL_NUM_ALGORITHMS]
        type: bool
      - name: runtimeConn
        type: bool
      - name: directMode
        type: bool
      - name: cuMemSupport
        type: int
      - name: magic
        type: uint64_t
      - name: commHash
        type: uint64_t
      - name: rank
        type: int
      - name: nRanks
        type: int
      - name: cudaDev
        type: int
      - name: nvmlDev
        type: int
      - name: compCap
        type: int
      - name: minCompCap
        type: int
      - name: busId
        type: int64_t
      - name: cpuAffinity
        type: cpu_set_t
      - name: cudaArch
        type: int
      - name: cpuArch
        type: int
      - name: cpuVendor
        type: int
      - name: node
        type: int
      - name: nNodes
        type: int
      - name: localRank
        type: int
      - name: localRanks
        type: int
      - name: maxLocalRanks
        type: int
      - name: '* rankToNode'
        type: int
      - name: '* rankToLocalRank'
        type: int
      - name: '* localRankToRank'
        type: int
      - name: '* nodeRanks'
        type: struct ncclNodeRanks
      - name: MNNVL
        type: int
      - name: clique
        type: struct cliqueInfo
      - name: cliqueRank
        type: int
      - name: checkPointers
        type: bool
      - name: dmaBufSupport
        type: bool
      - name: opCount
        type: uint64_t
      - name: collOpCount
        type: uint64_t
      - name: nChannels
        type: int
      - name: collChannels
        type: int
      - name: nvlsChannels
        type: int
      - name: nvlsHeads[MAXCHANNELS]
        type: int
      - name: p2pnChannels
        type: int
      - name: p2pnChannelsPerPeer
        type: int
      - name: allocP2pNetLLBuffers
        type: bool
      - name: buffSizes[NCCL_NUM_PROTOCOLS]
        type: int
      - name: p2pChunkSize
        type: int
      - name: nvlsChunkSize
        type: int
      - name: threadThresholds[NCCL_NUM_ALGORITHMS][NCCL_NUM_PROTOCOLS]
        type: ssize_t
      - name: latencies[NCCL_NUM_FUNCTIONS][NCCL_NUM_ALGORITHMS][NCCL_NUM_PROTOCOLS]
        type: float
      - name: bandwidths[NCCL_NUM_FUNCTIONS][NCCL_NUM_ALGORITHMS][NCCL_NUM_PROTOCOLS]
        type: float
      - name: maxThreads[NCCL_NUM_ALGORITHMS][NCCL_NUM_PROTOCOLS]
        type: int
      - name: asyncResult
        type: ncclResult_t
      - name: '* abortFlag'
        type: uint32_t
      - name: '* abortFlagDev'
        type: uint32_t
      - name: '* abortFlagRefCount'
        type: int
      - name: '* childAbortFlag'
        type: uint32_t
      - name: '* childAbortFlagDev'
        type: uint32_t
      - name: destroyFlag
        type: uint32_t
      - name: '* devComm'
        type: struct ncclDevComm
      - name: symDevComm
        type: struct ncclSymDevComm
      - name: workArgsBytes
        type: uint32_t
      - name: workFifoBytes
        type: uint32_t
      - name: '* workFifoBuf'
        type: void
      - name: '* workFifoBufDev'
        type: void
      - name: '* workFifoBufGdrHandle'
        type: void
      - name: workFifoProduced
        type: uint32_t
      - name: workFifoProducedLastRecorded
        type: uint32_t
      - name: workFifoConsumed
        type: uint32_t
      - name: '* intraComm0'
        type: struct ncclComm
      - name: '* intraNext'
        type: struct ncclComm
      - name: intraRank
        type: int
      - name: intraRanks
        type: int
      - name: intraBarrierPhase
        type: uint32_t
      - name: intraPad1[64 - sizeof(uint64_t)]
        type: char
      - name: intraBarrierCounter
        type: uint64_t
      - name: intraPad2[64 - sizeof(uint64_t)]
        type: char
      - name: intraBarrierGate
        type: uint64_t
      - name: '* proxyState'
        type: struct ncclProxyState
      - name: proxyRefCountOld
        type: int
      - name: isOneRPN
        type: bool
      - name: collNetSupportMatrix[4/*sum,prod,max,min*/][ncclNumTypes]
        type: uint8_t
      - name: '* collNetHeads'
        type: int
      - name: collNetHeadsNum
        type: int
      - name: '* collNetDenseToUserRank'
        type: int
      - name: '* collNetUserToDenseRank'
        type: int
      - name: '* collNetSharedRes'
        type: struct ncclCollNetSharedRes
      - name: nvlsSupport
        type: int
      - name: nvlsRegSupport
        type: int
      - name: '* nvlsResources'
        type: struct ncclNvlsSharedRes
      - name: memPool_ncclTaskColl
        type: struct ncclMemoryPool
      - name: memPool_ncclTaskP2p
        type: struct ncclMemoryPool
      - name: memPool_ncclProxyOp
        type: struct ncclMemoryPool
      - name: memPool_ncclKernelPlan
        type: struct ncclMemoryPool
      - name: '* groupNext[ncclGroupTaskTypeNum]'
        type: struct ncclComm
      - name: '* preconnectNext'
        type: struct ncclComm
      - name: localPersistentRefs
        type: int
      - name: '*p2pSchedule'
        type: struct P2pSchedulePair { int sendRank; int recvRank; }
      - name: planner
        type: struct ncclKernelPlanner
      - name: memPool
        type: cudaMemPool_t
      - name: eventCallbackQueue
        type: struct ncclIntruQueue<struct ncclCommEventCallback, &ncclCommEventCallback::next>
      - name: userRedOpCapacity
        type: int
      - name: '*userRedOps'
        type: ncclUserRedOp
      - name: reclaimSteps
        type: int
      - name: callbackQueue
        type: struct ncclIntruQueueMpsc<struct ncclCommCallback, &ncclCommCallback::next>
      - name: config
        type: ncclConfig_t
      - name: initState
        type: ncclResult_t
      - name: finalizeCalled
        type: bool
      - name: finalizeRankCnt
        type: int
      - name: '*groupJob'
        type: struct ncclGroupJob
      - name: shareResources
        type: bool
      - name: tunerPluginLoaded
        type: int
      - name: '* tuner'
        type: ncclTuner_t
      - name: '*tunerContext'
        type: void
      - name: '* profilerContext'
        type: void
      - name: seqNumber[NCCL_NUM_FUNCTIONS]
        type: uint64_t
      - name: profiler
        type: struct ncclProfilerProxy
      - name: regCache
        type: struct ncclRegCache
      - name: isAllNvlink
        type: int
      - name: isAllDirectP2p
        type: bool
      - name: symmetricSupport
        type: int
      - name: useNetPXN
        type: bool
      - name: useGdr
        type: bool
      - name: splitCount
        type: int
      - name: '* baseUCSymPtr'
        type: uint8_t
      - name: '* baseMCSymPtr'
        type: uint8_t
      - name: baseStride
        type: size_t
      - name: symAllocHead
        type: size_t
      - name: symMCHandle
        type: CUmemGenericAllocationHandle
      - name: symRegTaskQueue
        type: struct ncclIntruQueue<struct ncclSymRegTask, &ncclSymRegTask::next>
      - name: endMagic
        type: uint64_t
      item_type: struct
      name: ncclComm
      pos:
        line_end: 642
        line_start: 419
        source_file: /src/nccl/src/include/comm.h
    - fields:
      - name: sendRank
        type: int
      - name: recvRank
        type: int
      item_type: struct
      name: P2pSchedulePair
      pos:
        line_end: 584
        line_start: 584
        source_file: /src/nccl/src/include/comm.h
    typedefs:
    - item_type: typedef
      name: ncclGroupTaskType_t
      pos:
        line_end: 417
        line_start: 413
        source_file: /src/nccl/src/include/comm.h
    union: []
- function_names:
  - calibrate
  - gettime
  - TIME_START
  - TIME_STOP
  - TIME_CANCEL
  - TIME_PRINT
  - TIME_START
  - TIME_STOP
  - TIME_CANCEL
  source_file: /src/nccl/src/include/timer.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/src/include/socket.h
  types:
    enum:
    - enumerators:
      - name: ncclSocketStateNone
        value: '0'
      - name: ncclSocketStateConnecting
        value: '4'
      - name: ncclSocketStateInitialized
        value: '1'
      - name: ncclSocketStateAccepting
        value: '2'
      - name: ncclSocketStateAccepted
        value: '3'
      - name: ncclSocketStateConnectPolling
        value: '5'
      - name: ncclSocketStateConnected
        value: '6'
      - name: ncclSocketStateReady
        value: '7'
      - name: ncclSocketStateTerminating
        value: '8'
      - name: ncclSocketStateClosed
        value: '9'
      - name: ncclSocketStateError
        value: '10'
      - name: ncclSocketStateNum
        value: '11'
      item_type: enum
      name: ncclSocketState
      pos:
        line_end: 42
        line_start: 29
        source_file: /src/nccl/src/include/socket.h
    - enumerators:
      - name: ncclSocketTypeUnknown
        value: '0'
      - name: ncclSocketTypeNetIb
        value: '4'
      - name: ncclSocketTypeBootstrap
        value: '1'
      - name: ncclSocketTypeProxy
        value: '2'
      - name: ncclSocketTypeNetSocket
        value: '3'
      - name: ncclSocketTypeRasNetwork
        value: '5'
      item_type: enum
      name: ncclSocketType
      pos:
        line_end: 51
        line_start: 44
        source_file: /src/nccl/src/include/socket.h
    preproc_defs:
    - item_type: preproc_def
      name: MAX_IFS
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/nccl/src/include/socket.h
      type_or_value: '16'
    - item_type: preproc_def
      name: MAX_IF_NAME_SIZE
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/nccl/src/include/socket.h
      type_or_value: '16'
    - item_type: preproc_def
      name: SOCKET_NAME_MAXLEN
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/nccl/src/include/socket.h
      type_or_value: (NI_MAXHOST+NI_MAXSERV)
    - item_type: preproc_def
      name: NCCL_SOCKET_MAGIC
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/nccl/src/include/socket.h
      type_or_value: 0x564ab9f2fc4b9d6cULL
    - item_type: preproc_def
      name: NCCL_SOCKET_SEND
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/nccl/src/include/socket.h
      type_or_value: '0'
    - item_type: preproc_def
      name: NCCL_SOCKET_RECV
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/nccl/src/include/socket.h
      type_or_value: '1'
    structs:
    - fields:
      - name: fd
        type: int
      - name: acceptFd
        type: int
      - name: errorRetries
        type: int
      - name: addr
        type: union ncclSocketAddress
      - name: '* abortFlag'
        type: uint32_t
      - name: asyncFlag
        type: int
      - name: state
        type: enum ncclSocketState
      - name: salen
        type: int
      - name: magic
        type: uint64_t
      - name: type
        type: enum ncclSocketType
      - name: customRetry
        type: int
      - name: finalizeCounter
        type: int
      - name: finalizeBuffer[sizeof(uint64_t)]
        type: char
      item_type: struct
      name: ncclSocket
      pos:
        line_end: 67
        line_start: 53
        source_file: /src/nccl/src/include/socket.h
    typedefs: []
    union:
    - fields:
      - name: sa
        type: struct sockaddr
      - name: sin
        type: struct sockaddr_in
      - name: sin6
        type: struct sockaddr_in6
      item_type: union
      name: ncclSocketAddress
      pos:
        line_end: 27
        line_start: 23
        source_file: /src/nccl/src/include/socket.h
- function_names: []
  source_file: /src/nccl/src/include/bootstrap.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: magic
        type: uint64_t
      - name: addr
        type: union ncclSocketAddress
      item_type: struct
      name: ncclBootstrapHandle
      pos:
        line_end: 15
        line_start: 12
        source_file: /src/nccl/src/include/bootstrap.h
    typedefs: []
    union: []
- function_names:
  - NCCL_LL_FLAG
  - NCCL_LL_FLAG
  - ncclP2pPartBounds
  - ncclP2pChannelForPart
  - ncclP2pChannelToPart
  - ncclProtoGrainSize
  - ncclCollCbdPart
  - ncclDevWorkSize
  - ncclMaxKernelArgsSize
  - min_constexpr
  - min_constexpr
  - max_constexpr
  - max_constexpr
  - ncclDevMaxChannelsForArgsBytes
  - ncclCalcUnroll
  - ncclCollUnroll
  - ncclNvlsUnrollBytes
  - ncclNvlsUnrollInsns
  - ncclNvlsUnroll
  - ncclShmemScratchWarpSize
  - ncclShmemDynamicSize
  - ncclNvlsSupported
  - ncclDevFuncId
  - ncclDevFuncId_P2p
  source_file: /src/nccl/src/include/device.h
  types:
    enum:
    - enumerators:
      - name: ncclDevSum
      - name: ncclDevPreMulSum
      - name: ncclDevMinMax
      - name: ncclDevSumPostDiv
      - name: ncclDevProd
      - name: ncclNumDevRedOps
      item_type: enum
      name: ncclDevRedOp_t
      pos:
        line_end: 62
        line_start: 58
        source_file: /src/nccl/src/include/device.h
    - enumerators:
      - name: ncclDevWorkTypeP2p
      - name: ncclDevWorkTypeCollReg
      - name: ncclDevWorkTypeColl
      item_type: enum
      name: ncclDevWorkType
      pos:
        line_end: 359
        line_start: 355
        source_file: /src/nccl/src/include/device.h
    - enumerators:
      - name: ncclDevWorkStorageTypeArgs
        value: '0'
      - name: ncclDevWorkStorageTypePersistent
        value: '2'
      - name: ncclDevWorkStorageTypeFifo
        value: '1'
      item_type: enum
      name: ncclDevWorkStorageType
      pos:
        line_end: 447
        line_start: 443
        source_file: /src/nccl/src/include/device.h
    preproc_defs:
    - item_type: preproc_def
      name: NCCL_MAX_OPS
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/nccl/src/include/device.h
      type_or_value: '2048'
    - item_type: preproc_def
      name: NCCL_STEPS
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/nccl/src/include/device.h
      type_or_value: '8'
    - item_type: preproc_def
      name: NCCL_CUDA_ARCH
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/nccl/src/include/device.h
      type_or_value: __CUDA_ARCH__
    - item_type: preproc_def
      name: NCCL_CUDA_ARCH
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/nccl/src/include/device.h
      type_or_value: '0'
    - item_type: preproc_def
      name: NCCL_CUDA_ARCH_SPECIFIC
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/nccl/src/include/device.h
      type_or_value: __CUDA_ARCH_SPECIFIC__
    - item_type: preproc_def
      name: NCCL_CUDA_ARCH_SPECIFIC
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/nccl/src/include/device.h
      type_or_value: '900'
    - item_type: preproc_def
      name: NCCL_CUDA_ARCH_SPECIFIC
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/nccl/src/include/device.h
      type_or_value: '1000'
    - item_type: preproc_def
      name: NCCL_CUDA_ARCH_SPECIFIC
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/nccl/src/include/device.h
      type_or_value: '1010'
    - item_type: preproc_def
      name: NCCL_CUDA_ARCH_SPECIFIC
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/nccl/src/include/device.h
      type_or_value: '1200'
    - item_type: preproc_def
      name: NCCL_CUDA_ARCH_SPECIFIC
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/nccl/src/include/device.h
      type_or_value: '0'
    - item_type: preproc_def
      name: NCCL_CUDA_ARCH_SPECIFIC
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/nccl/src/include/device.h
      type_or_value: '0'
    - item_type: preproc_def
      name: NCCL_CUDA_ARCH_FAMILY_SPECIFIC
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/nccl/src/include/device.h
      type_or_value: __CUDA_ARCH_FAMILY_SPECIFIC__
    - item_type: preproc_def
      name: NCCL_CUDA_ARCH_FAMILY_SPECIFIC
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/nccl/src/include/device.h
      type_or_value: '0'
    - item_type: preproc_def
      name: WARP_SIZE
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/nccl/src/include/device.h
      type_or_value: '32'
    - item_type: preproc_def
      name: MAXCHANNELS
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/nccl/src/include/device.h
      type_or_value: '64'
    - item_type: preproc_def
      name: NCCL_MAX_LOCAL_RANKS
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/nccl/src/include/device.h
      type_or_value: '72'
    - item_type: preproc_def
      name: NCCL_MAX_NTHREADS
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/nccl/src/include/device.h
      type_or_value: '640'
    - item_type: preproc_def
      name: NCCL_MIN_NTHREADS
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/nccl/src/include/device.h
      type_or_value: (4*WARP_SIZE)
    - item_type: preproc_def
      name: NCCL_SIMPLE_MAX_NTHREADS
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/nccl/src/include/device.h
      type_or_value: '512'
    - item_type: preproc_def
      name: NCCL_SIMPLE_EXTRA_GROUP_IF_NTHREADS_GE
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/nccl/src/include/device.h
      type_or_value: (3*WARP_SIZE)
    - item_type: preproc_def
      name: NCCL_LL_MAX_NTHREADS
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/nccl/src/include/device.h
      type_or_value: '512'
    - item_type: preproc_def
      name: NCCL_LL_LINES_PER_THREAD
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/nccl/src/include/device.h
      type_or_value: '8'
    - item_type: preproc_def
      name: NCCL_LL_CLEAN_MASK
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/nccl/src/include/device.h
      type_or_value: 0x078 // Set to 0x100 to disable cleanup
    - item_type: preproc_def
      name: NCCL_LL_FLAG_MAX
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/nccl/src/include/device.h
      type_or_value: '0x100'
    - item_type: preproc_def
      name: NCCL_LL_CLEAN_MASK
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/nccl/src/include/device.h
      type_or_value: '0x7ffffff8'
    - item_type: preproc_def
      name: NCCL_LL128_LINESIZE
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/nccl/src/include/device.h
      type_or_value: '128'
    - item_type: preproc_def
      name: NCCL_LL128_LINEELEMS
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/nccl/src/include/device.h
      type_or_value: (NCCL_LL128_LINESIZE/sizeof(uint64_t))
    - item_type: preproc_def
      name: NCCL_LL128_DATAELEMS
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/nccl/src/include/device.h
      type_or_value: (NCCL_LL128_LINEELEMS-1)
    - item_type: preproc_def
      name: NCCL_LL128_MAX_NTHREADS
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/nccl/src/include/device.h
      type_or_value: '640'
    - item_type: preproc_def
      name: NCCL_LL128_ELEMS_PER_THREAD
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/nccl/src/include/device.h
      type_or_value: '120'
    - item_type: preproc_def
      name: NCCL_LL128_SHMEM_ELEMS_PER_THREAD
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/nccl/src/include/device.h
      type_or_value: '8'
    - item_type: preproc_def
      name: NCCL_LL128_SHMEM_SIZE
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/nccl/src/include/device.h
      type_or_value: (NCCL_LL128_SHMEM_ELEMS_PER_THREAD*NCCL_LL128_MAX_NTHREADS)
    - item_type: preproc_def
      name: NCCL_P2P_WRITE
      pos:
        line_end: 116
        line_start: 115
        source_file: /src/nccl/src/include/device.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: NCCL_P2P_READ
      pos:
        line_end: 117
        line_start: 116
        source_file: /src/nccl/src/include/device.h
      type_or_value: '0x02'
    - item_type: preproc_def
      name: NCCL_DIRECT_NIC
      pos:
        line_end: 118
        line_start: 117
        source_file: /src/nccl/src/include/device.h
      type_or_value: '0x04'
    - item_type: preproc_def
      name: NCCL_NVLS_MIN_POLL
      pos:
        line_end: 119
        line_start: 118
        source_file: /src/nccl/src/include/device.h
      type_or_value: '0x80'
    - item_type: preproc_def
      name: NCCL_MAX_GROUPS
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/nccl/src/include/device.h
      type_or_value: '16'
    - item_type: preproc_def
      name: NCCL_REGULAR_BUFFER
      pos:
        line_end: 124
        line_start: 123
        source_file: /src/nccl/src/include/device.h
      type_or_value: '0x00'
    - item_type: preproc_def
      name: NCCL_IPC_REG_BUFFER
      pos:
        line_end: 125
        line_start: 124
        source_file: /src/nccl/src/include/device.h
      type_or_value: '0x01'
    - item_type: preproc_def
      name: NCCL_NVLS_REG_BUFFER
      pos:
        line_end: 126
        line_start: 125
        source_file: /src/nccl/src/include/device.h
      type_or_value: '0x02'
    - item_type: preproc_def
      name: NCCL_NET_REG_BUFFER
      pos:
        line_end: 127
        line_start: 126
        source_file: /src/nccl/src/include/device.h
      type_or_value: '0x04'
    - item_type: preproc_def
      name: NCCL_MAX_TREE_ARITY_TOP
      pos:
        line_end: 183
        line_start: 182
        source_file: /src/nccl/src/include/device.h
      type_or_value: '2'
    - item_type: preproc_def
      name: NCCL_MAX_TREE_ARITY
      pos:
        line_end: 185
        line_start: 184
        source_file: /src/nccl/src/include/device.h
      type_or_value: '3'
    - item_type: preproc_def
      name: NCCL_MAX_DIRECT_ARITY
      pos:
        line_end: 192
        line_start: 191
        source_file: /src/nccl/src/include/device.h
      type_or_value: '7'
    - item_type: preproc_def
      name: NCCL_MAX_NVLS_ARITY
      pos:
        line_end: 206
        line_start: 205
        source_file: /src/nccl/src/include/device.h
      type_or_value: '32'
    - item_type: preproc_def
      name: NCCL_MAX_NVLS_TREE_ARITY
      pos:
        line_end: 207
        line_start: 206
        source_file: /src/nccl/src/include/device.h
      type_or_value: '3'
    - item_type: preproc_def
      name: NCCL_MAX_ARITY
      pos:
        line_end: 219
        line_start: 218
        source_file: /src/nccl/src/include/device.h
      type_or_value: NCCL_MAX_NVLS_ARITY
    - item_type: preproc_def
      name: NCCL_MAX_ARITY
      pos:
        line_end: 221
        line_start: 220
        source_file: /src/nccl/src/include/device.h
      type_or_value: NCCL_MAX_DIRECT_ARITY
    - item_type: preproc_def
      name: NCCL_MAX_CONNS
      pos:
        line_end: 224
        line_start: 223
        source_file: /src/nccl/src/include/device.h
      type_or_value: '2'
    - item_type: preproc_def
      name: NCCL_MAX_DEV_WORK_BATCH_BYTES
      pos:
        line_end: 367
        line_start: 366
        source_file: /src/nccl/src/include/device.h
      type_or_value: '1024'
    - item_type: preproc_def
      name: NCCL_MAX_DEV_WORK_BATCH_COLLS
      pos:
        line_end: 368
        line_start: 367
        source_file: /src/nccl/src/include/device.h
      type_or_value: (NCCL_MAX_DEV_WORK_BATCH_BYTES/sizeof(ncclDevWorkColl))
    - item_type: preproc_def
      name: NCCL_MAX_DEV_WORK_P2P_PER_BATCH
      pos:
        line_end: 369
        line_start: 368
        source_file: /src/nccl/src/include/device.h
      type_or_value: '8'
    - item_type: preproc_def
      name: MAX_PROFILER_EVENTS_PER_CHANNEL
      pos:
        line_end: 408
        line_start: 407
        source_file: /src/nccl/src/include/device.h
      type_or_value: '64'
    structs:
    - fields:
      - name: op
        type: ncclDevRedOp_t
      - name: proxyOp
        type: ncclRedOp_t
      - name: scalarArgIsPtr
        type: bool
      - name: scalarArg
        type: uint64_t
      item_type: struct
      name: ncclDevRedOpFull
      pos:
        line_end: 68
        line_start: 63
        source_file: /src/nccl/src/include/device.h
    - fields:
      - name: '*buffs[NCCL_NUM_PROTOCOLS]'
        type: char
      - name: '* mhandles[NCCL_NUM_PROTOCOLS]'
        type: void
      - name: '*tail'
        type: uint64_t
      - name: '*head'
        type: uint64_t
      - name: flags
        type: int
      - name: shared
        type: int
      - name: stepSize
        type: int
      - name: '**ptrExchange'
        type: void
      - name: '* redOpArgExchange'
        type: uint64_t
      - name: '* connFifo'
        type: struct ncclConnFifo
      - name: step
        type: uint64_t
      - name: llLastCleaning
        type: uint64_t
      - name: netDeviceHandle
        type: ncclNetDeviceHandle_t
      item_type: struct
      name: ncclConnInfo
      pos:
        line_end: 146
        line_start: 128
        source_file: /src/nccl/src/include/device.h
    - fields:
      - name: initialized
        type: bool
      - name: rank
        type: int
      - name: tpRank
        type: int
      - name: tpLocalRank
        type: int
      - name: sameProcess
        type: int
      - name: '* connection'
        type: struct ncclProxyConnection
      - name: (*proxyProgress)(struct ncclProxyState* proxyState, struct ncclProxyArgs*)
        type: ncclResult_t
      item_type: struct
      name: ncclProxyConnector
      pos:
        line_end: 156
        line_start: 148
        source_file: /src/nccl/src/include/device.h
    - fields:
      - name: connected
        type: int
      - name: hasSeen
        type: int
      - name: proxyConn
        type: struct ncclProxyConnector
      - name: '* transportComm'
        type: struct ncclTransportComm
      - name: '* transportResources'
        type: void
      - name: conn
        type: struct ncclConnInfo
      item_type: struct
      name: ncclConnector
      pos:
        line_end: 165
        line_start: 158
        source_file: /src/nccl/src/include/device.h
    - fields:
      - name: prev
        type: int
      - name: next
        type: int
      - name: '* userRanks'
        type: int
      - name: index
        type: int
      item_type: struct
      name: ncclRing
      pos:
        line_end: 178
        line_start: 167
        source_file: /src/nccl/src/include/device.h
    - fields:
      - name: depth
        type: int
      - name: up
        type: int
      - name: down[NCCL_MAX_TREE_ARITY]
        type: int
      item_type: struct
      name: ncclTree
      pos:
        line_end: 189
        line_start: 185
        source_file: /src/nccl/src/include/device.h
    - fields:
      - name: depth
        type: int
      - name: out
        type: int
      - name: nHeads
        type: int
      - name: headRank
        type: int
      - name: shift
        type: int
      - name: heads[NCCL_MAX_DIRECT_ARITY+1]
        type: int
      - name: up[NCCL_MAX_DIRECT_ARITY]
        type: int
      - name: down[NCCL_MAX_DIRECT_ARITY]
        type: int
      item_type: struct
      name: ncclDirect
      pos:
        line_end: 203
        line_start: 192
        source_file: /src/nccl/src/include/device.h
    - fields:
      - name: out
        type: int
      - name: nHeads
        type: int
      - name: headRank
        type: int
      - name: up[NCCL_MAX_NVLS_ARITY]
        type: int
      - name: down
        type: int
      - name: treeUp
        type: int
      - name: treeDown[NCCL_MAX_NVLS_TREE_ARITY]
        type: int
      item_type: struct
      name: ncclNvls
      pos:
        line_end: 215
        line_start: 207
        source_file: /src/nccl/src/include/device.h
    - fields:
      - name: send[NCCL_MAX_CONNS]
        type: struct ncclConnector
      - name: recv[NCCL_MAX_CONNS]
        type: struct ncclConnector
      - name: refCount
        type: int
      item_type: struct
      name: ncclChannelPeer
      pos:
        line_end: 228
        line_start: 224
        source_file: /src/nccl/src/include/device.h
    - fields:
      - name: '*sendAddr'
        type: void
      - name: sendBytes
        type: size_t
      - name: sendRank
        type: int
      - name: nP2pChannels
        type: uint8_t
      - name: channelBase
        type: uint8_t
      - name: nSendChannels
        type: uint8_t
      - name: sendChunkSize_u32fp8
        type: uint8_t
      - name: sendProtoLL
        type: uint8_t
      - name: sendNetReg
        type: uint8_t
      - name: sendIpcReg
        type: uint8_t
      - name: profilerEnabled
        type: uint8_t
      item_type: struct
      name: ncclDevWorkP2p
      pos:
        line_end: 249
        line_start: 232
        source_file: /src/nccl/src/include/device.h
    - fields:
      - name: channelLo
        type: uint32_t
      - name: nWarps
        type: uint32_t
      - name: redOpArgIsPtr
        type: uint32_t
      - name: profilerEnabled
        type: uint32_t
      - name: root
        type: uint32_t
      - name: '* recvbuff'
        type: void
      - name: '* sendbuff'
        type: void
      - name: sendbuffOffset
        type: uintptr_t
      - name: recvbuffOffset
        type: uintptr_t
      - name: '* sendbuffRmtAddrs'
        type: uintptr_t
      - name: '* recvbuffRmtAddrs'
        type: uintptr_t
      - name: redOpArg
        type: uint64_t
      item_type: struct
      name: ncclDevWorkColl
      pos:
        line_end: 310
        line_start: 281
        source_file: /src/nccl/src/include/device.h
    - fields:
      - name: coll
        type: struct ncclDevWorkColl
      - name: '* dnInputs[NCCL_MAX_DIRECT_ARITY+1]'
        type: void
      - name: '* dnOutputs[NCCL_MAX_DIRECT_ARITY+1]'
        type: void
      - name: '* upOutputs[NCCL_MAX_DIRECT_ARITY+1]'
        type: void
      item_type: struct
      name: ncclDevWorkCollReg
      pos:
        line_end: 353
        line_start: 348
        source_file: /src/nccl/src/include/device.h
    - fields:
      - name: offsetBase
        type: uint32_t
      - name: offsetBitset
        type: uint64_t
      item_type: struct
      name: ncclDevWorkBatch
      pos:
        line_end: 387
        line_start: 369
        source_file: /src/nccl/src/include/device.h
    - fields:
      - name: send[NCCL_MAX_CONNS]
        type: struct ncclConnInfo
      - name: recv[NCCL_MAX_CONNS]
        type: struct ncclConnInfo
      item_type: struct
      name: ncclDevChannelPeer
      pos:
        line_end: 394
        line_start: 389
        source_file: /src/nccl/src/include/device.h
    - fields:
      - name: '** peers'
        type: struct ncclDevChannelPeer
      - name: ring
        type: struct ncclRing
      - name: tree
        type: struct ncclTree
      - name: collnetChain
        type: struct ncclTree
      - name: collnetDirect
        type: struct ncclDirect
      - name: nvls
        type: struct ncclNvls
      - name: '* workFifoDone'
        type: uint32_t
      - name: workCounter
        type: uint64_t
      item_type: struct
      name: ncclDevChannel
      pos:
        line_end: 405
        line_start: 396
        source_file: /src/nccl/src/include/device.h
    - fields:
      - name: data[MAX_PROFILER_EVENTS_PER_CHANNEL]
        type: "struct {\n    uint64_t counter;\n    uint64_t timestamp;\n  }"
      item_type: struct
      name: ncclDevProfiler
      pos:
        line_end: 413
        line_start: 408
        source_file: /src/nccl/src/include/device.h
    - fields:
      - name: rank
        type: int
      - name: nRanks
        type: int
      - name: node
        type: int
      - name: nNodes
        type: int
      - name: buffSizes[NCCL_NUM_PROTOCOLS]
        type: int
      - name: p2pChunkSize
        type: int
      - name: isAllNvlink
        type: int
      - name: '* collNetDenseToUserRank'
        type: int
      - name: '* abortFlag'
        type: uint32_t
      - name: '* channels'
        type: struct ncclDevChannel
      - name: '* rankToLocalRank'
        type: int
      - name: '* workStarted'
        type: struct ncclDevProfiler
      - name: '* workCompleted'
        type: struct ncclDevProfiler
      item_type: struct
      name: ncclDevComm
      pos:
        line_end: 436
        line_start: 415
        source_file: /src/nccl/src/include/device.h
    - fields:
      - name: comm
        type: struct ncclDevComm
      - name: channels[MAXCHANNELS]
        type: struct ncclDevChannel
      item_type: struct
      name: ncclDevCommAndChannels
      pos:
        line_end: 441
        line_start: 438
        source_file: /src/nccl/src/include/device.h
    - fields:
      - name: '* comm'
        type: struct ncclDevComm
      - name: channelMask
        type: uint64_t
      - name: workStorageType
        type: enum ncclDevWorkStorageType
      - name: workMask
        type: uint32_t
      - name: '* workBuf'
        type: void
      item_type: struct
      name: ncclDevKernelArgs
      pos:
        line_end: 457
        line_start: 449
        source_file: /src/nccl/src/include/device.h
    - fields: []
      item_type: struct
      name: ncclDevKernelArgsStorage
      pos:
        line_end: 470
        line_start: 465
        source_file: /src/nccl/src/include/device.h
    typedefs:
    - item_type: typedef
      name: ncclDevKernelArgs4K
      pos:
        line_end: 472
        line_start: 472
        source_file: /src/nccl/src/include/device.h
    union:
    - fields:
      - name: v[2]
        type: uint64_t
      - name: i4
        type: int4
      item_type: union
      name: ncclLLFifoLine
      pos:
        line_end: 83
        line_start: 70
        source_file: /src/nccl/src/include/device.h
- function_names: []
  source_file: /src/nccl/src/include/graph.h
  types:
    enum:
    - enumerators:
      - name: ncclTopoGdrModeDisable
        value: '0'
      - name: ncclTopoGdrModePci
        value: '2'
      - name: ncclTopoGdrModeNum
        value: '3'
      - name: ncclTopoGdrModeDefault
        value: '1'
      item_type: enum
      name: ncclTopoGdrMode
      pos:
        line_end: 43
        line_start: 38
        source_file: /src/nccl/src/include/graph.h
    preproc_defs:
    - item_type: preproc_def
      name: NCCL_TOPO_CPU_ARCH_X86
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/nccl/src/include/graph.h
      type_or_value: '1'
    - item_type: preproc_def
      name: NCCL_TOPO_CPU_ARCH_POWER
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/nccl/src/include/graph.h
      type_or_value: '2'
    - item_type: preproc_def
      name: NCCL_TOPO_CPU_ARCH_ARM
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/nccl/src/include/graph.h
      type_or_value: '3'
    - item_type: preproc_def
      name: NCCL_TOPO_CPU_ARCH_MIXED
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/nccl/src/include/graph.h
      type_or_value: '4'
    - item_type: preproc_def
      name: NCCL_TOPO_CPU_VENDOR_INTEL
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/nccl/src/include/graph.h
      type_or_value: '1'
    - item_type: preproc_def
      name: NCCL_TOPO_CPU_VENDOR_AMD
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/nccl/src/include/graph.h
      type_or_value: '2'
    - item_type: preproc_def
      name: NCCL_TOPO_CPU_VENDOR_ZHAOXIN
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/nccl/src/include/graph.h
      type_or_value: '3'
    - item_type: preproc_def
      name: NCCL_TOPO_CPU_VENDOR_MIXED
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/nccl/src/include/graph.h
      type_or_value: '4'
    - item_type: preproc_def
      name: NCCL_TOPO_CPU_MODEL_INTEL_BDW
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/nccl/src/include/graph.h
      type_or_value: '1'
    - item_type: preproc_def
      name: NCCL_TOPO_CPU_MODEL_INTEL_SKL
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/nccl/src/include/graph.h
      type_or_value: '2'
    - item_type: preproc_def
      name: NCCL_TOPO_CPU_MODEL_INTEL_SRP
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/nccl/src/include/graph.h
      type_or_value: '3'
    - item_type: preproc_def
      name: NCCL_TOPO_CPU_MODEL_INTEL_ERP
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/nccl/src/include/graph.h
      type_or_value: '4'
    - item_type: preproc_def
      name: NCCL_TOPO_CPU_MODEL_YONGFENG
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/nccl/src/include/graph.h
      type_or_value: '1'
    - item_type: preproc_def
      name: NCCL_TOPO_MAX_NODES
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/nccl/src/include/graph.h
      type_or_value: '576'
    - item_type: preproc_def
      name: NCCL_TOPO_PATTERN_BALANCED_TREE
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/nccl/src/include/graph.h
      type_or_value: 1   // Spread NIC traffic between two GPUs (Tree parent + one
        child on first GPU, second child on second GPU)
    - item_type: preproc_def
      name: NCCL_TOPO_PATTERN_SPLIT_TREE
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/nccl/src/include/graph.h
      type_or_value: 2      // Spread NIC traffic between two GPUs (Tree parent on
        first GPU, tree children on the second GPU)
    - item_type: preproc_def
      name: NCCL_TOPO_PATTERN_TREE
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/nccl/src/include/graph.h
      type_or_value: 3            // All NIC traffic going to/from the same GPU
    - item_type: preproc_def
      name: NCCL_TOPO_PATTERN_RING
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/nccl/src/include/graph.h
      type_or_value: 4            // Ring
    - item_type: preproc_def
      name: NCCL_TOPO_PATTERN_NVLS
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/nccl/src/include/graph.h
      type_or_value: 5            // NVLS+SHARP and NVLS+Tree
    - item_type: preproc_def
      name: NCCL_TOPO_PATTERN_COLLNET_DIRECT
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/nccl/src/include/graph.h
      type_or_value: 6  // Collnet Direct
    structs:
    - fields:
      - name: id
        type: int
      - name: pattern
        type: int
      - name: crossNic
        type: int
      - name: collNet
        type: int
      - name: minChannels
        type: int
      - name: maxChannels
        type: int
      - name: nChannels
        type: int
      - name: bwIntra
        type: float
      - name: bwInter
        type: float
      - name: latencyInter
        type: float
      - name: typeIntra
        type: int
      - name: typeInter
        type: int
      - name: sameChannels
        type: int
      - name: nHops
        type: int
      - name: intra[MAXCHANNELS*NCCL_TOPO_MAX_NODES]
        type: int
      - name: inter[MAXCHANNELS*2]
        type: int64_t
      item_type: struct
      name: ncclTopoGraph
      pos:
        line_end: 110
        line_start: 91
        source_file: /src/nccl/src/include/graph.h
    - fields:
      - name: ringRecv[MAXCHANNELS]
        type: int
      - name: ringSend[MAXCHANNELS]
        type: int
      - name: ringPrev[MAXCHANNELS]
        type: int
      - name: ringNext[MAXCHANNELS]
        type: int
      - name: treeToParent[MAXCHANNELS]
        type: int
      - name: treeToChild0[MAXCHANNELS]
        type: int
      - name: treeToChild1[MAXCHANNELS]
        type: int
      - name: nvlsHeads[MAXCHANNELS]
        type: int
      - name: nvlsHeadNum
        type: int
      item_type: struct
      name: ncclTopoRanks
      pos:
        line_end: 126
        line_start: 116
        source_file: /src/nccl/src/include/graph.h
    typedefs: []
    union: []
- function_names:
  - CUPFN
  - CUCHECK
  - CUCALL
  - CUCHECKGOTO
  - CUCHECKIGNORE
  - CUCHECKTHREAD
  - DECLARE_CUDA_PFN_EXTERN
  - ncclCudaDriverVersion
  source_file: /src/nccl/src/include/cudawrap.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/src/include/argcheck.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/src/include/plugin/nccl_net.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NCCL_NET_HANDLE_MAXSIZE
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/nccl/src/include/plugin/nccl_net.h
      type_or_value: '128'
    - item_type: preproc_def
      name: NCCL_MAX_NET_SIZE_BYTES
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/nccl/src/include/plugin/nccl_net.h
      type_or_value: (1*1024*1024*1024*1024L)
    - item_type: preproc_def
      name: NCCL_NET_OPTIONAL_RECV_COMPLETION
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/nccl/src/include/plugin/nccl_net.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: MAX_NET_SIZE
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/nccl/src/include/plugin/nccl_net.h
      type_or_value: (1024*1024*1024L) // Rather than send INT_MAX which is 2G-1,
        send a power of two.
    - item_type: preproc_def
      name: MAX_COLLNET_SIZE
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/nccl/src/include/plugin/nccl_net.h
      type_or_value: (512*1024*1024L) //Set for initial collent plugins when size
        was not dynamically queried
    - item_type: preproc_def
      name: NCCL_PTR_HOST
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/nccl/src/include/plugin/nccl_net.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: NCCL_PTR_CUDA
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/nccl/src/include/plugin/nccl_net.h
      type_or_value: '0x2'
    - item_type: preproc_def
      name: NCCL_PTR_DMABUF
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/nccl/src/include/plugin/nccl_net.h
      type_or_value: '0x4'
    - item_type: preproc_def
      name: NCCL_NET_MAX_REQUESTS
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/nccl/src/include/plugin/nccl_net.h
      type_or_value: '32'
    - item_type: preproc_def
      name: NCCL_NET_MAX_PLUGINS
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/nccl/src/include/plugin/nccl_net.h
      type_or_value: '16'
    - item_type: preproc_def
      name: NCCL_NET_MAX_DEVS_PER_NIC
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/nccl/src/include/plugin/nccl_net.h
      type_or_value: NCCL_NET_MAX_DEVS_PER_NIC_V10
    - item_type: preproc_def
      name: NCCL_NET_PLUGIN_SYMBOL
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/nccl/src/include/plugin/nccl_net.h
      type_or_value: ncclNetPlugin_v10
    - item_type: preproc_def
      name: NCCL_COLLNET_PLUGIN_SYMBOL
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/nccl/src/include/plugin/nccl_net.h
      type_or_value: ncclCollNetPlugin_v10
    structs: []
    typedefs:
    - item_type: typedef
      name: ncclNet_t
      pos:
        line_end: 40
        line_start: 40
        source_file: /src/nccl/src/include/plugin/nccl_net.h
    - item_type: typedef
      name: ncclCollNet_t
      pos:
        line_end: 41
        line_start: 41
        source_file: /src/nccl/src/include/plugin/nccl_net.h
    - item_type: typedef
      name: ncclNetSGE_t
      pos:
        line_end: 42
        line_start: 42
        source_file: /src/nccl/src/include/plugin/nccl_net.h
    - item_type: typedef
      name: ncclNetProperties_t
      pos:
        line_end: 43
        line_start: 43
        source_file: /src/nccl/src/include/plugin/nccl_net.h
    - item_type: typedef
      name: ncclNetVDeviceProps_t
      pos:
        line_end: 44
        line_start: 44
        source_file: /src/nccl/src/include/plugin/nccl_net.h
    - item_type: typedef
      name: ncclNetCommConfig_t
      pos:
        line_end: 45
        line_start: 45
        source_file: /src/nccl/src/include/plugin/nccl_net.h
    union: []
- function_names: []
  source_file: /src/nccl/src/include/plugin/nccl_profiler.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NCCL_PROFILER_NET_VER_BITS
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/nccl/src/include/plugin/nccl_profiler.h
      type_or_value: (16)
    - item_type: preproc_def
      name: NCCL_PROFILER_NET_VER_MASK
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/nccl/src/include/plugin/nccl_profiler.h
      type_or_value: (~0U >> NCCL_PROFILER_NET_VER_BITS)
    - item_type: preproc_def
      name: NCCL_PROFILER_NET_TYPE_MASK
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/nccl/src/include/plugin/nccl_profiler.h
      type_or_value: (~0U << NCCL_PROFILER_NET_VER_BITS)
    structs: []
    typedefs:
    - item_type: typedef
      name: ncclProfilerEventState_t
      pos:
        line_end: 52
        line_start: 20
        source_file: /src/nccl/src/include/plugin/nccl_profiler.h
    - item_type: typedef
      name: ncclProfilerEventState_v1_t
      pos:
        line_end: 54
        line_start: 54
        source_file: /src/nccl/src/include/plugin/nccl_profiler.h
    - item_type: typedef
      name: ncclProfilerEventState_v2_t
      pos:
        line_end: 55
        line_start: 55
        source_file: /src/nccl/src/include/plugin/nccl_profiler.h
    - item_type: typedef
      name: ncclProfilerEventState_v3_t
      pos:
        line_end: 56
        line_start: 56
        source_file: /src/nccl/src/include/plugin/nccl_profiler.h
    - item_type: typedef
      name: ncclProfilerEventState_v4_t
      pos:
        line_end: 57
        line_start: 57
        source_file: /src/nccl/src/include/plugin/nccl_profiler.h
    - item_type: typedef
      name: ncclProfiler_t
      pos:
        line_end: 65
        line_start: 65
        source_file: /src/nccl/src/include/plugin/nccl_profiler.h
    - item_type: typedef
      name: ncclProfilerEventDescr_t
      pos:
        line_end: 66
        line_start: 66
        source_file: /src/nccl/src/include/plugin/nccl_profiler.h
    - item_type: typedef
      name: ncclProfilerEventStateArgs_t
      pos:
        line_end: 67
        line_start: 67
        source_file: /src/nccl/src/include/plugin/nccl_profiler.h
    - item_type: typedef
      name: ncclProfilerNetType
      pos:
        line_end: 76
        line_start: 73
        source_file: /src/nccl/src/include/plugin/nccl_profiler.h
    union: []
- function_names: []
  source_file: /src/nccl/src/include/plugin/plugin.h
  types:
    enum:
    - enumerators:
      - name: ncclPluginTypeNet
      - name: ncclPluginTypeProfiler
      - name: ncclPluginTypeTuner
      item_type: enum
      name: ncclPluginType
      pos:
        line_end: 15
        line_start: 11
        source_file: /src/nccl/src/include/plugin/plugin.h
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/src/include/plugin/nccl_tuner.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NCCL_TUNER_PLUGIN_SYMBOL
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/nccl/src/include/plugin/nccl_tuner.h
      type_or_value: '"ncclTunerPlugin_v4"'
    structs: []
    typedefs:
    - item_type: typedef
      name: ncclTuner_t
      pos:
        line_end: 17
        line_start: 17
        source_file: /src/nccl/src/include/plugin/nccl_tuner.h
    union: []
- function_names: []
  source_file: /src/nccl/src/include/plugin/net/net_v9.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NCCL_NET_MAX_DEVS_PER_NIC_V9
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/nccl/src/include/plugin/net/net_v9.h
      type_or_value: '4'
    structs:
    - fields:
      - name: ndevs
        type: int
      - name: devs[NCCL_NET_MAX_DEVS_PER_NIC_V9]
        type: int
      item_type: struct
      name: ncclNetVDeviceProps_v9_t
      pos:
        line_end: 14
        line_start: 11
        source_file: /src/nccl/src/include/plugin/net/net_v9.h
    - fields:
      - name: '* name'
        type: char
      - name: '* pciPath'
        type: char
      - name: guid
        type: uint64_t
      - name: ptrSupport
        type: int
      - name: regIsGlobal
        type: int
      - name: forceFlush
        type: int
      - name: speed
        type: int
      - name: port
        type: int
      - name: latency
        type: float
      - name: maxComms
        type: int
      - name: maxRecvs
        type: int
      - name: netDeviceType
        type: ncclNetDeviceType
      - name: netDeviceVersion
        type: int
      - name: vProps
        type: ncclNetVDeviceProps_v9_t
      - name: maxP2pBytes
        type: size_t
      - name: maxCollBytes
        type: size_t
      item_type: struct
      name: ncclNetProperties_v9_t
      pos:
        line_end: 34
        line_start: 16
        source_file: /src/nccl/src/include/plugin/net/net_v9.h
    - fields:
      - name: '* name'
        type: char
      - name: (*init)(ncclDebugLogger_t logFunction)
        type: ncclResult_t
      - name: (*devices)(int* ndev)
        type: ncclResult_t
      - name: (*getProperties)(int dev, ncclNetProperties_v9_t* props)
        type: ncclResult_t
      - name: (*listen)(int dev, void* handle, void** listenComm)
        type: ncclResult_t
      - name: (*connect)(int dev, void* handle, void** sendComm, ncclNetDeviceHandle_v9_t**
          sendDevComm)
        type: ncclResult_t
      - name: (*accept)(void* listenComm, void** recvComm, ncclNetDeviceHandle_v9_t**
          recvDevComm)
        type: ncclResult_t
      - name: (*regMr)(void* comm, void* data, size_t size, int type, void** mhandle)
        type: ncclResult_t
      - name: (*regMrDmaBuf)(void* comm, void* data, size_t size, int type, uint64_t
          offset, int fd, void** mhandle)
        type: ncclResult_t
      - name: (*deregMr)(void* comm, void* mhandle)
        type: ncclResult_t
      - name: (*isend)(void* sendComm, void* data, size_t size, int tag, void* mhandle,
          void** request)
        type: ncclResult_t
      - name: (*irecv)(void* recvComm, int n, void** data, size_t* sizes, int* tags,
          void** mhandles, void** request)
        type: ncclResult_t
      - name: (*iflush)(void* recvComm, int n, void** data, int* sizes, void** mhandles,
          void** request)
        type: ncclResult_t
      - name: (*test)(void* request, int* done, int* sizes)
        type: ncclResult_t
      - name: (*closeSend)(void* sendComm)
        type: ncclResult_t
      - name: (*closeRecv)(void* recvComm)
        type: ncclResult_t
      - name: (*closeListen)(void* listenComm)
        type: ncclResult_t
      - name: (*getDeviceMr)(void* comm, void* mhandle, void** dptr_mhandle)
        type: ncclResult_t
      - name: (*irecvConsumed)(void* recvComm, int n, void* request)
        type: ncclResult_t
      - name: (*makeVDevice)(int* d, ncclNetVDeviceProps_v9_t* props)
        type: ncclResult_t
      item_type: struct
      name: ncclNet_v9_t
      pos:
        line_end: 93
        line_start: 36
        source_file: /src/nccl/src/include/plugin/net/net_v9.h
    - fields:
      - name: '* mhandle'
        type: void
      - name: '* address'
        type: void
      - name: size
        type: size_t
      item_type: struct
      name: ncclNetSGE_v9_t
      pos:
        line_end: 99
        line_start: 95
        source_file: /src/nccl/src/include/plugin/net/net_v9.h
    - fields:
      - name: '* name'
        type: char
      - name: (*init)(ncclDebugLogger_t logFunction)
        type: ncclResult_t
      - name: (*devices)(int* ndev)
        type: ncclResult_t
      - name: (*getProperties)(int dev, ncclNetProperties_v9_t* props)
        type: ncclResult_t
      - name: (*listen)(int dev, void* handle, void** listenComm)
        type: ncclResult_t
      - name: (*connect)(void* handles[], int nranks, int rank, void* listenComm,
          void** collComm)
        type: ncclResult_t
      - name: (*reduceSupport)(ncclDataType_t dataType, ncclRedOp_t redOp, int* supported)
        type: ncclResult_t
      - name: (*regMr)(void* collComm, void* data, size_t size, int type, void** mhandle)
        type: ncclResult_t
      - name: (*regMrDmaBuf)(void* collComm, void* data, size_t size, int type, uint64_t
          offset, int fd, void** mhandle)
        type: ncclResult_t
      - name: (*deregMr)(void* collComm, void* mhandle)
        type: ncclResult_t
      - name: "(*iallreduce)(void* collComm, void* sendData, void* recvData, size_t
          count,\n      ncclDataType_t dataType, ncclRedOp_t redOp, void* sendMhandle,
          void* recvMhandle, void** request)"
        type: ncclResult_t
      - name: "(*iallgather)(void* collComm, void* sendData, int nRecvParts, ncclNetSGE_v9_t*
          recvParts,\n                             size_t bytesPerRank, size_t windowOffset,
          size_t windowBytes,\n                             void* sendMhandle, void**
          request)"
        type: ncclResult_t
      - name: "(*ireducescatter)(void* collComm, int nSendParts, ncclNetSGE_v9_t*
          sendParts, void* recvData,\n                                 size_t bytesPerRank,
          size_t windowOffset, size_t windowBytes,\n                                 ncclDataType_t
          dataType, ncclRedOp_t redOp,\n                                 void* recvMhandle,
          void** request)"
        type: ncclResult_t
      - name: (*iflush)(void* collComm, void* data, int size, void* mhandle, void**
          request)
        type: ncclResult_t
      - name: (*test)(void* request, int* done, int* size)
        type: ncclResult_t
      - name: (*closeColl)(void* collComm)
        type: ncclResult_t
      - name: (*closeListen)(void* listenComm)
        type: ncclResult_t
      - name: (*makeVDevice)(int* d, ncclNetVDeviceProps_v9_t* props)
        type: ncclResult_t
      item_type: struct
      name: ncclCollNet_v9_t
      pos:
        line_end: 149
        line_start: 101
        source_file: /src/nccl/src/include/plugin/net/net_v9.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/src/include/plugin/net/net_v7.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '* name'
        type: char
      - name: '* pciPath'
        type: char
      - name: guid
        type: uint64_t
      - name: ptrSupport
        type: int
      - name: speed
        type: int
      - name: port
        type: int
      - name: latency
        type: float
      - name: maxComms
        type: int
      - name: maxRecvs
        type: int
      - name: netDeviceType
        type: ncclNetDeviceType
      - name: netDeviceVersion
        type: int
      item_type: struct
      name: ncclNetProperties_v7_t
      pos:
        line_end: 22
        line_start: 9
        source_file: /src/nccl/src/include/plugin/net/net_v7.h
    - fields:
      - name: '* name'
        type: char
      - name: (*init)(ncclDebugLogger_t logFunction)
        type: ncclResult_t
      - name: (*devices)(int* ndev)
        type: ncclResult_t
      - name: (*getProperties)(int dev, ncclNetProperties_v7_t* props)
        type: ncclResult_t
      - name: (*listen)(int dev, void* handle, void** listenComm)
        type: ncclResult_t
      - name: (*connect)(int dev, void* handle, void** sendComm, ncclNetDeviceHandle_v7_t**
          sendDevComm)
        type: ncclResult_t
      - name: (*accept)(void* listenComm, void** recvComm, ncclNetDeviceHandle_v7_t**
          recvDevComm)
        type: ncclResult_t
      - name: (*regMr)(void* comm, void* data, int size, int type, void** mhandle)
        type: ncclResult_t
      - name: (*regMrDmaBuf)(void* comm, void* data, size_t size, int type, uint64_t
          offset, int fd, void** mhandle)
        type: ncclResult_t
      - name: (*deregMr)(void* comm, void* mhandle)
        type: ncclResult_t
      - name: (*isend)(void* sendComm, void* data, int size, int tag, void* mhandle,
          void** request)
        type: ncclResult_t
      - name: (*irecv)(void* recvComm, int n, void** data, int* sizes, int* tags,
          void** mhandles, void** request)
        type: ncclResult_t
      - name: (*iflush)(void* recvComm, int n, void** data, int* sizes, void** mhandles,
          void** request)
        type: ncclResult_t
      - name: (*test)(void* request, int* done, int* sizes)
        type: ncclResult_t
      - name: (*closeSend)(void* sendComm)
        type: ncclResult_t
      - name: (*closeRecv)(void* recvComm)
        type: ncclResult_t
      - name: (*closeListen)(void* listenComm)
        type: ncclResult_t
      - name: (*getDeviceMr)(void* comm, void* mhandle, void** dptr_mhandle)
        type: ncclResult_t
      - name: (*irecvConsumed)(void* recvComm, int n, void* request)
        type: ncclResult_t
      item_type: struct
      name: ncclNet_v7_t
      pos:
        line_end: 77
        line_start: 24
        source_file: /src/nccl/src/include/plugin/net/net_v7.h
    - fields:
      - name: '* name'
        type: char
      - name: (*init)(ncclDebugLogger_t logFunction)
        type: ncclResult_t
      - name: (*devices)(int* ndev)
        type: ncclResult_t
      - name: (*getProperties)(int dev, ncclNetProperties_v7_t* props)
        type: ncclResult_t
      - name: (*listen)(int dev, void* handle, void** listenComm)
        type: ncclResult_t
      - name: (*connect)(void* handles[], int nranks, int rank, void* listenComm,
          void** collComm)
        type: ncclResult_t
      - name: (*reduceSupport)(ncclDataType_t dataType, ncclRedOp_t redOp, int* supported)
        type: ncclResult_t
      - name: (*regMr)(void* collComm, void* data, int size, int type, void** mhandle)
        type: ncclResult_t
      - name: (*regMrDmaBuf)(void* collComm, void* data, size_t size, int type, uint64_t
          offset, int fd, void** mhandle)
        type: ncclResult_t
      - name: (*deregMr)(void* collComm, void* mhandle)
        type: ncclResult_t
      - name: "(*iallreduce)(void* collComm, void* sendData, void* recvData, int count,\n
          \     ncclDataType_t dataType, ncclRedOp_t redOp, void* sendMhandle, void*
          recvMhandle, void** request)"
        type: ncclResult_t
      - name: (*iflush)(void* collComm, void* data, int size, void* mhandle, void**
          request)
        type: ncclResult_t
      - name: (*test)(void* request, int* done, int* size)
        type: ncclResult_t
      - name: (*closeColl)(void* collComm)
        type: ncclResult_t
      - name: (*closeListen)(void* listenComm)
        type: ncclResult_t
      item_type: struct
      name: ncclCollNet_v7_t
      pos:
        line_end: 117
        line_start: 79
        source_file: /src/nccl/src/include/plugin/net/net_v7.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/src/include/plugin/net/net_v8.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '* name'
        type: char
      - name: '* pciPath'
        type: char
      - name: guid
        type: uint64_t
      - name: ptrSupport
        type: int
      - name: regIsGlobal
        type: int
      - name: speed
        type: int
      - name: port
        type: int
      - name: latency
        type: float
      - name: maxComms
        type: int
      - name: maxRecvs
        type: int
      - name: netDeviceType
        type: ncclNetDeviceType
      - name: netDeviceVersion
        type: int
      item_type: struct
      name: ncclNetProperties_v8_t
      pos:
        line_end: 23
        line_start: 9
        source_file: /src/nccl/src/include/plugin/net/net_v8.h
    - fields:
      - name: '* name'
        type: char
      - name: (*init)(ncclDebugLogger_t logFunction)
        type: ncclResult_t
      - name: (*devices)(int* ndev)
        type: ncclResult_t
      - name: (*getProperties)(int dev, ncclNetProperties_v8_t* props)
        type: ncclResult_t
      - name: (*listen)(int dev, void* handle, void** listenComm)
        type: ncclResult_t
      - name: (*connect)(int dev, void* handle, void** sendComm, ncclNetDeviceHandle_v8_t**
          sendDevComm)
        type: ncclResult_t
      - name: (*accept)(void* listenComm, void** recvComm, ncclNetDeviceHandle_v8_t**
          recvDevComm)
        type: ncclResult_t
      - name: (*regMr)(void* comm, void* data, size_t size, int type, void** mhandle)
        type: ncclResult_t
      - name: (*regMrDmaBuf)(void* comm, void* data, size_t size, int type, uint64_t
          offset, int fd, void** mhandle)
        type: ncclResult_t
      - name: (*deregMr)(void* comm, void* mhandle)
        type: ncclResult_t
      - name: (*isend)(void* sendComm, void* data, int size, int tag, void* mhandle,
          void** request)
        type: ncclResult_t
      - name: (*irecv)(void* recvComm, int n, void** data, int* sizes, int* tags,
          void** mhandles, void** request)
        type: ncclResult_t
      - name: (*iflush)(void* recvComm, int n, void** data, int* sizes, void** mhandles,
          void** request)
        type: ncclResult_t
      - name: (*test)(void* request, int* done, int* sizes)
        type: ncclResult_t
      - name: (*closeSend)(void* sendComm)
        type: ncclResult_t
      - name: (*closeRecv)(void* recvComm)
        type: ncclResult_t
      - name: (*closeListen)(void* listenComm)
        type: ncclResult_t
      - name: (*getDeviceMr)(void* comm, void* mhandle, void** dptr_mhandle)
        type: ncclResult_t
      - name: (*irecvConsumed)(void* recvComm, int n, void* request)
        type: ncclResult_t
      item_type: struct
      name: ncclNet_v8_t
      pos:
        line_end: 78
        line_start: 25
        source_file: /src/nccl/src/include/plugin/net/net_v8.h
    - fields:
      - name: '* mhandle'
        type: void
      - name: '* address'
        type: void
      - name: size
        type: uint32_t
      item_type: struct
      name: ncclNetSGE_v8_t
      pos:
        line_end: 84
        line_start: 80
        source_file: /src/nccl/src/include/plugin/net/net_v8.h
    - fields:
      - name: '* name'
        type: char
      - name: (*init)(ncclDebugLogger_t logFunction)
        type: ncclResult_t
      - name: (*devices)(int* ndev)
        type: ncclResult_t
      - name: (*getProperties)(int dev, ncclNetProperties_v8_t* props)
        type: ncclResult_t
      - name: (*listen)(int dev, void* handle, void** listenComm)
        type: ncclResult_t
      - name: (*connect)(void* handles[], int nranks, int rank, void* listenComm,
          void** collComm)
        type: ncclResult_t
      - name: (*reduceSupport)(ncclDataType_t dataType, ncclRedOp_t redOp, int* supported)
        type: ncclResult_t
      - name: (*regMr)(void* collComm, void* data, size_t size, int type, void** mhandle)
        type: ncclResult_t
      - name: (*regMrDmaBuf)(void* collComm, void* data, size_t size, int type, uint64_t
          offset, int fd, void** mhandle)
        type: ncclResult_t
      - name: (*deregMr)(void* collComm, void* mhandle)
        type: ncclResult_t
      - name: "(*iallreduce)(void* collComm, void* sendData, void* recvData, int count,\n
          \     ncclDataType_t dataType, ncclRedOp_t redOp, void* sendMhandle, void*
          recvMhandle, void** request)"
        type: ncclResult_t
      - name: "(*iallgather)(void* collComm, void* sendData, int nRecvParts, ncclNetSGE_v8_t*
          recvParts,\n                             size_t bytesPerRank, size_t windowOffset,
          size_t windowBytes,\n                             void* sendMhandle, void**
          request)"
        type: ncclResult_t
      - name: "(*ireducescatter)(void* collComm, int nSendParts, ncclNetSGE_v8_t*
          sendParts, void* recvData,\n                                 size_t bytesPerRank,
          size_t windowOffset, size_t windowBytes,\n                                 ncclDataType_t
          dataType, ncclRedOp_t redOp,\n                                 void* recvMhandle,
          void** request)"
        type: ncclResult_t
      - name: (*iflush)(void* collComm, void* data, int size, void* mhandle, void**
          request)
        type: ncclResult_t
      - name: (*test)(void* request, int* done, int* size)
        type: ncclResult_t
      - name: (*closeColl)(void* collComm)
        type: ncclResult_t
      - name: (*closeListen)(void* listenComm)
        type: ncclResult_t
      item_type: struct
      name: ncclCollNet_v8_t
      pos:
        line_end: 131
        line_start: 86
        source_file: /src/nccl/src/include/plugin/net/net_v8.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/src/include/plugin/net/net_v6.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NCCL_NET_MAX_REQUESTS_V6
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/nccl/src/include/plugin/net/net_v6.h
      type_or_value: '8'
    structs:
    - fields:
      - name: '* name'
        type: char
      - name: '* pciPath'
        type: char
      - name: guid
        type: uint64_t
      - name: ptrSupport
        type: int
      - name: speed
        type: int
      - name: port
        type: int
      - name: latency
        type: float
      - name: maxComms
        type: int
      - name: maxRecvs
        type: int
      item_type: struct
      name: ncclNetProperties_v6_t
      pos:
        line_end: 23
        line_start: 12
        source_file: /src/nccl/src/include/plugin/net/net_v6.h
    - fields:
      - name: '* name'
        type: char
      - name: (*init)(ncclDebugLogger_t logFunction)
        type: ncclResult_t
      - name: (*devices)(int* ndev)
        type: ncclResult_t
      - name: (*getProperties)(int dev, ncclNetProperties_v6_t* props)
        type: ncclResult_t
      - name: (*listen)(int dev, void* handle, void** listenComm)
        type: ncclResult_t
      - name: (*connect)(int dev, void* handle, void** sendComm)
        type: ncclResult_t
      - name: (*accept)(void* listenComm, void** recvComm)
        type: ncclResult_t
      - name: (*regMr)(void* comm, void* data, int size, int type, void** mhandle)
        type: ncclResult_t
      - name: (*regMrDmaBuf)(void* comm, void* data, size_t size, int type, uint64_t
          offset, int fd, void** mhandle)
        type: ncclResult_t
      - name: (*deregMr)(void* comm, void* mhandle)
        type: ncclResult_t
      - name: (*isend)(void* sendComm, void* data, int size, int tag, void* mhandle,
          void** request)
        type: ncclResult_t
      - name: (*irecv)(void* recvComm, int n, void** data, int* sizes, int* tags,
          void** mhandles, void** request)
        type: ncclResult_t
      - name: (*iflush)(void* recvComm, int n, void** data, int* sizes, void** mhandles,
          void** request)
        type: ncclResult_t
      - name: (*test)(void* request, int* done, int* sizes)
        type: ncclResult_t
      - name: (*closeSend)(void* sendComm)
        type: ncclResult_t
      - name: (*closeRecv)(void* recvComm)
        type: ncclResult_t
      - name: (*closeListen)(void* listenComm)
        type: ncclResult_t
      item_type: struct
      name: ncclNet_v6_t
      pos:
        line_end: 70
        line_start: 25
        source_file: /src/nccl/src/include/plugin/net/net_v6.h
    - fields:
      - name: '* name'
        type: char
      - name: (*init)(ncclDebugLogger_t logFunction)
        type: ncclResult_t
      - name: (*devices)(int* ndev)
        type: ncclResult_t
      - name: (*getProperties)(int dev, ncclNetProperties_v6_t* props)
        type: ncclResult_t
      - name: (*listen)(int dev, void* handle, void** listenComm)
        type: ncclResult_t
      - name: (*connect)(void* handles[], int nranks, int rank, void* listenComm,
          void** collComm)
        type: ncclResult_t
      - name: (*reduceSupport)(ncclDataType_t dataType, ncclRedOp_t redOp, int* supported)
        type: ncclResult_t
      - name: (*regMr)(void* collComm, void* data, int size, int type, void** mhandle)
        type: ncclResult_t
      - name: (*regMrDmaBuf)(void* collComm, void* data, size_t size, int type, uint64_t
          offset, int fd, void** mhandle)
        type: ncclResult_t
      - name: (*deregMr)(void* collComm, void* mhandle)
        type: ncclResult_t
      - name: "(*iallreduce)(void* collComm, void* sendData, void* recvData, int count,\n
          \     ncclDataType_t dataType, ncclRedOp_t redOp, void* sendMhandle, void*
          recvMhandle, void** request)"
        type: ncclResult_t
      - name: (*iflush)(void* collComm, void* data, int size, void* mhandle, void**
          request)
        type: ncclResult_t
      - name: (*test)(void* request, int* done, int* size)
        type: ncclResult_t
      - name: (*closeColl)(void* collComm)
        type: ncclResult_t
      - name: (*closeListen)(void* listenComm)
        type: ncclResult_t
      item_type: struct
      name: ncclCollNet_v6_t
      pos:
        line_end: 110
        line_start: 72
        source_file: /src/nccl/src/include/plugin/net/net_v6.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/src/include/plugin/net/net_v10.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NCCL_NET_MAX_DEVS_PER_NIC_V10
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/nccl/src/include/plugin/net/net_v10.h
      type_or_value: '4'
    - item_type: preproc_def
      name: NCCL_NET_TRAFFIC_CLASS_UNDEF
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/nccl/src/include/plugin/net/net_v10.h
      type_or_value: '-1'
    structs:
    - fields:
      - name: ndevs
        type: int
      - name: devs[NCCL_NET_MAX_DEVS_PER_NIC_V10]
        type: int
      item_type: struct
      name: ncclNetVDeviceProps_v10_t
      pos:
        line_end: 12
        line_start: 9
        source_file: /src/nccl/src/include/plugin/net/net_v10.h
    - fields:
      - name: trafficClass
        type: int
      item_type: struct
      name: ncclNetCommConfig_v10_t
      pos:
        line_end: 19
        line_start: 16
        source_file: /src/nccl/src/include/plugin/net/net_v10.h
    - fields:
      - name: '* name'
        type: char
      - name: '* pciPath'
        type: char
      - name: guid
        type: uint64_t
      - name: ptrSupport
        type: int
      - name: regIsGlobal
        type: int
      - name: forceFlush
        type: int
      - name: speed
        type: int
      - name: port
        type: int
      - name: latency
        type: float
      - name: maxComms
        type: int
      - name: maxRecvs
        type: int
      - name: netDeviceType
        type: ncclNetDeviceType
      - name: netDeviceVersion
        type: int
      - name: vProps
        type: ncclNetVDeviceProps_v10_t
      - name: maxP2pBytes
        type: size_t
      - name: maxCollBytes
        type: size_t
      item_type: struct
      name: ncclNetProperties_v10_t
      pos:
        line_end: 40
        line_start: 22
        source_file: /src/nccl/src/include/plugin/net/net_v10.h
    - fields:
      - name: '* name'
        type: char
      - name: (*init)(ncclDebugLogger_t logFunction, ncclProfilerCallback_t profFunction)
        type: ncclResult_t
      - name: (*devices)(int* ndev)
        type: ncclResult_t
      - name: (*getProperties)(int dev, ncclNetProperties_v10_t* props)
        type: ncclResult_t
      - name: (*listen)(int dev, void* handle, void** listenComm)
        type: ncclResult_t
      - name: (*connect)(int dev, ncclNetCommConfig_v10_t* config, void* handle, void**
          sendComm, ncclNetDeviceHandle_v10_t** sendDevComm)
        type: ncclResult_t
      - name: (*accept)(void* listenComm, void** recvComm, ncclNetDeviceHandle_v10_t**
          recvDevComm)
        type: ncclResult_t
      - name: (*regMr)(void* comm, void* data, size_t size, int type, void** mhandle)
        type: ncclResult_t
      - name: (*regMrDmaBuf)(void* comm, void* data, size_t size, int type, uint64_t
          offset, int fd, void** mhandle)
        type: ncclResult_t
      - name: (*deregMr)(void* comm, void* mhandle)
        type: ncclResult_t
      - name: (*isend)(void* sendComm, void* data, size_t size, int tag, void* mhandle,
          void* phandle, void** request)
        type: ncclResult_t
      - name: (*irecv)(void* recvComm, int n, void** data, size_t* sizes, int* tags,
          void** mhandles, void** phandles, void** request)
        type: ncclResult_t
      - name: (*iflush)(void* recvComm, int n, void** data, int* sizes, void** mhandles,
          void** request)
        type: ncclResult_t
      - name: (*test)(void* request, int* done, int* sizes)
        type: ncclResult_t
      - name: (*closeSend)(void* sendComm)
        type: ncclResult_t
      - name: (*closeRecv)(void* recvComm)
        type: ncclResult_t
      - name: (*closeListen)(void* listenComm)
        type: ncclResult_t
      - name: (*getDeviceMr)(void* comm, void* mhandle, void** dptr_mhandle)
        type: ncclResult_t
      - name: (*irecvConsumed)(void* recvComm, int n, void* request)
        type: ncclResult_t
      - name: (*makeVDevice)(int* d, ncclNetVDeviceProps_v10_t* props)
        type: ncclResult_t
      item_type: struct
      name: ncclNet_v10_t
      pos:
        line_end: 99
        line_start: 42
        source_file: /src/nccl/src/include/plugin/net/net_v10.h
    - fields:
      - name: '* mhandle'
        type: void
      - name: '* address'
        type: void
      - name: size
        type: size_t
      item_type: struct
      name: ncclNetSGE_v10_t
      pos:
        line_end: 105
        line_start: 101
        source_file: /src/nccl/src/include/plugin/net/net_v10.h
    - fields:
      - name: '* name'
        type: char
      - name: (*init)(ncclDebugLogger_t logFunction)
        type: ncclResult_t
      - name: (*devices)(int* ndev)
        type: ncclResult_t
      - name: (*getProperties)(int dev, ncclNetProperties_v10_t* props)
        type: ncclResult_t
      - name: (*listen)(int dev, void* handle, void** listenComm)
        type: ncclResult_t
      - name: (*connect)(void* handles[], int nranks, int rank, void* listenComm,
          void** collComm)
        type: ncclResult_t
      - name: (*reduceSupport)(ncclDataType_t dataType, ncclRedOp_t redOp, int* supported)
        type: ncclResult_t
      - name: (*regMr)(void* collComm, void* data, size_t size, int type, void** mhandle)
        type: ncclResult_t
      - name: (*regMrDmaBuf)(void* collComm, void* data, size_t size, int type, uint64_t
          offset, int fd, void** mhandle)
        type: ncclResult_t
      - name: (*deregMr)(void* collComm, void* mhandle)
        type: ncclResult_t
      - name: "(*iallreduce)(void* collComm, void* sendData, void* recvData, size_t
          count,\n      ncclDataType_t dataType, ncclRedOp_t redOp, void* sendMhandle,
          void* recvMhandle, void** request)"
        type: ncclResult_t
      - name: "(*iallgather)(void* collComm, void* sendData, int nRecvParts, ncclNetSGE_v10_t*
          recvParts,\n                             size_t bytesPerRank, size_t windowOffset,
          size_t windowBytes,\n                             void* sendMhandle, void**
          request)"
        type: ncclResult_t
      - name: "(*ireducescatter)(void* collComm, int nSendParts, ncclNetSGE_v10_t*
          sendParts, void* recvData,\n                                 size_t bytesPerRank,
          size_t windowOffset, size_t windowBytes,\n                                 ncclDataType_t
          dataType, ncclRedOp_t redOp,\n                                 void* recvMhandle,
          void** request)"
        type: ncclResult_t
      - name: (*iflush)(void* collComm, void* data, int size, void* mhandle, void**
          request)
        type: ncclResult_t
      - name: (*test)(void* request, int* done, int* size)
        type: ncclResult_t
      - name: (*closeColl)(void* collComm)
        type: ncclResult_t
      - name: (*closeListen)(void* listenComm)
        type: ncclResult_t
      - name: (*makeVDevice)(int* d, ncclNetVDeviceProps_v10_t* props)
        type: ncclResult_t
      item_type: struct
      name: ncclCollNet_v10_t
      pos:
        line_end: 155
        line_start: 107
        source_file: /src/nccl/src/include/plugin/net/net_v10.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/src/include/plugin/profiler/profiler_v1.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: type
        type: uint8_t
      - name: '* parentObj'
        type: void
      - name: rank
        type: int
      item_type: struct
      name: ncclProfilerEventDescr_v1_t
      pos:
        line_end: 57
        line_start: 9
        source_file: /src/nccl/src/include/plugin/profiler/profiler_v1.h
    - fields:
      - name: '* name'
        type: char
      - name: (*init)(void** context, int* eActivationMask)
        type: ncclResult_t
      - name: (*startEvent)(void* context, void** eHandle, ncclProfilerEventDescr_v1_t*
          eDescr)
        type: ncclResult_t
      - name: (*stopEvent)(void* eHandle)
        type: ncclResult_t
      - name: (*recordEventState)(void* eHandle, ncclProfilerEventState_v1_t eState,
          ncclProfilerEventStateArgs_v1_t* eStateArgs)
        type: ncclResult_t
      - name: (*finalize)(void* context)
        type: ncclResult_t
      item_type: struct
      name: ncclProfiler_v1_t
      pos:
        line_end: 104
        line_start: 70
        source_file: /src/nccl/src/include/plugin/profiler/profiler_v1.h
    typedefs: []
    union:
    - fields:
      - name: proxyOp
        type: "struct {\n    size_t transSize;\n    int steps;\n  }"
      - name: proxyCtrl
        type: "struct {\n    int appendedProxyOps;\n  }"
      item_type: union
      name: ncclProfilerEventStateArgs_v1_t
      pos:
        line_end: 68
        line_start: 59
        source_file: /src/nccl/src/include/plugin/profiler/profiler_v1.h
- function_names: []
  source_file: /src/nccl/src/include/plugin/profiler/profiler_v3.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: type
        type: uint8_t
      - name: '* parentObj'
        type: void
      - name: rank
        type: int
      item_type: struct
      name: ncclProfilerEventDescr_v3_t
      pos:
        line_end: 62
        line_start: 9
        source_file: /src/nccl/src/include/plugin/profiler/profiler_v3.h
    - fields:
      - name: '* name'
        type: char
      - name: (*init)(void** context, int* eActivationMask)
        type: ncclResult_t
      - name: (*startEvent)(void* context, void** eHandle, ncclProfilerEventDescr_v3_t*
          eDescr)
        type: ncclResult_t
      - name: (*stopEvent)(void* eHandle)
        type: ncclResult_t
      - name: (*recordEventState)(void* eHandle, ncclProfilerEventState_v3_t eState,
          ncclProfilerEventStateArgs_v3_t* eStateArgs)
        type: ncclResult_t
      - name: (*finalize)(void* context)
        type: ncclResult_t
      item_type: struct
      name: ncclProfiler_v3_t
      pos:
        line_end: 109
        line_start: 75
        source_file: /src/nccl/src/include/plugin/profiler/profiler_v3.h
    typedefs: []
    union:
    - fields:
      - name: proxyOp
        type: "struct {\n    size_t transSize;\n    int steps;\n  }"
      - name: proxyCtrl
        type: "struct {\n    int appendedProxyOps;\n  }"
      item_type: union
      name: ncclProfilerEventStateArgs_v3_t
      pos:
        line_end: 73
        line_start: 64
        source_file: /src/nccl/src/include/plugin/profiler/profiler_v3.h
- function_names: []
  source_file: /src/nccl/src/include/plugin/profiler/net_socket_v1.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NCCL_PROFILER_NET_SOCKET_VER
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/nccl/src/include/plugin/profiler/net_socket_v1.h
      type_or_value: '1'
    structs:
    - fields:
      - name: type
        type: uint8_t
      item_type: struct
      name: ncclProfilerNetSockDescr_v1_t
      pos:
        line_end: 29
        line_start: 20
        source_file: /src/nccl/src/include/plugin/profiler/net_socket_v1.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/src/include/plugin/profiler/profiler_v4.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: type
        type: uint8_t
      - name: '* parentObj'
        type: void
      - name: rank
        type: int
      item_type: struct
      name: ncclProfilerEventDescr_v4_t
      pos:
        line_end: 60
        line_start: 9
        source_file: /src/nccl/src/include/plugin/profiler/profiler_v4.h
    - fields:
      - name: '* name'
        type: char
      - name: (*init)(void** context, int* eActivationMask, const char* commName,
          uint64_t commHash, int nNodes, int nranks, int rank, ncclDebugLogger_t logfn)
        type: ncclResult_t
      - name: (*startEvent)(void* context, void** eHandle, ncclProfilerEventDescr_v4_t*
          eDescr)
        type: ncclResult_t
      - name: (*stopEvent)(void* eHandle)
        type: ncclResult_t
      - name: (*recordEventState)(void* eHandle, ncclProfilerEventState_v4_t eState,
          ncclProfilerEventStateArgs_v4_t* eStateArgs)
        type: ncclResult_t
      - name: (*finalize)(void* context)
        type: ncclResult_t
      item_type: struct
      name: ncclProfiler_v4_t
      pos:
        line_end: 120
        line_start: 80
        source_file: /src/nccl/src/include/plugin/profiler/profiler_v4.h
    typedefs: []
    union:
    - fields:
      - name: proxyStep
        type: "struct {\n    size_t transSize;\n  }"
      - name: proxyCtrl
        type: "struct {\n    int appendedProxyOps;\n  }"
      - name: netPlugin
        type: "struct {\n    void* data;\n  }"
      - name: kernelCh
        type: "struct {\n    uint64_t pTimer;\n  }"
      item_type: union
      name: ncclProfilerEventStateArgs_v4_t
      pos:
        line_end: 78
        line_start: 62
        source_file: /src/nccl/src/include/plugin/profiler/profiler_v4.h
- function_names: []
  source_file: /src/nccl/src/include/plugin/profiler/net_ib_v1.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NCCL_PROFILER_NET_IB_VER
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/nccl/src/include/plugin/profiler/net_ib_v1.h
      type_or_value: '1'
    structs:
    - fields:
      - name: type
        type: uint8_t
      item_type: struct
      name: ncclProfilerNetIbDescr_v1_t
      pos:
        line_end: 31
        line_start: 20
        source_file: /src/nccl/src/include/plugin/profiler/net_ib_v1.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/src/include/plugin/profiler/profiler_v2.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: type
        type: uint8_t
      - name: '* parentObj'
        type: void
      - name: rank
        type: int
      item_type: struct
      name: ncclProfilerEventDescr_v2_t
      pos:
        line_end: 54
        line_start: 9
        source_file: /src/nccl/src/include/plugin/profiler/profiler_v2.h
    - fields:
      - name: '* name'
        type: char
      - name: (*init)(void** context, int* eActivationMask)
        type: ncclResult_t
      - name: (*startEvent)(void* context, void** eHandle, ncclProfilerEventDescr_v2_t*
          eDescr)
        type: ncclResult_t
      - name: (*stopEvent)(void* eHandle)
        type: ncclResult_t
      - name: (*recordEventState)(void* eHandle, ncclProfilerEventState_v2_t eState,
          ncclProfilerEventStateArgs_v2_t* eStateArgs)
        type: ncclResult_t
      - name: (*finalize)(void* context)
        type: ncclResult_t
      item_type: struct
      name: ncclProfiler_v2_t
      pos:
        line_end: 101
        line_start: 67
        source_file: /src/nccl/src/include/plugin/profiler/profiler_v2.h
    typedefs: []
    union:
    - fields:
      - name: proxyOp
        type: "struct {\n    size_t transSize;\n    int steps;\n  }"
      - name: proxyCtrl
        type: "struct {\n    int appendedProxyOps;\n  }"
      item_type: union
      name: ncclProfilerEventStateArgs_v2_t
      pos:
        line_end: 65
        line_start: 56
        source_file: /src/nccl/src/include/plugin/profiler/profiler_v2.h
- function_names: []
  source_file: /src/nccl/src/include/plugin/profiler/net_ib.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/src/include/plugin/profiler/net_socket.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/src/include/plugin/tuner/tuner_v3.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '* name'
        type: char
      - name: (*init)(size_t nRanks, size_t nNodes, ncclDebugLogger_t logFunction,
          void **context)
        type: ncclResult_t
      - name: "(*getCollInfo)(void* context, ncclFunc_t collType, size_t nBytes,\n
          \                             int numPipeOps, float** collCostTable, int
          numAlgo, int numProto,\n                              int* nChannels)"
        type: ncclResult_t
      - name: (*destroy)(void* context)
        type: ncclResult_t
      item_type: struct
      name: ncclTuner_v3_t
      pos:
        line_end: 52
        line_start: 11
        source_file: /src/nccl/src/include/plugin/tuner/tuner_v3.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/src/include/plugin/tuner/tuner_v4.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '* name'
        type: char
      - name: (*init)(size_t nRanks, size_t nNodes, ncclDebugLogger_t logFunction,
          void **context)
        type: ncclResult_t
      - name: "(*getCollInfo)(void* context, ncclFunc_t collType, size_t nBytes,\n
          \                             int numPipeOps, float** collCostTable, int
          numAlgo, int numProto,\n                              int regBuff, int*
          nChannels)"
        type: ncclResult_t
      - name: (*destroy)(void* context)
        type: ncclResult_t
      item_type: struct
      name: ncclTuner_v4_t
      pos:
        line_end: 53
        line_start: 11
        source_file: /src/nccl/src/include/plugin/tuner/tuner_v4.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/src/include/plugin/tuner/tuner_v2.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '* name'
        type: char
      - name: (*init)(size_t nRanks, size_t nNodes, ncclDebugLogger_t logFunction,
          void **context)
        type: ncclResult_t
      - name: "(*getCollInfo)(void* context, ncclFunc_t collType, size_t nBytes,\n
          \                             int collNetSupport, int nvlsSupport, int numPipeOps,\n
          \                             int* algorithm, int* protocol, int* nChannels)"
        type: ncclResult_t
      - name: (*destroy)(void* context)
        type: ncclResult_t
      item_type: struct
      name: ncclTuner_v2_t
      pos:
        line_end: 50
        line_start: 11
        source_file: /src/nccl/src/include/plugin/tuner/tuner_v2.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/src/include/mlx5/mlx5dvcore.h
  types:
    enum:
    - enumerators:
      - name: MLX5DV_REG_DMABUF_ACCESS_DATA_DIRECT
        value: (1<<0)
      item_type: enum
      name: mlx5dv_reg_dmabuf_access
      pos:
        line_end: 15
        line_start: 13
        source_file: /src/nccl/src/include/mlx5/mlx5dvcore.h
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/src/include/mlx5/mlx5dvwrap.h
  types:
    enum:
    - enumerators:
      - name: MLX5DV_SUCCESS
        value: '0'
      item_type: enum
      name: mlx5dv_return_enum
      pos:
        line_end: 30
        line_start: 27
        source_file: /src/nccl/src/include/mlx5/mlx5dvwrap.h
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: mlx5dv_return_t
      pos:
        line_end: 30
        line_start: 27
        source_file: /src/nccl/src/include/mlx5/mlx5dvwrap.h
    union: []
- function_names: []
  source_file: /src/nccl/src/include/mlx5/mlx5dvsymbols.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: (*mlx5dv_internal_is_supported)(struct ibv_device *device)
        type: bool
      - name: (*mlx5dv_internal_get_data_direct_sysfs_path)(struct ibv_context *context,
          char *buf, size_t buf_len)
        type: int
      - name: '* (*mlx5dv_internal_reg_dmabuf_mr)(struct ibv_pd *pd, uint64_t offset,
          size_t length, uint64_t iova, int fd, int access, int mlx5_access)'
        type: struct ibv_mr
      item_type: struct
      name: ncclMlx5dvSymbols
      pos:
        line_end: 17
        line_start: 12
        source_file: /src/nccl/src/include/mlx5/mlx5dvsymbols.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/src/include/nvtx3/nvToolsExtMem.h
  types:
    enum:
    - enumerators:
      - name: NVTX3EXT_CBID_nvtxMemHeapRegister
        value: '1'
      - name: NVTX3EXT_CBID_nvtxMemHeapReset
        value: '3'
      - name: NVTX3EXT_CBID_nvtxMemHeapUnregister
        value: '2'
      - name: NVTX3EXT_CBID_nvtxMemRegionsRegister
        value: '4'
      - name: NVTX3EXT_CBID_nvtxMemRegionsResize
        value: '5'
      - name: NVTX3EXT_CBID_nvtxMemRegionsUnregister
        value: '6'
      - name: NVTX3EXT_CBID_nvtxMemRegionsName
        value: '7'
      - name: NVTX3EXT_CBID_nvtxMemPermissionsAssign
        value: '8'
      - name: NVTX3EXT_CBID_nvtxMemPermissionsCreate
        value: '9'
      - name: NVTX3EXT_CBID_nvtxMemPermissionsDestroy
        value: '10'
      - name: NVTX3EXT_CBID_nvtxMemPermissionsBind
        value: '12'
      - name: NVTX3EXT_CBID_nvtxMemCudaSetPeerAccess
        value: '16'
      - name: NVTX3EXT_CBID_nvtxMemPermissionsUnbind
        value: '13'
      - name: NVTX3EXT_CBID_nvtxMemPermissionsReset
        value: '11'
      - name: NVTX3EXT_CBID_nvtxMemCudaGetProcessWidePermissions
        value: '14'
      - name: NVTX3EXT_CBID_MEM_FN_NUM
        value: '17'
      - name: NVTX3EXT_CBID_nvtxMemCudaGetDeviceWidePermissions
        value: '15'
      item_type: enum
      name: NvtxExtMemCallbackId
      pos:
        line_end: 667
        line_start: 644
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtMem.h
    preproc_defs:
    - item_type: preproc_def
      name: NVTX_EXT_MODULEID_MEM
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtMem.h
      type_or_value: '1'
    - item_type: preproc_def
      name: NVTX_EXT_COMPATID_MEM
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtMem.h
      type_or_value: '0x0102'
    - item_type: preproc_def
      name: NVTX_MEM_HEAP_HANDLE_NO_TOOL
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtMem.h
      type_or_value: ((nvtxMemHeapHandle_t)(intptr_t)-1)
    - item_type: preproc_def
      name: NVTX_MEM_REGION_HANDLE_NO_TOOL
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtMem.h
      type_or_value: ((nvtxMemRegionHandle_t)(intptr_t)-1)
    - item_type: preproc_def
      name: NVTX_MEM_PERMISSIONS_HANDLE_NO_TOOL
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtMem.h
      type_or_value: ((nvtxMemPermissionsHandle_t)-1)
    - item_type: preproc_def
      name: NVTX_MEM_HEAP_USAGE_UNKNOWN
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtMem.h
      type_or_value: '0x0'
    - item_type: preproc_def
      name: NVTX_MEM_TYPE_UNKNOWN
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtMem.h
      type_or_value: '0x0'
    - item_type: preproc_def
      name: NVTX_MEM_HEAP_HANDLE_PROCESS_WIDE
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtMem.h
      type_or_value: ((nvtxMemHeapHandle_t)0)
    - item_type: preproc_def
      name: NVTX_MEM_HEAP_USAGE_TYPE_SUB_ALLOCATOR
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtMem.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: NVTX_MEM_HEAP_USAGE_TYPE_LAYOUT
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtMem.h
      type_or_value: '0x2'
    - item_type: preproc_def
      name: NVTX_MEM_TYPE_VIRTUAL_ADDRESS
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtMem.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: NVTX_MEM_PERMISSIONS_HANDLE_PROCESS_WIDE
      pos:
        line_end: 118
        line_start: 117
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtMem.h
      type_or_value: ((nvtxMemPermissionsHandle_t)0)
    - item_type: preproc_def
      name: NVTX_MEM_PERMISSIONS_CREATE_FLAGS_NONE
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtMem.h
      type_or_value: '0x0'
    - item_type: preproc_def
      name: NVTX_MEM_PERMISSIONS_CREATE_FLAGS_EXCLUDE_GLOBAL_READ
      pos:
        line_end: 121
        line_start: 120
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtMem.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: NVTX_MEM_PERMISSIONS_CREATE_FLAGS_EXCLUDE_GLOBAL_WRITE
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtMem.h
      type_or_value: '0x2'
    - item_type: preproc_def
      name: NVTX_MEM_PERMISSIONS_CREATE_FLAGS_EXCLUDE_GLOBAL_ATOMIC
      pos:
        line_end: 123
        line_start: 122
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtMem.h
      type_or_value: '0x4'
    - item_type: preproc_def
      name: NVTX_MEM_REGION_REF_TYPE_UNKNOWN
      pos:
        line_end: 367
        line_start: 366
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtMem.h
      type_or_value: '0x0'
    - item_type: preproc_def
      name: NVTX_MEM_REGION_REF_TYPE_POINTER
      pos:
        line_end: 368
        line_start: 367
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtMem.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: NVTX_MEM_REGION_REF_TYPE_HANDLE
      pos:
        line_end: 369
        line_start: 368
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtMem.h
      type_or_value: '0x2'
    - item_type: preproc_def
      name: NVTX_MEM_PERMISSIONS_REGION_FLAGS_NONE
      pos:
        line_end: 448
        line_start: 447
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtMem.h
      type_or_value: '0x0'
    - item_type: preproc_def
      name: NVTX_MEM_PERMISSIONS_REGION_FLAGS_READ
      pos:
        line_end: 451
        line_start: 450
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtMem.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: NVTX_MEM_PERMISSIONS_REGION_FLAGS_WRITE
      pos:
        line_end: 454
        line_start: 453
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtMem.h
      type_or_value: '0x2'
    - item_type: preproc_def
      name: NVTX_MEM_PERMISSIONS_REGION_FLAGS_ATOMIC
      pos:
        line_end: 457
        line_start: 456
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtMem.h
      type_or_value: '0x4'
    - item_type: preproc_def
      name: NVTX_MEM_PERMISSIONS_REGION_FLAGS_RESET
      pos:
        line_end: 467
        line_start: 466
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtMem.h
      type_or_value: '0x8'
    - item_type: preproc_def
      name: NVTX_MEM_PERMISSIONS_BIND_FLAGS_NONE
      pos:
        line_end: 545
        line_start: 544
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtMem.h
      type_or_value: '0x0'
    - item_type: preproc_def
      name: NVTX_MEM_PERMISSIONS_BIND_FLAGS_STRICT_WRITE
      pos:
        line_end: 552
        line_start: 551
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtMem.h
      type_or_value: '0x2'
    - item_type: preproc_def
      name: NVTX_MEM_PERMISSIONS_BIND_FLAGS_STRICT_READ
      pos:
        line_end: 559
        line_start: 558
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtMem.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: NVTX_MEM_PERMISSIONS_BIND_FLAGS_STRICT_ATOMIC
      pos:
        line_end: 568
        line_start: 567
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtMem.h
      type_or_value: '0x4'
    - item_type: preproc_def
      name: NVTX_MEM_PERMISSIONS_BIND_SCOPE_UNKNOWN
      pos:
        line_end: 571
        line_start: 570
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtMem.h
      type_or_value: '0x0'
    - item_type: preproc_def
      name: NVTX_MEM_PERMISSIONS_BIND_SCOPE_CPU_THREAD
      pos:
        line_end: 580
        line_start: 579
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtMem.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: NVTX_MEM_PERMISSIONS_BIND_SCOPE_CUDA_STREAM
      pos:
        line_end: 600
        line_start: 599
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtMem.h
      type_or_value: '0x2'
    structs:
    - fields:
      - name: size
        type: size_t
      - name: '*  ptr'
        type: void
      item_type: struct
      name: nvtxMemVirtualRangeDesc_v1
      pos:
        line_end: 166
        line_start: 162
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtMem.h
    - fields:
      - name: extCompatID
        type: uint16_t
      - name: structSize
        type: uint16_t
      - name: reserved0
        type: uint32_t
      - name: usage
        type: uint32_t
      - name: type
        type: uint32_t
      - name: typeSpecificDescSize
        type: size_t
      - name: '* typeSpecificDesc'
        type: void
      - name: category
        type: uint32_t
      - name: messageType
        type: uint32_t
      - name: message
        type: nvtxMessageValue_t
      item_type: struct
      name: nvtxMemHeapDesc_v1
      pos:
        line_end: 251
        line_start: 171
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtMem.h
    - fields:
      - name: extCompatID
        type: uint16_t
      - name: structSize
        type: uint16_t
      - name: regionType
        type: uint32_t
      - name: heap
        type: nvtxMemHeapHandle_t
      - name: regionCount
        type: size_t
      - name: regionDescElementSize
        type: size_t
      - name: '* regionDescElements'
        type: void
      - name: '* regionHandleElementsOut'
        type: nvtxMemRegionHandle_t
      item_type: struct
      name: nvtxMemRegionsRegisterBatch_v1
      pos:
        line_end: 317
        line_start: 303
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtMem.h
    - fields:
      - name: extCompatID
        type: uint16_t
      - name: structSize
        type: uint16_t
      - name: regionType
        type: uint32_t
      - name: regionDescCount
        type: size_t
      - name: regionDescElementSize
        type: size_t
      - name: '* regionDescElements'
        type: void
      item_type: struct
      name: nvtxMemRegionsResizeBatch_v1
      pos:
        line_end: 356
        line_start: 345
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtMem.h
    - fields:
      - name: extCompatID
        type: uint16_t
      - name: structSize
        type: uint16_t
      - name: refType
        type: uint32_t
      - name: refCount
        type: size_t
      - name: refElementSize
        type: size_t
      - name: '* refElements'
        type: nvtxMemRegionRef_t
      item_type: struct
      name: nvtxMemRegionsUnregisterBatch_v1
      pos:
        line_end: 399
        line_start: 388
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtMem.h
    - fields:
      - name: regionRefType
        type: uint32_t
      - name: nameType
        type: uint32_t
      - name: region
        type: nvtxMemRegionRef_t
      - name: name
        type: nvtxMessageValue_t
      - name: category
        type: uint32_t
      - name: reserved0
        type: uint32_t
      item_type: struct
      name: nvtxMemRegionNameDesc_v1
      pos:
        line_end: 422
        line_start: 412
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtMem.h
    - fields:
      - name: extCompatID
        type: uint16_t
      - name: structSize
        type: uint16_t
      - name: reserved0
        type: uint32_t
      - name: regionCount
        type: size_t
      - name: regionElementSize
        type: size_t
      - name: '* regionElements'
        type: nvtxMemRegionNameDesc_t
      - name: reserved1
        type: size_t
      item_type: struct
      name: nvtxMemRegionsNameBatch_v1
      pos:
        line_end: 437
        line_start: 426
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtMem.h
    - fields:
      - name: flags
        type: uint32_t
      - name: regionRefType
        type: uint32_t
      - name: region
        type: nvtxMemRegionRef_t
      item_type: struct
      name: nvtxMemPermissionsAssignRegionDesc_v1
      pos:
        line_end: 475
        line_start: 469
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtMem.h
    - fields:
      - name: extCompatID
        type: uint16_t
      - name: structSize
        type: uint16_t
      - name: reserved0
        type: uint32_t
      - name: permissions
        type: nvtxMemPermissionsHandle_t
      - name: regionCount
        type: size_t
      - name: regionElementSize
        type: size_t
      - name: '* regionElements'
        type: nvtxMemPermissionsAssignRegionDesc_t
      - name: reserved1
        type: size_t
      item_type: struct
      name: nvtxMemPermissionsAssignBatch_v1
      pos:
        line_end: 493
        line_start: 479
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtMem.h
    typedefs:
    - item_type: typedef
      name: '* nvtxMemHeapHandle_t'
      pos:
        line_end: 132
        line_start: 132
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtMem.h
    - item_type: typedef
      name: '* nvtxMemRegionHandle_t'
      pos:
        line_end: 141
        line_start: 141
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtMem.h
    - item_type: typedef
      name: '* nvtxMemPermissionsHandle_t'
      pos:
        line_end: 159
        line_start: 159
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtMem.h
    - item_type: typedef
      name: nvtxMemVirtualRangeDesc_t
      pos:
        line_end: 167
        line_start: 167
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtMem.h
    - item_type: typedef
      name: nvtxMemHeapDesc_t
      pos:
        line_end: 252
        line_start: 252
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtMem.h
    - item_type: typedef
      name: nvtxMemRegionsRegisterBatch_t
      pos:
        line_end: 318
        line_start: 318
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtMem.h
    - item_type: typedef
      name: nvtxMemRegionsResizeBatch_t
      pos:
        line_end: 357
        line_start: 357
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtMem.h
    - item_type: typedef
      name: nvtxMemRegionsUnregisterBatch_t
      pos:
        line_end: 400
        line_start: 400
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtMem.h
    - item_type: typedef
      name: nvtxMemRegionNameDesc_t
      pos:
        line_end: 423
        line_start: 423
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtMem.h
    - item_type: typedef
      name: nvtxMemRegionsNameBatch_t
      pos:
        line_end: 438
        line_start: 438
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtMem.h
    - item_type: typedef
      name: nvtxMemPermissionsAssignRegionDesc_t
      pos:
        line_end: 476
        line_start: 476
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtMem.h
    - item_type: typedef
      name: nvtxMemPermissionsAssignBatch_t
      pos:
        line_end: 494
        line_start: 494
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtMem.h
    - item_type: typedef
      name: NvtxExtMemCallbackId
      pos:
        line_end: 667
        line_start: 644
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtMem.h
    union:
    - fields:
      - name: '* pointer'
        type: void
      - name: handle
        type: nvtxMemRegionHandle_t
      item_type: union
      name: nvtxMemRegionRef_t
      pos:
        line_end: 150
        line_start: 146
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtMem.h
- function_names: []
  source_file: /src/nccl/src/include/nvtx3/nvToolsExtCudaRt.h
  types:
    enum:
    - enumerators:
      - name: NVTX_RESOURCE_TYPE_CUDART_DEVICE
        value: NVTX_RESOURCE_MAKE_TYPE(CUDART, 0)
      - name: NVTX_RESOURCE_TYPE_CUDART_EVENT
        value: NVTX_RESOURCE_MAKE_TYPE(CUDART, 2)
      - name: NVTX_RESOURCE_TYPE_CUDART_STREAM
        value: NVTX_RESOURCE_MAKE_TYPE(CUDART, 1)
      item_type: enum
      name: nvtxResourceCUDARTType_t
      pos:
        line_end: 48
        line_start: 43
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtCudaRt.h
    preproc_defs:
    - item_type: preproc_def
      name: NVTX_RESOURCE_CLASS_CUDART
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtCudaRt.h
      type_or_value: '5'
    - item_type: preproc_def
      name: nvtxNameCudaDevice
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtCudaRt.h
      type_or_value: nvtxNameCudaDeviceW
    - item_type: preproc_def
      name: nvtxNameCudaStream
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtCudaRt.h
      type_or_value: nvtxNameCudaStreamW
    - item_type: preproc_def
      name: nvtxNameCudaEvent
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtCudaRt.h
      type_or_value: nvtxNameCudaEventW
    - item_type: preproc_def
      name: nvtxNameCudaDevice
      pos:
        line_end: 102
        line_start: 101
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtCudaRt.h
      type_or_value: nvtxNameCudaDeviceA
    - item_type: preproc_def
      name: nvtxNameCudaStream
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtCudaRt.h
      type_or_value: nvtxNameCudaStreamA
    - item_type: preproc_def
      name: nvtxNameCudaEvent
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtCudaRt.h
      type_or_value: nvtxNameCudaEventA
    structs: []
    typedefs:
    - item_type: typedef
      name: nvtxResourceCUDARTType_t
      pos:
        line_end: 48
        line_start: 43
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtCudaRt.h
    union: []
- function_names: []
  source_file: /src/nccl/src/include/nvtx3/nvToolsExtMemCudaRt.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NVTX_MEM_TYPE_CUDA_ARRAY
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtMemCudaRt.h
      type_or_value: '0x11'
    - item_type: preproc_def
      name: NVTX_MEM_TYPE_CU_ARRAY
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtMemCudaRt.h
      type_or_value: '0x12'
    - item_type: preproc_def
      name: NVTX_MEM_CUDA_PEER_ALL_DEVICES
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtMemCudaRt.h
      type_or_value: '-1'
    structs:
    - fields:
      - name: extCompatID
        type: uint16_t
      - name: structSize
        type: uint16_t
      - name: reserved0
        type: uint32_t
      - name: src
        type: cudaArray_t
      - name: offset[3]
        type: size_t
      - name: extent[3]
        type: size_t
      item_type: struct
      name: nvtxMemCudaArrayRangeDesc_v1
      pos:
        line_end: 42
        line_start: 34
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtMemCudaRt.h
    - fields:
      - name: extCompatID
        type: uint16_t
      - name: structSize
        type: uint16_t
      - name: reserved0
        type: uint32_t
      - name: src
        type: CUarray
      - name: offset[3]
        type: size_t
      - name: extent[3]
        type: size_t
      item_type: struct
      name: nvtxMemCuArrayRangeDesc_v1
      pos:
        line_end: 68
        line_start: 60
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtMemCudaRt.h
    typedefs:
    - item_type: typedef
      name: nvtxMemCudaArrayRangeDesc_t
      pos:
        line_end: 43
        line_start: 43
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtMemCudaRt.h
    - item_type: typedef
      name: nvtxMemCuArrayRangeDesc_t
      pos:
        line_end: 69
        line_start: 69
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtMemCudaRt.h
    union: []
- function_names:
  - NVTX_PAYLOAD_NESTED
  - NVTX_DEFINE_SCHEMA_FOR_STRUCT
  - NVTX_DEFINE_STRUCT_WITH_SCHEMA
  - NVTX_DEFINE_STRUCT_WITH_SCHEMA_AND_REGISTER
  - NVTX_DEFINE_SCHEMA_FOR_STRUCT_AND_REGISTER
  - NVTX_DEFINE_STRUCT
  - NVTX_PAYLOAD_SCHEMA_REGISTER
  source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayloadHelper.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - NVTX_PAYLOAD_ENTRY_FLAG_ARRAY_TYPE
  - NVTX_POINTER_AS_PAYLOAD_ULLVALUE
  - NVTX_POINTER_AS_PAYLOAD_ULLVALUE
  - NVTX_PAYLOAD_EVTATTR_SET_DATA
  - NVTX_PAYLOAD_EVTATTR_SET_MULTIPLE
  - NVTX_PAYLOAD_EVTATTR_SET
  - nvtxPayloadRangePush
  - nvtxPayloadMark
  source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NVTX_EXT_PAYLOAD_COMPATID
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: '0x0103'
    - item_type: preproc_def
      name: NVTX_EXT_PAYLOAD_MODULEID
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: '2'
    - item_type: preproc_def
      name: NVTX_PAYLOAD_TYPE_EXT
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: ((int32_t)0xDFBD0009)
    - item_type: preproc_def
      name: NVTX_PAYLOAD_ENTRY_FLAG_UNUSED
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: '0'
    - item_type: preproc_def
      name: NVTX_PAYLOAD_ENTRY_FLAG_POINTER
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: (1 << 1)
    - item_type: preproc_def
      name: NVTX_PAYLOAD_ENTRY_FLAG_OFFSET_FROM_BASE
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: (1 << 2)
    - item_type: preproc_def
      name: NVTX_PAYLOAD_ENTRY_FLAG_OFFSET_FROM_HERE
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: (1 << 3)
    - item_type: preproc_def
      name: NVTX_PAYLOAD_ENTRY_FLAG_ARRAY_FIXED_SIZE
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: (1 << 4)
    - item_type: preproc_def
      name: NVTX_PAYLOAD_ENTRY_FLAG_ARRAY_ZERO_TERMINATED
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: (2 << 4)
    - item_type: preproc_def
      name: NVTX_PAYLOAD_ENTRY_FLAG_ARRAY_LENGTH_INDEX
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: (3 << 4)
    - item_type: preproc_def
      name: NVTX_PAYLOAD_ENTRY_FLAG_ARRAY_LENGTH_PAYLOAD_INDEX
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: (4 << 4)
    - item_type: preproc_def
      name: NVTX_PAYLOAD_ENTRY_FLAG_DEEP_COPY
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: (1 << 8)
    - item_type: preproc_def
      name: NVTX_PAYLOAD_ENTRY_FLAG_HIDE
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: (1 << 9)
    - item_type: preproc_def
      name: NVTX_PAYLOAD_ENTRY_FLAG_EVENT_MESSAGE
      pos:
        line_end: 115
        line_start: 114
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: (1 << 10)
    - item_type: preproc_def
      name: NVTX_PAYLOAD_ENTRY_FLAG_EVENT_TIMESTAMP
      pos:
        line_end: 123
        line_start: 122
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: (2 << 10)
    - item_type: preproc_def
      name: NVTX_PAYLOAD_ENTRY_FLAG_RANGE_BEGIN
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: (1 << 12)
    - item_type: preproc_def
      name: NVTX_PAYLOAD_ENTRY_FLAG_RANGE_END
      pos:
        line_end: 129
        line_start: 128
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: (2 << 12)
    - item_type: preproc_def
      name: NVTX_PAYLOAD_ENTRY_FLAG_MARK
      pos:
        line_end: 130
        line_start: 129
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: (3 << 12)
    - item_type: preproc_def
      name: NVTX_PAYLOAD_ENTRY_FLAG_COUNTER
      pos:
        line_end: 131
        line_start: 130
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: (4 << 12)
    - item_type: preproc_def
      name: NVTX_PAYLOAD_ENTRY_FLAG_IS_ARRAY
      pos:
        line_end: 153
        line_start: 149
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: "(\\\n    NVTX_PAYLOAD_ENTRY_FLAG_ARRAY_FIXED_SIZE | \\\n    NVTX_PAYLOAD_ENTRY_FLAG_ARRAY_ZERO_TERMINATED
        | \\\n    NVTX_PAYLOAD_ENTRY_FLAG_ARRAY_LENGTH_INDEX)"
    - item_type: preproc_def
      name: NVTX_PAYLOAD_ENTRY_TYPE_INVALID
      pos:
        line_end: 175
        line_start: 174
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: '0'
    - item_type: preproc_def
      name: NVTX_PAYLOAD_ENTRY_TYPE_CHAR
      pos:
        line_end: 180
        line_start: 179
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: '1'
    - item_type: preproc_def
      name: NVTX_PAYLOAD_ENTRY_TYPE_UCHAR
      pos:
        line_end: 181
        line_start: 180
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: '2'
    - item_type: preproc_def
      name: NVTX_PAYLOAD_ENTRY_TYPE_SHORT
      pos:
        line_end: 182
        line_start: 181
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: '3'
    - item_type: preproc_def
      name: NVTX_PAYLOAD_ENTRY_TYPE_USHORT
      pos:
        line_end: 183
        line_start: 182
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: '4'
    - item_type: preproc_def
      name: NVTX_PAYLOAD_ENTRY_TYPE_INT
      pos:
        line_end: 184
        line_start: 183
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: '5'
    - item_type: preproc_def
      name: NVTX_PAYLOAD_ENTRY_TYPE_UINT
      pos:
        line_end: 185
        line_start: 184
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: '6'
    - item_type: preproc_def
      name: NVTX_PAYLOAD_ENTRY_TYPE_LONG
      pos:
        line_end: 186
        line_start: 185
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: '7'
    - item_type: preproc_def
      name: NVTX_PAYLOAD_ENTRY_TYPE_ULONG
      pos:
        line_end: 187
        line_start: 186
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: '8'
    - item_type: preproc_def
      name: NVTX_PAYLOAD_ENTRY_TYPE_LONGLONG
      pos:
        line_end: 188
        line_start: 187
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: '9'
    - item_type: preproc_def
      name: NVTX_PAYLOAD_ENTRY_TYPE_ULONGLONG
      pos:
        line_end: 189
        line_start: 188
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: '10'
    - item_type: preproc_def
      name: NVTX_PAYLOAD_ENTRY_TYPE_INT8
      pos:
        line_end: 194
        line_start: 193
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: '11'
    - item_type: preproc_def
      name: NVTX_PAYLOAD_ENTRY_TYPE_UINT8
      pos:
        line_end: 195
        line_start: 194
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: '12'
    - item_type: preproc_def
      name: NVTX_PAYLOAD_ENTRY_TYPE_INT16
      pos:
        line_end: 196
        line_start: 195
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: '13'
    - item_type: preproc_def
      name: NVTX_PAYLOAD_ENTRY_TYPE_UINT16
      pos:
        line_end: 197
        line_start: 196
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: '14'
    - item_type: preproc_def
      name: NVTX_PAYLOAD_ENTRY_TYPE_INT32
      pos:
        line_end: 198
        line_start: 197
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: '15'
    - item_type: preproc_def
      name: NVTX_PAYLOAD_ENTRY_TYPE_UINT32
      pos:
        line_end: 199
        line_start: 198
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: '16'
    - item_type: preproc_def
      name: NVTX_PAYLOAD_ENTRY_TYPE_INT64
      pos:
        line_end: 200
        line_start: 199
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: '17'
    - item_type: preproc_def
      name: NVTX_PAYLOAD_ENTRY_TYPE_UINT64
      pos:
        line_end: 201
        line_start: 200
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: '18'
    - item_type: preproc_def
      name: NVTX_PAYLOAD_ENTRY_TYPE_FLOAT
      pos:
        line_end: 206
        line_start: 205
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: '19'
    - item_type: preproc_def
      name: NVTX_PAYLOAD_ENTRY_TYPE_DOUBLE
      pos:
        line_end: 207
        line_start: 206
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: '20'
    - item_type: preproc_def
      name: NVTX_PAYLOAD_ENTRY_TYPE_LONGDOUBLE
      pos:
        line_end: 208
        line_start: 207
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: '21'
    - item_type: preproc_def
      name: NVTX_PAYLOAD_ENTRY_TYPE_SIZE
      pos:
        line_end: 213
        line_start: 212
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: '22'
    - item_type: preproc_def
      name: NVTX_PAYLOAD_ENTRY_TYPE_ADDRESS
      pos:
        line_end: 219
        line_start: 218
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: '23'
    - item_type: preproc_def
      name: NVTX_PAYLOAD_ENTRY_TYPE_WCHAR
      pos:
        line_end: 224
        line_start: 223
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: '24 '
    - item_type: preproc_def
      name: NVTX_PAYLOAD_ENTRY_TYPE_CHAR8
      pos:
        line_end: 225
        line_start: 224
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: '25 '
    - item_type: preproc_def
      name: NVTX_PAYLOAD_ENTRY_TYPE_CHAR16
      pos:
        line_end: 226
        line_start: 225
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: '26'
    - item_type: preproc_def
      name: NVTX_PAYLOAD_ENTRY_TYPE_CHAR32
      pos:
        line_end: 227
        line_start: 226
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: '27'
    - item_type: preproc_def
      name: NVTX_PAYLOAD_ENTRY_TYPE_INFO_ARRAY_SIZE
      pos:
        line_end: 232
        line_start: 231
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: (NVTX_PAYLOAD_ENTRY_TYPE_CHAR32 + 1)
    - item_type: preproc_def
      name: NVTX_PAYLOAD_ENTRY_TYPE_BYTE
      pos:
        line_end: 238
        line_start: 237
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: '32'
    - item_type: preproc_def
      name: NVTX_PAYLOAD_ENTRY_TYPE_INT128
      pos:
        line_end: 246
        line_start: 245
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: '33'
    - item_type: preproc_def
      name: NVTX_PAYLOAD_ENTRY_TYPE_UINT128
      pos:
        line_end: 247
        line_start: 246
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: '34'
    - item_type: preproc_def
      name: NVTX_PAYLOAD_ENTRY_TYPE_FLOAT16
      pos:
        line_end: 249
        line_start: 248
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: '42'
    - item_type: preproc_def
      name: NVTX_PAYLOAD_ENTRY_TYPE_FLOAT32
      pos:
        line_end: 250
        line_start: 249
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: '43'
    - item_type: preproc_def
      name: NVTX_PAYLOAD_ENTRY_TYPE_FLOAT64
      pos:
        line_end: 251
        line_start: 250
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: '44'
    - item_type: preproc_def
      name: NVTX_PAYLOAD_ENTRY_TYPE_FLOAT128
      pos:
        line_end: 252
        line_start: 251
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: '45'
    - item_type: preproc_def
      name: NVTX_PAYLOAD_ENTRY_TYPE_BF16
      pos:
        line_end: 254
        line_start: 253
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: '50'
    - item_type: preproc_def
      name: NVTX_PAYLOAD_ENTRY_TYPE_TF32
      pos:
        line_end: 255
        line_start: 254
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: '52'
    - item_type: preproc_def
      name: NVTX_PAYLOAD_ENTRY_TYPE_CATEGORY
      pos:
        line_end: 260
        line_start: 259
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: '68 '
    - item_type: preproc_def
      name: NVTX_PAYLOAD_ENTRY_TYPE_COLOR_ARGB
      pos:
        line_end: 261
        line_start: 260
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: '69 '
    - item_type: preproc_def
      name: NVTX_PAYLOAD_ENTRY_TYPE_SCOPE_ID
      pos:
        line_end: 266
        line_start: 265
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: '70 '
    - item_type: preproc_def
      name: NVTX_PAYLOAD_ENTRY_TYPE_TID_UINT32
      pos:
        line_end: 271
        line_start: 270
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: '73'
    - item_type: preproc_def
      name: NVTX_PAYLOAD_ENTRY_TYPE_TID_UINT64
      pos:
        line_end: 272
        line_start: 271
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: '74'
    - item_type: preproc_def
      name: NVTX_PAYLOAD_ENTRY_TYPE_CSTRING
      pos:
        line_end: 290
        line_start: 289
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: '75 '
    - item_type: preproc_def
      name: NVTX_PAYLOAD_ENTRY_TYPE_CSTRING_UTF8
      pos:
        line_end: 291
        line_start: 290
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: '76'
    - item_type: preproc_def
      name: NVTX_PAYLOAD_ENTRY_TYPE_CSTRING_UTF16
      pos:
        line_end: 292
        line_start: 291
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: '77'
    - item_type: preproc_def
      name: NVTX_PAYLOAD_ENTRY_TYPE_CSTRING_UTF32
      pos:
        line_end: 293
        line_start: 292
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: '78'
    - item_type: preproc_def
      name: NVTX_PAYLOAD_ENTRY_TYPE_NVTX_REGISTERED_STRING_HANDLE
      pos:
        line_end: 299
        line_start: 298
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: '80'
    - item_type: preproc_def
      name: NVTX_PAYLOAD_ENTRY_TYPE_UNION_SELECTOR
      pos:
        line_end: 306
        line_start: 305
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: '100'
    - item_type: preproc_def
      name: NVTX_TYPE_PAYLOAD_SCHEMA_REFERENCED
      pos:
        line_end: 317
        line_start: 316
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: '1022'
    - item_type: preproc_def
      name: NVTX_TYPE_PAYLOAD_SCHEMA_RAW
      pos:
        line_end: 326
        line_start: 325
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: '1023'
    - item_type: preproc_def
      name: NVTX_PAYLOAD_ENTRY_TYPE_CUSTOM_BASE
      pos:
        line_end: 336
        line_start: 335
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: '65536'
    - item_type: preproc_def
      name: NVTX_PAYLOAD_ENTRY_TYPE_SCHEMA_ID_STATIC_START
      pos:
        line_end: 339
        line_start: 338
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: (1 << 24)
    - item_type: preproc_def
      name: NVTX_PAYLOAD_ENTRY_TYPE_SCHEMA_ID_DYNAMIC_START
      pos:
        line_end: 342
        line_start: 341
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: '4294967296 '
    - item_type: preproc_def
      name: NVTX_PAYLOAD_SCHEMA_TYPE_INVALID
      pos:
        line_end: 359
        line_start: 358
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: '0'
    - item_type: preproc_def
      name: NVTX_PAYLOAD_SCHEMA_TYPE_STATIC
      pos:
        line_end: 360
        line_start: 359
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: '1'
    - item_type: preproc_def
      name: NVTX_PAYLOAD_SCHEMA_TYPE_DYNAMIC
      pos:
        line_end: 361
        line_start: 360
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: '2'
    - item_type: preproc_def
      name: NVTX_PAYLOAD_SCHEMA_TYPE_UNION
      pos:
        line_end: 362
        line_start: 361
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: '3'
    - item_type: preproc_def
      name: NVTX_PAYLOAD_SCHEMA_TYPE_UNION_WITH_INTERNAL_SELECTOR
      pos:
        line_end: 363
        line_start: 362
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: '4'
    - item_type: preproc_def
      name: NVTX_PAYLOAD_SCHEMA_FLAG_NONE
      pos:
        line_end: 376
        line_start: 375
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: '0'
    - item_type: preproc_def
      name: NVTX_PAYLOAD_SCHEMA_FLAG_DEEP_COPY
      pos:
        line_end: 382
        line_start: 381
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: (1 << 1)
    - item_type: preproc_def
      name: NVTX_PAYLOAD_SCHEMA_FLAG_REFERENCED
      pos:
        line_end: 390
        line_start: 389
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: (1 << 2)
    - item_type: preproc_def
      name: NVTX_PAYLOAD_SCHEMA_FLAG_COUNTER_GROUP
      pos:
        line_end: 396
        line_start: 395
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: (1 << 3)
    - item_type: preproc_def
      name: NVTX_PAYLOAD_SCHEMA_ATTR_NAME
      pos:
        line_end: 409
        line_start: 408
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: (1 << 1)
    - item_type: preproc_def
      name: NVTX_PAYLOAD_SCHEMA_ATTR_TYPE
      pos:
        line_end: 410
        line_start: 409
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: (1 << 2)
    - item_type: preproc_def
      name: NVTX_PAYLOAD_SCHEMA_ATTR_FLAGS
      pos:
        line_end: 411
        line_start: 410
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: (1 << 3)
    - item_type: preproc_def
      name: NVTX_PAYLOAD_SCHEMA_ATTR_ENTRIES
      pos:
        line_end: 412
        line_start: 411
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: (1 << 4)
    - item_type: preproc_def
      name: NVTX_PAYLOAD_SCHEMA_ATTR_NUM_ENTRIES
      pos:
        line_end: 413
        line_start: 412
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: (1 << 5)
    - item_type: preproc_def
      name: NVTX_PAYLOAD_SCHEMA_ATTR_STATIC_SIZE
      pos:
        line_end: 414
        line_start: 413
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: (1 << 6)
    - item_type: preproc_def
      name: NVTX_PAYLOAD_SCHEMA_ATTR_ALIGNMENT
      pos:
        line_end: 415
        line_start: 414
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: (1 << 7)
    - item_type: preproc_def
      name: NVTX_PAYLOAD_SCHEMA_ATTR_SCHEMA_ID
      pos:
        line_end: 416
        line_start: 415
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: (1 << 8)
    - item_type: preproc_def
      name: NVTX_PAYLOAD_SCHEMA_ATTR_EXTENSION
      pos:
        line_end: 417
        line_start: 416
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: (1 << 9)
    - item_type: preproc_def
      name: NVTX_PAYLOAD_ENUM_ATTR_NAME
      pos:
        line_end: 429
        line_start: 428
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: (1 << 1)
    - item_type: preproc_def
      name: NVTX_PAYLOAD_ENUM_ATTR_ENTRIES
      pos:
        line_end: 430
        line_start: 429
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: (1 << 2)
    - item_type: preproc_def
      name: NVTX_PAYLOAD_ENUM_ATTR_NUM_ENTRIES
      pos:
        line_end: 431
        line_start: 430
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: (1 << 3)
    - item_type: preproc_def
      name: NVTX_PAYLOAD_ENUM_ATTR_SIZE
      pos:
        line_end: 432
        line_start: 431
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: (1 << 4)
    - item_type: preproc_def
      name: NVTX_PAYLOAD_ENUM_ATTR_SCHEMA_ID
      pos:
        line_end: 433
        line_start: 432
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: (1 << 5)
    - item_type: preproc_def
      name: NVTX_PAYLOAD_ENUM_ATTR_EXTENSION
      pos:
        line_end: 434
        line_start: 433
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: (1 << 6)
    - item_type: preproc_def
      name: NVTX_SCOPE_NONE
      pos:
        line_end: 445
        line_start: 444
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: '0 '
    - item_type: preproc_def
      name: NVTX_SCOPE_ROOT
      pos:
        line_end: 447
        line_start: 446
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: '1'
    - item_type: preproc_def
      name: NVTX_SCOPE_CURRENT_HW_MACHINE
      pos:
        line_end: 449
        line_start: 448
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: '2 '
    - item_type: preproc_def
      name: NVTX_SCOPE_CURRENT_HW_SOCKET
      pos:
        line_end: 450
        line_start: 449
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: '3'
    - item_type: preproc_def
      name: NVTX_SCOPE_CURRENT_HW_CPU_PHYSICAL
      pos:
        line_end: 451
        line_start: 450
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: '4 '
    - item_type: preproc_def
      name: NVTX_SCOPE_CURRENT_HW_CPU_LOGICAL
      pos:
        line_end: 452
        line_start: 451
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: '5 '
    - item_type: preproc_def
      name: NVTX_SCOPE_CURRENT_HW_INNERMOST
      pos:
        line_end: 454
        line_start: 453
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: '15'
    - item_type: preproc_def
      name: NVTX_SCOPE_CURRENT_HYPERVISOR
      pos:
        line_end: 458
        line_start: 457
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: '16'
    - item_type: preproc_def
      name: NVTX_SCOPE_CURRENT_VM
      pos:
        line_end: 459
        line_start: 458
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: '17'
    - item_type: preproc_def
      name: NVTX_SCOPE_CURRENT_KERNEL
      pos:
        line_end: 460
        line_start: 459
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: '18'
    - item_type: preproc_def
      name: NVTX_SCOPE_CURRENT_CONTAINER
      pos:
        line_end: 461
        line_start: 460
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: '19'
    - item_type: preproc_def
      name: NVTX_SCOPE_CURRENT_OS
      pos:
        line_end: 462
        line_start: 461
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: '20'
    - item_type: preproc_def
      name: NVTX_SCOPE_CURRENT_SW_PROCESS
      pos:
        line_end: 465
        line_start: 464
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: '21 '
    - item_type: preproc_def
      name: NVTX_SCOPE_CURRENT_SW_THREAD
      pos:
        line_end: 466
        line_start: 465
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: '22 '
    - item_type: preproc_def
      name: NVTX_SCOPE_CURRENT_SW_INNERMOST
      pos:
        line_end: 468
        line_start: 467
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: '31'
    - item_type: preproc_def
      name: NVTX_SCOPE_ID_STATIC_START
      pos:
        line_end: 471
        line_start: 470
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: (1 << 24)
    - item_type: preproc_def
      name: NVTX_SCOPE_ID_DYNAMIC_START
      pos:
        line_end: 474
        line_start: 473
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: '4294967296  '
    - item_type: preproc_def
      name: NVTX3EXT_CBID_nvtxPayloadSchemaRegister
      pos:
        line_end: 975
        line_start: 974
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: '0'
    - item_type: preproc_def
      name: NVTX3EXT_CBID_nvtxPayloadEnumRegister
      pos:
        line_end: 976
        line_start: 975
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: '1'
    - item_type: preproc_def
      name: NVTX3EXT_CBID_nvtxMarkPayload
      pos:
        line_end: 977
        line_start: 976
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: '2'
    - item_type: preproc_def
      name: NVTX3EXT_CBID_nvtxRangePushPayload
      pos:
        line_end: 978
        line_start: 977
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: '3'
    - item_type: preproc_def
      name: NVTX3EXT_CBID_nvtxRangePopPayload
      pos:
        line_end: 979
        line_start: 978
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: '4'
    - item_type: preproc_def
      name: NVTX3EXT_CBID_nvtxRangeStartPayload
      pos:
        line_end: 980
        line_start: 979
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: '5'
    - item_type: preproc_def
      name: NVTX3EXT_CBID_nvtxRangeEndPayload
      pos:
        line_end: 981
        line_start: 980
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: '6'
    - item_type: preproc_def
      name: NVTX3EXT_CBID_nvtxDomainIsEnabled
      pos:
        line_end: 982
        line_start: 981
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: '7'
    - item_type: preproc_def
      name: NVTX3EXT_CBID_nvtxScopeRegister
      pos:
        line_end: 983
        line_start: 982
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
      type_or_value: '12'
    structs:
    - fields:
      - name: size
        type: uint16_t
      - name: align
        type: uint16_t
      item_type: struct
      name: nvtxPayloadEntryTypeInfo_v1
      pos:
        line_end: 495
        line_start: 491
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
    - fields:
      - name: schemaId
        type: uint64_t
      - name: size
        type: size_t
      - name: '* payload'
        type: void
      item_type: struct
      name: nvtxPayloadData_v1
      pos:
        line_end: 530
        line_start: 513
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
    - fields:
      - name: structSize
        type: uint32_t
      - name: semanticId
        type: uint16_t
      - name: version
        type: uint16_t
      - name: '* next'
        type: struct nvtxSemanticsHeader_v1
      item_type: struct
      name: nvtxSemanticsHeader_v1
      pos:
        line_end: 547
        line_start: 540
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
    - fields:
      - name: flags
        type: uint64_t
      - name: type
        type: uint64_t
      - name: '*    name'
        type: char
      - name: '*    description'
        type: char
      - name: arrayOrUnionDetail
        type: uint64_t
      - name: offset
        type: uint64_t
      - name: '* semantics'
        type: nvtxSemanticsHeader_t
      - name: '*    reserved'
        type: void
      item_type: struct
      name: nvtxPayloadSchemaEntry_v1
      pos:
        line_end: 642
        line_start: 564
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
    - fields:
      - name: structSize
        type: uint32_t
      - name: schemaExtId
        type: uint16_t
      - name: version
        type: uint16_t
      - name: '* next'
        type: struct nvtxPayloadSchemaExtension_v1
      item_type: struct
      name: nvtxPayloadSchemaExtension_v1
      pos:
        line_end: 655
        line_start: 648
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
    - fields:
      - name: fieldMask
        type: uint64_t
      - name: '*                     name'
        type: char
      - name: type
        type: uint64_t
      - name: flags
        type: uint64_t
      - name: '* entries'
        type: nvtxPayloadSchemaEntry_t
      - name: numEntries
        type: size_t
      - name: payloadStaticSize
        type: size_t
      - name: packAlign
        type: size_t
      - name: schemaId
        type: uint64_t
      - name: '*                           extension'
        type: void
      item_type: struct
      name: nvtxPayloadSchemaAttr_v1
      pos:
        line_end: 730
        line_start: 660
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
    - fields:
      - name: '* name'
        type: char
      - name: value
        type: uint64_t
      - name: isFlag
        type: int8_t
      item_type: struct
      name: nvtxPayloadEnum_v1
      pos:
        line_end: 760
        line_start: 743
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
    - fields:
      - name: fieldMask
        type: uint64_t
      - name: '*              name'
        type: char
      - name: '* entries'
        type: nvtxPayloadEnum_t
      - name: numEntries
        type: size_t
      - name: sizeOfEnum
        type: size_t
      - name: schemaId
        type: uint64_t
      - name: '*                    extension'
        type: void
      item_type: struct
      name: nvtxPayloadEnumAttr_v1
      pos:
        line_end: 803
        line_start: 767
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
    - fields:
      - name: structSize
        type: size_t
      - name: '* path'
        type: char
      - name: parentScope
        type: uint64_t
      - name: scopeId
        type: uint64_t
      item_type: struct
      name: nvtxScopeAttr_v1
      pos:
        line_end: 824
        line_start: 805
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtPayload.h
    typedefs: []
    union: []
- function_names:
  - NVTX_VERSIONED_IDENTIFIER_L3
  - NVTX_VERSIONED_IDENTIFIER_L2
  - NVTX_VERSIONED_IDENTIFIER
  - NVTX_RESOURCE_MAKE_TYPE
  source_file: /src/nccl/src/include/nvtx3/nvToolsExt.h
  types:
    enum:
    - enumerators:
      - name: NVTX_COLOR_UNKNOWN
        value: '0'
      - name: NVTX_COLOR_ARGB
        value: '1'
      item_type: enum
      name: nvtxColorType_t
      pos:
        line_end: 280
        line_start: 276
        source_file: /src/nccl/src/include/nvtx3/nvToolsExt.h
    - enumerators:
      - name: NVTX_MESSAGE_UNKNOWN
        value: '0'
      - name: NVTX_MESSAGE_TYPE_ASCII
        value: '1'
      - name: NVTX_MESSAGE_TYPE_UNICODE
        value: '2'
      - name: NVTX_MESSAGE_TYPE_REGISTERED
        value: '3'
      item_type: enum
      name: nvtxMessageType_t
      pos:
        line_end: 294
        line_start: 285
        source_file: /src/nccl/src/include/nvtx3/nvToolsExt.h
    - enumerators:
      - name: NVTX_PAYLOAD_UNKNOWN
        value: '0'
      - name: NVTX_PAYLOAD_TYPE_INT64
        value: '2'
      - name: NVTX_PAYLOAD_TYPE_DOUBLE
        value: '3'
      - name: NVTX_PAYLOAD_TYPE_UNSIGNED_INT32
        value: '4'
      - name: NVTX_PAYLOAD_TYPE_UNSIGNED_INT64
        value: '1'
      - name: NVTX_PAYLOAD_TYPE_INT32
        value: '5'
      - name: NVTX_PAYLOAD_TYPE_FLOAT
        value: '6'
      item_type: enum
      name: nvtxPayloadType_t
      pos:
        line_end: 352
        line_start: 342
        source_file: /src/nccl/src/include/nvtx3/nvToolsExt.h
    - enumerators:
      - name: NVTX_RESOURCE_TYPE_UNKNOWN
        value: '0'
      - name: NVTX_RESOURCE_TYPE_GENERIC_THREAD_NATIVE
        value: NVTX_RESOURCE_MAKE_TYPE(GENERIC, 3)
      - name: NVTX_RESOURCE_TYPE_GENERIC_HANDLE
        value: NVTX_RESOURCE_MAKE_TYPE(GENERIC, 2)
      - name: NVTX_RESOURCE_TYPE_GENERIC_POINTER
        value: NVTX_RESOURCE_MAKE_TYPE(GENERIC, 1)
      - name: NVTX_RESOURCE_TYPE_GENERIC_THREAD_POSIX
        value: NVTX_RESOURCE_MAKE_TYPE(GENERIC, 4)
      item_type: enum
      name: nvtxResourceGenericType_t
      pos:
        line_end: 959
        line_start: 952
        source_file: /src/nccl/src/include/nvtx3/nvToolsExt.h
    preproc_defs:
    - item_type: preproc_def
      name: NVTX_VERSION
      pos:
        line_end: 155
        line_start: 154
        source_file: /src/nccl/src/include/nvtx3/nvToolsExt.h
      type_or_value: '3'
    - item_type: preproc_def
      name: NVTX_API
      pos:
        line_end: 158
        line_start: 157
        source_file: /src/nccl/src/include/nvtx3/nvToolsExt.h
      type_or_value: __stdcall
    - item_type: preproc_def
      name: NVTX_INLINE_STATIC
      pos:
        line_end: 159
        line_start: 158
        source_file: /src/nccl/src/include/nvtx3/nvToolsExt.h
      type_or_value: __inline static
    - item_type: preproc_def
      name: NVTX_INLINE_STATIC
      pos:
        line_end: 163
        line_start: 162
        source_file: /src/nccl/src/include/nvtx3/nvToolsExt.h
      type_or_value: inline static
    - item_type: preproc_def
      name: NVTX_INLINE_STATIC
      pos:
        line_end: 165
        line_start: 164
        source_file: /src/nccl/src/include/nvtx3/nvToolsExt.h
      type_or_value: __inline__ static
    - item_type: preproc_def
      name: NVTX_DECLSPEC
      pos:
        line_end: 182
        line_start: 181
        source_file: /src/nccl/src/include/nvtx3/nvToolsExt.h
      type_or_value: NVTX_INLINE_STATIC
    - item_type: preproc_def
      name: NVTX_SUCCESS
      pos:
        line_end: 223
        line_start: 222
        source_file: /src/nccl/src/include/nvtx3/nvToolsExt.h
      type_or_value: '0'
    - item_type: preproc_def
      name: NVTX_FAIL
      pos:
        line_end: 224
        line_start: 223
        source_file: /src/nccl/src/include/nvtx3/nvToolsExt.h
      type_or_value: '1'
    - item_type: preproc_def
      name: NVTX_ERR_INIT_LOAD_PROPERTY
      pos:
        line_end: 225
        line_start: 224
        source_file: /src/nccl/src/include/nvtx3/nvToolsExt.h
      type_or_value: '2'
    - item_type: preproc_def
      name: NVTX_ERR_INIT_ACCESS_LIBRARY
      pos:
        line_end: 226
        line_start: 225
        source_file: /src/nccl/src/include/nvtx3/nvToolsExt.h
      type_or_value: '3'
    - item_type: preproc_def
      name: NVTX_ERR_INIT_LOAD_LIBRARY
      pos:
        line_end: 227
        line_start: 226
        source_file: /src/nccl/src/include/nvtx3/nvToolsExt.h
      type_or_value: '4'
    - item_type: preproc_def
      name: NVTX_ERR_INIT_MISSING_LIBRARY_ENTRY_POINT
      pos:
        line_end: 228
        line_start: 227
        source_file: /src/nccl/src/include/nvtx3/nvToolsExt.h
      type_or_value: '5'
    - item_type: preproc_def
      name: NVTX_ERR_INIT_FAILED_LIBRARY_ENTRY_POINT
      pos:
        line_end: 229
        line_start: 228
        source_file: /src/nccl/src/include/nvtx3/nvToolsExt.h
      type_or_value: '6'
    - item_type: preproc_def
      name: NVTX_ERR_NO_INJECTION_LIBRARY_AVAILABLE
      pos:
        line_end: 230
        line_start: 229
        source_file: /src/nccl/src/include/nvtx3/nvToolsExt.h
      type_or_value: '7'
    - item_type: preproc_def
      name: NVTX_EVENT_ATTRIB_STRUCT_SIZE
      pos:
        line_end: 235
        line_start: 234
        source_file: /src/nccl/src/include/nvtx3/nvToolsExt.h
      type_or_value: ( (uint16_t)( sizeof(nvtxEventAttributes_t) ) )
    - item_type: preproc_def
      name: NVTX_NO_PUSH_POP_TRACKING
      pos:
        line_end: 237
        line_start: 236
        source_file: /src/nccl/src/include/nvtx3/nvToolsExt.h
      type_or_value: ((int)-2)
    - item_type: preproc_def
      name: NVTX_RESOURCE_CLASS_GENERIC
      pos:
        line_end: 942
        line_start: 941
        source_file: /src/nccl/src/include/nvtx3/nvToolsExt.h
      type_or_value: '1'
    - item_type: preproc_def
      name: NVTX_RESOURCE_ATTRIB_STRUCT_SIZE
      pos:
        line_end: 1103
        line_start: 1102
        source_file: /src/nccl/src/include/nvtx3/nvToolsExt.h
      type_or_value: ( (uint16_t)( sizeof(nvtxResourceAttributes_v0) ) )
    - item_type: preproc_def
      name: nvtxMark
      pos:
        line_end: 1437
        line_start: 1436
        source_file: /src/nccl/src/include/nvtx3/nvToolsExt.h
      type_or_value: nvtxMarkW
    - item_type: preproc_def
      name: nvtxRangeStart
      pos:
        line_end: 1438
        line_start: 1437
        source_file: /src/nccl/src/include/nvtx3/nvToolsExt.h
      type_or_value: nvtxRangeStartW
    - item_type: preproc_def
      name: nvtxRangePush
      pos:
        line_end: 1439
        line_start: 1438
        source_file: /src/nccl/src/include/nvtx3/nvToolsExt.h
      type_or_value: nvtxRangePushW
    - item_type: preproc_def
      name: nvtxNameCategory
      pos:
        line_end: 1440
        line_start: 1439
        source_file: /src/nccl/src/include/nvtx3/nvToolsExt.h
      type_or_value: nvtxNameCategoryW
    - item_type: preproc_def
      name: nvtxNameOsThread
      pos:
        line_end: 1441
        line_start: 1440
        source_file: /src/nccl/src/include/nvtx3/nvToolsExt.h
      type_or_value: nvtxNameOsThreadW
    - item_type: preproc_def
      name: nvtxDomainCreate
      pos:
        line_end: 1443
        line_start: 1442
        source_file: /src/nccl/src/include/nvtx3/nvToolsExt.h
      type_or_value: nvtxDomainCreateW
    - item_type: preproc_def
      name: nvtxDomainRegisterString
      pos:
        line_end: 1444
        line_start: 1443
        source_file: /src/nccl/src/include/nvtx3/nvToolsExt.h
      type_or_value: nvtxDomainRegisterStringW
    - item_type: preproc_def
      name: nvtxDomainNameCategory
      pos:
        line_end: 1445
        line_start: 1444
        source_file: /src/nccl/src/include/nvtx3/nvToolsExt.h
      type_or_value: nvtxDomainNameCategoryW
    - item_type: preproc_def
      name: nvtxMark
      pos:
        line_end: 1447
        line_start: 1446
        source_file: /src/nccl/src/include/nvtx3/nvToolsExt.h
      type_or_value: nvtxMarkA
    - item_type: preproc_def
      name: nvtxRangeStart
      pos:
        line_end: 1448
        line_start: 1447
        source_file: /src/nccl/src/include/nvtx3/nvToolsExt.h
      type_or_value: nvtxRangeStartA
    - item_type: preproc_def
      name: nvtxRangePush
      pos:
        line_end: 1449
        line_start: 1448
        source_file: /src/nccl/src/include/nvtx3/nvToolsExt.h
      type_or_value: nvtxRangePushA
    - item_type: preproc_def
      name: nvtxNameCategory
      pos:
        line_end: 1450
        line_start: 1449
        source_file: /src/nccl/src/include/nvtx3/nvToolsExt.h
      type_or_value: nvtxNameCategoryA
    - item_type: preproc_def
      name: nvtxNameOsThread
      pos:
        line_end: 1451
        line_start: 1450
        source_file: /src/nccl/src/include/nvtx3/nvToolsExt.h
      type_or_value: nvtxNameOsThreadA
    - item_type: preproc_def
      name: nvtxDomainCreate
      pos:
        line_end: 1453
        line_start: 1452
        source_file: /src/nccl/src/include/nvtx3/nvToolsExt.h
      type_or_value: nvtxDomainCreateA
    - item_type: preproc_def
      name: nvtxDomainRegisterString
      pos:
        line_end: 1454
        line_start: 1453
        source_file: /src/nccl/src/include/nvtx3/nvToolsExt.h
      type_or_value: nvtxDomainRegisterStringA
    - item_type: preproc_def
      name: nvtxDomainNameCategory
      pos:
        line_end: 1455
        line_start: 1454
        source_file: /src/nccl/src/include/nvtx3/nvToolsExt.h
      type_or_value: nvtxDomainNameCategoryA
    structs:
    - fields:
      - name: version
        type: uint16_t
      - name: size
        type: uint16_t
      - name: category
        type: uint32_t
      - name: colorType
        type: int32_t
      - name: color
        type: uint32_t
      - name: payloadType
        type: int32_t
      - name: reserved0
        type: int32_t
      - name: payload
        type: "union payload_t\n    {\n        uint64_t ullValue;\n        int64_t
          llValue;\n        double dValue;\n        /* NVTX_VERSION_2 */\n        uint32_t
          uiValue;\n        int32_t iValue;\n        float fValue;\n    }"
      - name: messageType
        type: int32_t
      - name: message
        type: nvtxMessageValue_t
      item_type: struct
      name: nvtxEventAttributes_v2
      pos:
        line_end: 522
        line_start: 431
        source_file: /src/nccl/src/include/nvtx3/nvToolsExt.h
    - fields:
      - name: version
        type: uint16_t
      - name: size
        type: uint16_t
      - name: identifierType
        type: int32_t
      - name: identifier
        type: "union identifier_t\n    {\n        const void* pValue;\n        uint64_t
          ullValue;\n    }"
      - name: messageType
        type: int32_t
      - name: message
        type: nvtxMessageValue_t
      item_type: struct
      name: nvtxResourceAttributes_v0
      pos:
        line_end: 1095
        line_start: 1038
        source_file: /src/nccl/src/include/nvtx3/nvToolsExt.h
    typedefs:
    - item_type: typedef
      name: nvtxRangeId_t
      pos:
        line_end: 238
        line_start: 238
        source_file: /src/nccl/src/include/nvtx3/nvToolsExt.h
      type: uint64_t
    - item_type: typedef
      name: '* nvtxDomainHandle_t'
      pos:
        line_end: 252
        line_start: 252
        source_file: /src/nccl/src/include/nvtx3/nvToolsExt.h
    - item_type: typedef
      name: '* nvtxStringHandle_t'
      pos:
        line_end: 266
        line_start: 266
        source_file: /src/nccl/src/include/nvtx3/nvToolsExt.h
    - item_type: typedef
      name: nvtxColorType_t
      pos:
        line_end: 280
        line_start: 276
        source_file: /src/nccl/src/include/nvtx3/nvToolsExt.h
    - item_type: typedef
      name: nvtxMessageType_t
      pos:
        line_end: 294
        line_start: 285
        source_file: /src/nccl/src/include/nvtx3/nvToolsExt.h
    - item_type: typedef
      name: nvtxPayloadType_t
      pos:
        line_end: 352
        line_start: 342
        source_file: /src/nccl/src/include/nvtx3/nvToolsExt.h
    - item_type: typedef
      name: nvtxResourceGenericType_t
      pos:
        line_end: 959
        line_start: 952
        source_file: /src/nccl/src/include/nvtx3/nvToolsExt.h
    union:
    - fields:
      - name: '* ascii'
        type: char
      - name: '* unicode'
        type: wchar_t
      - name: registered
        type: nvtxStringHandle_t
      item_type: union
      name: nvtxMessageValue_t
      pos:
        line_end: 302
        line_start: 296
        source_file: /src/nccl/src/include/nvtx3/nvToolsExt.h
    - fields:
      - name: ullValue
        type: uint64_t
      - name: llValue
        type: int64_t
      - name: dValue
        type: double
      - name: uiValue
        type: uint32_t
      - name: iValue
        type: int32_t
      - name: fValue
        type: float
      item_type: union
      name: payload_t
      pos:
        line_end: 505
        line_start: 496
        source_file: /src/nccl/src/include/nvtx3/nvToolsExt.h
    - fields:
      - name: '* pValue'
        type: void
      - name: ullValue
        type: uint64_t
      item_type: union
      name: identifier_t
      pos:
        line_end: 1078
        line_start: 1074
        source_file: /src/nccl/src/include/nvtx3/nvToolsExt.h
- function_names: []
  source_file: /src/nccl/src/include/nvtx3/nvToolsExtCounters.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NVTX_EXT_COUNTERS_COMPATID
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtCounters.h
      type_or_value: '0x0101'
    - item_type: preproc_def
      name: NVTX_EXT_COUNTERS_MODULEID
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtCounters.h
      type_or_value: '4'
    - item_type: preproc_def
      name: NVTX_SCOPE_NONE
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtCounters.h
      type_or_value: '0 '
    - item_type: preproc_def
      name: NVTX_SCOPE_ROOT
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtCounters.h
      type_or_value: '1'
    - item_type: preproc_def
      name: NVTX_SCOPE_CURRENT_HW_MACHINE
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtCounters.h
      type_or_value: '2 '
    - item_type: preproc_def
      name: NVTX_SCOPE_CURRENT_HW_SOCKET
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtCounters.h
      type_or_value: '3'
    - item_type: preproc_def
      name: NVTX_SCOPE_CURRENT_HW_CPU
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtCounters.h
      type_or_value: '4'
    - item_type: preproc_def
      name: NVTX_SCOPE_CURRENT_HW_CPU_LOGICAL
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtCounters.h
      type_or_value: '5'
    - item_type: preproc_def
      name: NVTX_SCOPE_CURRENT_HW_INNERMOST
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtCounters.h
      type_or_value: '6'
    - item_type: preproc_def
      name: NVTX_SCOPE_CURRENT_HYPERVISOR
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtCounters.h
      type_or_value: '7'
    - item_type: preproc_def
      name: NVTX_SCOPE_CURRENT_VM
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtCounters.h
      type_or_value: '8'
    - item_type: preproc_def
      name: NVTX_SCOPE_CURRENT_KERNEL
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtCounters.h
      type_or_value: '9'
    - item_type: preproc_def
      name: NVTX_SCOPE_CURRENT_CONTAINER
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtCounters.h
      type_or_value: '10'
    - item_type: preproc_def
      name: NVTX_SCOPE_CURRENT_OS
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtCounters.h
      type_or_value: '11'
    - item_type: preproc_def
      name: NVTX_SCOPE_CURRENT_SW_PROCESS
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtCounters.h
      type_or_value: '12 '
    - item_type: preproc_def
      name: NVTX_SCOPE_CURRENT_SW_THREAD
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtCounters.h
      type_or_value: '13 '
    - item_type: preproc_def
      name: NVTX_SCOPE_CURRENT_SW_FIBER
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtCounters.h
      type_or_value: '14'
    - item_type: preproc_def
      name: NVTX_SCOPE_CURRENT_SW_INNERMOST
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtCounters.h
      type_or_value: '15'
    - item_type: preproc_def
      name: NVTX_SCOPE_ID_STATIC_START
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtCounters.h
      type_or_value: (1 << 24)
    - item_type: preproc_def
      name: NVTX_SCOPE_ID_DYNAMIC_START
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtCounters.h
      type_or_value: '4294967296  '
    - item_type: preproc_def
      name: NVTX_SEMANTIC_ID_COUNTERS_V1
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtCounters.h
      type_or_value: '5'
    - item_type: preproc_def
      name: NVTX_COUNTERS_FLAG_NONE
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtCounters.h
      type_or_value: '0'
    - item_type: preproc_def
      name: NVTX_COUNTERS_FLAG_NORM
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtCounters.h
      type_or_value: (1 << 1)
    - item_type: preproc_def
      name: NVTX_COUNTERS_FLAG_LIMIT_MIN
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtCounters.h
      type_or_value: (1 << 2)
    - item_type: preproc_def
      name: NVTX_COUNTERS_FLAG_LIMIT_MAX
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtCounters.h
      type_or_value: (1 << 3)
    - item_type: preproc_def
      name: NVTX_COUNTERS_FLAG_LIMITS
      pos:
        line_end: 91
        line_start: 89
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtCounters.h
      type_or_value: (NVTX_COUNTERS_FLAG_LIMIT_MIN | NVTX_COUNTERS_FLAG_LIMIT_MAX)
    - item_type: preproc_def
      name: NVTX_COUNTERS_FLAG_TIME_POINT
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtCounters.h
      type_or_value: (1 << 5)
    - item_type: preproc_def
      name: NVTX_COUNTERS_FLAG_TIME_SINCE_LAST
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtCounters.h
      type_or_value: (2 << 5)
    - item_type: preproc_def
      name: NVTX_COUNTERS_FLAG_TIME_UNTIL_NEXT
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtCounters.h
      type_or_value: (3 << 5)
    - item_type: preproc_def
      name: NVTX_COUNTERS_FLAG_TIME_SINCE_START
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtCounters.h
      type_or_value: (4 << 5)
    - item_type: preproc_def
      name: NVTX_COUNTERS_FLAG_VALUE_ABSOLUTE
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtCounters.h
      type_or_value: (1 << 10)
    - item_type: preproc_def
      name: NVTX_COUNTERS_FLAG_VALUE_DELTA
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtCounters.h
      type_or_value: (2 << 10) // delta to previous counter sample
    - item_type: preproc_def
      name: NVTX_COUNTERS_FLAG_INTERPOLATE
      pos:
        line_end: 104
        line_start: 103
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtCounters.h
      type_or_value: (1 << 14)
    - item_type: preproc_def
      name: NVTX_COUNTERS_LIMIT_I64
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtCounters.h
      type_or_value: '0'
    - item_type: preproc_def
      name: NVTX_COUNTERS_LIMIT_U64
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtCounters.h
      type_or_value: '1'
    - item_type: preproc_def
      name: NVTX_COUNTERS_LIMIT_F64
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtCounters.h
      type_or_value: '2'
    - item_type: preproc_def
      name: NVTX_COUNTERS_SAMPLE_ZERO
      pos:
        line_end: 112
        line_start: 111
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtCounters.h
      type_or_value: '0'
    - item_type: preproc_def
      name: NVTX_COUNTERS_SAMPLE_UNCHANGED
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtCounters.h
      type_or_value: '1'
    - item_type: preproc_def
      name: NVTX_COUNTERS_SAMPLE_UNAVAILABLE
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtCounters.h
      type_or_value: '2'
    - item_type: preproc_def
      name: NVTX3EXT_CBID_nvtxCountersRegister
      pos:
        line_end: 305
        line_start: 304
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtCounters.h
      type_or_value: '0'
    - item_type: preproc_def
      name: NVTX3EXT_CBID_nvtxCountersSampleInt64
      pos:
        line_end: 306
        line_start: 305
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtCounters.h
      type_or_value: '1'
    - item_type: preproc_def
      name: NVTX3EXT_CBID_nvtxCountersSampleFloat64
      pos:
        line_end: 307
        line_start: 306
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtCounters.h
      type_or_value: '2'
    - item_type: preproc_def
      name: NVTX3EXT_CBID_nvtxCountersSample
      pos:
        line_end: 308
        line_start: 307
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtCounters.h
      type_or_value: '3'
    - item_type: preproc_def
      name: NVTX3EXT_CBID_nvtxCountersSampleNoValue
      pos:
        line_end: 309
        line_start: 308
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtCounters.h
      type_or_value: '4'
    - item_type: preproc_def
      name: NVTX3EXT_CBID_nvtxCountersSubmitBatch
      pos:
        line_end: 310
        line_start: 309
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtCounters.h
      type_or_value: '5'
    - item_type: preproc_def
      name: NVTX3EXT_CBID_nvtxCountersSubmitBatchEx
      pos:
        line_end: 311
        line_start: 310
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtCounters.h
      type_or_value: '6'
    structs:
    - fields:
      - name: header
        type: struct nvtxSemanticsHeader_v1
      - name: flags
        type: uint64_t
      - name: '* unit'
        type: char
      - name: unitScaleNumerator
        type: uint64_t
      - name: unitScaleDenominator
        type: uint64_t
      - name: limitType
        type: int64_t
      - name: limits
        type: "union limits_t {\n        int64_t i64[2];\n        uint64_t u64[2];\n
          \       double d[2];\n    }"
      item_type: struct
      name: nvtxSemanticsCounter_v1
      pos:
        line_end: 151
        line_start: 122
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtCounters.h
    - fields:
      - name: structSize
        type: size_t
      - name: schemaId
        type: uint64_t
      - name: '* name'
        type: char
      - name: scopeId
        type: uint64_t
      - name: '* semantics'
        type: nvtxSemanticsHeader_t
      item_type: struct
      name: nvtxCountersAttr_v1
      pos:
        line_end: 177
        line_start: 153
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtCounters.h
    - fields:
      - name: hCounter
        type: nvtxCountersHandle_t
      - name: '* counters'
        type: void
      - name: cntArrSize
        type: size_t
      - name: '* timestamps'
        type: void
      - name: tsSize
        type: size_t
      item_type: struct
      name: nvtxCountersBatch_v1
      pos:
        line_end: 208
        line_start: 191
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtCounters.h
    typedefs:
    - item_type: typedef
      name: '* nvtxCountersHandle_t'
      pos:
        line_end: 189
        line_start: 189
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtCounters.h
    union:
    - fields:
      - name: i64[2]
        type: int64_t
      - name: u64[2]
        type: uint64_t
      - name: d[2]
        type: double
      item_type: union
      name: limits_t
      pos:
        line_end: 150
        line_start: 146
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtCounters.h
- function_names: []
  source_file: /src/nccl/src/include/nvtx3/nvToolsExtOpenCL.h
  types:
    enum:
    - enumerators:
      - name: NVTX_RESOURCE_TYPE_OPENCL_DEVICE
        value: NVTX_RESOURCE_MAKE_TYPE(OPENCL, 1)
      - name: NVTX_RESOURCE_TYPE_OPENCL_MEMOBJECT
        value: NVTX_RESOURCE_MAKE_TYPE(OPENCL, 4)
      - name: NVTX_RESOURCE_TYPE_OPENCL_CONTEXT
        value: NVTX_RESOURCE_MAKE_TYPE(OPENCL, 2)
      - name: NVTX_RESOURCE_TYPE_OPENCL_SAMPLER
        value: NVTX_RESOURCE_MAKE_TYPE(OPENCL, 5)
      - name: NVTX_RESOURCE_TYPE_OPENCL_COMMANDQUEUE
        value: NVTX_RESOURCE_MAKE_TYPE(OPENCL, 3)
      - name: NVTX_RESOURCE_TYPE_OPENCL_PROGRAM
        value: NVTX_RESOURCE_MAKE_TYPE(OPENCL, 6)
      - name: NVTX_RESOURCE_TYPE_OPENCL_EVENT
        value: NVTX_RESOURCE_MAKE_TYPE(OPENCL, 7)
      item_type: enum
      name: nvtxResourceOpenCLType_t
      pos:
        line_end: 51
        line_start: 42
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtOpenCL.h
    preproc_defs:
    - item_type: preproc_def
      name: NVTX_RESOURCE_CLASS_OPENCL
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtOpenCL.h
      type_or_value: '6'
    - item_type: preproc_def
      name: nvtxNameClDevice
      pos:
        line_end: 164
        line_start: 163
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtOpenCL.h
      type_or_value: nvtxNameClDeviceW
    - item_type: preproc_def
      name: nvtxNameClContext
      pos:
        line_end: 165
        line_start: 164
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtOpenCL.h
      type_or_value: nvtxNameClContextW
    - item_type: preproc_def
      name: nvtxNameClCommandQueue
      pos:
        line_end: 166
        line_start: 165
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtOpenCL.h
      type_or_value: nvtxNameClCommandQueueW
    - item_type: preproc_def
      name: nvtxNameClMemObject
      pos:
        line_end: 167
        line_start: 166
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtOpenCL.h
      type_or_value: nvtxNameClMemObjectW
    - item_type: preproc_def
      name: nvtxNameClSampler
      pos:
        line_end: 168
        line_start: 167
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtOpenCL.h
      type_or_value: nvtxNameClSamplerW
    - item_type: preproc_def
      name: nvtxNameClProgram
      pos:
        line_end: 169
        line_start: 168
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtOpenCL.h
      type_or_value: nvtxNameClProgramW
    - item_type: preproc_def
      name: nvtxNameClEvent
      pos:
        line_end: 170
        line_start: 169
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtOpenCL.h
      type_or_value: nvtxNameClEventW
    - item_type: preproc_def
      name: nvtxNameClDevice
      pos:
        line_end: 172
        line_start: 171
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtOpenCL.h
      type_or_value: nvtxNameClDeviceA
    - item_type: preproc_def
      name: nvtxNameClContext
      pos:
        line_end: 173
        line_start: 172
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtOpenCL.h
      type_or_value: nvtxNameClContextA
    - item_type: preproc_def
      name: nvtxNameClCommandQueue
      pos:
        line_end: 174
        line_start: 173
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtOpenCL.h
      type_or_value: nvtxNameClCommandQueueA
    - item_type: preproc_def
      name: nvtxNameClMemObject
      pos:
        line_end: 175
        line_start: 174
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtOpenCL.h
      type_or_value: nvtxNameClMemObjectA
    - item_type: preproc_def
      name: nvtxNameClSampler
      pos:
        line_end: 176
        line_start: 175
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtOpenCL.h
      type_or_value: nvtxNameClSamplerA
    - item_type: preproc_def
      name: nvtxNameClProgram
      pos:
        line_end: 177
        line_start: 176
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtOpenCL.h
      type_or_value: nvtxNameClProgramA
    - item_type: preproc_def
      name: nvtxNameClEvent
      pos:
        line_end: 178
        line_start: 177
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtOpenCL.h
      type_or_value: nvtxNameClEventA
    structs: []
    typedefs:
    - item_type: typedef
      name: nvtxResourceOpenCLType_t
      pos:
        line_end: 51
        line_start: 42
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtOpenCL.h
    union: []
- function_names: []
  source_file: /src/nccl/src/include/nvtx3/nvToolsExtSemanticsCounters.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NVTX_SEMANTIC_ID_COUNTERS_V1
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtSemanticsCounters.h
      type_or_value: '2'
    - item_type: preproc_def
      name: NVTX_COUNTERS_FLAGS_NONE
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtSemanticsCounters.h
      type_or_value: '0'
    - item_type: preproc_def
      name: NVTX_COUNTERS_FLAG_NORMALIZE
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtSemanticsCounters.h
      type_or_value: (1 << 1)
    - item_type: preproc_def
      name: NVTX_COUNTERS_FLAG_LIMIT_MIN
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtSemanticsCounters.h
      type_or_value: (1 << 2)
    - item_type: preproc_def
      name: NVTX_COUNTERS_FLAG_LIMIT_MAX
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtSemanticsCounters.h
      type_or_value: (1 << 3)
    - item_type: preproc_def
      name: NVTX_COUNTERS_FLAG_LIMITS
      pos:
        line_end: 34
        line_start: 32
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtSemanticsCounters.h
      type_or_value: (NVTX_COUNTERS_FLAG_LIMIT_MIN | NVTX_COUNTERS_FLAG_LIMIT_MAX)
    - item_type: preproc_def
      name: NVTX_COUNTERS_FLAG_TIMESCOPE_POINT
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtSemanticsCounters.h
      type_or_value: (1 << 5)
    - item_type: preproc_def
      name: NVTX_COUNTERS_FLAG_TIMESCOPE_SINCE_LAST
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtSemanticsCounters.h
      type_or_value: (2 << 5)
    - item_type: preproc_def
      name: NVTX_COUNTERS_FLAG_TIMESCOPE_UNTIL_NEXT
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtSemanticsCounters.h
      type_or_value: (3 << 5)
    - item_type: preproc_def
      name: NVTX_COUNTERS_FLAG_TIMESCOPE_SINCE_START
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtSemanticsCounters.h
      type_or_value: (4 << 5)
    - item_type: preproc_def
      name: NVTX_COUNTERS_FLAG_VALUETYPE_ABSOLUTE
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtSemanticsCounters.h
      type_or_value: (1 << 10)
    - item_type: preproc_def
      name: NVTX_COUNTERS_FLAG_VALUETYPE_DELTA
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtSemanticsCounters.h
      type_or_value: (2 << 10)
    - item_type: preproc_def
      name: NVTX_COUNTERS_LIMIT_I64
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtSemanticsCounters.h
      type_or_value: '0'
    - item_type: preproc_def
      name: NVTX_COUNTERS_LIMIT_U64
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtSemanticsCounters.h
      type_or_value: '1'
    - item_type: preproc_def
      name: NVTX_COUNTERS_LIMIT_F64
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtSemanticsCounters.h
      type_or_value: '2'
    structs:
    - fields:
      - name: header
        type: struct nvtxSemanticsHeader_v1
      - name: flags
        type: uint64_t
      - name: '*  unit'
        type: char
      - name: unitScaleNumerator
        type: uint64_t
      - name: unitScaleDenominator
        type: uint64_t
      - name: limitType
        type: int64_t
      - name: limits
        type: "union limits_t {\n        int64_t  i64[2];\n        uint64_t u64[2];\n
          \       double   d[2];\n    }"
      item_type: struct
      name: nvtxSemanticsCounter_v1
      pos:
        line_end: 85
        line_start: 60
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtSemanticsCounters.h
    typedefs: []
    union:
    - fields:
      - name: i64[2]
        type: int64_t
      - name: u64[2]
        type: uint64_t
      - name: d[2]
        type: double
      item_type: union
      name: limits_t
      pos:
        line_end: 84
        line_start: 80
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtSemanticsCounters.h
- function_names:
  - NVTX3_CONCAT
  - NVTX3_NAMESPACE_FOR
  - NVTX3_STATIC_ASSERT
  - nvtx3::NVTX3_VERSION_NAMESPACE
  - nvtx3::domain::domain
  - '& operator=(domain const&)'
  - nvtx3::domain::domain
  - '& operator=(domain&&)'
  - nvtx3::domain::get
  - nvtx3::domain::get
  - nvtx3::domain::get
  - nvtx3::domain::get
  - operator nvtxDomainHandle_t() const noexcept
  - nvtx3::domain::domain
  - nvtx3::domain::domain
  - nvtx3::domain::domain
  - nvtx3::domain::domain
  - nvtx3::domain::domain
  - ~domain()
  - '& domain::get<domain::global>() noexcept'
  - nvtx3::rgb
  - nvtx3::argb
  - nvtx3::color::color
  - nvtx3::color::color
  - nvtx3::color::color
  - nvtx3::color::get_value
  - nvtx3::color::get_type
  - nvtx3::color::color
  - ~color()
  - nvtx3::color::color
  - '& operator=(color const&)'
  - nvtx3::color::color
  - '& operator=(color&&)'
  - nvtx3::color::from_bytes_msb_to_lsb
  - nvtx3::category::category
  - nvtx3::category::get_id
  - nvtx3::category::category
  - ~category()
  - nvtx3::category::category
  - '& operator=(category const&)'
  - nvtx3::category::category
  - '& operator=(category&&)'
  - nvtx3::named_category_in::get
  - nvtx3::named_category_in::get
  - nvtx3::named_category_in::get
  - nvtx3::named_category_in::get
  - nvtx3::named_category_in::named_category_in
  - nvtx3::named_category_in::named_category_in
  - nvtx3::named_category_in::named_category_in
  - nvtx3::registered_string_in::get
  - nvtx3::registered_string_in::get
  - nvtx3::registered_string_in::get
  - nvtx3::registered_string_in::get
  - nvtx3::registered_string_in::registered_string_in
  - nvtx3::registered_string_in::registered_string_in
  - nvtx3::registered_string_in::registered_string_in
  - nvtx3::registered_string_in::registered_string_in
  - nvtx3::registered_string_in::get_handle
  - nvtx3::registered_string_in::registered_string_in
  - ~registered_string_in()
  - nvtx3::registered_string_in::registered_string_in
  - '& operator=(registered_string_in const&)'
  - nvtx3::registered_string_in::registered_string_in
  - '& operator=(registered_string_in&&)'
  - nvtx3::message::message
  - nvtx3::message::message
  - nvtx3::message::message
  - nvtx3::message::message
  - nvtx3::message::message
  - nvtx3::message::message
  - nvtx3::get_value
  - nvtx3::get_type
  - nvtx3::payload::payload
  - nvtx3::payload::payload
  - nvtx3::payload::payload
  - nvtx3::payload::payload
  - nvtx3::payload::payload
  - nvtx3::payload::payload
  - nvtx3::payload::payload
  - nvtx3::payload::get_value
  - nvtx3::payload::get_type
  - nvtx3::event_attributes::event_attributes
  - nvtx3::event_attributes::event_attributes
  - nvtx3::event_attributes::event_attributes
  - nvtx3::event_attributes::event_attributes
  - nvtx3::event_attributes::event_attributes
  - nvtx3::event_attributes::event_attributes
  - ~event_attributes()
  - nvtx3::event_attributes::event_attributes
  - '& operator=(event_attributes const&)'
  - nvtx3::event_attributes::event_attributes
  - '& operator=(event_attributes&&)'
  - nvtx3::event_attributes::get
  - nvtx3::scoped_range_in::scoped_range_in
  - nvtx3::scoped_range_in::scoped_range_in
  - nvtx3::scoped_range_in::scoped_range_in
  - '* operator new(std::size_t)'
  - nvtx3::scoped_range_in::scoped_range_in
  - '& operator=(scoped_range_in const&)'
  - nvtx3::scoped_range_in::scoped_range_in
  - '& operator=(scoped_range_in&&)'
  - ~scoped_range_in() noexcept
  - nvtx3::detail::optional_scoped_range_in::optional_scoped_range_in
  - nvtx3::detail::optional_scoped_range_in::begin
  - ~optional_scoped_range_in() noexcept
  - '* operator new(std::size_t)'
  - nvtx3::detail::optional_scoped_range_in::optional_scoped_range_in
  - '& operator=(optional_scoped_range_in const&)'
  - nvtx3::detail::optional_scoped_range_in::optional_scoped_range_in
  - '& operator=(optional_scoped_range_in&&)'
  - nvtx3::detail::optional_scoped_range_in::optional_scoped_range_in
  - nvtx3::detail::optional_scoped_range_in::begin
  - ~optional_scoped_range_in() noexcept
  - '* operator new(std::size_t)'
  - nvtx3::detail::optional_scoped_range_in::optional_scoped_range_in
  - '& operator=(optional_scoped_range_in const&)'
  - nvtx3::detail::optional_scoped_range_in::optional_scoped_range_in
  - '& operator=(optional_scoped_range_in&&)'
  - nvtx3::range_handle
  - nvtx3::range_handle
  - operator bool() const noexcept
  - nvtx3::range_handle
  - nvtx3::get_value
  - operator==(range_handle lhs, range_handle rhs) noexcept
  - operator!=(range_handle lhs, range_handle rhs) noexcept
  - nvtx3::start_range_in
  - nvtx3::start_range_in
  - nvtx3::start_range
  - nvtx3::start_range
  - nvtx3::end_range_in
  - nvtx3::end_range
  - nvtx3::unique_range_in::unique_range_in
  - nvtx3::unique_range_in::unique_range_in
  - nvtx3::unique_range_in::unique_range_in
  - ~unique_range_in() noexcept
  - nvtx3::unique_range_in::unique_range_in
  - '& operator=(unique_range_in&& other) noexcept'
  - nvtx3::unique_range_in::unique_range_in
  - '& operator=(unique_range_in const&)'
  - operator()(range_handle h) const noexcept
  - nvtx3::mark_in
  - nvtx3::mark_in
  - nvtx3::mark
  - nvtx3::mark
  - nvtx3::NVTX3_VERSION_NAMESPACE
  - nvtx3::domain::domain
  - '& operator=(domain const&)'
  - nvtx3::domain::domain
  - '& operator=(domain&&)'
  - nvtx3::domain::get
  - nvtx3::domain::get
  - nvtx3::domain::get
  - nvtx3::domain::get
  - operator nvtxDomainHandle_t() const noexcept
  - nvtx3::domain::domain
  - nvtx3::domain::domain
  - nvtx3::domain::domain
  - nvtx3::domain::domain
  - nvtx3::domain::domain
  - ~domain()
  - '& domain::get<domain::global>() noexcept'
  - nvtx3::rgb
  - nvtx3::argb
  - nvtx3::color::color
  - nvtx3::color::color
  - nvtx3::color::color
  - nvtx3::color::get_value
  - nvtx3::color::get_type
  - nvtx3::color::color
  - ~color()
  - nvtx3::color::color
  - '& operator=(color const&)'
  - nvtx3::color::color
  - '& operator=(color&&)'
  - nvtx3::color::from_bytes_msb_to_lsb
  - nvtx3::category::category
  - nvtx3::category::get_id
  - nvtx3::category::category
  - ~category()
  - nvtx3::category::category
  - '& operator=(category const&)'
  - nvtx3::category::category
  - '& operator=(category&&)'
  - nvtx3::named_category_in::get
  - nvtx3::named_category_in::get
  - nvtx3::named_category_in::get
  - nvtx3::named_category_in::get
  - nvtx3::named_category_in::named_category_in
  - nvtx3::named_category_in::named_category_in
  - nvtx3::named_category_in::named_category_in
  - nvtx3::registered_string_in::get
  - nvtx3::registered_string_in::get
  - nvtx3::registered_string_in::get
  - nvtx3::registered_string_in::get
  - nvtx3::registered_string_in::registered_string_in
  - nvtx3::registered_string_in::registered_string_in
  - nvtx3::registered_string_in::registered_string_in
  - nvtx3::registered_string_in::registered_string_in
  - nvtx3::registered_string_in::get_handle
  - nvtx3::registered_string_in::registered_string_in
  - ~registered_string_in()
  - nvtx3::registered_string_in::registered_string_in
  - '& operator=(registered_string_in const&)'
  - nvtx3::registered_string_in::registered_string_in
  - '& operator=(registered_string_in&&)'
  - nvtx3::message::message
  - nvtx3::message::message
  - nvtx3::message::message
  - nvtx3::message::message
  - nvtx3::message::message
  - nvtx3::message::message
  - nvtx3::get_value
  - nvtx3::get_type
  - nvtx3::payload::payload
  - nvtx3::payload::payload
  - nvtx3::payload::payload
  - nvtx3::payload::payload
  - nvtx3::payload::payload
  - nvtx3::payload::payload
  - nvtx3::payload::payload
  - nvtx3::payload::get_value
  - nvtx3::payload::get_type
  - nvtx3::event_attributes::event_attributes
  - nvtx3::event_attributes::event_attributes
  - nvtx3::event_attributes::event_attributes
  - nvtx3::event_attributes::event_attributes
  - nvtx3::event_attributes::event_attributes
  - nvtx3::event_attributes::event_attributes
  - ~event_attributes()
  - nvtx3::event_attributes::event_attributes
  - '& operator=(event_attributes const&)'
  - nvtx3::event_attributes::event_attributes
  - '& operator=(event_attributes&&)'
  - nvtx3::event_attributes::get
  - nvtx3::scoped_range_in::scoped_range_in
  - nvtx3::scoped_range_in::scoped_range_in
  - nvtx3::scoped_range_in::scoped_range_in
  - '* operator new(std::size_t)'
  - nvtx3::scoped_range_in::scoped_range_in
  - '& operator=(scoped_range_in const&)'
  - nvtx3::scoped_range_in::scoped_range_in
  - '& operator=(scoped_range_in&&)'
  - ~scoped_range_in() noexcept
  - nvtx3::detail::optional_scoped_range_in::optional_scoped_range_in
  - nvtx3::detail::optional_scoped_range_in::begin
  - ~optional_scoped_range_in() noexcept
  - '* operator new(std::size_t)'
  - nvtx3::detail::optional_scoped_range_in::optional_scoped_range_in
  - '& operator=(optional_scoped_range_in const&)'
  - nvtx3::detail::optional_scoped_range_in::optional_scoped_range_in
  - '& operator=(optional_scoped_range_in&&)'
  - nvtx3::detail::optional_scoped_range_in::optional_scoped_range_in
  - nvtx3::detail::optional_scoped_range_in::begin
  - ~optional_scoped_range_in() noexcept
  - '* operator new(std::size_t)'
  - nvtx3::detail::optional_scoped_range_in::optional_scoped_range_in
  - '& operator=(optional_scoped_range_in const&)'
  - nvtx3::detail::optional_scoped_range_in::optional_scoped_range_in
  - '& operator=(optional_scoped_range_in&&)'
  - nvtx3::range_handle
  - nvtx3::range_handle
  - operator bool() const noexcept
  - nvtx3::range_handle
  - nvtx3::get_value
  - operator==(range_handle lhs, range_handle rhs) noexcept
  - operator!=(range_handle lhs, range_handle rhs) noexcept
  - nvtx3::start_range_in
  - nvtx3::start_range_in
  - nvtx3::start_range
  - nvtx3::start_range
  - nvtx3::end_range_in
  - nvtx3::end_range
  - nvtx3::unique_range_in::unique_range_in
  - nvtx3::unique_range_in::unique_range_in
  - nvtx3::unique_range_in::unique_range_in
  - ~unique_range_in() noexcept
  - nvtx3::unique_range_in::unique_range_in
  - '& operator=(unique_range_in&& other) noexcept'
  - nvtx3::unique_range_in::unique_range_in
  - '& operator=(unique_range_in const&)'
  - operator()(range_handle h) const noexcept
  - nvtx3::mark_in
  - nvtx3::mark_in
  - nvtx3::mark
  - nvtx3::mark
  - NVTX3_V1_FUNC_RANGE_IN
  - NVTX3_V1_FUNC_RANGE_IF_IN
  - NVTX3_V1_FUNC_RANGE
  - NVTX3_V1_FUNC_RANGE_IF
  source_file: /src/nccl/src/include/nvtx3/nvtx3.hpp
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NVTX3_CPP_VERSION_MAJOR
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/nccl/src/include/nvtx3/nvtx3.hpp
      type_or_value: '1'
    - item_type: preproc_def
      name: NVTX3_CPP_VERSION_MINOR
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/nccl/src/include/nvtx3/nvtx3.hpp
      type_or_value: '0'
    - item_type: preproc_def
      name: NVTX3_CPP_INLINED_VERSION_MAJOR
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/nccl/src/include/nvtx3/nvtx3.hpp
      type_or_value: 1  // NVTX3_CPP_VERSION_MAJOR
    - item_type: preproc_def
      name: NVTX3_CPP_INLINED_VERSION_MINOR
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/nccl/src/include/nvtx3/nvtx3.hpp
      type_or_value: 0  // NVTX3_CPP_VERSION_MINOR
    - item_type: preproc_def
      name: NVTX3_CPP_INLINED_VERSION_MINOR
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/nccl/src/include/nvtx3/nvtx3.hpp
      type_or_value: 0  // NVTX3_CPP_VERSION_MINOR
    - item_type: preproc_def
      name: NVTX3_USE_CHECKED_OVERLOADS_FOR_GET
      pos:
        line_end: 590
        line_start: 589
        source_file: /src/nccl/src/include/nvtx3/nvtx3.hpp
      type_or_value: '0'
    - item_type: preproc_def
      name: NVTX3_USE_CHECKED_OVERLOADS_FOR_GET
      pos:
        line_end: 592
        line_start: 591
        source_file: /src/nccl/src/include/nvtx3/nvtx3.hpp
      type_or_value: '1'
    - item_type: preproc_def
      name: NVTX3_VERSION_NAMESPACE
      pos:
        line_end: 601
        line_start: 600
        source_file: /src/nccl/src/include/nvtx3/nvtx3.hpp
      type_or_value: NVTX3_NAMESPACE_FOR(NVTX3_CPP_VERSION_MAJOR)
    - item_type: preproc_def
      name: NVTX3_INLINE_IF_REQUESTED
      pos:
        line_end: 607
        line_start: 606
        source_file: /src/nccl/src/include/nvtx3/nvtx3.hpp
      type_or_value: inline
    - item_type: preproc_def
      name: NVTX3_CONSTEXPR_IF_CPP14
      pos:
        line_end: 623
        line_start: 622
        source_file: /src/nccl/src/include/nvtx3/nvtx3.hpp
      type_or_value: constexpr
    - item_type: preproc_def
      name: NVTX3_FUNC_RANGE
      pos:
        line_end: 2859
        line_start: 2858
        source_file: /src/nccl/src/include/nvtx3/nvtx3.hpp
      type_or_value: NVTX3_V1_FUNC_RANGE
    - item_type: preproc_def
      name: NVTX3_FUNC_RANGE_IF
      pos:
        line_end: 2860
        line_start: 2859
        source_file: /src/nccl/src/include/nvtx3/nvtx3.hpp
      type_or_value: NVTX3_V1_FUNC_RANGE_IF
    - item_type: preproc_def
      name: NVTX3_FUNC_RANGE_IN
      pos:
        line_end: 2861
        line_start: 2860
        source_file: /src/nccl/src/include/nvtx3/nvtx3.hpp
      type_or_value: NVTX3_V1_FUNC_RANGE_IN
    - item_type: preproc_def
      name: NVTX3_FUNC_RANGE_IF_IN
      pos:
        line_end: 2862
        line_start: 2861
        source_file: /src/nccl/src/include/nvtx3/nvtx3.hpp
      type_or_value: NVTX3_V1_FUNC_RANGE_IF_IN
    structs:
    - fields: []
      item_type: struct
      name: always_false
      pos:
        line_end: 659
        line_start: 659
        source_file: /src/nccl/src/include/nvtx3/nvtx3.hpp
    - fields: []
      item_type: struct
      name: has_name
      pos:
        line_end: 662
        line_start: 662
        source_file: /src/nccl/src/include/nvtx3/nvtx3.hpp
    - fields: []
      item_type: struct
      name: has_name<T, decltype((void)T::name, void())>
      pos:
        line_end: 664
        line_start: 664
        source_file: /src/nccl/src/include/nvtx3/nvtx3.hpp
    - fields: []
      item_type: struct
      name: has_id
      pos:
        line_end: 667
        line_start: 667
        source_file: /src/nccl/src/include/nvtx3/nvtx3.hpp
    - fields: []
      item_type: struct
      name: has_id<T, decltype((void)T::id, void())>
      pos:
        line_end: 669
        line_start: 669
        source_file: /src/nccl/src/include/nvtx3/nvtx3.hpp
    - fields: []
      item_type: struct
      name: has_message
      pos:
        line_end: 672
        line_start: 672
        source_file: /src/nccl/src/include/nvtx3/nvtx3.hpp
    - fields: []
      item_type: struct
      name: has_message<T, decltype((void)T::message, void())>
      pos:
        line_end: 674
        line_start: 674
        source_file: /src/nccl/src/include/nvtx3/nvtx3.hpp
    - fields: []
      item_type: struct
      name: is_c_string
      pos:
        line_end: 677
        line_start: 677
        source_file: /src/nccl/src/include/nvtx3/nvtx3.hpp
    - fields: []
      item_type: struct
      name: "is_c_string<T, typename std::enable_if<\n  std::is_convertible<T, char
        const*   >::value ||\n  std::is_convertible<T, wchar_t const*>::value\n>::type>"
      pos:
        line_end: 682
        line_start: 679
        source_file: /src/nccl/src/include/nvtx3/nvtx3.hpp
    - fields: []
      item_type: struct
      name: always_false
      pos:
        line_end: 659
        line_start: 659
        source_file: /src/nccl/src/include/nvtx3/nvtx3.hpp
    - fields: []
      item_type: struct
      name: has_name
      pos:
        line_end: 662
        line_start: 662
        source_file: /src/nccl/src/include/nvtx3/nvtx3.hpp
    - fields: []
      item_type: struct
      name: has_name<T, decltype((void)T::name, void())>
      pos:
        line_end: 664
        line_start: 664
        source_file: /src/nccl/src/include/nvtx3/nvtx3.hpp
    - fields: []
      item_type: struct
      name: has_id
      pos:
        line_end: 667
        line_start: 667
        source_file: /src/nccl/src/include/nvtx3/nvtx3.hpp
    - fields: []
      item_type: struct
      name: has_id<T, decltype((void)T::id, void())>
      pos:
        line_end: 669
        line_start: 669
        source_file: /src/nccl/src/include/nvtx3/nvtx3.hpp
    - fields: []
      item_type: struct
      name: has_message
      pos:
        line_end: 672
        line_start: 672
        source_file: /src/nccl/src/include/nvtx3/nvtx3.hpp
    - fields: []
      item_type: struct
      name: has_message<T, decltype((void)T::message, void())>
      pos:
        line_end: 674
        line_start: 674
        source_file: /src/nccl/src/include/nvtx3/nvtx3.hpp
    - fields: []
      item_type: struct
      name: is_c_string
      pos:
        line_end: 677
        line_start: 677
        source_file: /src/nccl/src/include/nvtx3/nvtx3.hpp
    - fields: []
      item_type: struct
      name: "is_c_string<T, typename std::enable_if<\n  std::is_convertible<T, char
        const*   >::value ||\n  std::is_convertible<T, wchar_t const*>::value\n>::type>"
      pos:
        line_end: 682
        line_start: 679
        source_file: /src/nccl/src/include/nvtx3/nvtx3.hpp
    - fields: []
      item_type: struct
      name: global
      pos:
        line_end: 761
        line_start: 760
        source_file: /src/nccl/src/include/nvtx3/nvtx3.hpp
    - fields:
      - name: red
        type: component_type
      - name: green
        type: component_type
      - name: blue
        type: component_type
      item_type: struct
      name: rgb
      pos:
        line_end: 991
        line_start: 966
        source_file: /src/nccl/src/include/nvtx3/nvtx3.hpp
    - fields:
      - name: alpha
        type: component_type
      item_type: struct
      name: argb
      pos:
        line_end: 1021
        line_start: 998
        source_file: /src/nccl/src/include/nvtx3/nvtx3.hpp
    - fields:
      - name: null_range_id
        type: value_type
      - name: _range_id
        type: value_type
      item_type: struct
      name: range_handle
      pos:
        line_end: 2282
        line_start: 2229
        source_file: /src/nccl/src/include/nvtx3/nvtx3.hpp
    - fields: []
      item_type: struct
      name: end_range_handle
      pos:
        line_end: 2612
        line_start: 2609
        source_file: /src/nccl/src/include/nvtx3/nvtx3.hpp
    - fields: []
      item_type: struct
      name: always_false
      pos:
        line_end: 659
        line_start: 659
        source_file: /src/nccl/src/include/nvtx3/nvtx3.hpp
    - fields: []
      item_type: struct
      name: has_name
      pos:
        line_end: 662
        line_start: 662
        source_file: /src/nccl/src/include/nvtx3/nvtx3.hpp
    - fields: []
      item_type: struct
      name: has_name<T, decltype((void)T::name, void())>
      pos:
        line_end: 664
        line_start: 664
        source_file: /src/nccl/src/include/nvtx3/nvtx3.hpp
    - fields: []
      item_type: struct
      name: has_id
      pos:
        line_end: 667
        line_start: 667
        source_file: /src/nccl/src/include/nvtx3/nvtx3.hpp
    - fields: []
      item_type: struct
      name: has_id<T, decltype((void)T::id, void())>
      pos:
        line_end: 669
        line_start: 669
        source_file: /src/nccl/src/include/nvtx3/nvtx3.hpp
    - fields: []
      item_type: struct
      name: has_message
      pos:
        line_end: 672
        line_start: 672
        source_file: /src/nccl/src/include/nvtx3/nvtx3.hpp
    - fields: []
      item_type: struct
      name: has_message<T, decltype((void)T::message, void())>
      pos:
        line_end: 674
        line_start: 674
        source_file: /src/nccl/src/include/nvtx3/nvtx3.hpp
    - fields: []
      item_type: struct
      name: is_c_string
      pos:
        line_end: 677
        line_start: 677
        source_file: /src/nccl/src/include/nvtx3/nvtx3.hpp
    - fields: []
      item_type: struct
      name: "is_c_string<T, typename std::enable_if<\n  std::is_convertible<T, char
        const*   >::value ||\n  std::is_convertible<T, wchar_t const*>::value\n>::type>"
      pos:
        line_end: 682
        line_start: 679
        source_file: /src/nccl/src/include/nvtx3/nvtx3.hpp
    - fields: []
      item_type: struct
      name: always_false
      pos:
        line_end: 659
        line_start: 659
        source_file: /src/nccl/src/include/nvtx3/nvtx3.hpp
    - fields: []
      item_type: struct
      name: has_name
      pos:
        line_end: 662
        line_start: 662
        source_file: /src/nccl/src/include/nvtx3/nvtx3.hpp
    - fields: []
      item_type: struct
      name: has_name<T, decltype((void)T::name, void())>
      pos:
        line_end: 664
        line_start: 664
        source_file: /src/nccl/src/include/nvtx3/nvtx3.hpp
    - fields: []
      item_type: struct
      name: has_id
      pos:
        line_end: 667
        line_start: 667
        source_file: /src/nccl/src/include/nvtx3/nvtx3.hpp
    - fields: []
      item_type: struct
      name: has_id<T, decltype((void)T::id, void())>
      pos:
        line_end: 669
        line_start: 669
        source_file: /src/nccl/src/include/nvtx3/nvtx3.hpp
    - fields: []
      item_type: struct
      name: has_message
      pos:
        line_end: 672
        line_start: 672
        source_file: /src/nccl/src/include/nvtx3/nvtx3.hpp
    - fields: []
      item_type: struct
      name: has_message<T, decltype((void)T::message, void())>
      pos:
        line_end: 674
        line_start: 674
        source_file: /src/nccl/src/include/nvtx3/nvtx3.hpp
    - fields: []
      item_type: struct
      name: is_c_string
      pos:
        line_end: 677
        line_start: 677
        source_file: /src/nccl/src/include/nvtx3/nvtx3.hpp
    - fields: []
      item_type: struct
      name: "is_c_string<T, typename std::enable_if<\n  std::is_convertible<T, char
        const*   >::value ||\n  std::is_convertible<T, wchar_t const*>::value\n>::type>"
      pos:
        line_end: 682
        line_start: 679
        source_file: /src/nccl/src/include/nvtx3/nvtx3.hpp
    - fields: []
      item_type: struct
      name: global
      pos:
        line_end: 761
        line_start: 760
        source_file: /src/nccl/src/include/nvtx3/nvtx3.hpp
    - fields:
      - name: red
        type: component_type
      - name: green
        type: component_type
      - name: blue
        type: component_type
      item_type: struct
      name: rgb
      pos:
        line_end: 991
        line_start: 966
        source_file: /src/nccl/src/include/nvtx3/nvtx3.hpp
    - fields:
      - name: alpha
        type: component_type
      item_type: struct
      name: argb
      pos:
        line_end: 1021
        line_start: 998
        source_file: /src/nccl/src/include/nvtx3/nvtx3.hpp
    - fields:
      - name: null_range_id
        type: value_type
      - name: _range_id
        type: value_type
      item_type: struct
      name: range_handle
      pos:
        line_end: 2282
        line_start: 2229
        source_file: /src/nccl/src/include/nvtx3/nvtx3.hpp
    - fields: []
      item_type: struct
      name: end_range_handle
      pos:
        line_end: 2612
        line_start: 2609
        source_file: /src/nccl/src/include/nvtx3/nvtx3.hpp
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/src/include/nvtx3/nvToolsExtCuda.h
  types:
    enum:
    - enumerators:
      - name: NVTX_RESOURCE_TYPE_CUDA_DEVICE
        value: NVTX_RESOURCE_MAKE_TYPE(CUDA, 1)
      - name: NVTX_RESOURCE_TYPE_CUDA_EVENT
        value: NVTX_RESOURCE_MAKE_TYPE(CUDA, 4)
      - name: NVTX_RESOURCE_TYPE_CUDA_STREAM
        value: NVTX_RESOURCE_MAKE_TYPE(CUDA, 3)
      - name: NVTX_RESOURCE_TYPE_CUDA_CONTEXT
        value: NVTX_RESOURCE_MAKE_TYPE(CUDA, 2)
      item_type: enum
      name: nvtxResourceCUDAType_t
      pos:
        line_end: 48
        line_start: 42
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtCuda.h
    preproc_defs:
    - item_type: preproc_def
      name: NVTX_RESOURCE_CLASS_CUDA
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtCuda.h
      type_or_value: '4'
    - item_type: preproc_def
      name: nvtxNameCuDevice
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtCuda.h
      type_or_value: nvtxNameCuDeviceW
    - item_type: preproc_def
      name: nvtxNameCuContext
      pos:
        line_end: 121
        line_start: 120
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtCuda.h
      type_or_value: nvtxNameCuContextW
    - item_type: preproc_def
      name: nvtxNameCuStream
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtCuda.h
      type_or_value: nvtxNameCuStreamW
    - item_type: preproc_def
      name: nvtxNameCuEvent
      pos:
        line_end: 123
        line_start: 122
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtCuda.h
      type_or_value: nvtxNameCuEventW
    - item_type: preproc_def
      name: nvtxNameCuDevice
      pos:
        line_end: 125
        line_start: 124
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtCuda.h
      type_or_value: nvtxNameCuDeviceA
    - item_type: preproc_def
      name: nvtxNameCuContext
      pos:
        line_end: 126
        line_start: 125
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtCuda.h
      type_or_value: nvtxNameCuContextA
    - item_type: preproc_def
      name: nvtxNameCuStream
      pos:
        line_end: 127
        line_start: 126
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtCuda.h
      type_or_value: nvtxNameCuStreamA
    - item_type: preproc_def
      name: nvtxNameCuEvent
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtCuda.h
      type_or_value: nvtxNameCuEventA
    structs: []
    typedefs:
    - item_type: typedef
      name: nvtxResourceCUDAType_t
      pos:
        line_end: 48
        line_start: 42
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtCuda.h
    union: []
- function_names: []
  source_file: /src/nccl/src/include/nvtx3/nvToolsExtSemanticsScope.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NVTX_SEMANTIC_ID_SCOPE_V1
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtSemanticsScope.h
      type_or_value: '1'
    structs:
    - fields:
      - name: header
        type: struct nvtxSemanticsHeader_v1
      - name: scopeId
        type: uint64_t
      item_type: struct
      name: nvtxSemanticsScope_v1
      pos:
        line_end: 27
        line_start: 21
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtSemanticsScope.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/src/include/nvtx3/nvToolsExtSync.h
  types:
    enum:
    - enumerators:
      - name: NVTX_RESOURCE_TYPE_SYNC_PTHREAD_MUTEX
        value: NVTX_RESOURCE_MAKE_TYPE(SYNC_PTHREAD, 1)
      - name: NVTX_RESOURCE_TYPE_SYNC_PTHREAD_BARRIER
        value: NVTX_RESOURCE_MAKE_TYPE(SYNC_PTHREAD, 4)
      - name: NVTX_RESOURCE_TYPE_SYNC_PTHREAD_CONDITION
        value: NVTX_RESOURCE_MAKE_TYPE(SYNC_PTHREAD, 2)
      - name: NVTX_RESOURCE_TYPE_SYNC_PTHREAD_SPINLOCK
        value: NVTX_RESOURCE_MAKE_TYPE(SYNC_PTHREAD, 5)
      - name: NVTX_RESOURCE_TYPE_SYNC_PTHREAD_RWLOCK
        value: NVTX_RESOURCE_MAKE_TYPE(SYNC_PTHREAD, 3)
      - name: NVTX_RESOURCE_TYPE_SYNC_PTHREAD_ONCE
        value: NVTX_RESOURCE_MAKE_TYPE(SYNC_PTHREAD, 6)
      item_type: enum
      name: nvtxResourceSyncPosixThreadType_t
      pos:
        line_end: 108
        line_start: 100
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtSync.h
    - enumerators:
      - name: NVTX_RESOURCE_TYPE_SYNC_WINDOWS_MUTEX
        value: NVTX_RESOURCE_MAKE_TYPE(SYNC_OS, 1)
      - name: NVTX_RESOURCE_TYPE_SYNC_WINDOWS_SEMAPHORE
        value: NVTX_RESOURCE_MAKE_TYPE(SYNC_OS, 2)
      - name: NVTX_RESOURCE_TYPE_SYNC_WINDOWS_CRITICAL_SECTION
        value: NVTX_RESOURCE_MAKE_TYPE(SYNC_OS, 4)
      - name: NVTX_RESOURCE_TYPE_SYNC_WINDOWS_EVENT
        value: NVTX_RESOURCE_MAKE_TYPE(SYNC_OS, 3)
      - name: NVTX_RESOURCE_TYPE_SYNC_WINDOWS_SRWLOCK
        value: NVTX_RESOURCE_MAKE_TYPE(SYNC_OS, 5)
      item_type: enum
      name: nvtxResourceSyncWindowsType_t
      pos:
        line_end: 119
        line_start: 112
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtSync.h
    - enumerators:
      - name: NVTX_RESOURCE_TYPE_SYNC_LINUX_MUTEX
        value: NVTX_RESOURCE_MAKE_TYPE(SYNC_OS, 1)
      - name: NVTX_RESOURCE_TYPE_SYNC_LINUX_FUTEX
        value: NVTX_RESOURCE_MAKE_TYPE(SYNC_OS, 2)
      - name: NVTX_RESOURCE_TYPE_SYNC_LINUX_SPINLOCK
        value: NVTX_RESOURCE_MAKE_TYPE(SYNC_OS, 5)
      - name: NVTX_RESOURCE_TYPE_SYNC_LINUX_COMPLETION
        value: NVTX_RESOURCE_MAKE_TYPE(SYNC_OS, 4)
      - name: NVTX_RESOURCE_TYPE_SYNC_LINUX_SEMAPHORE
        value: NVTX_RESOURCE_MAKE_TYPE(SYNC_OS, 3)
      - name: NVTX_RESOURCE_TYPE_SYNC_LINUX_SEQLOCK
        value: NVTX_RESOURCE_MAKE_TYPE(SYNC_OS, 6)
      - name: NVTX_RESOURCE_TYPE_SYNC_LINUX_RCU
        value: NVTX_RESOURCE_MAKE_TYPE(SYNC_OS, 7)
      item_type: enum
      name: nvtxResourceSyncLinuxType_t
      pos:
        line_end: 134
        line_start: 125
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtSync.h
    preproc_defs:
    - item_type: preproc_def
      name: NVTX_SYNCUSER_ATTRIB_STRUCT_SIZE
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtSync.h
      type_or_value: ( (uint16_t)( sizeof(nvtxSyncUserAttributes_v0) ) )
    - item_type: preproc_def
      name: NVTX_RESOURCE_CLASS_SYNC_OS
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtSync.h
      type_or_value: '2 '
    - item_type: preproc_def
      name: NVTX_RESOURCE_CLASS_SYNC_PTHREAD
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtSync.h
      type_or_value: '3 '
    structs:
    - fields:
      - name: version
        type: uint16_t
      - name: size
        type: uint16_t
      - name: messageType
        type: int32_t
      - name: message
        type: nvtxMessageValue_t
      item_type: struct
      name: nvtxSyncUserAttributes_v0
      pos:
        line_end: 256
        line_start: 222
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtSync.h
    typedefs:
    - item_type: typedef
      name: nvtxResourceSyncPosixThreadType_t
      pos:
        line_end: 108
        line_start: 100
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtSync.h
    - item_type: typedef
      name: nvtxResourceSyncWindowsType_t
      pos:
        line_end: 119
        line_start: 112
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtSync.h
    - item_type: typedef
      name: nvtxResourceSyncLinuxType_t
      pos:
        line_end: 134
        line_start: 125
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtSync.h
    - item_type: typedef
      name: nvtxResourceSyncAndroidType_t
      pos:
        line_end: 141
        line_start: 141
        source_file: /src/nccl/src/include/nvtx3/nvToolsExtSync.h
    union: []
- function_names:
  - NVTX_ERR
  - NVTX_INFO
  - NVTX_ERR
  - NVTX_INFO
  source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtImpl.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NVTX_EXTENSION_FRESH
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtImpl.h
      type_or_value: '0'
    - item_type: preproc_def
      name: NVTX_EXTENSION_DISABLED
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtImpl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: NVTX_EXTENSION_STARTING
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtImpl.h
      type_or_value: '2'
    - item_type: preproc_def
      name: NVTX_EXTENSION_LOADED
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtImpl.h
      type_or_value: '3'
    structs:
    - fields:
      - name: injectionFnPtr
        type: NvtxExtInitializeInjectionFunc_t
      item_type: struct
      name: nvtxExtGlobals1_t
      pos:
        line_end: 79
        line_start: 76
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtImpl.h
    typedefs: []
    union: []
- function_names:
  - nvtx_alignof
  - nvtx_alignof2
  - MKTYPEDEF
  - MKTYPEDEF2
  - nvtx_alignof
  - nvtx_alignof2
  source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadTypeInfo.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: '* nvtx_payload_pointer_type'
      pos:
        line_end: 12
        line_start: 12
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadTypeInfo.h
      type: void
    union: []
- function_names:
  - NVTX_ERR
  - NVTX_INFO
  - NVTX_ERR
  - NVTX_INFO
  - NVTX_VERSIONED_IDENTIFIER
  - NVTX_VERSIONED_IDENTIFIER
  - NVTX_VERSIONED_IDENTIFIER
  source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImpl.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NVTX_INIT_STATE_FRESH
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImpl.h
      type_or_value: '0'
    - item_type: preproc_def
      name: NVTX_INIT_STATE_STARTED
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImpl.h
      type_or_value: '1'
    - item_type: preproc_def
      name: NVTX_INIT_STATE_COMPLETE
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImpl.h
      type_or_value: '2'
    structs:
    - fields:
      - name: initState
        type: unsigned int
      - name: etblCallbacks
        type: NvtxExportTableCallbacks
      - name: etblVersionInfo
        type: NvtxExportTableVersionInfo
      - name: nvtxMarkEx_impl_fnptr
        type: nvtxMarkEx_impl_fntype
      - name: nvtxMarkA_impl_fnptr
        type: nvtxMarkA_impl_fntype
      - name: nvtxMarkW_impl_fnptr
        type: nvtxMarkW_impl_fntype
      - name: nvtxRangeStartEx_impl_fnptr
        type: nvtxRangeStartEx_impl_fntype
      - name: nvtxRangeStartA_impl_fnptr
        type: nvtxRangeStartA_impl_fntype
      - name: nvtxRangeStartW_impl_fnptr
        type: nvtxRangeStartW_impl_fntype
      - name: nvtxRangeEnd_impl_fnptr
        type: nvtxRangeEnd_impl_fntype
      - name: nvtxRangePushEx_impl_fnptr
        type: nvtxRangePushEx_impl_fntype
      - name: nvtxRangePushA_impl_fnptr
        type: nvtxRangePushA_impl_fntype
      - name: nvtxRangePushW_impl_fnptr
        type: nvtxRangePushW_impl_fntype
      - name: nvtxRangePop_impl_fnptr
        type: nvtxRangePop_impl_fntype
      - name: nvtxNameCategoryA_impl_fnptr
        type: nvtxNameCategoryA_impl_fntype
      - name: nvtxNameCategoryW_impl_fnptr
        type: nvtxNameCategoryW_impl_fntype
      - name: nvtxNameOsThreadA_impl_fnptr
        type: nvtxNameOsThreadA_impl_fntype
      - name: nvtxNameOsThreadW_impl_fnptr
        type: nvtxNameOsThreadW_impl_fntype
      - name: nvtxNameCuDeviceA_impl_fnptr
        type: nvtxNameCuDeviceA_fakeimpl_fntype
      - name: nvtxNameCuDeviceW_impl_fnptr
        type: nvtxNameCuDeviceW_fakeimpl_fntype
      - name: nvtxNameCuContextA_impl_fnptr
        type: nvtxNameCuContextA_fakeimpl_fntype
      - name: nvtxNameCuContextW_impl_fnptr
        type: nvtxNameCuContextW_fakeimpl_fntype
      - name: nvtxNameCuStreamA_impl_fnptr
        type: nvtxNameCuStreamA_fakeimpl_fntype
      - name: nvtxNameCuStreamW_impl_fnptr
        type: nvtxNameCuStreamW_fakeimpl_fntype
      - name: nvtxNameCuEventA_impl_fnptr
        type: nvtxNameCuEventA_fakeimpl_fntype
      - name: nvtxNameCuEventW_impl_fnptr
        type: nvtxNameCuEventW_fakeimpl_fntype
      - name: nvtxNameClDeviceA_impl_fnptr
        type: nvtxNameClDeviceA_fakeimpl_fntype
      - name: nvtxNameClDeviceW_impl_fnptr
        type: nvtxNameClDeviceW_fakeimpl_fntype
      - name: nvtxNameClContextA_impl_fnptr
        type: nvtxNameClContextA_fakeimpl_fntype
      - name: nvtxNameClContextW_impl_fnptr
        type: nvtxNameClContextW_fakeimpl_fntype
      - name: nvtxNameClCommandQueueA_impl_fnptr
        type: nvtxNameClCommandQueueA_fakeimpl_fntype
      - name: nvtxNameClCommandQueueW_impl_fnptr
        type: nvtxNameClCommandQueueW_fakeimpl_fntype
      - name: nvtxNameClMemObjectA_impl_fnptr
        type: nvtxNameClMemObjectA_fakeimpl_fntype
      - name: nvtxNameClMemObjectW_impl_fnptr
        type: nvtxNameClMemObjectW_fakeimpl_fntype
      - name: nvtxNameClSamplerA_impl_fnptr
        type: nvtxNameClSamplerA_fakeimpl_fntype
      - name: nvtxNameClSamplerW_impl_fnptr
        type: nvtxNameClSamplerW_fakeimpl_fntype
      - name: nvtxNameClProgramA_impl_fnptr
        type: nvtxNameClProgramA_fakeimpl_fntype
      - name: nvtxNameClProgramW_impl_fnptr
        type: nvtxNameClProgramW_fakeimpl_fntype
      - name: nvtxNameClEventA_impl_fnptr
        type: nvtxNameClEventA_fakeimpl_fntype
      - name: nvtxNameClEventW_impl_fnptr
        type: nvtxNameClEventW_fakeimpl_fntype
      - name: nvtxNameCudaDeviceA_impl_fnptr
        type: nvtxNameCudaDeviceA_impl_fntype
      - name: nvtxNameCudaDeviceW_impl_fnptr
        type: nvtxNameCudaDeviceW_impl_fntype
      - name: nvtxNameCudaStreamA_impl_fnptr
        type: nvtxNameCudaStreamA_fakeimpl_fntype
      - name: nvtxNameCudaStreamW_impl_fnptr
        type: nvtxNameCudaStreamW_fakeimpl_fntype
      - name: nvtxNameCudaEventA_impl_fnptr
        type: nvtxNameCudaEventA_fakeimpl_fntype
      - name: nvtxNameCudaEventW_impl_fnptr
        type: nvtxNameCudaEventW_fakeimpl_fntype
      - name: nvtxDomainMarkEx_impl_fnptr
        type: nvtxDomainMarkEx_impl_fntype
      - name: nvtxDomainRangeStartEx_impl_fnptr
        type: nvtxDomainRangeStartEx_impl_fntype
      - name: nvtxDomainRangeEnd_impl_fnptr
        type: nvtxDomainRangeEnd_impl_fntype
      - name: nvtxDomainRangePushEx_impl_fnptr
        type: nvtxDomainRangePushEx_impl_fntype
      - name: nvtxDomainRangePop_impl_fnptr
        type: nvtxDomainRangePop_impl_fntype
      - name: nvtxDomainResourceCreate_impl_fnptr
        type: nvtxDomainResourceCreate_impl_fntype
      - name: nvtxDomainResourceDestroy_impl_fnptr
        type: nvtxDomainResourceDestroy_impl_fntype
      - name: nvtxDomainNameCategoryA_impl_fnptr
        type: nvtxDomainNameCategoryA_impl_fntype
      - name: nvtxDomainNameCategoryW_impl_fnptr
        type: nvtxDomainNameCategoryW_impl_fntype
      - name: nvtxDomainRegisterStringA_impl_fnptr
        type: nvtxDomainRegisterStringA_impl_fntype
      - name: nvtxDomainRegisterStringW_impl_fnptr
        type: nvtxDomainRegisterStringW_impl_fntype
      - name: nvtxDomainCreateA_impl_fnptr
        type: nvtxDomainCreateA_impl_fntype
      - name: nvtxDomainCreateW_impl_fnptr
        type: nvtxDomainCreateW_impl_fntype
      - name: nvtxDomainDestroy_impl_fnptr
        type: nvtxDomainDestroy_impl_fntype
      - name: nvtxInitialize_impl_fnptr
        type: nvtxInitialize_impl_fntype
      - name: nvtxDomainSyncUserCreate_impl_fnptr
        type: nvtxDomainSyncUserCreate_impl_fntype
      - name: nvtxDomainSyncUserDestroy_impl_fnptr
        type: nvtxDomainSyncUserDestroy_impl_fntype
      - name: nvtxDomainSyncUserAcquireStart_impl_fnptr
        type: nvtxDomainSyncUserAcquireStart_impl_fntype
      - name: nvtxDomainSyncUserAcquireFailed_impl_fnptr
        type: nvtxDomainSyncUserAcquireFailed_impl_fntype
      - name: nvtxDomainSyncUserAcquireSuccess_impl_fnptr
        type: nvtxDomainSyncUserAcquireSuccess_impl_fntype
      - name: nvtxDomainSyncUserReleasing_impl_fnptr
        type: nvtxDomainSyncUserReleasing_impl_fntype
      - name: '* functionTable_CORE  [NVTX_CBID_CORE_SIZE   + 1]'
        type: NvtxFunctionPointer
      - name: '* functionTable_CUDA  [NVTX_CBID_CUDA_SIZE   + 1]'
        type: NvtxFunctionPointer
      - name: '* functionTable_OPENCL[NVTX_CBID_OPENCL_SIZE + 1]'
        type: NvtxFunctionPointer
      - name: '* functionTable_CUDART[NVTX_CBID_CUDART_SIZE + 1]'
        type: NvtxFunctionPointer
      - name: '* functionTable_CORE2 [NVTX_CBID_CORE2_SIZE  + 1]'
        type: NvtxFunctionPointer
      - name: '* functionTable_SYNC  [NVTX_CBID_SYNC_SIZE   + 1]'
        type: NvtxFunctionPointer
      item_type: struct
      name: nvtxGlobals_t
      pos:
        line_end: 173
        line_start: 88
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImpl.h
    typedefs: []
    union: []
- function_names:
  - NVTX_VERSIONED_IDENTIFIER
  - NVTX_VERSIONED_IDENTIFIER
  - NVTX_VERSIONED_IDENTIFIER
  - NVTX_VERSIONED_IDENTIFIER
  - NVTX_VERSIONED_IDENTIFIER
  - NVTX_VERSIONED_IDENTIFIER
  - NVTX_VERSIONED_IDENTIFIER
  - NVTX_VERSIONED_IDENTIFIER
  - NVTX_VERSIONED_IDENTIFIER
  - NVTX_VERSIONED_IDENTIFIER
  - NVTX_VERSIONED_IDENTIFIER
  - NVTX_VERSIONED_IDENTIFIER
  - NVTX_VERSIONED_IDENTIFIER
  - NVTX_VERSIONED_IDENTIFIER
  - NVTX_VERSIONED_IDENTIFIER
  - NVTX_VERSIONED_IDENTIFIER
  - NVTX_VERSIONED_IDENTIFIER
  - NVTX_VERSIONED_IDENTIFIER
  - NVTX_VERSIONED_IDENTIFIER
  - NVTX_VERSIONED_IDENTIFIER
  - NVTX_VERSIONED_IDENTIFIER
  - NVTX_VERSIONED_IDENTIFIER
  - NVTX_VERSIONED_IDENTIFIER
  - NVTX_VERSIONED_IDENTIFIER
  - NVTX_VERSIONED_IDENTIFIER
  - NVTX_VERSIONED_IDENTIFIER
  - NVTX_VERSIONED_IDENTIFIER
  - NVTX_VERSIONED_IDENTIFIER
  - NVTX_VERSIONED_IDENTIFIER
  - NVTX_VERSIONED_IDENTIFIER
  - NVTX_VERSIONED_IDENTIFIER
  - NVTX_VERSIONED_IDENTIFIER
  - NVTX_VERSIONED_IDENTIFIER
  - NVTX_VERSIONED_IDENTIFIER
  - NVTX_VERSIONED_IDENTIFIER
  - NVTX_VERSIONED_IDENTIFIER
  - NVTX_VERSIONED_IDENTIFIER
  - NVTX_VERSIONED_IDENTIFIER
  - NVTX_VERSIONED_IDENTIFIER
  - NVTX_VERSIONED_IDENTIFIER
  - NVTX_VERSIONED_IDENTIFIER
  - NVTX_VERSIONED_IDENTIFIER
  - NVTX_VERSIONED_IDENTIFIER
  - NVTX_VERSIONED_IDENTIFIER
  - NVTX_VERSIONED_IDENTIFIER
  - NVTX_VERSIONED_IDENTIFIER
  - NVTX_VERSIONED_IDENTIFIER
  - NVTX_VERSIONED_IDENTIFIER
  - NVTX_VERSIONED_IDENTIFIER
  - NVTX_VERSIONED_IDENTIFIER
  - NVTX_VERSIONED_IDENTIFIER
  - NVTX_VERSIONED_IDENTIFIER
  - NVTX_VERSIONED_IDENTIFIER
  - NVTX_VERSIONED_IDENTIFIER
  - NVTX_VERSIONED_IDENTIFIER
  - NVTX_VERSIONED_IDENTIFIER
  - NVTX_VERSIONED_IDENTIFIER
  - NVTX_VERSIONED_IDENTIFIER
  - NVTX_VERSIONED_IDENTIFIER
  - NVTX_VERSIONED_IDENTIFIER
  - NVTX_VERSIONED_IDENTIFIER
  - NVTX_VERSIONED_IDENTIFIER
  - NVTX_VERSIONED_IDENTIFIER
  - NVTX_VERSIONED_IDENTIFIER
  - NVTX_VERSIONED_IDENTIFIER
  source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDefs.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtTypes.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: segmentId
        type: size_t
      - name: slotCount
        type: size_t
      - name: '* functionSlots'
        type: intptr_t
      item_type: struct
      name: nvtxExtModuleSegment_t
      pos:
        line_end: 27
        line_start: 22
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtTypes.h
    - fields:
      - name: nvtxVer
        type: uint16_t
      - name: structSize
        type: uint16_t
      - name: moduleId
        type: uint16_t
      - name: compatId
        type: uint16_t
      - name: segmentsCount
        type: size_t
      - name: '* segments'
        type: nvtxExtModuleSegment_t
      - name: getExportFunction
        type: NvtxExtGetExportFunction_t
      - name: '* extInfo'
        type: void
      item_type: struct
      name: nvtxExtModuleInfo_t
      pos:
        line_end: 39
        line_start: 29
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtTypes.h
    typedefs:
    - item_type: typedef
      name: (NVTX_API * NvtxExtGetExportFunction_t)(uint32_t exportFunctionId)
      pos:
        line_end: 20
        line_start: 20
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtTypes.h
      type: intptr_t
    - item_type: typedef
      name: (NVTX_API * NvtxExtInitializeInjectionFunc_t)(nvtxExtModuleInfo_t* moduleInfo)
      pos:
        line_end: 41
        line_start: 41
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtTypes.h
      type: int
    union: []
- function_names:
  - NVTX_EXT_COUNTERS_VERSIONED_IDENTIFIER_L3
  - NVTX_EXT_COUNTERS_VERSIONED_IDENTIFIER_L2
  - NVTX_EXT_COUNTERS_VERSIONED_ID
  - NVTX_EXT_COUNTERS_IMPL_FN_V1
  - NVTX_EXT_COUNTERS_VERSIONED_ID
  - NVTX_EXT_COUNTERS_IMPL_FN_V1
  - NVTX_EXT_FN_RETURN_INVALID
  source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtImplCounters_v1.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NVTX_EXT_COUNTERS_SLOT_COUNT
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtImplCounters_v1.h
      type_or_value: '63'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxLinkOnce.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NVTX_LINKONCE_WEAK
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxLinkOnce.h
      type_or_value: __attribute__((section(".gnu.linkonce.0.")))
    - item_type: preproc_def
      name: NVTX_LINKONCE_DEFINE_GLOBAL
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxLinkOnce.h
      type_or_value: __declspec(selectany)
    - item_type: preproc_def
      name: NVTX_LINKONCE_DEFINE_FUNCTION
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxLinkOnce.h
      type_or_value: extern "C" inline NVTX_LINKONCE_WEAK
    - item_type: preproc_def
      name: NVTX_LINKONCE_DEFINE_GLOBAL
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxLinkOnce.h
      type_or_value: __declspec(selectany)
    - item_type: preproc_def
      name: NVTX_LINKONCE_DEFINE_FUNCTION
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxLinkOnce.h
      type_or_value: NVTX_LINKONCE_WEAK
    - item_type: preproc_def
      name: NVTX_LINKONCE_DEFINE_GLOBAL
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxLinkOnce.h
      type_or_value: extern "C" __declspec(selectany)
    - item_type: preproc_def
      name: NVTX_LINKONCE_DEFINE_FUNCTION
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxLinkOnce.h
      type_or_value: extern "C" inline
    - item_type: preproc_def
      name: NVTX_LINKONCE_DEFINE_GLOBAL
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxLinkOnce.h
      type_or_value: __declspec(selectany)
    - item_type: preproc_def
      name: NVTX_LINKONCE_DEFINE_FUNCTION
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxLinkOnce.h
      type_or_value: __inline
    - item_type: preproc_def
      name: NVTX_LINKONCE_WEAK
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxLinkOnce.h
      type_or_value: __attribute__((section(".gnu.linkonce.0.")))
    - item_type: preproc_def
      name: NVTX_LINKONCE_DEFINE_GLOBAL
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxLinkOnce.h
      type_or_value: NVTX_LINKONCE_WEAK
    - item_type: preproc_def
      name: NVTX_LINKONCE_DEFINE_FUNCTION
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxLinkOnce.h
      type_or_value: extern "C" NVTX_LINKONCE_WEAK
    - item_type: preproc_def
      name: NVTX_LINKONCE_DEFINE_GLOBAL
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxLinkOnce.h
      type_or_value: NVTX_LINKONCE_WEAK
    - item_type: preproc_def
      name: NVTX_LINKONCE_DEFINE_FUNCTION
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxLinkOnce.h
      type_or_value: NVTX_LINKONCE_WEAK
    - item_type: preproc_def
      name: NVTX_LINKONCE_WEAK
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxLinkOnce.h
      type_or_value: __attribute__((weak))
    - item_type: preproc_def
      name: NVTX_LINKONCE_DEFINE_GLOBAL
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxLinkOnce.h
      type_or_value: __declspec(selectany)
    - item_type: preproc_def
      name: NVTX_LINKONCE_DEFINE_FUNCTION
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxLinkOnce.h
      type_or_value: extern "C" inline
    - item_type: preproc_def
      name: NVTX_LINKONCE_DEFINE_GLOBAL
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxLinkOnce.h
      type_or_value: NVTX_LINKONCE_WEAK
    - item_type: preproc_def
      name: NVTX_LINKONCE_DEFINE_FUNCTION
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxLinkOnce.h
      type_or_value: NVTX_LINKONCE_WEAK
    - item_type: preproc_def
      name: NVTX_LINKONCE_WEAK
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxLinkOnce.h
      type_or_value: __attribute__((weak))
    - item_type: preproc_def
      name: NVTX_LINKONCE_HIDDEN
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxLinkOnce.h
      type_or_value: __attribute__((visibility("hidden")))
    - item_type: preproc_def
      name: NVTX_LINKONCE_DEFINE_GLOBAL
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxLinkOnce.h
      type_or_value: NVTX_LINKONCE_HIDDEN NVTX_LINKONCE_WEAK
    - item_type: preproc_def
      name: NVTX_LINKONCE_DEFINE_FUNCTION
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxLinkOnce.h
      type_or_value: extern "C" NVTX_LINKONCE_HIDDEN inline
    - item_type: preproc_def
      name: NVTX_LINKONCE_DEFINE_GLOBAL
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxLinkOnce.h
      type_or_value: NVTX_LINKONCE_HIDDEN NVTX_LINKONCE_WEAK
    - item_type: preproc_def
      name: NVTX_LINKONCE_DEFINE_FUNCTION
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxLinkOnce.h
      type_or_value: NVTX_LINKONCE_HIDDEN NVTX_LINKONCE_WEAK
    - item_type: preproc_def
      name: NVTX_LINKONCE_FWDDECL_GLOBAL
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxLinkOnce.h
      type_or_value: NVTX_LINKONCE_DEFINE_GLOBAL   extern
    - item_type: preproc_def
      name: NVTX_LINKONCE_FWDDECL_FUNCTION
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxLinkOnce.h
      type_or_value: NVTX_LINKONCE_DEFINE_FUNCTION
    structs: []
    typedefs: []
    union: []
- function_names:
  - nvtxNameClDeviceA
  - nvtxNameClDeviceW
  - nvtxNameClContextA
  - nvtxNameClContextW
  - nvtxNameClCommandQueueA
  - nvtxNameClCommandQueueW
  - nvtxNameClMemObjectA
  - nvtxNameClMemObjectW
  - nvtxNameClSamplerA
  - nvtxNameClSamplerW
  - nvtxNameClProgramA
  - nvtxNameClProgramW
  - nvtxNameClEventA
  - nvtxNameClEventW
  source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplOpenCL_v3.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: (NVTX_API * nvtxNameClDeviceA_impl_fntype)(cl_device_id device, const
        char* name)
      pos:
        line_end: 17
        line_start: 17
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplOpenCL_v3.h
      type: void
    - item_type: typedef
      name: (NVTX_API * nvtxNameClDeviceW_impl_fntype)(cl_device_id device, const
        wchar_t* name)
      pos:
        line_end: 18
        line_start: 18
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplOpenCL_v3.h
      type: void
    - item_type: typedef
      name: (NVTX_API * nvtxNameClContextA_impl_fntype)(cl_context context, const
        char* name)
      pos:
        line_end: 19
        line_start: 19
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplOpenCL_v3.h
      type: void
    - item_type: typedef
      name: (NVTX_API * nvtxNameClContextW_impl_fntype)(cl_context context, const
        wchar_t* name)
      pos:
        line_end: 20
        line_start: 20
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplOpenCL_v3.h
      type: void
    - item_type: typedef
      name: (NVTX_API * nvtxNameClCommandQueueA_impl_fntype)(cl_command_queue command_queue,
        const char* name)
      pos:
        line_end: 21
        line_start: 21
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplOpenCL_v3.h
      type: void
    - item_type: typedef
      name: (NVTX_API * nvtxNameClCommandQueueW_impl_fntype)(cl_command_queue command_queue,
        const wchar_t* name)
      pos:
        line_end: 22
        line_start: 22
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplOpenCL_v3.h
      type: void
    - item_type: typedef
      name: (NVTX_API * nvtxNameClMemObjectA_impl_fntype)(cl_mem memobj, const char*
        name)
      pos:
        line_end: 23
        line_start: 23
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplOpenCL_v3.h
      type: void
    - item_type: typedef
      name: (NVTX_API * nvtxNameClMemObjectW_impl_fntype)(cl_mem memobj, const wchar_t*
        name)
      pos:
        line_end: 24
        line_start: 24
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplOpenCL_v3.h
      type: void
    - item_type: typedef
      name: (NVTX_API * nvtxNameClSamplerA_impl_fntype)(cl_sampler sampler, const
        char* name)
      pos:
        line_end: 25
        line_start: 25
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplOpenCL_v3.h
      type: void
    - item_type: typedef
      name: (NVTX_API * nvtxNameClSamplerW_impl_fntype)(cl_sampler sampler, const
        wchar_t* name)
      pos:
        line_end: 26
        line_start: 26
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplOpenCL_v3.h
      type: void
    - item_type: typedef
      name: (NVTX_API * nvtxNameClProgramA_impl_fntype)(cl_program program, const
        char* name)
      pos:
        line_end: 27
        line_start: 27
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplOpenCL_v3.h
      type: void
    - item_type: typedef
      name: (NVTX_API * nvtxNameClProgramW_impl_fntype)(cl_program program, const
        wchar_t* name)
      pos:
        line_end: 28
        line_start: 28
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplOpenCL_v3.h
      type: void
    - item_type: typedef
      name: (NVTX_API * nvtxNameClEventA_impl_fntype)(cl_event evnt, const char* name)
      pos:
        line_end: 29
        line_start: 29
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplOpenCL_v3.h
      type: void
    - item_type: typedef
      name: (NVTX_API * nvtxNameClEventW_impl_fntype)(cl_event evnt, const wchar_t*
        name)
      pos:
        line_end: 30
        line_start: 30
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplOpenCL_v3.h
      type: void
    union: []
- function_names:
  - nvtxNameCudaDeviceA
  - nvtxNameCudaDeviceW
  - nvtxNameCudaStreamA
  - nvtxNameCudaStreamW
  - nvtxNameCudaEventA
  - nvtxNameCudaEventW
  source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCudaRt_v3.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: (NVTX_API * nvtxNameCudaDeviceA_impl_fntype)(int device, const char* name)
      pos:
        line_end: 16
        line_start: 16
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCudaRt_v3.h
      type: void
    - item_type: typedef
      name: (NVTX_API * nvtxNameCudaDeviceW_impl_fntype)(int device, const wchar_t*
        name)
      pos:
        line_end: 17
        line_start: 17
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCudaRt_v3.h
      type: void
    - item_type: typedef
      name: (NVTX_API * nvtxNameCudaStreamA_impl_fntype)(cudaStream_t stream, const
        char* name)
      pos:
        line_end: 18
        line_start: 18
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCudaRt_v3.h
      type: void
    - item_type: typedef
      name: (NVTX_API * nvtxNameCudaStreamW_impl_fntype)(cudaStream_t stream, const
        wchar_t* name)
      pos:
        line_end: 19
        line_start: 19
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCudaRt_v3.h
      type: void
    - item_type: typedef
      name: (NVTX_API * nvtxNameCudaEventA_impl_fntype)(cudaEvent_t event, const char*
        name)
      pos:
        line_end: 20
        line_start: 20
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCudaRt_v3.h
      type: void
    - item_type: typedef
      name: (NVTX_API * nvtxNameCudaEventW_impl_fntype)(cudaEvent_t event, const wchar_t*
        name)
      pos:
        line_end: 21
        line_start: 21
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCudaRt_v3.h
      type: void
    union: []
- function_names:
  - NVTX_EXT_PAYLOAD_VERSIONED_IDENTIFIER_L3
  - NVTX_EXT_PAYLOAD_VERSIONED_IDENTIFIER_L2
  - NVTX_EXT_PAYLOAD_VERSIONED_ID
  - NVTX_EXT_PAYLOAD_IMPL_FN_V1
  - NVTX_EXT_PAYLOAD_VERSIONED_ID
  - NVTX_EXT_PAYLOAD_IMPL_FN_V1
  - NVTX_EXT_FN_RETURN_INVALID
  source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtImplPayload_v1.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NVTX_EXT_PAYLOAD_SLOT_COUNT
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtImplPayload_v1.h
      type_or_value: '63'
    structs: []
    typedefs: []
    union: []
- function_names:
  - nvtxNameCuDeviceA
  - nvtxNameCuDeviceW
  - nvtxNameCuContextA
  - nvtxNameCuContextW
  - nvtxNameCuStreamA
  - nvtxNameCuStreamW
  - nvtxNameCuEventA
  - nvtxNameCuEventW
  source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCuda_v3.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: (NVTX_API * nvtxNameCuDeviceA_impl_fntype)(CUdevice device, const char*
        name)
      pos:
        line_end: 17
        line_start: 17
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCuda_v3.h
      type: void
    - item_type: typedef
      name: (NVTX_API * nvtxNameCuDeviceW_impl_fntype)(CUdevice device, const wchar_t*
        name)
      pos:
        line_end: 18
        line_start: 18
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCuda_v3.h
      type: void
    - item_type: typedef
      name: (NVTX_API * nvtxNameCuContextA_impl_fntype)(CUcontext context, const char*
        name)
      pos:
        line_end: 19
        line_start: 19
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCuda_v3.h
      type: void
    - item_type: typedef
      name: (NVTX_API * nvtxNameCuContextW_impl_fntype)(CUcontext context, const wchar_t*
        name)
      pos:
        line_end: 20
        line_start: 20
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCuda_v3.h
      type: void
    - item_type: typedef
      name: (NVTX_API * nvtxNameCuStreamA_impl_fntype)(CUstream stream, const char*
        name)
      pos:
        line_end: 21
        line_start: 21
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCuda_v3.h
      type: void
    - item_type: typedef
      name: (NVTX_API * nvtxNameCuStreamW_impl_fntype)(CUstream stream, const wchar_t*
        name)
      pos:
        line_end: 22
        line_start: 22
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCuda_v3.h
      type: void
    - item_type: typedef
      name: (NVTX_API * nvtxNameCuEventA_impl_fntype)(CUevent event, const char* name)
      pos:
        line_end: 23
        line_start: 23
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCuda_v3.h
      type: void
    - item_type: typedef
      name: (NVTX_API * nvtxNameCuEventW_impl_fntype)(CUevent event, const wchar_t*
        name)
      pos:
        line_end: 24
        line_start: 24
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCuda_v3.h
      type: void
    union: []
- function_names:
  - NVTX_STR
  - NVTX_DLLOPEN
  - NVTX_YIELD
  - NVTX_MEMBAR
  - NVTX_ATOMIC_WRITE_32
  - NVTX_ATOMIC_CAS_32
  - NVTX_STR
  - NVTX_DLLOPEN
  - NVTX_YIELD
  - NVTX_MEMBAR
  - NVTX_ATOMIC_WRITE_32
  - NVTX_ATOMIC_CAS_32
  - NVTX_VERSIONED_IDENTIFIER
  - NVTX_VERSIONED_IDENTIFIER
  source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInit.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NVTX_PATHCHAR
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInit.h
      type_or_value: wchar_t
    - item_type: preproc_def
      name: NVTX_GETENV
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInit.h
      type_or_value: _wgetenv
    - item_type: preproc_def
      name: NVTX_BUFSIZE
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInit.h
      type_or_value: '16384'
    - item_type: preproc_def
      name: NVTX_DLLHANDLE
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInit.h
      type_or_value: HMODULE
    - item_type: preproc_def
      name: NVTX_DLLFUNC
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInit.h
      type_or_value: GetProcAddress
    - item_type: preproc_def
      name: NVTX_DLLCLOSE
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInit.h
      type_or_value: FreeLibrary
    - item_type: preproc_def
      name: NVTX_PATHCHAR
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInit.h
      type_or_value: char
    - item_type: preproc_def
      name: NVTX_GETENV
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInit.h
      type_or_value: getenv
    - item_type: preproc_def
      name: NVTX_BUFSIZE
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInit.h
      type_or_value: '16384'
    - item_type: preproc_def
      name: NVTX_DLLHANDLE
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInit.h
      type_or_value: void*
    - item_type: preproc_def
      name: NVTX_DLLFUNC
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInit.h
      type_or_value: dlsym
    - item_type: preproc_def
      name: NVTX_DLLCLOSE
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInit.h
      type_or_value: dlclose
    - item_type: preproc_def
      name: NVTX_SUPPORT_ALREADY_INJECTED_LIBRARY
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInit.h
      type_or_value: '0'
    - item_type: preproc_def
      name: NVTX_SUPPORT_ALREADY_INJECTED_LIBRARY
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInit.h
      type_or_value: '0'
    - item_type: preproc_def
      name: NVTX_SUPPORT_ENV_VARS
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInit.h
      type_or_value: '1'
    - item_type: preproc_def
      name: NVTX_SUPPORT_DYNAMIC_INJECTION_LIBRARY
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInit.h
      type_or_value: '1'
    - item_type: preproc_def
      name: NVTX_SUPPORT_STATIC_INJECTION_LIBRARY
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInit.h
      type_or_value: '1'
    - item_type: preproc_def
      name: NVTX_SUPPORT_STATIC_INJECTION_LIBRARY
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInit.h
      type_or_value: '0'
    structs: []
    typedefs: []
    union: []
- function_names:
  - _NVTX_EXT_CONCAT
  - NVTX_EXT_CONCAT
  - NVTX_EXT_NUM_ARGS
  - NVTX_EXT_SELECTA16
  - _NVTX_EXT_VOIDIFY1
  - _NVTX_EXT_VOIDIFY2
  - _NVTX_EXT_VOIDIFY3
  - _NVTX_EXT_VOIDIFY4
  - NVTX_EXT_HELPER_UNUSED_ARGS
  source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtHelperMacros.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - NVTXMEM_VERSIONED_IDENTIFIER_L3
  - NVTXMEM_VERSIONED_IDENTIFIER_L2
  - NVTX_EXT_MEM_VERSIONED_ID
  - NVTX_EXT_FN_IMPL
  - NVTX_EXT_MEM_VERSIONED_ID
  - NVTX_EXT_FN_IMPL
  - NVTX_EXT_FN_RETURN_INVALID
  source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtImplMem_v1.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxTypes.h
  types:
    enum:
    - enumerators:
      - name: NVTX_CB_MODULE_INVALID
        value: '0'
      - name: NVTX_CB_MODULE_CUDA
        value: '2'
      - name: NVTX_CB_MODULE_CORE
        value: '1'
      - name: NVTX_CB_MODULE_OPENCL
        value: '3'
      - name: NVTX_CB_MODULE_CUDART
        value: '4'
      - name: NVTX_CB_MODULE_CORE2
        value: '5'
      - name: NVTX_CB_MODULE_SYNC
        value: '6'
      - name: NVTX_CB_MODULE_SIZE
      - name: NVTX_CB_MODULE_FORCE_INT
        value: '0x7fffffff'
      item_type: enum
      name: NvtxCallbackModule
      pos:
        line_end: 138
        line_start: 126
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxTypes.h
    - enumerators:
      - name: NVTX_CBID_CORE_INVALID
        value: '0'
      - name: NVTX_CBID_CORE_MarkA
        value: '2'
      - name: NVTX_CBID_CORE_RangeStartEx
        value: '4'
      - name: NVTX_CBID_CORE_MarkEx
        value: '1'
      - name: NVTX_CBID_CORE_MarkW
        value: '3'
      - name: NVTX_CBID_CORE_RangeStartA
        value: '5'
      - name: NVTX_CBID_CORE_RangeStartW
        value: '6'
      - name: NVTX_CBID_CORE_RangeEnd
        value: '7'
      - name: NVTX_CBID_CORE_RangePushEx
        value: '8'
      - name: NVTX_CBID_CORE_RangePushA
        value: '9'
      - name: NVTX_CBID_CORE_RangePushW
        value: '10'
      - name: NVTX_CBID_CORE_NameCategoryA
        value: '12'
      - name: NVTX_CBID_CORE_NameCategoryW
        value: '13'
      - name: NVTX_CBID_CORE_SIZE
      - name: NVTX_CBID_CORE_FORCE_INT
        value: '0x7fffffff'
      - name: NVTX_CBID_CORE_NameOsThreadW
        value: '15'
      - name: NVTX_CBID_CORE_NameOsThreadA
        value: '14'
      - name: NVTX_CBID_CORE_RangePop
        value: '11'
      item_type: enum
      name: NvtxCallbackIdCore
      pos:
        line_end: 161
        line_start: 140
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxTypes.h
    - enumerators:
      - name: NVTX_CBID_CORE2_INVALID
        value: '0'
      - name: NVTX_CBID_CORE2_DomainRangePushEx
        value: '4'
      - name: NVTX_CBID_CORE2_DomainRangeStartEx
        value: '2'
      - name: NVTX_CBID_CORE2_DomainMarkEx
        value: '1'
      - name: NVTX_CBID_CORE2_DomainRangeEnd
        value: '3'
      - name: NVTX_CBID_CORE2_DomainRangePop
        value: '5'
      - name: NVTX_CBID_CORE2_DomainResourceCreate
        value: '6'
      - name: NVTX_CBID_CORE2_DomainResourceDestroy
        value: '7'
      - name: NVTX_CBID_CORE2_DomainNameCategoryA
        value: '8'
      - name: NVTX_CBID_CORE2_DomainNameCategoryW
        value: '9'
      - name: NVTX_CBID_CORE2_DomainCreateA
        value: '12'
      - name: NVTX_CBID_CORE2_DomainRegisterStringA
        value: '10'
      - name: NVTX_CBID_CORE2_Initialize
        value: '15'
      - name: NVTX_CBID_CORE2_SIZE
      - name: NVTX_CBID_CORE2_FORCE_INT
        value: '0x7fffffff'
      - name: NVTX_CBID_CORE2_DomainDestroy
        value: '14'
      - name: NVTX_CBID_CORE2_DomainRegisterStringW
        value: '11'
      - name: NVTX_CBID_CORE2_DomainCreateW
        value: '13'
      item_type: enum
      name: NvtxCallbackIdCore2
      pos:
        line_end: 184
        line_start: 163
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxTypes.h
    - enumerators:
      - name: NVTX_CBID_CUDA_INVALID
        value: '0'
      - name: NVTX_CBID_CUDA_NameCuContextW
        value: '4'
      - name: NVTX_CBID_CUDA_NameCuDeviceW
        value: '2'
      - name: NVTX_CBID_CUDA_NameCuDeviceA
        value: '1'
      - name: NVTX_CBID_CUDA_NameCuContextA
        value: '3'
      - name: NVTX_CBID_CUDA_NameCuStreamA
        value: '5'
      - name: NVTX_CBID_CUDA_NameCuStreamW
        value: '6'
      - name: NVTX_CBID_CUDA_NameCuEventA
        value: '7'
      - name: NVTX_CBID_CUDA_NameCuEventW
        value: '8'
      - name: NVTX_CBID_CUDA_SIZE
      - name: NVTX_CBID_CUDA_FORCE_INT
        value: '0x7fffffff'
      item_type: enum
      name: NvtxCallbackIdCuda
      pos:
        line_end: 200
        line_start: 186
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxTypes.h
    - enumerators:
      - name: NVTX_CBID_CUDART_INVALID
        value: '0'
      - name: NVTX_CBID_CUDART_NameCudaDeviceW
        value: '2'
      - name: NVTX_CBID_CUDART_NameCudaStreamW
        value: '4'
      - name: NVTX_CBID_CUDART_NameCudaStreamA
        value: '3'
      - name: NVTX_CBID_CUDART_NameCudaDeviceA
        value: '1'
      - name: NVTX_CBID_CUDART_NameCudaEventA
        value: '5'
      - name: NVTX_CBID_CUDART_NameCudaEventW
        value: '6'
      - name: NVTX_CBID_CUDART_SIZE
      - name: NVTX_CBID_CUDART_FORCE_INT
        value: '0x7fffffff'
      item_type: enum
      name: NvtxCallbackIdCudaRt
      pos:
        line_end: 214
        line_start: 202
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxTypes.h
    - enumerators:
      - name: NVTX_CBID_OPENCL_INVALID
        value: '0'
      - name: NVTX_CBID_OPENCL_NameClContextA
        value: '3'
      - name: NVTX_CBID_OPENCL_NameClDeviceW
        value: '2'
      - name: NVTX_CBID_OPENCL_NameClContextW
        value: '4'
      - name: NVTX_CBID_OPENCL_NameClDeviceA
        value: '1'
      - name: NVTX_CBID_OPENCL_NameClCommandQueueA
        value: '5'
      - name: NVTX_CBID_OPENCL_NameClCommandQueueW
        value: '6'
      - name: NVTX_CBID_OPENCL_NameClMemObjectA
        value: '7'
      - name: NVTX_CBID_OPENCL_NameClMemObjectW
        value: '8'
      - name: NVTX_CBID_OPENCL_NameClSamplerA
        value: '9'
      - name: NVTX_CBID_OPENCL_NameClSamplerW
        value: '10'
      - name: NVTX_CBID_OPENCL_SIZE
      - name: NVTX_CBID_OPENCL_NameClProgramA
        value: '11'
      - name: NVTX_CBID_OPENCL_NameClEventW
        value: '14'
      - name: NVTX_CBID_OPENCL_FORCE_INT
        value: '0x7fffffff'
      - name: NVTX_CBID_OPENCL_NameClEventA
        value: '13'
      - name: NVTX_CBID_OPENCL_NameClProgramW
        value: '12'
      item_type: enum
      name: NvtxCallbackIdOpenCL
      pos:
        line_end: 236
        line_start: 216
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxTypes.h
    - enumerators:
      - name: NVTX_CBID_SYNC_INVALID
        value: '0'
      - name: NVTX_CBID_SYNC_DomainSyncUserAcquireFailed
        value: '4'
      - name: NVTX_CBID_SYNC_DomainSyncUserAcquireStart
        value: '3'
      - name: NVTX_CBID_SYNC_DomainSyncUserCreate
        value: '1'
      - name: NVTX_CBID_SYNC_DomainSyncUserDestroy
        value: '2'
      - name: NVTX_CBID_SYNC_DomainSyncUserAcquireSuccess
        value: '5'
      - name: NVTX_CBID_SYNC_DomainSyncUserReleasing
        value: '6'
      - name: NVTX_CBID_SYNC_SIZE
      - name: NVTX_CBID_SYNC_FORCE_INT
        value: '0x7fffffff'
      item_type: enum
      name: NvtxCallbackIdSync
      pos:
        line_end: 250
        line_start: 238
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxTypes.h
    - enumerators:
      - name: NVTX_ETID_INVALID
        value: '0'
      - name: NVTX_ETID_RESERVED0
        value: '2'
      - name: NVTX_ETID_SIZE
      - name: NVTX_ETID_CALLBACKS
        value: '1'
      - name: NVTX_ETID_VERSIONINFO
        value: '3'
      - name: NVTX_ETID_FORCE_INT
        value: '0x7fffffff'
      item_type: enum
      name: NvtxExportTableID
      pos:
        line_end: 262
        line_start: 253
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxTypes.h
    preproc_defs: []
    structs:
    - fields:
      - name: struct_size
        type: size_t
      - name: "(NVTX_API *GetModuleFunctionTable)(\n        NvtxCallbackModule module,\n
          \       NvtxFunctionTable* out_table,\n        unsigned int* out_size)"
        type: int
      item_type: struct
      name: NvtxExportTableCallbacks
      pos:
        line_end: 276
        line_start: 267
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxTypes.h
    - fields:
      - name: struct_size
        type: size_t
      - name: version
        type: uint32_t
      - name: reserved0
        type: uint32_t
      - name: "(NVTX_API *SetInjectionNvtxVersion)(\n        uint32_t version)"
        type: void
      item_type: struct
      name: NvtxExportTableVersionInfo
      pos:
        line_end: 296
        line_start: 278
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxTypes.h
    typedefs:
    - item_type: typedef
      name: nvtx_CUdevice
      pos:
        line_end: 24
        line_start: 24
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxTypes.h
      type: int
    - item_type: typedef
      name: '* nvtx_CUcontext'
      pos:
        line_end: 25
        line_start: 25
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxTypes.h
      type: void
    - item_type: typedef
      name: '* nvtx_CUstream'
      pos:
        line_end: 26
        line_start: 26
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxTypes.h
      type: void
    - item_type: typedef
      name: '* nvtx_CUevent'
      pos:
        line_end: 27
        line_start: 27
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxTypes.h
      type: void
    - item_type: typedef
      name: '* nvtx_cudaStream_t'
      pos:
        line_end: 29
        line_start: 29
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxTypes.h
      type: void
    - item_type: typedef
      name: '* nvtx_cudaEvent_t'
      pos:
        line_end: 30
        line_start: 30
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxTypes.h
      type: void
    - item_type: typedef
      name: '* nvtx_cl_platform_id'
      pos:
        line_end: 32
        line_start: 32
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxTypes.h
      type: void
    - item_type: typedef
      name: '* nvtx_cl_device_id'
      pos:
        line_end: 33
        line_start: 33
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxTypes.h
      type: void
    - item_type: typedef
      name: '* nvtx_cl_context'
      pos:
        line_end: 34
        line_start: 34
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxTypes.h
      type: void
    - item_type: typedef
      name: '* nvtx_cl_command_queue'
      pos:
        line_end: 35
        line_start: 35
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxTypes.h
      type: void
    - item_type: typedef
      name: '* nvtx_cl_mem'
      pos:
        line_end: 36
        line_start: 36
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxTypes.h
      type: void
    - item_type: typedef
      name: '* nvtx_cl_program'
      pos:
        line_end: 37
        line_start: 37
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxTypes.h
      type: void
    - item_type: typedef
      name: '* nvtx_cl_kernel'
      pos:
        line_end: 38
        line_start: 38
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxTypes.h
      type: void
    - item_type: typedef
      name: '* nvtx_cl_event'
      pos:
        line_end: 39
        line_start: 39
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxTypes.h
      type: void
    - item_type: typedef
      name: '* nvtx_cl_sampler'
      pos:
        line_end: 40
        line_start: 40
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxTypes.h
      type: void
    - item_type: typedef
      name: (NVTX_API * nvtxMarkEx_impl_fntype)(const nvtxEventAttributes_t* eventAttrib)
      pos:
        line_end: 48
        line_start: 48
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxTypes.h
      type: void
    - item_type: typedef
      name: (NVTX_API * nvtxMarkA_impl_fntype)(const char* message)
      pos:
        line_end: 49
        line_start: 49
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxTypes.h
      type: void
    - item_type: typedef
      name: (NVTX_API * nvtxMarkW_impl_fntype)(const wchar_t* message)
      pos:
        line_end: 50
        line_start: 50
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxTypes.h
      type: void
    - item_type: typedef
      name: (NVTX_API * nvtxRangeStartEx_impl_fntype)(const nvtxEventAttributes_t*
        eventAttrib)
      pos:
        line_end: 51
        line_start: 51
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxTypes.h
    - item_type: typedef
      name: (NVTX_API * nvtxRangeStartA_impl_fntype)(const char* message)
      pos:
        line_end: 52
        line_start: 52
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxTypes.h
    - item_type: typedef
      name: (NVTX_API * nvtxRangeStartW_impl_fntype)(const wchar_t* message)
      pos:
        line_end: 53
        line_start: 53
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxTypes.h
    - item_type: typedef
      name: (NVTX_API * nvtxRangeEnd_impl_fntype)(nvtxRangeId_t id)
      pos:
        line_end: 54
        line_start: 54
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxTypes.h
      type: void
    - item_type: typedef
      name: (NVTX_API * nvtxRangePushEx_impl_fntype)(const nvtxEventAttributes_t*
        eventAttrib)
      pos:
        line_end: 55
        line_start: 55
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxTypes.h
      type: int
    - item_type: typedef
      name: (NVTX_API * nvtxRangePushA_impl_fntype)(const char* message)
      pos:
        line_end: 56
        line_start: 56
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxTypes.h
      type: int
    - item_type: typedef
      name: (NVTX_API * nvtxRangePushW_impl_fntype)(const wchar_t* message)
      pos:
        line_end: 57
        line_start: 57
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxTypes.h
      type: int
    - item_type: typedef
      name: (NVTX_API * nvtxRangePop_impl_fntype)(void)
      pos:
        line_end: 58
        line_start: 58
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxTypes.h
      type: int
    - item_type: typedef
      name: (NVTX_API * nvtxNameCategoryA_impl_fntype)(uint32_t category, const char*
        name)
      pos:
        line_end: 59
        line_start: 59
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxTypes.h
      type: void
    - item_type: typedef
      name: (NVTX_API * nvtxNameCategoryW_impl_fntype)(uint32_t category, const wchar_t*
        name)
      pos:
        line_end: 60
        line_start: 60
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxTypes.h
      type: void
    - item_type: typedef
      name: (NVTX_API * nvtxNameOsThreadA_impl_fntype)(uint32_t threadId, const char*
        name)
      pos:
        line_end: 61
        line_start: 61
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxTypes.h
      type: void
    - item_type: typedef
      name: (NVTX_API * nvtxNameOsThreadW_impl_fntype)(uint32_t threadId, const wchar_t*
        name)
      pos:
        line_end: 62
        line_start: 62
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxTypes.h
      type: void
    - item_type: typedef
      name: (NVTX_API * nvtxNameCuDeviceA_fakeimpl_fntype)(nvtx_CUdevice device, const
        char* name)
      pos:
        line_end: 65
        line_start: 65
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxTypes.h
      type: void
    - item_type: typedef
      name: (NVTX_API * nvtxNameCuDeviceW_fakeimpl_fntype)(nvtx_CUdevice device, const
        wchar_t* name)
      pos:
        line_end: 66
        line_start: 66
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxTypes.h
      type: void
    - item_type: typedef
      name: (NVTX_API * nvtxNameCuContextA_fakeimpl_fntype)(nvtx_CUcontext context,
        const char* name)
      pos:
        line_end: 67
        line_start: 67
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxTypes.h
      type: void
    - item_type: typedef
      name: (NVTX_API * nvtxNameCuContextW_fakeimpl_fntype)(nvtx_CUcontext context,
        const wchar_t* name)
      pos:
        line_end: 68
        line_start: 68
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxTypes.h
      type: void
    - item_type: typedef
      name: (NVTX_API * nvtxNameCuStreamA_fakeimpl_fntype)(nvtx_CUstream stream, const
        char* name)
      pos:
        line_end: 69
        line_start: 69
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxTypes.h
      type: void
    - item_type: typedef
      name: (NVTX_API * nvtxNameCuStreamW_fakeimpl_fntype)(nvtx_CUstream stream, const
        wchar_t* name)
      pos:
        line_end: 70
        line_start: 70
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxTypes.h
      type: void
    - item_type: typedef
      name: (NVTX_API * nvtxNameCuEventA_fakeimpl_fntype)(nvtx_CUevent event, const
        char* name)
      pos:
        line_end: 71
        line_start: 71
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxTypes.h
      type: void
    - item_type: typedef
      name: (NVTX_API * nvtxNameCuEventW_fakeimpl_fntype)(nvtx_CUevent event, const
        wchar_t* name)
      pos:
        line_end: 72
        line_start: 72
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxTypes.h
      type: void
    - item_type: typedef
      name: (NVTX_API * nvtxNameClDeviceA_fakeimpl_fntype)(nvtx_cl_device_id device,
        const char* name)
      pos:
        line_end: 75
        line_start: 75
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxTypes.h
      type: void
    - item_type: typedef
      name: (NVTX_API * nvtxNameClDeviceW_fakeimpl_fntype)(nvtx_cl_device_id device,
        const wchar_t* name)
      pos:
        line_end: 76
        line_start: 76
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxTypes.h
      type: void
    - item_type: typedef
      name: (NVTX_API * nvtxNameClContextA_fakeimpl_fntype)(nvtx_cl_context context,
        const char* name)
      pos:
        line_end: 77
        line_start: 77
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxTypes.h
      type: void
    - item_type: typedef
      name: (NVTX_API * nvtxNameClContextW_fakeimpl_fntype)(nvtx_cl_context context,
        const wchar_t* name)
      pos:
        line_end: 78
        line_start: 78
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxTypes.h
      type: void
    - item_type: typedef
      name: (NVTX_API * nvtxNameClCommandQueueA_fakeimpl_fntype)(nvtx_cl_command_queue
        command_queue, const char* name)
      pos:
        line_end: 79
        line_start: 79
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxTypes.h
      type: void
    - item_type: typedef
      name: (NVTX_API * nvtxNameClCommandQueueW_fakeimpl_fntype)(nvtx_cl_command_queue
        command_queue, const wchar_t* name)
      pos:
        line_end: 80
        line_start: 80
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxTypes.h
      type: void
    - item_type: typedef
      name: (NVTX_API * nvtxNameClMemObjectA_fakeimpl_fntype)(nvtx_cl_mem memobj,
        const char* name)
      pos:
        line_end: 81
        line_start: 81
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxTypes.h
      type: void
    - item_type: typedef
      name: (NVTX_API * nvtxNameClMemObjectW_fakeimpl_fntype)(nvtx_cl_mem memobj,
        const wchar_t* name)
      pos:
        line_end: 82
        line_start: 82
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxTypes.h
      type: void
    - item_type: typedef
      name: (NVTX_API * nvtxNameClSamplerA_fakeimpl_fntype)(nvtx_cl_sampler sampler,
        const char* name)
      pos:
        line_end: 83
        line_start: 83
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxTypes.h
      type: void
    - item_type: typedef
      name: (NVTX_API * nvtxNameClSamplerW_fakeimpl_fntype)(nvtx_cl_sampler sampler,
        const wchar_t* name)
      pos:
        line_end: 84
        line_start: 84
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxTypes.h
      type: void
    - item_type: typedef
      name: (NVTX_API * nvtxNameClProgramA_fakeimpl_fntype)(nvtx_cl_program program,
        const char* name)
      pos:
        line_end: 85
        line_start: 85
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxTypes.h
      type: void
    - item_type: typedef
      name: (NVTX_API * nvtxNameClProgramW_fakeimpl_fntype)(nvtx_cl_program program,
        const wchar_t* name)
      pos:
        line_end: 86
        line_start: 86
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxTypes.h
      type: void
    - item_type: typedef
      name: (NVTX_API * nvtxNameClEventA_fakeimpl_fntype)(nvtx_cl_event evnt, const
        char* name)
      pos:
        line_end: 87
        line_start: 87
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxTypes.h
      type: void
    - item_type: typedef
      name: (NVTX_API * nvtxNameClEventW_fakeimpl_fntype)(nvtx_cl_event evnt, const
        wchar_t* name)
      pos:
        line_end: 88
        line_start: 88
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxTypes.h
      type: void
    - item_type: typedef
      name: (NVTX_API * nvtxNameCudaDeviceA_impl_fntype)(int device, const char* name)
      pos:
        line_end: 91
        line_start: 91
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxTypes.h
      type: void
    - item_type: typedef
      name: (NVTX_API * nvtxNameCudaDeviceW_impl_fntype)(int device, const wchar_t*
        name)
      pos:
        line_end: 92
        line_start: 92
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxTypes.h
      type: void
    - item_type: typedef
      name: (NVTX_API * nvtxNameCudaStreamA_fakeimpl_fntype)(nvtx_cudaStream_t stream,
        const char* name)
      pos:
        line_end: 93
        line_start: 93
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxTypes.h
      type: void
    - item_type: typedef
      name: (NVTX_API * nvtxNameCudaStreamW_fakeimpl_fntype)(nvtx_cudaStream_t stream,
        const wchar_t* name)
      pos:
        line_end: 94
        line_start: 94
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxTypes.h
      type: void
    - item_type: typedef
      name: (NVTX_API * nvtxNameCudaEventA_fakeimpl_fntype)(nvtx_cudaEvent_t event,
        const char* name)
      pos:
        line_end: 95
        line_start: 95
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxTypes.h
      type: void
    - item_type: typedef
      name: (NVTX_API * nvtxNameCudaEventW_fakeimpl_fntype)(nvtx_cudaEvent_t event,
        const wchar_t* name)
      pos:
        line_end: 96
        line_start: 96
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxTypes.h
      type: void
    - item_type: typedef
      name: (NVTX_API * nvtxDomainMarkEx_impl_fntype)(nvtxDomainHandle_t domain, const
        nvtxEventAttributes_t* eventAttrib)
      pos:
        line_end: 98
        line_start: 98
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxTypes.h
      type: void
    - item_type: typedef
      name: (NVTX_API * nvtxDomainRangeStartEx_impl_fntype)(nvtxDomainHandle_t domain,
        const nvtxEventAttributes_t* eventAttrib)
      pos:
        line_end: 99
        line_start: 99
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxTypes.h
    - item_type: typedef
      name: (NVTX_API * nvtxDomainRangeEnd_impl_fntype)(nvtxDomainHandle_t domain,
        nvtxRangeId_t id)
      pos:
        line_end: 100
        line_start: 100
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxTypes.h
      type: void
    - item_type: typedef
      name: (NVTX_API * nvtxDomainRangePushEx_impl_fntype)(nvtxDomainHandle_t domain,
        const nvtxEventAttributes_t* eventAttrib)
      pos:
        line_end: 101
        line_start: 101
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxTypes.h
      type: int
    - item_type: typedef
      name: (NVTX_API * nvtxDomainRangePop_impl_fntype)(nvtxDomainHandle_t domain)
      pos:
        line_end: 102
        line_start: 102
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxTypes.h
      type: int
    - item_type: typedef
      name: (NVTX_API * nvtxDomainResourceCreate_impl_fntype)(nvtxDomainHandle_t domain,
        nvtxResourceAttributes_t* attribs)
      pos:
        line_end: 103
        line_start: 103
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxTypes.h
    - item_type: typedef
      name: (NVTX_API * nvtxDomainResourceDestroy_impl_fntype)(nvtxResourceHandle_t
        resource)
      pos:
        line_end: 104
        line_start: 104
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxTypes.h
      type: void
    - item_type: typedef
      name: (NVTX_API * nvtxDomainNameCategoryA_impl_fntype)(nvtxDomainHandle_t domain,
        uint32_t category, const char* name)
      pos:
        line_end: 105
        line_start: 105
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxTypes.h
      type: void
    - item_type: typedef
      name: (NVTX_API * nvtxDomainNameCategoryW_impl_fntype)(nvtxDomainHandle_t domain,
        uint32_t category, const wchar_t* name)
      pos:
        line_end: 106
        line_start: 106
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxTypes.h
      type: void
    - item_type: typedef
      name: (NVTX_API * nvtxDomainRegisterStringA_impl_fntype)(nvtxDomainHandle_t
        domain, const char* string)
      pos:
        line_end: 107
        line_start: 107
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxTypes.h
    - item_type: typedef
      name: (NVTX_API * nvtxDomainRegisterStringW_impl_fntype)(nvtxDomainHandle_t
        domain, const wchar_t* string)
      pos:
        line_end: 108
        line_start: 108
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxTypes.h
    - item_type: typedef
      name: (NVTX_API * nvtxDomainCreateA_impl_fntype)(const char* message)
      pos:
        line_end: 109
        line_start: 109
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxTypes.h
    - item_type: typedef
      name: (NVTX_API * nvtxDomainCreateW_impl_fntype)(const wchar_t* message)
      pos:
        line_end: 110
        line_start: 110
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxTypes.h
    - item_type: typedef
      name: (NVTX_API * nvtxDomainDestroy_impl_fntype)(nvtxDomainHandle_t domain)
      pos:
        line_end: 111
        line_start: 111
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxTypes.h
      type: void
    - item_type: typedef
      name: (NVTX_API * nvtxInitialize_impl_fntype)(const void* reserved)
      pos:
        line_end: 112
        line_start: 112
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxTypes.h
      type: void
    - item_type: typedef
      name: (NVTX_API * nvtxDomainSyncUserCreate_impl_fntype)(nvtxDomainHandle_t domain,
        const nvtxSyncUserAttributes_t* attribs)
      pos:
        line_end: 114
        line_start: 114
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxTypes.h
    - item_type: typedef
      name: (NVTX_API * nvtxDomainSyncUserDestroy_impl_fntype)(nvtxSyncUser_t handle)
      pos:
        line_end: 115
        line_start: 115
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxTypes.h
      type: void
    - item_type: typedef
      name: (NVTX_API * nvtxDomainSyncUserAcquireStart_impl_fntype)(nvtxSyncUser_t
        handle)
      pos:
        line_end: 116
        line_start: 116
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxTypes.h
      type: void
    - item_type: typedef
      name: (NVTX_API * nvtxDomainSyncUserAcquireFailed_impl_fntype)(nvtxSyncUser_t
        handle)
      pos:
        line_end: 117
        line_start: 117
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxTypes.h
      type: void
    - item_type: typedef
      name: (NVTX_API * nvtxDomainSyncUserAcquireSuccess_impl_fntype)(nvtxSyncUser_t
        handle)
      pos:
        line_end: 118
        line_start: 118
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxTypes.h
      type: void
    - item_type: typedef
      name: (NVTX_API * nvtxDomainSyncUserReleasing_impl_fntype)(nvtxSyncUser_t handle)
      pos:
        line_end: 119
        line_start: 119
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxTypes.h
      type: void
    - item_type: typedef
      name: '*(NVTX_API * NvtxGetExportTableFunc_t)(uint32_t exportTableId)'
      pos:
        line_end: 123
        line_start: 123
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxTypes.h
      type: void
    - item_type: typedef
      name: (NVTX_API * NvtxInitializeInjectionNvtxFunc_t)(NvtxGetExportTableFunc_t
        exportTable)
      pos:
        line_end: 124
        line_start: 124
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxTypes.h
      type: int
    - item_type: typedef
      name: NvtxCallbackModule
      pos:
        line_end: 138
        line_start: 126
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxTypes.h
    - item_type: typedef
      name: NvtxCallbackIdCore
      pos:
        line_end: 161
        line_start: 140
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxTypes.h
    - item_type: typedef
      name: NvtxCallbackIdCore2
      pos:
        line_end: 184
        line_start: 163
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxTypes.h
    - item_type: typedef
      name: NvtxCallbackIdCuda
      pos:
        line_end: 200
        line_start: 186
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxTypes.h
    - item_type: typedef
      name: NvtxCallbackIdCudaRt
      pos:
        line_end: 214
        line_start: 202
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxTypes.h
    - item_type: typedef
      name: NvtxCallbackIdOpenCL
      pos:
        line_end: 236
        line_start: 216
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxTypes.h
    - item_type: typedef
      name: NvtxCallbackIdSync
      pos:
        line_end: 250
        line_start: 238
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxTypes.h
    - item_type: typedef
      name: NvtxExportTableID
      pos:
        line_end: 262
        line_start: 253
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxTypes.h
    - item_type: typedef
      name: (* NvtxFunctionPointer)(void)
      pos:
        line_end: 264
        line_start: 264
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxTypes.h
      type: void
    - item_type: typedef
      name: '** NvtxFunctionTable'
      pos:
        line_end: 265
        line_start: 265
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxTypes.h
    union: []
- function_names: []
  source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxInitDecls.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - NVTX_EXT_FN_IMPL
  - NVTX_EXT_FN_IMPL
  - NVTX_EXT_FN_RETURN_INVALID
  source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtImplMemCudaRt_v1.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - nvtxDomainSyncUserCreate
  - nvtxDomainSyncUserDestroy
  - nvtxDomainSyncUserAcquireStart
  - nvtxDomainSyncUserAcquireFailed
  - nvtxDomainSyncUserAcquireSuccess
  - nvtxDomainSyncUserReleasing
  source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplSync_v3.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: (NVTX_API * nvtxDomainSyncUserCreate_impl_fntype)(nvtxDomainHandle_t domain,
        const nvtxSyncUserAttributes_t* attribs)
      pos:
        line_end: 17
        line_start: 17
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplSync_v3.h
    - item_type: typedef
      name: (NVTX_API * nvtxDomainSyncUserDestroy_impl_fntype)(nvtxSyncUser_t handle)
      pos:
        line_end: 18
        line_start: 18
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplSync_v3.h
      type: void
    - item_type: typedef
      name: (NVTX_API * nvtxDomainSyncUserAcquireStart_impl_fntype)(nvtxSyncUser_t
        handle)
      pos:
        line_end: 19
        line_start: 19
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplSync_v3.h
      type: void
    - item_type: typedef
      name: (NVTX_API * nvtxDomainSyncUserAcquireFailed_impl_fntype)(nvtxSyncUser_t
        handle)
      pos:
        line_end: 20
        line_start: 20
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplSync_v3.h
      type: void
    - item_type: typedef
      name: (NVTX_API * nvtxDomainSyncUserAcquireSuccess_impl_fntype)(nvtxSyncUser_t
        handle)
      pos:
        line_end: 21
        line_start: 21
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplSync_v3.h
      type: void
    - item_type: typedef
      name: (NVTX_API * nvtxDomainSyncUserReleasing_impl_fntype)(nvtxSyncUser_t handle)
      pos:
        line_end: 22
        line_start: 22
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplSync_v3.h
      type: void
    union: []
- function_names:
  - NVTX_STR
  - NVTX_DLLOPEN
  - NVTX_YIELD
  - NVTX_MEMBAR
  - NVTX_ATOMIC_WRITE_32
  - NVTX_ATOMIC_CAS_32
  - NVTX_ATOMIC_WRITE_PTR
  - NVTX_ATOMIC_CAS_PTR
  - NVTX_STR
  - NVTX_DLLOPEN
  - NVTX_YIELD
  - NVTX_MEMBAR
  - NVTX_ATOMIC_WRITE_32
  - NVTX_ATOMIC_CAS_32
  - NVTX_ATOMIC_WRITE_PTR
  - NVTX_ATOMIC_CAS_PTR
  - NVTX_VERSIONED_IDENTIFIER
  - NVTX_VERSIONED_IDENTIFIER
  source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtInit.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NVTX_PATHCHAR
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtInit.h
      type_or_value: wchar_t
    - item_type: preproc_def
      name: NVTX_GETENV
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtInit.h
      type_or_value: _wgetenv
    - item_type: preproc_def
      name: NVTX_BUFSIZE
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtInit.h
      type_or_value: '16384'
    - item_type: preproc_def
      name: NVTX_DLLHANDLE
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtInit.h
      type_or_value: HMODULE
    - item_type: preproc_def
      name: NVTX_DLLFUNC
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtInit.h
      type_or_value: GetProcAddress
    - item_type: preproc_def
      name: NVTX_DLLCLOSE
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtInit.h
      type_or_value: FreeLibrary
    - item_type: preproc_def
      name: NVTX_PATHCHAR
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtInit.h
      type_or_value: char
    - item_type: preproc_def
      name: NVTX_GETENV
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtInit.h
      type_or_value: getenv
    - item_type: preproc_def
      name: NVTX_BUFSIZE
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtInit.h
      type_or_value: '16384'
    - item_type: preproc_def
      name: NVTX_DLLHANDLE
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtInit.h
      type_or_value: void*
    - item_type: preproc_def
      name: NVTX_DLLFUNC
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtInit.h
      type_or_value: dlsym
    - item_type: preproc_def
      name: NVTX_DLLCLOSE
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtInit.h
      type_or_value: dlclose
    - item_type: preproc_def
      name: NVTX_SUPPORT_ALREADY_INJECTED_LIBRARY
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtInit.h
      type_or_value: '0'
    - item_type: preproc_def
      name: NVTX_SUPPORT_ALREADY_INJECTED_LIBRARY
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtInit.h
      type_or_value: '0'
    - item_type: preproc_def
      name: NVTX_SUPPORT_ENV_VARS
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtInit.h
      type_or_value: '1'
    - item_type: preproc_def
      name: NVTX_SUPPORT_DYNAMIC_INJECTION_LIBRARY
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtInit.h
      type_or_value: '1'
    - item_type: preproc_def
      name: NVTX_SUPPORT_STATIC_INJECTION_LIBRARY
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtInit.h
      type_or_value: '1'
    - item_type: preproc_def
      name: NVTX_SUPPORT_STATIC_INJECTION_LIBRARY
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtInit.h
      type_or_value: '0'
    structs: []
    typedefs: []
    union: []
- function_names:
  - _NVTX_PAYLOAD_PASS_THROUGH
  - _NVTX_PAYLOAD_NESTED
  - NVTX_PAYLOAD_SCHEMA_ATTR
  - _NVTX_PAYLOAD_SCHEMA_EF2
  - _NVTX_PAYLOAD_SCHEMA_EF3
  - _NVTX_PAYLOAD_SCHEMA_EF4
  - _NVTX_PAYLOAD_SCHEMA_EF5
  - _NVTX_PAYLOAD_SCHEMA_EF6
  - _NVTX_PAYLOAD_SCHEMA_ENTRY_FRONT
  - _NVTX_PAYLOAD_SCHEMA_ENTRY_END
  - _NVTX_PAYLOAD_SCHEMA_ENTRY
  - _NVTX_PAYLOAD_SME1
  - _NVTX_PAYLOAD_SME2
  - _NVTX_PAYLOAD_SME3
  - _NVTX_PAYLOAD_SME4
  - _NVTX_PAYLOAD_SME5
  - _NVTX_PAYLOAD_SME6
  - _NVTX_PAYLOAD_SME7
  - _NVTX_PAYLOAD_SME8
  - _NVTX_PAYLOAD_SME9
  - _NVTX_PAYLOAD_SME10
  - _NVTX_PAYLOAD_SME11
  - _NVTX_PAYLOAD_SME12
  - _NVTX_PAYLOAD_SME13
  - _NVTX_PAYLOAD_SME14
  - _NVTX_PAYLOAD_SME15
  - _NVTX_PAYLOAD_SME16
  - _NVTX_PAYLOAD_SCHEMA_ENTRIES
  - _NVTX_DEFINE_S4S_6
  - _NVTX_DEFINE_S4S_5
  - _NVTX_DEFINE_S4S_4
  - _NVTX_DEFINE_S4S_2
  - _NVTX_DEFINE_SCHEMA_FOR_STRUCT
  - _NVTX_PAYLOAD_STRUCT_ARR_MEM1
  - _NVTX_PAYLOAD_STRUCT_ARR_MEM2
  - _NVTX_PAYLOAD_STRUCT_E2
  - _NVTX_PAYLOAD_STRUCT_E3
  - _NVTX_PAYLOAD_STRUCT_E4
  - _NVTX_PAYLOAD_STRUCT_E5
  - _NVTX_PAYLOAD_STRUCT_E6
  - _NVTX_PAYLOAD_STRUCT_E7
  - _NVTX_PAYLOAD_STRUCT_ENTRY_
  - _NVTX_PAYLOAD_STRUCT_ENTRY
  - _NVTX_PAYLOAD_STRUCT1
  - _NVTX_PAYLOAD_STRUCT2
  - _NVTX_PAYLOAD_STRUCT3
  - _NVTX_PAYLOAD_STRUCT4
  - _NVTX_PAYLOAD_STRUCT5
  - _NVTX_PAYLOAD_STRUCT6
  - _NVTX_PAYLOAD_STRUCT7
  - _NVTX_PAYLOAD_STRUCT8
  - _NVTX_PAYLOAD_STRUCT9
  - _NVTX_PAYLOAD_STRUCT10
  - _NVTX_PAYLOAD_STRUCT11
  - _NVTX_PAYLOAD_STRUCT12
  - _NVTX_PAYLOAD_STRUCT13
  - _NVTX_PAYLOAD_STRUCT14
  - _NVTX_PAYLOAD_STRUCT15
  - _NVTX_PAYLOAD_STRUCT16
  - _NVTX_PAYLOAD_TYPEDEF_STRUCT
  - _NVTX_PAYLOAD_INIT_SCHEMA_N3
  - _NVTX_PAYLOAD_INIT_SCHEMA_N4
  - _NVTX_PAYLOAD_INIT_SCHEMA_N5
  - _NVTX_PAYLOAD_INIT_SCHEMA_N6
  - _NVTX_PAYLOAD_INIT_SCHEMA_N7
  - _NVTX_PAYLOAD_SCHEMA_INIT_ENTRY_FRONT
  - _NVTX_PAYLOAD_ARRAY_MEMBER1
  - _NVTX_PAYLOAD_ARRAY_MEMBER2
  - _NVTX_PAYLOAD_INIT_SCHEMA_NX3
  - _NVTX_PAYLOAD_INIT_SCHEMA_NX4
  - _NVTX_PAYLOAD_INIT_SCHEMA_NX5
  - _NVTX_PAYLOAD_INIT_SCHEMA_NX6
  - _NVTX_PAYLOAD_INIT_SCHEMA_NX7
  - _NVTX_PAYLOAD_SCHEMA_INIT_ENTRY_END
  - _NVTX_PAYLOAD_SCHEMA_INIT_ENTRY
  - _NVTX_PAYLOAD_INIT_SME1
  - _NVTX_PAYLOAD_INIT_SME2
  - _NVTX_PAYLOAD_INIT_SME3
  - _NVTX_PAYLOAD_INIT_SME4
  - _NVTX_PAYLOAD_INIT_SME5
  - _NVTX_PAYLOAD_INIT_SME6
  - _NVTX_PAYLOAD_INIT_SME7
  - _NVTX_PAYLOAD_INIT_SME8
  - _NVTX_PAYLOAD_INIT_SME9
  - _NVTX_PAYLOAD_INIT_SME10
  - _NVTX_PAYLOAD_INIT_SME11
  - _NVTX_PAYLOAD_INIT_SME12
  - _NVTX_PAYLOAD_INIT_SME13
  - _NVTX_PAYLOAD_INIT_SME14
  - _NVTX_PAYLOAD_INIT_SME15
  - _NVTX_PAYLOAD_INIT_SME16
  - _NVTX_PAYLOAD_SCHEMA_INIT_ENTRIES
  - _NVTX_DEFINE_SWS_6
  - _NVTX_DEFINE_SWS_5
  - _NVTX_DEFINE_SWS_4
  - _NVTX_DEFINE_SWS_2
  - _NVTX_DEFINE_STRUCT_WITH_SCHEMA
  source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadHelperInternal.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _NVTX_PAYLOAD_DATA_VAR
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadHelperInternal.h
      type_or_value: NVTX_EXT_CONCAT(nvtxDFDB,__LINE__)
    - item_type: preproc_def
      name: entries
      pos:
        line_end: 118
        line_start: 116
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadHelperInternal.h
      type_or_value: )
    - item_type: preproc_def
      name: entries
      pos:
        line_end: 259
        line_start: 257
        source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxExtPayloadHelperInternal.h
      type_or_value: )
    structs: []
    typedefs: []
    union: []
- function_names:
  - nvtxMarkEx
  - nvtxMarkA
  - nvtxMarkW
  - nvtxRangeStartEx
  - nvtxRangeStartA
  - nvtxRangeStartW
  - nvtxRangeEnd
  - nvtxRangePushEx
  - nvtxRangePushA
  - nvtxRangePushW
  - nvtxRangePop
  - nvtxNameCategoryA
  - nvtxNameCategoryW
  - nvtxNameOsThreadA
  - nvtxNameOsThreadW
  - nvtxDomainMarkEx
  - nvtxDomainRangeStartEx
  - nvtxDomainRangeEnd
  - nvtxDomainRangePushEx
  - nvtxDomainRangePop
  - nvtxDomainResourceCreate
  - nvtxDomainResourceDestroy
  - nvtxDomainNameCategoryA
  - nvtxDomainNameCategoryW
  - nvtxDomainRegisterStringA
  - nvtxDomainRegisterStringW
  - nvtxDomainCreateA
  - nvtxDomainCreateW
  - nvtxDomainDestroy
  - nvtxInitialize
  source_file: /src/nccl/src/include/nvtx3/nvtxDetail/nvtxImplCore.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ncclRegisterP2pNetBuffer
  - ncclRegisterP2pIpcBuffer
  source_file: /src/nccl/src/register/sendrecv_reg.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - registerCheckP2PConnection
  - ncclRegisterCollNvlsBuffers
  - ncclRegisterCollBuffers
  source_file: /src/nccl/src/register/coll_reg.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - regFindHandleFromSymAddr
  - ncclRegLocalIsValid
  - ncclRegister
  - regCleanup
  - ncclRegCleanup
  - ncclCommRegister
  - ncclCommGraphRegister
  - commDeregister
  - ncclCommDeregister
  - ncclCommGraphDeregister
  - ncclCommSymmetricRegisterInternal
  - ncclCommWindowRegister
  - ncclCommWindowDeregister
  source_file: /src/nccl/src/register/register.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - msleep
  - socketProgressOpt
  - socketProgress
  - socketWait
  - ncclSocketToString
  - socketToPort
  - envSocketFamily
  - findInterfaces
  - matchSubnet
  - ncclFindInterfaceMatchSubnet
  - ncclSocketGetAddrFromString
  - ncclFindInterfaces
  - ncclSocketListen
  - ncclSocketGetAddr
  - socketTryAccept
  - socketSetFlags
  - socketResetAccept
  - socketFinalizeAccept
  - socketResetFd
  - socketConnectCheck
  - socketStartConnect
  - socketPollConnect
  - ncclSocketPollConnect
  - socketFinalizeConnect
  - socketProgressState
  - ncclSocketReady
  - ncclSocketConnect
  - ncclSocketAccept
  - ncclSocketInit
  - ncclSocketProgress
  - ncclSocketWait
  - ncclSocketSend
  - ncclSocketRecv
  - ncclSocketSendRecv
  - ncclSocketTryRecv
  - ncclSocketShutdown
  - ncclSocketClose
  - ncclSocketGetFd
  - ncclSocketSetFd
  source_file: /src/nccl/src/misc/socket.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - shmHandleInit
  - ncclShmOpen
  - ncclShmClose
  - ncclShmUnlink
  - ncclShmemAllgather
  source_file: /src/nccl/src/misc/shmutils.cc
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: fd
        type: int
      - name: '* shmPath'
        type: char
      - name: '* shmPtr'
        type: char
      - name: '* devShmPtr'
        type: void
      - name: shmSize
        type: size_t
      - name: realShmSize
        type: size_t
      - name: '* refcount'
        type: int
      item_type: struct
      name: shmHandleInternal
      pos:
        line_end: 27
        line_start: 19
        source_file: /src/nccl/src/misc/shmutils.cc
    typedefs: []
    union: []
- function_names:
  - userHomeDir
  - setEnvFile
  - initEnvFunc
  - initEnv
  - ncclLoadParam
  - ncclGetEnv
  source_file: /src/nccl/src/misc/param.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ASSIGN_SYM
  - ibv_internal_reg_mr
  - ibv_internal_query_port
  - buildIbvSymbols
  - buildIbvSymbols
  - LOAD_SYM
  - LOAD_SYM_VERSION
  source_file: /src/nccl/src/misc/ibvsymbols.cc
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: IBVERBS_VERSION
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/nccl/src/misc/ibvsymbols.cc
      type_or_value: '"IBVERBS_1.1"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - ncclIsCuMemSupported
  - ncclCuMemEnable
  - ncclCuMemHostEnable
  - DECLARE_CUDA_PFN
  - LOAD_SYM
  - LOAD_SYM
  - LOAD_SYM
  - cudaPfnFuncLoader
  - initOnceFunc
  - ncclCudaLibraryInit
  source_file: /src/nccl/src/misc/cudawrap.cc
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CUDA_DRIVER_MIN_VERSION
      pos:
        line_end: 158
        line_start: 157
        source_file: /src/nccl/src/misc/cudawrap.cc
      type_or_value: '11030'
    structs: []
    typedefs: []
    union: []
- function_names:
  - ASSIGN_SYM
  - buildMlx5dvSymbols
  - buildMlx5dvSymbols
  - LOAD_SYM
  - LOAD_SYM_VERSION
  source_file: /src/nccl/src/misc/mlx5dvsymbols.cc
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MLX5DV_VERSION
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/nccl/src/misc/mlx5dvsymbols.cc
      type_or_value: '"MLX5_1.8"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - ncclCudaContextTrack
  - ncclCudaContextDrop
  - ncclCudaGetCapturingGraph
  - ncclCudaGraphAddDestructor
  - ncclStrongStreamConstruct
  - ncclStrongStreamDestruct
  - localThreadId
  - ncclStrongStreamAcquire
  - ncclStrongStreamAcquiredWorkStream
  - ncclStrongStreamRelease
  - ncclStreamWaitStream
  - ncclStreamAdvanceToEvent
  - ncclStrongStreamSynchronize
  source_file: /src/nccl/src/misc/strongstream.cc
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: cudaStreamGetCaptureInfo_v3
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/nccl/src/misc/strongstream.cc
      type_or_value: cudaStreamGetCaptureInfo
    - item_type: preproc_def
      name: cudaGraphAddDependencies_v2
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/nccl/src/misc/strongstream.cc
      type_or_value: cudaGraphAddDependencies
    - item_type: preproc_def
      name: cudaStreamUpdateCaptureDependencies_v2
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/nccl/src/misc/strongstream.cc
      type_or_value: cudaStreamUpdateCaptureDependencies
    structs:
    - fields:
      - name: '* next'
        type: struct ncclStrongStreamCapture
      - name: graph
        type: cudaGraph_t
      - name: graphId
        type: unsigned long long
      - name: captureStream
        type: cudaStream_t
      - name: '* acquiredBy'
        type: void
      item_type: struct
      name: ncclStrongStreamCapture
      pos:
        line_end: 24
        line_start: 18
        source_file: /src/nccl/src/misc/strongstream.cc
    typedefs: []
    union: []
- function_names:
  - ncclCudaCompCap
  - int64ToBusId
  - busIdToInt64
  - getBusId
  - getHostName
  - getHostHashOnce
  - getHostHash
  - getPidHash
  - parseStringList
  - matchIf
  - matchPort
  - matchIfList
  - ncclMemoryStack::allocateSpilled
  - ncclMemoryStackDestruct
  source_file: /src/nccl/src/misc/utils.cc
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: HOSTID_FILE
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/nccl/src/misc/utils.cc
      type_or_value: '"/proc/sys/kernel/random/boot_id"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - wrap_mlx5dv_symbols
  - CHECK_NOT_NULL
  - MLX5DV_PTR_CHECK_ERRNO
  - MLX5DV_INT_CHECK_RET_ERRNO
  - wrap_mlx5dv_is_supported
  - wrap_mlx5dv_get_data_direct_sysfs_path
  - wrap_mlx5dv_reg_dmabuf_mr
  - wrap_direct_mlx5dv_reg_dmabuf_mr
  source_file: /src/nccl/src/misc/mlx5dvwrap.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LOAD_SYM
  - LOAD_SYM_OPTIONAL
  - initOnceFunc
  - wrap_gdr_symbols
  - wrap_gdr_open
  - wrap_gdr_close
  - wrap_gdr_pin_buffer
  - wrap_gdr_unpin_buffer
  - wrap_gdr_get_info
  - wrap_gdr_map
  - wrap_gdr_unmap
  - wrap_gdr_runtime_get_version
  - wrap_gdr_driver_get_version
  - wrap_gdr_copy_to_mapping
  - wrap_gdr_copy_from_mapping
  source_file: /src/nccl/src/misc/gdrwrap.cc
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: GDRAPI_LIBNAME
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/nccl/src/misc/gdrwrap.cc
      type_or_value: '"libgdrapi.so"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - NCCL_NVML_FN
  - NCCL_NVML_FN
  - ncclNvmlEnsureInitialized
  - NVMLCHECK
  - ncclNvmlDeviceGetHandleByPciBusId
  - ncclNvmlDeviceGetHandleByIndex
  - ncclNvmlDeviceGetIndex
  - ncclNvmlDeviceGetNvLinkState
  - ncclNvmlDeviceGetNvLinkRemotePciInfo
  - ncclNvmlDeviceGetNvLinkCapability
  - ncclNvmlDeviceGetCudaComputeCapability
  - ncclNvmlDeviceGetP2PStatus
  - ncclNvmlDeviceGetFieldValues
  - ncclNvmlDeviceGetGpuFabricInfoV
  - ncclNvmlGetCCStatus
  source_file: /src/nccl/src/misc/nvmlwrap.cc
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: nvmlReturn_t
      pos:
        line_end: 197
        line_start: 187
        source_file: /src/nccl/src/misc/nvmlwrap.cc
      type_or_value: "e44241808 = pfn_##name(__VA_ARGS__); \\\n  if (e44241808 !=
        NVML_SUCCESS) { \\\n    if (e44241808 != NVML_ERROR_NOT_SUPPORTED) \\\n      INFO(NCCL_INIT,
        #name \"() failed: %s\", pfn_nvmlErrorString(e44241808)); \\\n    return ncclSystemError;
        \\\n  } \\\n} while(0)"
    structs:
    - fields:
      - name: '**ppfn'
        type: void
      - name: '*name'
        type: char
      item_type: struct
      name: Symbol
      pos:
        line_end: 78
        line_start: 78
        source_file: /src/nccl/src/misc/nvmlwrap.cc
    typedefs: []
    union:
    - fields:
      - name: settingV12020
        type: nvmlConfComputeSystemState_t
      - name: settingV12040
        type: nvmlSystemConfComputeSettings_t
      item_type: union
      name: nvmlCCInfoInternal
      pos:
        line_end: 55
        line_start: 52
        source_file: /src/nccl/src/misc/nvmlwrap.cc
    - fields:
      - name: settingV12020
        type: nvmlConfComputeSystemState_t
      - name: settingV12040
        type: nvmlSystemConfComputeSettings_t
      item_type: union
      name: nvmlCCInfoInternal
      pos:
        line_end: 55
        line_start: 52
        source_file: /src/nccl/src/misc/nvmlwrap.cc
- function_names:
  - ncclIpcSocketInit
  - ncclIpcSocketGetFd
  - ncclIpcSocketClose
  - ncclIpcSocketRecvMsg
  - ncclIpcSocketRecvFd
  - ncclIpcSocketSendMsg
  - ncclIpcSocketSendFd
  source_file: /src/nccl/src/misc/ipcsocket.cc
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NCCL_IPC_SOCKNAME_STR
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/nccl/src/misc/ipcsocket.cc
      type_or_value: '"/tmp/nccl-socket-%d-%lx"'
    structs: []
    typedefs: []
    union:
    - fields:
      - name: cm
        type: struct cmsghdr
      - name: control[CMSG_SPACE(sizeof(int))]
        type: char
      item_type: union
      name: control_un
      pos:
        line_end: 110
        line_start: 107
        source_file: /src/nccl/src/misc/ipcsocket.cc
    - fields:
      - name: cm
        type: struct cmsghdr
      - name: control[CMSG_SPACE(sizeof(int))]
        type: char
      item_type: union
      name: control_un
      pos:
        line_end: 168
        line_start: 165
        source_file: /src/nccl/src/misc/ipcsocket.cc
- function_names:
  - wrap_ibv_symbols
  - CHECK_NOT_NULL
  - IBV_PTR_CHECK_ERRNO
  - IBV_PTR_CHECK
  - IBV_INT_CHECK_RET_ERRNO_OPTIONAL
  - IBV_INT_CHECK_RET_ERRNO
  - IBV_INT_CHECK
  - IBV_PASSTHRU
  - IBV_ERR_EQ
  - IBV_MQP_RETRY_ERRNO
  - IBV_MQP_RETRY_ERRNO_ALL
  - wrap_ibv_fork_init
  - wrap_ibv_get_device_list
  - wrap_ibv_free_device_list
  - wrap_ibv_get_device_name
  - wrap_ibv_open_device
  - wrap_ibv_close_device
  - wrap_ibv_get_async_event
  - wrap_ibv_ack_async_event
  - wrap_ibv_query_device
  - wrap_ibv_query_port
  - wrap_ibv_query_gid
  - wrap_ibv_query_qp
  - wrap_ibv_alloc_pd
  - wrap_ibv_dealloc_pd
  - wrap_ibv_reg_mr
  - wrap_direct_ibv_reg_mr
  - wrap_ibv_reg_mr_iova2
  - wrap_ibv_reg_dmabuf_mr
  - wrap_direct_ibv_reg_dmabuf_mr
  - wrap_ibv_dereg_mr
  - wrap_ibv_create_cq
  - wrap_ibv_destroy_cq
  - wrap_ibv_destroy_qp
  - wrap_ibv_create_qp
  - ibvQpStateName
  - QP_ATTR
  - ibvModifyQpLog
  - wrap_ibv_modify_qp
  - wrap_ibv_query_ece
  - wrap_ibv_set_ece
  - wrap_ibv_event_type_str
  source_file: /src/nccl/src/misc/ibvwrap.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - PtrCheck
  - CommCheck
  - ArgsCheck
  source_file: /src/nccl/src/misc/argcheck.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rasLocalHandleAddRanks
  - rasRanksConvertToPeers
  - rasPeersUpdate
  - rasPeerFind
  - rasNetUpdatePeers
  - rasLinkPropagateUpdate
  - rasConnPropagateUpdate
  - rasConnSendPeersUpdate
  - rasMsgHandlePeersUpdate
  - rasLinkReinitConns
  - rasLinkCalculatePeer
  - rasPeerDeclareDead
  - rasDeadPeersUpdate
  - getNewDeadEntry
  - rasPeerIsDead
  - rasAddrRankInitCompare
  - rasAddrPeerInfoCompare
  - rasRanksCompare
  - ncclSocketsCompare
  - ncclSocketsSameNode
  - rasPeersDump
  - rasDeadPeersDump
  - rasPeerDump
  - rasPeersTerminate
  source_file: /src/nccl/src/ras/peers.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - getNewConnEntry
  - freeConnEntry
  - rasConnCreate
  - rasConnOpen
  - rasConnPrepare
  - rasConnFind
  - rasConnsHandleTimeouts
  - rasConnDisconnect
  - rasConnTerminate
  - rasNetAcceptNewSocket
  - getNewSockEntry
  - freeSockEntry
  - rasSocksHandleTimeouts
  - rasSocketTerminate
  - rasSockEventLoop
  - rasNetHandleTimeouts
  - rasLinkHandleNetTimeouts
  - rasConnHandleNetTimeouts
  - rasConnSendKeepAlive
  - rasMsgHandleKeepAlive
  - rasLinkAddFallback
  - rasConnResume
  - rasLinkSanitizeFallbacks
  - rasLinkConnAdd
  - rasLinkConnAddExternal
  - rasLinkConnUpdate
  - rasLinkConnDrop
  - rasLinkConnFind
  - rasNetTerminate
  source_file: /src/nccl/src/ras/rasnet.cc
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: POLL_FD_IGNORE
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/nccl/src/ras/rasnet.cc
      type_or_value: '-2'
    structs: []
    typedefs: []
    union: []
- function_names:
  - getNewCollEntry
  - rasCollReqInit
  - rasNetSendCollReq
  - rasLinkSendCollReq
  - rasConnSendCollReq
  - rasMsgHandleCollReq
  - rasCollReadyResp
  - rasConnSendCollResp
  - rasMsgHandleCollResp
  - rasCollsPurgeConn
  - rasCollFree
  - rasCollsHandleTimeouts
  - rasCollConnsInit
  - rasCollConnsMerge
  - rasCollCommsInit
  - rasCollCommsMerge
  - rasCollCommsSkipMissing
  - ncclCommsCompare
  - peersHashesCompare
  - peersHashesSearch
  - rasCommIdCompare
  - rasCollCommsMissingRankSearch
  - rasCollectivesTerminate
  source_file: /src/nccl/src/ras/collectives.cc
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: COLL_HISTORY_SIZE
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/nccl/src/ras/collectives.cc
      type_or_value: '64'
    structs:
    - fields:
      - name: rootAddr
        type: union ncclSocketAddress
      - name: rootId
        type: uint64_t
      item_type: struct
      name: rasCollHistoryEntry
      pos:
        line_end: 26
        line_start: 23
        source_file: /src/nccl/src/ras/collectives.cc
    typedefs: []
    union: []
- function_names:
  - ncclRasCommInit
  - ncclRasCommFini
  - rasTerminate
  - ncclRasAddRanks
  - rasLocalNotify
  - rasLocalHandle
  - rasThreadCleanup
  - rasMsgAlloc
  - rasMsgFree
  - rasConnEnqueueMsg
  - rasConnSendMsg
  - rasMsgRecv
  - rasMsgHandle
  - rasMsgHandleConnInit
  - rasMsgHandleConnInitAck
  - rasMsgHandleBCDeadPeer
  - rasNetSendNack
  - rasThreadMain
  - rasGetNewPollEntry
  source_file: /src/nccl/src/ras/ras.cc
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: type
        type: rasNotificationType
      item_type: struct
      name: rasNotification
      pos:
        line_end: 37
        line_start: 29
        source_file: /src/nccl/src/ras/ras.cc
    typedefs:
    - item_type: typedef
      name: rasNotificationType
      pos:
        line_end: 26
        line_start: 23
        source_file: /src/nccl/src/ras/ras.cc
    union: []
- function_names:
  - STR2
  - STR
  - printUsage
  - parseArgs
  - socketWrite
  - rasRead
  - connectToNCCL
  - getNCCLStatus
  - main
  source_file: /src/nccl/src/ras/client.cc
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TIMEOUT_INCREMENT
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/nccl/src/ras/client.cc
      type_or_value: '1'
    structs: []
    typedefs: []
    union: []
- function_names:
  - STR2
  - STR
  - rasClientInitSocket
  - rasClientAcceptNewSocket
  - getNewClientEntry
  - rasClientAllocMsg
  - rasClientFreeMsg
  - rasClientEnqueueMsg
  - rasClientTerminate
  - rasClientResume
  - rasClientEventLoop
  - rasClientRun
  - rasClientRunInit
  - rasClientRunConns
  - rasClientRunComms
  - rasClientBreakDownErrors
  - rasOutAppend
  - rasOutExtract
  - rasOutLength
  - rasOutReset
  - rasAuxPeersValueCompare
  - ncclSocketsHostCompare
  - rasValCountsCompareRev
  - rasAuxCommsCompareRev
  - rasAuxCommRanksValueCompare
  - rasGpuDevsToString
  - rasGpuToString
  - rasCommRankGpuToString
  - ncclErrorToString
  - ncclSocketToHost
  - rasCountIsOutlier
  - rasClientSupportTerminate
  source_file: /src/nccl/src/ras/client_support.cc
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RAS_CLIENT_DETAIL_THRESHOLD
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/nccl/src/ras/client_support.cc
      type_or_value: '10'
    - item_type: preproc_def
      name: RAS_CLIENT_OUTLIER_FRACTION
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/nccl/src/ras/client_support.cc
      type_or_value: '0.25'
    - item_type: preproc_def
      name: RAS_CLIENT_VERBOSE_OUTLIER_FRACTION
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/nccl/src/ras/client_support.cc
      type_or_value: '0.5'
    - item_type: preproc_def
      name: RAS_OUT_INCREMENT
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/nccl/src/ras/client_support.cc
      type_or_value: '4096'
    structs:
    - fields:
      - name: value
        type: uint64_t
      - name: count
        type: int
      - name: firstIdx
        type: int
      item_type: struct
      name: rasValCount
      pos:
        line_end: 33
        line_start: 29
        source_file: /src/nccl/src/ras/client_support.cc
    - fields:
      - name: '* comm'
        type: struct rasCollComms::comm
      - name: nPeers
        type: int
      - name: nNodes
        type: int
      - name: ranksPerNodeMin
        type: int
      - name: ranksPerNodeMax
        type: int
      - name: status
        type: unsigned int
      - name: errors
        type: unsigned int
      - name: firstCollOpCounts[NCCL_NUM_FUNCTIONS]
        type: uint64_t
      - name: nIncompleteRanks
        type: int
      item_type: struct
      name: rasAuxComm
      pos:
        line_end: 68
        line_start: 58
        source_file: /src/nccl/src/ras/client_support.cc
    - fields:
      - name: '* peer'
        type: struct rasPeerInfo
      - name: value
        type: int
      item_type: struct
      name: rasAuxPeerInfo
      pos:
        line_end: 76
        line_start: 73
        source_file: /src/nccl/src/ras/client_support.cc
    - fields:
      - name: '* rank'
        type: struct rasCollComms::comm::rank
      - name: value
        type: uint64_t
      item_type: struct
      name: rasAuxCommRank
      pos:
        line_end: 84
        line_start: 81
        source_file: /src/nccl/src/ras/client_support.cc
    typedefs:
    - item_type: typedef
      name: rasACStatus
      pos:
        line_end: 42
        line_start: 36
        source_file: /src/nccl/src/ras/client_support.cc
    - item_type: typedef
      name: rasACError
      pos:
        line_end: 51
        line_start: 46
        source_file: /src/nccl/src/ras/client_support.cc
    union: []
- function_names:
  - rasCollDataLength
  - rasMsgLength
  source_file: /src/nccl/src/ras/ras_internal.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NCCL_RAS_CLIENT_PORT
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/nccl/src/ras/ras_internal.h
      type_or_value: '28028'
    - item_type: preproc_def
      name: NCCL_RAS_CLIENT_PROTOCOL
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/nccl/src/ras/ras_internal.h
      type_or_value: '2'
    - item_type: preproc_def
      name: RAS_COLLECTIVE_LEG_TIMEOUT_SEC
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/nccl/src/ras/ras_internal.h
      type_or_value: '5'
    - item_type: preproc_def
      name: RAS_COLLECTIVE_EXTRA_TIMEOUT_SEC
      pos:
        line_end: 14
        line_start: 13
        source_file: /src/nccl/src/ras/ras_internal.h
      type_or_value: RAS_COLLECTIVE_LEG_TIMEOUT_SEC
    - item_type: preproc_def
      name: RAS_INCREMENT
      pos:
        line_end: 181
        line_start: 180
        source_file: /src/nccl/src/ras/ras_internal.h
      type_or_value: '4'
    - item_type: preproc_def
      name: CLOCK_UNITS_PER_SEC
      pos:
        line_end: 184
        line_start: 183
        source_file: /src/nccl/src/ras/ras_internal.h
      type_or_value: 1000000000L
    - item_type: preproc_def
      name: RAS_KEEPALIVE_INTERVAL
      pos:
        line_end: 187
        line_start: 186
        source_file: /src/nccl/src/ras/ras_internal.h
      type_or_value: (1*CLOCK_UNITS_PER_SEC*ncclParamRasTimeoutFactor())
    - item_type: preproc_def
      name: RAS_KEEPALIVE_TIMEOUT_WARN
      pos:
        line_end: 191
        line_start: 190
        source_file: /src/nccl/src/ras/ras_internal.h
      type_or_value: (5*CLOCK_UNITS_PER_SEC*ncclParamRasTimeoutFactor())
    - item_type: preproc_def
      name: RAS_KEEPALIVE_TIMEOUT_ERROR
      pos:
        line_end: 195
        line_start: 194
        source_file: /src/nccl/src/ras/ras_internal.h
      type_or_value: RAS_STUCK_TIMEOUT
    - item_type: preproc_def
      name: RAS_CONNECT_RETRY
      pos:
        line_end: 198
        line_start: 197
        source_file: /src/nccl/src/ras/ras_internal.h
      type_or_value: (1*CLOCK_UNITS_PER_SEC*ncclParamRasTimeoutFactor())
    - item_type: preproc_def
      name: RAS_CONNECT_WARN
      pos:
        line_end: 201
        line_start: 200
        source_file: /src/nccl/src/ras/ras_internal.h
      type_or_value: RAS_KEEPALIVE_TIMEOUT_WARN
    - item_type: preproc_def
      name: RAS_STUCK_TIMEOUT
      pos:
        line_end: 205
        line_start: 204
        source_file: /src/nccl/src/ras/ras_internal.h
      type_or_value: (20*CLOCK_UNITS_PER_SEC*ncclParamRasTimeoutFactor())
    - item_type: preproc_def
      name: RAS_IDLE_TIMEOUT
      pos:
        line_end: 208
        line_start: 207
        source_file: /src/nccl/src/ras/ras_internal.h
      type_or_value: (60*CLOCK_UNITS_PER_SEC*ncclParamRasTimeoutFactor())
    - item_type: preproc_def
      name: RAS_IDLE_GRACE_PERIOD
      pos:
        line_end: 211
        line_start: 210
        source_file: /src/nccl/src/ras/ras_internal.h
      type_or_value: (5*CLOCK_UNITS_PER_SEC*ncclParamRasTimeoutFactor())
    - item_type: preproc_def
      name: RAS_PEER_DEAD_TIMEOUT
      pos:
        line_end: 214
        line_start: 213
        source_file: /src/nccl/src/ras/ras_internal.h
      type_or_value: (60*CLOCK_UNITS_PER_SEC*ncclParamRasTimeoutFactor())
    - item_type: preproc_def
      name: RAS_COLLECTIVE_LEG_TIMEOUT
      pos:
        line_end: 218
        line_start: 217
        source_file: /src/nccl/src/ras/ras_internal.h
      type_or_value: (RAS_COLLECTIVE_LEG_TIMEOUT_SEC*CLOCK_UNITS_PER_SEC*ncclParamRasTimeoutFactor())
    - item_type: preproc_def
      name: RAS_COLLECTIVE_EXTRA_TIMEOUT
      pos:
        line_end: 221
        line_start: 220
        source_file: /src/nccl/src/ras/ras_internal.h
      type_or_value: (RAS_COLLECTIVE_EXTRA_TIMEOUT_SEC*CLOCK_UNITS_PER_SEC*ncclParamRasTimeoutFactor())
    structs:
    - fields:
      - name: commHash
        type: uint64_t
      - name: hostHash
        type: uint64_t
      item_type: struct
      name: rasCommId
      pos:
        line_end: 50
        line_start: 47
        source_file: /src/nccl/src/ras/ras_internal.h
    - fields:
      - name: rootAddr
        type: union ncclSocketAddress
      - name: rootId
        type: uint64_t
      - name: timeout
        type: int64_t
      - name: type
        type: rasCollectiveType
      item_type: struct
      name: rasCollRequest
      pos:
        line_end: 72
        line_start: 53
        source_file: /src/nccl/src/ras/ras_internal.h
    - fields:
      - name: rootAddr
        type: union ncclSocketAddress
      - name: rootId
        type: uint64_t
      - name: nLegTimeouts
        type: int
      - name: nPeers
        type: int
      - name: nData
        type: int
      - name: peers[0]
        type: union ncclSocketAddress
      item_type: struct
      name: rasCollResponse
      pos:
        line_end: 85
        line_start: 75
        source_file: /src/nccl/src/ras/ras_internal.h
    - fields:
      - name: addr
        type: union ncclSocketAddress
      - name: pid
        type: pid_t
      - name: cudaDevs
        type: uint64_t
      - name: nvmlDevs
        type: uint64_t
      - name: hostHash
        type: uint64_t
      item_type: struct
      name: rasPeerInfo
      pos:
        line_end: 96
        line_start: 89
        source_file: /src/nccl/src/ras/ras_internal.h
    - fields:
      - name: type
        type: rasMsgType
      item_type: struct
      name: rasMsg
      pos:
        line_end: 141
        line_start: 100
        source_file: /src/nccl/src/ras/ras_internal.h
    - fields:
      - name: '* next'
        type: struct rasMsgMeta
      - name: enqueueTime
        type: int64_t
      - name: offset
        type: int
      - name: length
        type: int
      - name: msg
        type: struct rasMsg
      item_type: struct
      name: rasMsgMeta
      pos:
        line_end: 229
        line_start: 223
        source_file: /src/nccl/src/ras/ras_internal.h
    - fields:
      - name: '* next'
        type: struct rasCollective
      - name: '* prev'
        type: struct rasCollective
      - name: rootAddr
        type: union ncclSocketAddress
      - name: rootId
        type: uint64_t
      - name: type
        type: rasCollectiveType
      - name: timeout
        type: int64_t
      - name: timeoutWarned
        type: bool
      - name: startTime
        type: int64_t
      - name: '* fromConn'
        type: struct rasConnection
      - name: '** fwdConns'
        type: struct rasConnection
      - name: nFwdSent
        type: int
      - name: nFwdRecv
        type: int
      - name: nLegTimeouts
        type: int
      - name: '* peers'
        type: union ncclSocketAddress
      - name: nPeers
        type: int
      - name: '* data'
        type: char
      - name: nData
        type: int
      item_type: struct
      name: rasCollective
      pos:
        line_end: 260
        line_start: 233
        source_file: /src/nccl/src/ras/ras_internal.h
    - fields:
      - name: travelTimeMin
        type: int64_t
      - name: travelTimeMax
        type: int64_t
      - name: travelTimeSum
        type: int64_t
      - name: travelTimeCount
        type: int64_t
      - name: nConns
        type: int
      - name: nNegativeMins
        type: int
      - name: negativeMins[0]
        type: "struct negativeMin {\n    union ncclSocketAddress source;\n    union
          ncclSocketAddress dest;\n    int64_t travelTimeMin;\n  }"
      item_type: struct
      name: rasCollConns
      pos:
        line_end: 275
        line_start: 263
        source_file: /src/nccl/src/ras/ras_internal.h
    - fields:
      - name: source
        type: union ncclSocketAddress
      - name: dest
        type: union ncclSocketAddress
      - name: travelTimeMin
        type: int64_t
      item_type: struct
      name: negativeMin
      pos:
        line_end: 274
        line_start: 270
        source_file: /src/nccl/src/ras/ras_internal.h
    - fields:
      - name: nComms
        type: int
      - name: comms[0]
        type: "struct comm {\n    struct rasCommId commId;\n    int commNRanks; //
          >= nRanks + nMissingRanks\n    int nRanks; // Number of elements in the
          ranks array below, *not* in the communicator.\n    int nMissingRanks; //
          Number of elements in the missingRanks array below.\n    struct rank {\n
          \     int commRank;\n      int peerIdx; // Index within rasCollective->peers,
          *not* rasPeers.\n      uint64_t collOpCounts[NCCL_NUM_FUNCTIONS];\n      struct
          {\n        ncclResult_t initState:4;\n        ncclResult_t asyncError:4;\n
          \       bool finalizeCalled:1;\n        bool destroyFlag:1;\n        bool
          abortFlag:1;\n      } status;\n      char cudaDev;\n      char nvmlDev;\n
          \   } ranks[0]; // Variable length. Sorted by commRank.  Optimized for 1
          GPU/process.\n    // The ranks array is followed by:\n    // struct rasCollCommsMissingRank
          missingRanks[0]; // Variable length.  Sorted by commRank.\n  }"
      item_type: struct
      name: rasCollComms
      pos:
        line_end: 302
        line_start: 278
        source_file: /src/nccl/src/ras/ras_internal.h
    - fields:
      - name: commId
        type: struct rasCommId
      - name: commNRanks
        type: int
      - name: nRanks
        type: int
      - name: nMissingRanks
        type: int
      - name: ranks[0]
        type: "struct rank {\n      int commRank;\n      int peerIdx; // Index within
          rasCollective->peers, *not* rasPeers.\n      uint64_t collOpCounts[NCCL_NUM_FUNCTIONS];\n
          \     struct {\n        ncclResult_t initState:4;\n        ncclResult_t
          asyncError:4;\n        bool finalizeCalled:1;\n        bool destroyFlag:1;\n
          \       bool abortFlag:1;\n      } status;\n      char cudaDev;\n      char
          nvmlDev;\n    }"
      item_type: struct
      name: comm
      pos:
        line_end: 301
        line_start: 280
        source_file: /src/nccl/src/ras/ras_internal.h
    - fields:
      - name: commRank
        type: int
      - name: peerIdx
        type: int
      - name: collOpCounts[NCCL_NUM_FUNCTIONS]
        type: uint64_t
      - name: status
        type: "struct {\n        ncclResult_t initState:4;\n        ncclResult_t asyncError:4;\n
          \       bool finalizeCalled:1;\n        bool destroyFlag:1;\n        bool
          abortFlag:1;\n      }"
      - name: cudaDev
        type: char
      - name: nvmlDev
        type: char
      item_type: struct
      name: rank
      pos:
        line_end: 298
        line_start: 285
        source_file: /src/nccl/src/ras/ras_internal.h
    - fields:
      - name: commRank
        type: int
      - name: addr
        type: union ncclSocketAddress
      - name: cudaDev
        type: char
      - name: nvmlDev
        type: char
      item_type: struct
      name: rasCollCommsMissingRank
      pos:
        line_end: 313
        line_start: 307
        source_file: /src/nccl/src/ras/ras_internal.h
    - fields:
      - name: '* next'
        type: struct rasLinkConn
      - name: peerIdx
        type: int
      - name: '* conn'
        type: struct rasConnection
      - name: external
        type: bool
      item_type: struct
      name: rasLinkConn
      pos:
        line_end: 326
        line_start: 317
        source_file: /src/nccl/src/ras/ras_internal.h
    - fields:
      - name: direction
        type: int
      - name: '* conns'
        type: struct rasLinkConn
      - name: lastUpdatePeersTime
        type: int64_t
      item_type: struct
      name: rasLink
      pos:
        line_end: 344
        line_start: 332
        source_file: /src/nccl/src/ras/ras_internal.h
    - fields:
      - name: '* next'
        type: struct rasConnection
      - name: '* prev'
        type: struct rasConnection
      - name: addr
        type: union ncclSocketAddress
      - name: '* sock'
        type: struct rasSocket
      - name: lastSentPeersHash
        type: uint64_t
      - name: lastRecvPeersHash
        type: uint64_t
      - name: lastSentDeadPeersHash
        type: uint64_t
      - name: lastRecvDeadPeersHash
        type: uint64_t
      - name: sendQ
        type: struct ncclIntruQueue<struct rasMsgMeta, &rasMsgMeta::next>
      - name: startRetryTime
        type: int64_t
      - name: lastRetryTime
        type: int64_t
      - name: experiencingDelays
        type: bool
      - name: linkFlag
        type: bool
      - name: travelTimeMin
        type: int64_t
      - name: travelTimeMax
        type: int64_t
      - name: travelTimeSum
        type: int64_t
      - name: travelTimeCount
        type: int64_t
      item_type: struct
      name: rasConnection
      pos:
        line_end: 392
        line_start: 348
        source_file: /src/nccl/src/ras/ras_internal.h
    - fields:
      - name: '* next'
        type: struct rasSocket
      - name: '* prev'
        type: struct rasSocket
      - name: sock
        type: struct ncclSocket
      - name: status
        type: rasSocketStatus
      - name: pfd
        type: int
      - name: '* conn'
        type: struct rasConnection
      - name: createTime
        type: int64_t
      - name: lastSendTime
        type: int64_t
      - name: lastRecvTime
        type: int64_t
      - name: recvOffset
        type: int
      - name: recvLength
        type: int
      - name: '* recvMsg'
        type: struct rasMsg
      item_type: struct
      name: rasSocket
      pos:
        line_end: 426
        line_start: 404
        source_file: /src/nccl/src/ras/ras_internal.h
    - fields:
      - name: '* next'
        type: struct rasClient
      - name: '* prev'
        type: struct rasClient
      - name: sock
        type: int
      - name: status
        type: rasClientStatus
      - name: pfd
        type: int
      - name: recvBuffer[1024]
        type: char
      - name: recvOffset
        type: int
      - name: sendQ
        type: struct ncclIntruQueue<struct rasMsgMeta, &rasMsgMeta::next>
      - name: verbose
        type: int
      - name: timeout
        type: int64_t
      - name: '* coll'
        type: struct rasCollective
      item_type: struct
      name: rasClient
      pos:
        line_end: 460
        line_start: 439
        source_file: /src/nccl/src/ras/ras_internal.h
    typedefs:
    - item_type: typedef
      name: rasMsgType
      pos:
        line_end: 33
        line_start: 26
        source_file: /src/nccl/src/ras/ras_internal.h
    - item_type: typedef
      name: rasCollectiveType
      pos:
        line_end: 42
        line_start: 36
        source_file: /src/nccl/src/ras/ras_internal.h
    - item_type: typedef
      name: rasSocketStatus
      pos:
        line_end: 401
        line_start: 395
        source_file: /src/nccl/src/ras/ras_internal.h
    - item_type: typedef
      name: rasClientStatus
      pos:
        line_end: 436
        line_start: 429
        source_file: /src/nccl/src/ras/ras_internal.h
    union: []
- function_names:
  - xmlGetChar
  - xmlGetValue
  - xmlGetToken
  - SHIFT_APPEND
  - xmlSkipComment
  - xmlGetNode
  - xmlLoadSub
  - ncclTopoConvertXml
  - ncclTopoDumpXmlRec
  - ncclTopoDumpXmlToFile
  - xmlTopoFuseXmlRecursive
  - ncclTopoFuseXml
  - ncclTopoXmlLoadNvlink
  - ncclTopoXmlLoadPciLink
  - ncclTopoXmlLoadC2c
  - ncclTopoXmlLoadGpu
  - ncclTopoXmlLoadNet
  - ncclTopoXmlLoadNic
  - ncclTopoXmlLoadPci
  - ncclTopoXmlLoadCpu
  - ncclTopoXmlLoadSystem
  - ncclTopoGetXmlFromFile
  - memcpylower
  - getPciPath
  - getBcmLinks
  - ncclTopoGetStrFromSys
  - ncclTopoSetAttrFromSys
  - ncclTopoGetXmlFromCpu
  - ncclTopoGetPciNode
  - isHex
  - checkBDFFormat
  - ncclTopoGetXmlFromSys
  - ncclTopoGetXmlFromGpu
  - ncclTopoFillGpu
  - ncclTopoGetSubsystem
  - ncclTopoFillNet
  - ncclTopoTrimXmlRec
  - ncclTopoTrimXml
  - ncclTopoXmlGraphLoadGpu
  - ncclTopoXmlGraphLoadNet
  - ncclTopoXmlGraphLoadChannel
  - ncclTopoXmlGraphLoadGraph
  - ncclTopoXmlGraphLoadGraphs
  - ncclTopoGetXmlGraphFromFile
  source_file: /src/nccl/src/graph/xml.cc
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NCCL_MAX_XML_DEPTH
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/nccl/src/graph/xml.cc
      type_or_value: '1024'
    - item_type: preproc_def
      name: BUSID_SIZE
      pos:
        line_end: 408
        line_start: 407
        source_file: /src/nccl/src/graph/xml.cc
      type_or_value: (sizeof("0000:00:00.0"))
    - item_type: preproc_def
      name: BUSID_REDUCED_SIZE
      pos:
        line_end: 409
        line_start: 408
        source_file: /src/nccl/src/graph/xml.cc
      type_or_value: (sizeof("0000:00"))
    structs:
    - fields:
      - name: '* name'
        type: char
      - name: func
        type: xmlHandlerFunc_t
      item_type: struct
      name: xmlHandler
      pos:
        line_end: 185
        line_start: 182
        source_file: /src/nccl/src/graph/xml.cc
    typedefs:
    - item_type: typedef
      name: (*xmlHandlerFunc_t)(FILE*, struct ncclXml*, struct ncclXmlNode*)
      pos:
        line_end: 180
        line_start: 180
        source_file: /src/nccl/src/graph/xml.cc
    union:
    - fields:
      - name: vendor[12]
        type: char
      item_type: union
      name: cpuid0
      pos:
        line_end: 514
        line_start: 506
        source_file: /src/nccl/src/graph/xml.cc
    - fields:
      - name: val
        type: uint32_t
      item_type: union
      name: cpuid1
      pos:
        line_end: 538
        line_start: 526
        source_file: /src/nccl/src/graph/xml.cc
- function_names:
  - dumpLine
  - ncclBuildRings
  source_file: /src/nccl/src/graph/rings.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - INTEL_P2P_OVERHEAD
  - NCCL_TOPO_ID_SYSTEM_ID
  - NCCL_TOPO_ID_LOCAL_ID
  - NCCL_TOPO_LOCAL_NIC_ID
  - NCCL_TOPO_ID
  - ncclTopoIdToIndex
  - ncclTopoRankToIndex
  - ncclTopoDevToRank
  - ncclTopoIdToNetDev
  - ncclTopoNVLinkBw
  - isPow2
  - mirrorBits
  source_file: /src/nccl/src/graph/topo.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: LOC_BW
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/nccl/src/graph/topo.h
      type_or_value: '5000.0'
    - item_type: preproc_def
      name: SM60_NVLINK_BW
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/nccl/src/graph/topo.h
      type_or_value: '18.0'
    - item_type: preproc_def
      name: SM70_NVLINK_BW
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/nccl/src/graph/topo.h
      type_or_value: '20.0'
    - item_type: preproc_def
      name: SM80_NVLINK_BW
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/nccl/src/graph/topo.h
      type_or_value: '20.0'
    - item_type: preproc_def
      name: SM90_NVLINK_BW
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/nccl/src/graph/topo.h
      type_or_value: '20.6'
    - item_type: preproc_def
      name: SM86_NVLINK_BW
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/nccl/src/graph/topo.h
      type_or_value: '12.0'
    - item_type: preproc_def
      name: SM100_NVLINK_BW
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/nccl/src/graph/topo.h
      type_or_value: '40.1'
    - item_type: preproc_def
      name: PCI_BW
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/nccl/src/graph/topo.h
      type_or_value: 12.0           // PCI Gen3 x16
    - item_type: preproc_def
      name: AMD_BW
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/nccl/src/graph/topo.h
      type_or_value: '16.0'
    - item_type: preproc_def
      name: BDW_QPI_BW
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/nccl/src/graph/topo.h
      type_or_value: '6.0'
    - item_type: preproc_def
      name: SKL_QPI_BW
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/nccl/src/graph/topo.h
      type_or_value: '10.0'
    - item_type: preproc_def
      name: SRP_QPI_BW
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/nccl/src/graph/topo.h
      type_or_value: '22.0'
    - item_type: preproc_def
      name: ERP_QPI_BW
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/nccl/src/graph/topo.h
      type_or_value: '40.0'
    - item_type: preproc_def
      name: ZPI_BW
      pos:
        line_end: 28
        line_start: 27
        source_file: /src/nccl/src/graph/topo.h
      type_or_value: '6.0'
    - item_type: preproc_def
      name: YONGFENG_ZPI_BW
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/nccl/src/graph/topo.h
      type_or_value: '9.0'
    - item_type: preproc_def
      name: P9_BW
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/nccl/src/graph/topo.h
      type_or_value: '32.0'
    - item_type: preproc_def
      name: ARM_BW
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/nccl/src/graph/topo.h
      type_or_value: '6.0'
    - item_type: preproc_def
      name: NET_BW
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/nccl/src/graph/topo.h
      type_or_value: 12.0           // 100Gbit
    - item_type: preproc_def
      name: NCCL_TOPO_NODE_TYPES
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/nccl/src/graph/topo.h
      type_or_value: '6'
    - item_type: preproc_def
      name: GPU
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/nccl/src/graph/topo.h
      type_or_value: '0'
    - item_type: preproc_def
      name: PCI
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/nccl/src/graph/topo.h
      type_or_value: '1'
    - item_type: preproc_def
      name: NVS
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/nccl/src/graph/topo.h
      type_or_value: '2'
    - item_type: preproc_def
      name: CPU
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/nccl/src/graph/topo.h
      type_or_value: 3 // Actually NUMA domains
    - item_type: preproc_def
      name: NIC
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/nccl/src/graph/topo.h
      type_or_value: '4'
    - item_type: preproc_def
      name: NET
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/nccl/src/graph/topo.h
      type_or_value: '5'
    - item_type: preproc_def
      name: LINK_LOC
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/nccl/src/graph/topo.h
      type_or_value: '0'
    - item_type: preproc_def
      name: LINK_NVL
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/nccl/src/graph/topo.h
      type_or_value: '1'
    - item_type: preproc_def
      name: LINK_C2C
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/nccl/src/graph/topo.h
      type_or_value: '3'
    - item_type: preproc_def
      name: LINK_PCI
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/nccl/src/graph/topo.h
      type_or_value: '4'
    - item_type: preproc_def
      name: LINK_SYS
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/nccl/src/graph/topo.h
      type_or_value: '9'
    - item_type: preproc_def
      name: LINK_NET
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/nccl/src/graph/topo.h
      type_or_value: '10'
    - item_type: preproc_def
      name: PATH_LOC
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/nccl/src/graph/topo.h
      type_or_value: '0'
    - item_type: preproc_def
      name: PATH_NVL
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/nccl/src/graph/topo.h
      type_or_value: '1'
    - item_type: preproc_def
      name: PATH_NVB
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/nccl/src/graph/topo.h
      type_or_value: '2'
    - item_type: preproc_def
      name: PATH_C2C
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/nccl/src/graph/topo.h
      type_or_value: '3'
    - item_type: preproc_def
      name: PATH_PIX
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/nccl/src/graph/topo.h
      type_or_value: '4'
    - item_type: preproc_def
      name: PATH_PXB
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/nccl/src/graph/topo.h
      type_or_value: '5'
    - item_type: preproc_def
      name: PATH_P2C
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/nccl/src/graph/topo.h
      type_or_value: '6'
    - item_type: preproc_def
      name: PATH_PXN
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/nccl/src/graph/topo.h
      type_or_value: '7'
    - item_type: preproc_def
      name: PATH_PHB
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/nccl/src/graph/topo.h
      type_or_value: '8'
    - item_type: preproc_def
      name: PATH_SYS
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/nccl/src/graph/topo.h
      type_or_value: '9'
    - item_type: preproc_def
      name: PATH_NET
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/nccl/src/graph/topo.h
      type_or_value: '10'
    - item_type: preproc_def
      name: PATH_PORT
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/nccl/src/graph/topo.h
      type_or_value: PATH_NVL
    - item_type: preproc_def
      name: PATH_DIS
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/nccl/src/graph/topo.h
      type_or_value: '11'
    - item_type: preproc_def
      name: NCCL_TOPO_MAX_LINKS
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/nccl/src/graph/topo.h
      type_or_value: '576'
    - item_type: preproc_def
      name: NCCL_TOPO_MAX_HOPS
      pos:
        line_end: 111
        line_start: 110
        source_file: /src/nccl/src/graph/topo.h
      type_or_value: (NCCL_TOPO_MAX_NODES*NCCL_TOPO_NODE_TYPES)
    - item_type: preproc_def
      name: NCCL_TOPO_UNDEF
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/nccl/src/graph/topo.h
      type_or_value: (-1)
    - item_type: preproc_def
      name: NCCL_TOPO_ID_LOCAL_ID_MASK
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/nccl/src/graph/topo.h
      type_or_value: '0x00ffffffffffffff'
    - item_type: preproc_def
      name: NCCL_TOPO_XML_MAX_NODES
      pos:
        line_end: 200
        line_start: 199
        source_file: /src/nccl/src/graph/topo.h
      type_or_value: '256'
    - item_type: preproc_def
      name: NCCL_GRAPH_XML_MAX_NODES
      pos:
        line_end: 201
        line_start: 200
        source_file: /src/nccl/src/graph/topo.h
      type_or_value: '4096'
    structs:
    - fields:
      - name: type
        type: int
      - name: bw
        type: float
      - name: '* remNode'
        type: struct ncclTopoNode
      item_type: struct
      name: ncclTopoLink
      pos:
        line_end: 107
        line_start: 103
        source_file: /src/nccl/src/graph/topo.h
    - fields:
      - name: '* list[NCCL_TOPO_MAX_HOPS]'
        type: struct ncclTopoLink
      - name: count
        type: int
      - name: bw
        type: float
      - name: type
        type: int
      item_type: struct
      name: ncclTopoLinkList
      pos:
        line_end: 117
        line_start: 112
        source_file: /src/nccl/src/graph/topo.h
    - fields:
      - name: type
        type: int
      - name: id
        type: int64_t
      - name: nlinks
        type: int
      - name: links[NCCL_TOPO_MAX_LINKS]
        type: struct ncclTopoLink
      - name: '* paths[NCCL_TOPO_NODE_TYPES]'
        type: struct ncclTopoLinkList
      - name: used
        type: uint64_t
      item_type: struct
      name: ncclTopoNode
      pos:
        line_end: 165
        line_start: 127
        source_file: /src/nccl/src/graph/topo.h
    - fields:
      - name: count
        type: int
      - name: nodes[NCCL_TOPO_MAX_NODES]
        type: struct ncclTopoNode
      item_type: struct
      name: ncclTopoNodeSet
      pos:
        line_end: 170
        line_start: 167
        source_file: /src/nccl/src/graph/topo.h
    - fields:
      - name: systemId
        type: int
      - name: hostHashes[NCCL_TOPO_MAX_NODES]
        type: uint64_t
      - name: nHosts
        type: int
      - name: nodes[NCCL_TOPO_NODE_TYPES]
        type: struct ncclTopoNodeSet
      - name: maxBw
        type: float
      - name: totalBw
        type: float
      item_type: struct
      name: ncclTopoSystem
      pos:
        line_end: 179
        line_start: 172
        source_file: /src/nccl/src/graph/topo.h
    - fields:
      - name: nVirtualNics
        type: int
      - name: nPhysicalNics
        type: int
      - name: '* name'
        type: char
      item_type: struct
      name: ncclTopoNetState
      pos:
        line_end: 196
        line_start: 192
        source_file: /src/nccl/src/graph/topo.h
    typedefs: []
    union: []
- function_names:
  - getNthreads
  - parseList
  - ncclPatEnable
  - getNetOverhead
  - ncclTopoTuneModel
  - ncclTopoGetAlgoTime
  source_file: /src/nccl/src/graph/tuning.cc
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NCCL_HW_NVLINK
      pos:
        line_end: 140
        line_start: 139
        source_file: /src/nccl/src/graph/tuning.cc
      type_or_value: '0'
    - item_type: preproc_def
      name: NCCL_HW_PCI
      pos:
        line_end: 141
        line_start: 140
        source_file: /src/nccl/src/graph/tuning.cc
      type_or_value: '1'
    - item_type: preproc_def
      name: NCCL_HW_NET
      pos:
        line_end: 142
        line_start: 141
        source_file: /src/nccl/src/graph/tuning.cc
      type_or_value: '2'
    - item_type: preproc_def
      name: VOLTA_COMPCAP_IDX
      pos:
        line_end: 159
        line_start: 158
        source_file: /src/nccl/src/graph/tuning.cc
      type_or_value: '0'
    - item_type: preproc_def
      name: AMPERE_COMPCAP_IDX
      pos:
        line_end: 160
        line_start: 159
        source_file: /src/nccl/src/graph/tuning.cc
      type_or_value: '1'
    - item_type: preproc_def
      name: HOPPER_COMPCAP_IDX
      pos:
        line_end: 161
        line_start: 160
        source_file: /src/nccl/src/graph/tuning.cc
      type_or_value: '2'
    - item_type: preproc_def
      name: BLACKWELL_COMPCAP_IDX
      pos:
        line_end: 162
        line_start: 161
        source_file: /src/nccl/src/graph/tuning.cc
      type_or_value: '3'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/src/graph/rings.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - getPath
  - ncclTopoSetPaths
  - printNodePaths
  - ncclTopoPrintPaths
  - ncclGetLocalCpu
  - mergePathType
  - addInterStep
  - ncclTopoRemovePaths
  - ncclGetLevel
  - ncclGetUserP2pLevel
  - ncclTopoCheckP2p
  - ncclTopoCheckMNNVL
  - ncclTopoCheckGdr
  - ncclTopoIsGdrAvail
  - ncclTopoNeedFlush
  - ncclTopoCheckNet
  - ncclTopoGetIntermediateRank
  - ncclPxnDisable
  - ncclTopoGetPxnRanks
  - ncclTopoComputePaths
  - ncclTopoTrimSystem
  - ncclTopoFree
  - ncclTopoGetNchannels
  - ncclTopoComputeP2pChannels
  - ncclTopoGetNvbGpus
  - ncclTopoGetGpuMinPath
  - ncclTopoGetGpuMaxPath
  - ncclTopoPathAllNVLink
  - ncclTopoSplitNvLink
  source_file: /src/nccl/src/graph/paths.cc
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '* list[NCCL_TOPO_MAX_NODES]'
        type: struct ncclTopoNode
      - name: count
        type: int
      item_type: struct
      name: ncclTopoNodeList
      pos:
        line_end: 20
        line_start: 17
        source_file: /src/nccl/src/graph/paths.cc
    typedefs: []
    union: []
- function_names:
  - pciPathToInt64
  - findLocalCpu
  - ncclTopoGetInterCpuBw
  - ncclTopoGetNode
  - ncclTopoCreateNode
  - ncclTopoRemoveNode
  - ncclTopoConnectNodes
  - getBcmGen
  - ncclTopoFlattenBcmSwitches
  - ncclTopoConnectCpus
  - ncclTopoPrintRec
  - ncclTopoPrint
  - ncclTopoSort
  - ncclTopoSortSystem
  - ncclTopoAddNet
  - ncclTopoAddNic
  - ncclTopoAddGpu
  - ncclTopoAddPci
  - ncclGetSystemId
  - ncclTopoAddCpu
  - ncclTopoAddNvLinks
  - ncclTopoAddPciLinks
  - ncclTopoAddC2c
  - ncclTopoGetSystemFromXml
  - xmlInitAttrInt
  - xmlInitAttrUint64
  - xmlInitAttrFloat
  - ncclTopoRefreshBcmP2pLinks
  - ncclTopoCheckPix
  - top
  - pop
  - push
  - empty
  - ncclFindFirstPciParent
  - ncclTopoGetPath
  - ncclTopoMakeUniqueBusId
  - ncclTopoMakePciParent
  - ncclTopoMakeVnic
  - ncclTopoForceMerge
  - ncclTopoAutoMerge
  - ncclTopoGetVNicParent
  - ncclTopoMakeVNics
  - ncclTopoPopulateNics
  - ncclTopoProcessNet
  - ncclTopoGetSharedState
  - ncclTopoGetSystem
  - ncclTopoGetLocal
  - getLocalNetCountByBw
  - ncclTopoGetLocalNet
  - ncclTopoGetLocalGpu
  - ncclTopoCpuType
  - ncclTopoGetCpuAffinity
  - ncclTopoGetGpuCount
  - ncclTopoGetNetCount
  - ncclTopoGetNvsCount
  - ncclTopoGetCompCap
  source_file: /src/nccl/src/graph/topo.cc
  types:
    enum:
    - enumerators:
      - name: ncclNvLinkDeviceUnknown
      - name: ncclNvLinkDeviceGpu
      - name: ncclNvLinkDeviceSwitch
      - name: ncclNvLinkDeviceBridge
      item_type: enum
      name: ncclNvLinkDeviceType
      pos:
        line_end: 98
        line_start: 93
        source_file: /src/nccl/src/graph/topo.cc
    preproc_defs:
    - item_type: preproc_def
      name: BUSID_SIZE
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/nccl/src/graph/topo.cc
      type_or_value: (sizeof("0000:00:00.0"))
    - item_type: preproc_def
      name: BUSID_REDUCED_SIZE
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/nccl/src/graph/topo.cc
      type_or_value: (sizeof("0000:00"))
    - item_type: preproc_def
      name: PCI_BRIDGE_DEVICE_CLASS
      pos:
        line_end: 405
        line_start: 404
        source_file: /src/nccl/src/graph/topo.cc
      type_or_value: '"0x060400"'
    - item_type: preproc_def
      name: NCCL_TOPO_XML_DEPTH_MAX
      pos:
        line_end: 779
        line_start: 778
        source_file: /src/nccl/src/graph/topo.cc
      type_or_value: '256'
    structs:
    - fields:
      - name: '* elems[NCCL_TOPO_XML_DEPTH_MAX]'
        type: ncclXmlNode
      - name: tail
        type: int
      item_type: struct
      name: xmlNodeStack
      pos:
        line_end: 809
        line_start: 779
        source_file: /src/nccl/src/graph/topo.cc
    typedefs: []
    union: []
- function_names:
  - xmlMemSize
  - xmlAlloc
  - xmlGetAttrIndex
  - xmlGetAttr
  - xmlGetAttrStr
  - xmlGetAttrInt
  - xmlGetAttrIntDefault
  - xmlGetAttrUint64
  - xmlGetAttrLong
  - xmlGetAttrFloat
  - xmlGetAttrFloatDefault
  - xmlFindTag
  - xmlFindNextTag
  - xmlFindTagKv
  - xmlFindNode
  - xmlSetAttr
  - xmlPrintNodeRecursive
  - xmlSetAttrIfUnset
  - xmlSetAttrInt
  - xmlSetAttrFloat
  - xmlSetAttrLong
  - xmlUnsetAttr
  - xmlGetSub
  - xmlGetSubKv
  - xmlGetSubKvInt
  - xmlAddNode
  - xmlRemoveNode
  - xmlAddTree
  - kvConvertToInt
  - kvConvertToStr
  source_file: /src/nccl/src/graph/xml.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_STR_LEN
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/nccl/src/graph/xml.h
      type_or_value: '255'
    - item_type: preproc_def
      name: MAX_ATTR_COUNT
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/nccl/src/graph/xml.h
      type_or_value: '16'
    - item_type: preproc_def
      name: MAX_SUBS
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/nccl/src/graph/xml.h
      type_or_value: '128'
    - item_type: preproc_def
      name: NODE_TYPE_NONE
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/nccl/src/graph/xml.h
      type_or_value: '0'
    - item_type: preproc_def
      name: NODE_TYPE_OPEN
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/nccl/src/graph/xml.h
      type_or_value: '1'
    - item_type: preproc_def
      name: NODE_TYPE_CLOSE
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/nccl/src/graph/xml.h
      type_or_value: '2'
    - item_type: preproc_def
      name: NODE_TYPE_SINGLE
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/nccl/src/graph/xml.h
      type_or_value: '3'
    - item_type: preproc_def
      name: NCCL_TOPO_XML_VERSION
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/nccl/src/graph/xml.h
      type_or_value: '1'
    - item_type: preproc_def
      name: NCCL_GRAPH_XML_VERSION
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/nccl/src/graph/xml.h
      type_or_value: '1'
    structs:
    - fields:
      - name: name[MAX_STR_LEN+1]
        type: char
      - name: attrs[MAX_ATTR_COUNT+1]
        type: "struct {\n    char key[MAX_STR_LEN+1];\n    char value[MAX_STR_LEN+1];\n
          \ }"
      - name: nAttrs
        type: int
      - name: type
        type: int
      - name: '* parent'
        type: struct ncclXmlNode
      - name: '* subs[MAX_SUBS]'
        type: struct ncclXmlNode
      - name: nSubs
        type: int
      item_type: struct
      name: ncclXmlNode
      pos:
        line_end: 36
        line_start: 25
        source_file: /src/nccl/src/graph/xml.h
    - fields:
      - name: maxIndex
        type: int
      - name: nodes[1]
        type: struct ncclXmlNode
      item_type: struct
      name: ncclXml
      pos:
        line_end: 41
        line_start: 38
        source_file: /src/nccl/src/graph/xml.h
    - fields:
      - name: '* str'
        type: char
      - name: value
        type: int
      item_type: struct
      name: kvDict
      pos:
        line_end: 397
        line_start: 394
        source_file: /src/nccl/src/graph/xml.h
    typedefs: []
    union: []
- function_names:
  - ncclTopoPreset
  - connectRings
  - getIndexes
  - setTreeUp
  - setTreeDown
  - connectTrees
  - connectCollNet
  - connectNvls
  - ncclMinNchannels
  - ncclMaxNchannels
  - copyChannels
  - exchangeValues
  - ncclTopoPostset
  source_file: /src/nccl/src/graph/connect.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - RANK_TO_INDEX
  - ncclGetBtree
  - ncclGetDtree
  source_file: /src/nccl/src/graph/trees.cc
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - getMaxBw
  - getTotalBw
  - ncclTopoSearchInit
  - ncclTopoComputeCommCPU
  - findRevLink
  - SUB_ROUND
  - followPath
  - ncclTopoFollowPath
  - gpuPciBw
  - cmpScore
  - cmpIntraScores
  - getGpuIndex
  - getNetIndex
  - getNetPaths
  - ncclTopoSearchNextGpuSort
  - ncclTopoReplayGetGpu
  - ncclTopoSearchTryGpu
  - ncclTopoSearchTryCollnetDirect
  - ncclTopoSearchTryNvls
  - ncclTopoCompareGraphs
  - ncclTopoPrefNetsGpuFirst
  - ncclTopoPrefNetsChannelFirst
  - ncclTopoSelectNets
  - ncclTopoSearchRecGpu
  - ncclTopoSearchRecNet
  - ncclTopoSearchParams
  - ncclTopoSearchRec
  - ncclTopoGetChannelFromXml
  - ncclTopoGetGraphFromXmlSub
  - ncclTopoGetGraphFromXml
  - ncclTopoGetXmlFromChannel
  - ncclTopoGetXmlFromGraph
  - ncclTopoGetXmlFromGraphs
  - ncclTopoDupChannels
  - ncclTopoCompute
  - ncclTopoPrintGraph
  - ncclTopoDumpGraphs
  - getNvlsNetDev
  - ncclTopoGetNetDev
  source_file: /src/nccl/src/graph/search.cc
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NCCL_SEARCH_GLOBAL_TIMEOUT
      pos:
        line_end: 315
        line_start: 314
        source_file: /src/nccl/src/graph/search.cc
      type_or_value: (1ULL<<19)
    - item_type: preproc_def
      name: NCCL_SEARCH_TIMEOUT
      pos:
        line_end: 316
        line_start: 315
        source_file: /src/nccl/src/graph/search.cc
      type_or_value: (1<<14)
    - item_type: preproc_def
      name: NCCL_SEARCH_TIMEOUT_TREE
      pos:
        line_end: 317
        line_start: 316
        source_file: /src/nccl/src/graph/search.cc
      type_or_value: (1<<14)
    - item_type: preproc_def
      name: NCCL_SEARCH_TIMEOUT_SAMECHANNELS
      pos:
        line_end: 318
        line_start: 317
        source_file: /src/nccl/src/graph/search.cc
      type_or_value: (1<<8)
    - item_type: preproc_def
      name: FORCED_ORDER_PCI
      pos:
        line_end: 320
        line_start: 319
        source_file: /src/nccl/src/graph/search.cc
      type_or_value: '1'
    - item_type: preproc_def
      name: FORCED_ORDER_REPLAY
      pos:
        line_end: 321
        line_start: 320
        source_file: /src/nccl/src/graph/search.cc
      type_or_value: '2'
    - item_type: preproc_def
      name: NSPEEDSINTRA
      pos:
        line_end: 954
        line_start: 953
        source_file: /src/nccl/src/graph/search.cc
      type_or_value: (sizeof(speedArrayIntra)/sizeof(float))
    - item_type: preproc_def
      name: NSPEEDSINTER
      pos:
        line_end: 955
        line_start: 954
        source_file: /src/nccl/src/graph/search.cc
      type_or_value: (sizeof(speedArrayInter)/sizeof(float))
    - item_type: preproc_def
      name: NSPEEDSINTRA_SM90
      pos:
        line_end: 959
        line_start: 958
        source_file: /src/nccl/src/graph/search.cc
      type_or_value: (sizeof(sm90SpeedArrayIntra)/sizeof(float))
    - item_type: preproc_def
      name: NSPEEDSINTER_SM90
      pos:
        line_end: 960
        line_start: 959
        source_file: /src/nccl/src/graph/search.cc
      type_or_value: (sizeof(sm90SpeedArrayInter)/sizeof(float))
    - item_type: preproc_def
      name: NSPEEDSINTRA_SM100
      pos:
        line_end: 964
        line_start: 963
        source_file: /src/nccl/src/graph/search.cc
      type_or_value: (sizeof(sm100SpeedArrayIntra)/sizeof(float))
    - item_type: preproc_def
      name: NSPEEDSINTER_SM100
      pos:
        line_end: 965
        line_start: 964
        source_file: /src/nccl/src/graph/search.cc
      type_or_value: (sizeof(sm100SpeedArrayInter)/sizeof(float))
    structs:
    - fields:
      - name: g
        type: int
      - name: startIndex
        type: int
      - name: intraNhops
        type: int
      - name: intraBw
        type: int
      - name: interNhops
        type: int
      - name: interPciBw
        type: int
      - name: interBw
        type: int
      item_type: struct
      name: ncclGpuScore
      pos:
        line_end: 188
        line_start: 180
        source_file: /src/nccl/src/graph/search.cc
    typedefs: []
    union: []
- function_names:
  - ncclResult_t::pluginInit
  - ncclResult_t::pluginGetCollInfo
  - ncclResult_t::pluginDestroy
  source_file: /src/nccl/ext-tuner/basic/plugin.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: __hidden
      pos:
        line_end: 9
        line_start: 8
        source_file: /src/nccl/ext-tuner/basic/plugin.c
      type_or_value: __attribute__ ((visibility("hidden")))
    - item_type: preproc_def
      name: PLUGIN_NAME
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/nccl/ext-tuner/basic/plugin.c
      type_or_value: '"Basic"'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/ext-tuner/basic/nccl/tuner.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NCCL_NUM_FUNCTIONS
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/nccl/ext-tuner/basic/nccl/tuner.h
      type_or_value: 5 // Send/Recv not included for now
    - item_type: preproc_def
      name: NCCL_NUM_ALGORITHMS
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/nccl/ext-tuner/basic/nccl/tuner.h
      type_or_value: 7 // Tree/Ring/CollNet*
    - item_type: preproc_def
      name: NCCL_ALGO_UNDEF
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/nccl/ext-tuner/basic/nccl/tuner.h
      type_or_value: '-1'
    - item_type: preproc_def
      name: NCCL_ALGO_TREE
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/nccl/ext-tuner/basic/nccl/tuner.h
      type_or_value: '0'
    - item_type: preproc_def
      name: NCCL_ALGO_RING
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/nccl/ext-tuner/basic/nccl/tuner.h
      type_or_value: '1'
    - item_type: preproc_def
      name: NCCL_ALGO_COLLNET_DIRECT
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/nccl/ext-tuner/basic/nccl/tuner.h
      type_or_value: '2'
    - item_type: preproc_def
      name: NCCL_ALGO_COLLNET_CHAIN
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/nccl/ext-tuner/basic/nccl/tuner.h
      type_or_value: '3'
    - item_type: preproc_def
      name: NCCL_ALGO_NVLS
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/nccl/ext-tuner/basic/nccl/tuner.h
      type_or_value: '4'
    - item_type: preproc_def
      name: NCCL_ALGO_NVLS_TREE
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/nccl/ext-tuner/basic/nccl/tuner.h
      type_or_value: '5'
    - item_type: preproc_def
      name: NCCL_ALGO_PAT
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/nccl/ext-tuner/basic/nccl/tuner.h
      type_or_value: '6'
    - item_type: preproc_def
      name: NCCL_NUM_PROTOCOLS
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/nccl/ext-tuner/basic/nccl/tuner.h
      type_or_value: 3 // Simple/LL/LL128
    - item_type: preproc_def
      name: NCCL_PROTO_UNDEF
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/nccl/ext-tuner/basic/nccl/tuner.h
      type_or_value: '-1'
    - item_type: preproc_def
      name: NCCL_PROTO_LL
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/nccl/ext-tuner/basic/nccl/tuner.h
      type_or_value: '0'
    - item_type: preproc_def
      name: NCCL_PROTO_LL128
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/nccl/ext-tuner/basic/nccl/tuner.h
      type_or_value: '1'
    - item_type: preproc_def
      name: NCCL_PROTO_SIMPLE
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/nccl/ext-tuner/basic/nccl/tuner.h
      type_or_value: '2'
    - item_type: preproc_def
      name: NCCL_ALGO_PROTO_IGNORE
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/nccl/ext-tuner/basic/nccl/tuner.h
      type_or_value: '-1.0'
    - item_type: preproc_def
      name: NCCL_TUNER_PLUGIN_SYMBOL
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/nccl/ext-tuner/basic/nccl/tuner.h
      type_or_value: '"ncclTunerPlugin_v4"'
    structs:
    - fields:
      - name: '* name'
        type: char
      - name: (*init)(size_t nRanks, size_t nNodes, ncclDebugLogger_t logFunction,
          void **context)
        type: ncclResult_t
      - name: "(*getCollInfo)(void* context, ncclFunc_t collType, size_t nBytes,\n
          \                             int numPipeOps, float** collCostTable, int
          numAlgo, int numProto,\n                              int regBuff, int*
          nChannels)"
        type: ncclResult_t
      - name: (*destroy)(void* context)
        type: ncclResult_t
      item_type: struct
      name: ncclTuner_v4_t
      pos:
        line_end: 90
        line_start: 48
        source_file: /src/nccl/ext-tuner/basic/nccl/tuner.h
    typedefs:
    - item_type: typedef
      name: ncclFunc_t
      pos:
        line_end: 27
        line_start: 17
        source_file: /src/nccl/ext-tuner/basic/nccl/tuner.h
    - item_type: typedef
      name: ncclTuner_t
      pos:
        line_end: 92
        line_start: 92
        source_file: /src/nccl/ext-tuner/basic/nccl/tuner.h
    union: []
- function_names: []
  source_file: /src/nccl/ext-tuner/basic/nccl/common.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: ncclDebugLogLevel
      pos:
        line_end: 9
        line_start: 9
        source_file: /src/nccl/ext-tuner/basic/nccl/common.h
    - item_type: typedef
      name: ncclDebugLogSubSys
      pos:
        line_end: 10
        line_start: 10
        source_file: /src/nccl/ext-tuner/basic/nccl/common.h
    - item_type: typedef
      name: (*ncclDebugLogger_t)(ncclDebugLogLevel level, unsigned long flags, const
        char *file, int line, const char *fmt, ...)
      pos:
        line_end: 12
        line_start: 12
        source_file: /src/nccl/ext-tuner/basic/nccl/common.h
      type: void
    union: []
- function_names: []
  source_file: /src/nccl/ext-tuner/basic/nccl/err.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: ncclResult_t
      pos:
        line_end: 14
        line_start: 8
        source_file: /src/nccl/ext-tuner/basic/nccl/err.h
    union: []
- function_names:
  - parseCollType
  - collTypeToString
  - parseAlgorithm
  - algorithmToString
  - parseProtocol
  - protocolToString
  - countConfigLines
  - loadConfig
  - ncclResult_t::pluginInit
  - ncclResult_t::pluginGetCollInfo
  - ncclResult_t::pluginDestroy
  source_file: /src/nccl/ext-tuner/example/plugin.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: __hidden
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/nccl/ext-tuner/example/plugin.c
      type_or_value: __attribute__ ((visibility("hidden")))
    - item_type: preproc_def
      name: MAX_LINE_LENGTH
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/nccl/ext-tuner/example/plugin.c
      type_or_value: '256'
    - item_type: preproc_def
      name: CONFIG_FIELD_COLLTYPE
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/nccl/ext-tuner/example/plugin.c
      type_or_value: '0'
    - item_type: preproc_def
      name: CONFIG_FIELD_MINBYTES
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/nccl/ext-tuner/example/plugin.c
      type_or_value: '1'
    - item_type: preproc_def
      name: CONFIG_FIELD_MAXBYTES
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/nccl/ext-tuner/example/plugin.c
      type_or_value: '2'
    - item_type: preproc_def
      name: CONFIG_FIELD_ALGORITHM
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/nccl/ext-tuner/example/plugin.c
      type_or_value: '3'
    - item_type: preproc_def
      name: CONFIG_FIELD_PROTOCOL
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/nccl/ext-tuner/example/plugin.c
      type_or_value: '4'
    - item_type: preproc_def
      name: CONFIG_FIELD_CHANNELS
      pos:
        line_end: 22
        line_start: 21
        source_file: /src/nccl/ext-tuner/example/plugin.c
      type_or_value: '5'
    - item_type: preproc_def
      name: CONFIG_FIELD_NNODES
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/nccl/ext-tuner/example/plugin.c
      type_or_value: '6'
    - item_type: preproc_def
      name: CONFIG_FIELD_NRANKS
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/nccl/ext-tuner/example/plugin.c
      type_or_value: '7'
    - item_type: preproc_def
      name: CONFIG_FIELD_PIPEOPS
      pos:
        line_end: 25
        line_start: 24
        source_file: /src/nccl/ext-tuner/example/plugin.c
      type_or_value: 8  // Optional field
    - item_type: preproc_def
      name: CONFIG_FIELD_REGBUFF
      pos:
        line_end: 26
        line_start: 25
        source_file: /src/nccl/ext-tuner/example/plugin.c
      type_or_value: 9  // Optional field
    - item_type: preproc_def
      name: CONFIG_FIELDS_REQUIRED
      pos:
        line_end: 29
        line_start: 28
        source_file: /src/nccl/ext-tuner/example/plugin.c
      type_or_value: 8   // Minimum required fields (up to nRanks)
    - item_type: preproc_def
      name: CONFIG_FIELDS_WITH_PIPEOPS
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/nccl/ext-tuner/example/plugin.c
      type_or_value: 9  // Fields including numPipeOps
    - item_type: preproc_def
      name: CONFIG_FIELDS_WITH_REGBUFF
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/nccl/ext-tuner/example/plugin.c
      type_or_value: 10 // Fields including both numPipeOps and regBuff
    - item_type: preproc_def
      name: CONFIG_FIELDS_MAX
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/nccl/ext-tuner/example/plugin.c
      type_or_value: 10  // Maximum number of fields supported
    - item_type: preproc_def
      name: PLUGIN_NAME
      pos:
        line_end: 446
        line_start: 445
        source_file: /src/nccl/ext-tuner/example/plugin.c
      type_or_value: '"Example"'
    structs:
    - fields:
      - name: collType
        type: ncclFunc_t
      - name: minBytes
        type: size_t
      - name: maxBytes
        type: size_t
      - name: algorithm
        type: int
      - name: protocol
        type: int
      - name: nChannels
        type: int
      - name: nNodes
        type: int
      - name: nRanks
        type: int
      - name: numPipeOps
        type: int
      - name: regBuff
        type: int
      item_type: struct
      name: TuningConfig
      pos:
        line_end: 44
        line_start: 33
        source_file: /src/nccl/ext-tuner/example/plugin.c
    - fields:
      - name: '* configs'
        type: TuningConfig
      - name: numConfigs
        type: int
      - name: maxConfigs
        type: int
      - name: nRanks
        type: size_t
      - name: nNodes
        type: size_t
      - name: logFunction
        type: ncclDebugLogger_t
      item_type: struct
      name: TunerContext
      pos:
        line_end: 53
        line_start: 46
        source_file: /src/nccl/ext-tuner/example/plugin.c
    typedefs: []
    union: []
- function_names:
  - TEST_ASSERT
  - TEST_PASS
  - mock_logger
  - create_test_config
  - test_plugin_init
  - test_config_parsing_valid
  - test_config_parsing_invalid
  - test_collective_matching
  - test_size_matching
  - test_topology_matching
  - test_default_channels
  - test_regbuff_matching
  - test_pipeops_matching
  - test_no_match_fallback
  - test_large_config
  - test_very_large_config_stress
  - test_empty_config
  - show_help
  - find_test
  - main
  source_file: /src/nccl/ext-tuner/example/test/test_plugin.c
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '* name'
        type: char
      - name: func
        type: TestFunction
      - name: '* description'
        type: char
      item_type: struct
      name: TestCase
      pos:
        line_end: 767
        line_start: 763
        source_file: /src/nccl/ext-tuner/example/test/test_plugin.c
    typedefs:
    - item_type: typedef
      name: (*TestFunction)(void)
      pos:
        line_end: 760
        line_start: 760
        source_file: /src/nccl/ext-tuner/example/test/test_plugin.c
      type: int
    union: []
- function_names: []
  source_file: /src/nccl/ext-tuner/example/nccl/tuner.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NCCL_NUM_FUNCTIONS
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/nccl/ext-tuner/example/nccl/tuner.h
      type_or_value: 5 // Send/Recv not included for now
    - item_type: preproc_def
      name: NCCL_NUM_ALGORITHMS
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/nccl/ext-tuner/example/nccl/tuner.h
      type_or_value: 7 // Tree/Ring/CollNet*
    - item_type: preproc_def
      name: NCCL_ALGO_UNDEF
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/nccl/ext-tuner/example/nccl/tuner.h
      type_or_value: '-1'
    - item_type: preproc_def
      name: NCCL_ALGO_TREE
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/nccl/ext-tuner/example/nccl/tuner.h
      type_or_value: '0'
    - item_type: preproc_def
      name: NCCL_ALGO_RING
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/nccl/ext-tuner/example/nccl/tuner.h
      type_or_value: '1'
    - item_type: preproc_def
      name: NCCL_ALGO_COLLNET_DIRECT
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/nccl/ext-tuner/example/nccl/tuner.h
      type_or_value: '2'
    - item_type: preproc_def
      name: NCCL_ALGO_COLLNET_CHAIN
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/nccl/ext-tuner/example/nccl/tuner.h
      type_or_value: '3'
    - item_type: preproc_def
      name: NCCL_ALGO_NVLS
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/nccl/ext-tuner/example/nccl/tuner.h
      type_or_value: '4'
    - item_type: preproc_def
      name: NCCL_ALGO_NVLS_TREE
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/nccl/ext-tuner/example/nccl/tuner.h
      type_or_value: '5'
    - item_type: preproc_def
      name: NCCL_ALGO_PAT
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/nccl/ext-tuner/example/nccl/tuner.h
      type_or_value: '6'
    - item_type: preproc_def
      name: NCCL_NUM_PROTOCOLS
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/nccl/ext-tuner/example/nccl/tuner.h
      type_or_value: 3 // Simple/LL/LL128
    - item_type: preproc_def
      name: NCCL_PROTO_UNDEF
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/nccl/ext-tuner/example/nccl/tuner.h
      type_or_value: '-1'
    - item_type: preproc_def
      name: NCCL_PROTO_LL
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/nccl/ext-tuner/example/nccl/tuner.h
      type_or_value: '0'
    - item_type: preproc_def
      name: NCCL_PROTO_LL128
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/nccl/ext-tuner/example/nccl/tuner.h
      type_or_value: '1'
    - item_type: preproc_def
      name: NCCL_PROTO_SIMPLE
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/nccl/ext-tuner/example/nccl/tuner.h
      type_or_value: '2'
    - item_type: preproc_def
      name: NCCL_ALGO_PROTO_IGNORE
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/nccl/ext-tuner/example/nccl/tuner.h
      type_or_value: '-1.0'
    - item_type: preproc_def
      name: NCCL_TUNER_PLUGIN_SYMBOL
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/nccl/ext-tuner/example/nccl/tuner.h
      type_or_value: '"ncclTunerPlugin_v4"'
    structs:
    - fields:
      - name: '* name'
        type: char
      - name: (*init)(size_t nRanks, size_t nNodes, ncclDebugLogger_t logFunction,
          void **context)
        type: ncclResult_t
      - name: "(*getCollInfo)(void* context, ncclFunc_t collType, size_t nBytes,\n
          \                             int numPipeOps, float** collCostTable, int
          numAlgo, int numProto,\n                              int regBuff, int*
          nChannels)"
        type: ncclResult_t
      - name: (*destroy)(void* context)
        type: ncclResult_t
      item_type: struct
      name: ncclTuner_v4_t
      pos:
        line_end: 90
        line_start: 48
        source_file: /src/nccl/ext-tuner/example/nccl/tuner.h
    typedefs:
    - item_type: typedef
      name: ncclFunc_t
      pos:
        line_end: 27
        line_start: 17
        source_file: /src/nccl/ext-tuner/example/nccl/tuner.h
    - item_type: typedef
      name: ncclTuner_t
      pos:
        line_end: 92
        line_start: 92
        source_file: /src/nccl/ext-tuner/example/nccl/tuner.h
    union: []
- function_names: []
  source_file: /src/nccl/ext-tuner/example/nccl/common.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: ncclDebugLogLevel
      pos:
        line_end: 9
        line_start: 9
        source_file: /src/nccl/ext-tuner/example/nccl/common.h
    - item_type: typedef
      name: ncclDebugLogSubSys
      pos:
        line_end: 10
        line_start: 10
        source_file: /src/nccl/ext-tuner/example/nccl/common.h
    - item_type: typedef
      name: (*ncclDebugLogger_t)(ncclDebugLogLevel level, unsigned long flags, const
        char *file, int line, const char *fmt, ...)
      pos:
        line_end: 12
        line_start: 12
        source_file: /src/nccl/ext-tuner/example/nccl/common.h
      type: void
    union: []
- function_names: []
  source_file: /src/nccl/ext-tuner/example/nccl/err.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: ncclResult_t
      pos:
        line_end: 14
        line_start: 8
        source_file: /src/nccl/ext-tuner/example/nccl/err.h
    union: []
- function_names:
  - ncclResult_t::pluginInit
  - ncclResult_t::pluginDevices
  - ncclResult_t::pluginPciPath
  - ncclResult_t::pluginPtrSupport
  - ncclResult_t::pluginGetProperties
  - ncclResult_t::pluginListen
  - ncclResult_t::pluginConnect
  - ncclResult_t::pluginAccept
  - ncclResult_t::pluginRegMr
  - ncclResult_t::pluginRegMrDmaBuf
  - ncclResult_t::pluginDeregMr
  - ncclResult_t::pluginIsend
  - ncclResult_t::pluginIrecv
  - ncclResult_t::pluginIflush
  - ncclResult_t::pluginTest
  - ncclResult_t::pluginCloseSend
  - ncclResult_t::pluginCloseRecv
  - ncclResult_t::pluginCloseListen
  - ncclResult_t::pluginIrecvConsumed
  - ncclResult_t::pluginGetDeviceMr
  - ncclResult_t::pluginMakeVDevice
  - ncclResult_t::pluginInit_v9
  - ncclResult_t::pluginGetProperties_v9
  - ncclResult_t::pluginConnect_v9
  - ncclResult_t::pluginIsend_v9
  - ncclResult_t::pluginIrecv_v9
  - ncclResult_t::pluginMakeVDevice_v9
  - ncclResult_t::pluginGetProperties_v8
  - ncclResult_t::pluginIsend_v8
  - ncclResult_t::pluginIrecv_v8
  - ncclResult_t::pluginGetProperties_v7
  - ncclResult_t::pluginRegMr_v7
  - ncclResult_t::pluginGetProperties_v6
  - ncclResult_t::pluginConnect_v6
  - ncclResult_t::pluginAccept_v6
  - pluginGetProperties_v4
  - pluginIsend_v4
  - pluginIrecv_v4
  - pluginIflush_v4
  - pluginConnect_v4
  - pluginAccept_v4
  - pluginFlush
  - pluginInit_v3
  - pluginListen_v3
  - pluginConnect_v3
  source_file: /src/nccl/ext-net/example/plugin.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: __hidden
      pos:
        line_end: 9
        line_start: 8
        source_file: /src/nccl/ext-net/example/plugin.c
      type_or_value: __attribute__ ((visibility("hidden")))
    - item_type: preproc_def
      name: NCCL_PLUGIN_MAX_RECVS
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/nccl/ext-net/example/plugin.c
      type_or_value: '1'
    - item_type: preproc_def
      name: PLUGIN_NAME
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/nccl/ext-net/example/plugin.c
      type_or_value: '"Plugin"'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/ext-net/example/nccl/net_device.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NCCL_NET_DEVICE_INVALID_VERSION
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/nccl/ext-net/example/nccl/net_device.h
      type_or_value: '0x0'
    - item_type: preproc_def
      name: NCCL_NET_MTU_SIZE
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/nccl/ext-net/example/nccl/net_device.h
      type_or_value: '4096'
    - item_type: preproc_def
      name: NCCL_NET_DEVICE_UNPACK_VERSION
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/nccl/ext-net/example/nccl/net_device.h
      type_or_value: '0x7  '
    structs:
    - fields:
      - name: netDeviceType
        type: ncclNetDeviceType
      - name: netDeviceVersion
        type: int
      - name: '* handle'
        type: void
      - name: size
        type: size_t
      - name: needsProxyProgress
        type: int
      item_type: struct
      name: ncclNetDeviceHandle_v7_t
      pos:
        line_end: 24
        line_start: 18
        source_file: /src/nccl/ext-net/example/nccl/net_device.h
    typedefs:
    - item_type: typedef
      name: ncclNetDeviceType
      pos:
        line_end: 16
        line_start: 16
        source_file: /src/nccl/ext-net/example/nccl/net_device.h
    - item_type: typedef
      name: ncclNetDeviceHandle_v8_t
      pos:
        line_end: 26
        line_start: 26
        source_file: /src/nccl/ext-net/example/nccl/net_device.h
    - item_type: typedef
      name: ncclNetDeviceHandle_v9_t
      pos:
        line_end: 27
        line_start: 27
        source_file: /src/nccl/ext-net/example/nccl/net_device.h
    - item_type: typedef
      name: ncclNetDeviceHandle_v10_t
      pos:
        line_end: 28
        line_start: 28
        source_file: /src/nccl/ext-net/example/nccl/net_device.h
    - item_type: typedef
      name: ncclNetDeviceHandle_t
      pos:
        line_end: 29
        line_start: 29
        source_file: /src/nccl/ext-net/example/nccl/net_device.h
    union: []
- function_names: []
  source_file: /src/nccl/ext-net/example/nccl/net_v5.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '* name'
        type: char
      - name: (*init)(ncclDebugLogger_t logFunction)
        type: ncclResult_t
      - name: (*devices)(int* ndev)
        type: ncclResult_t
      - name: (*getProperties)(int dev, ncclNetProperties_v5_t* props)
        type: ncclResult_t
      - name: (*listen)(int dev, void* handle, void** listenComm)
        type: ncclResult_t
      - name: (*connect)(int dev, void* handle, void** sendComm)
        type: ncclResult_t
      - name: (*accept)(void* listenComm, void** recvComm)
        type: ncclResult_t
      - name: (*regMr)(void* comm, void* data, int size, int type, void** mhandle)
        type: ncclResult_t
      - name: (*deregMr)(void* comm, void* mhandle)
        type: ncclResult_t
      - name: (*isend)(void* sendComm, void* data, int size, int tag, void* mhandle,
          void** request)
        type: ncclResult_t
      - name: (*irecv)(void* recvComm, int n, void** data, int* sizes, int* tags,
          void** mhandles, void** request)
        type: ncclResult_t
      - name: (*iflush)(void* recvComm, int n, void** data, int* sizes, void** mhandles,
          void** request)
        type: ncclResult_t
      - name: (*test)(void* request, int* done, int* sizes)
        type: ncclResult_t
      - name: (*closeSend)(void* sendComm)
        type: ncclResult_t
      - name: (*closeRecv)(void* recvComm)
        type: ncclResult_t
      - name: (*closeListen)(void* listenComm)
        type: ncclResult_t
      item_type: struct
      name: ncclNet_v5_t
      pos:
        line_end: 51
        line_start: 8
        source_file: /src/nccl/ext-net/example/nccl/net_v5.h
    typedefs:
    - item_type: typedef
      name: ncclNetProperties_v5_t
      pos:
        line_end: 7
        line_start: 7
        source_file: /src/nccl/ext-net/example/nccl/net_v5.h
    union: []
- function_names: []
  source_file: /src/nccl/ext-net/example/nccl/net_v3.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NCCL_NET_MAX_REQUESTS_V3
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/nccl/ext-net/example/nccl/net_v3.h
      type_or_value: '16'
    structs:
    - fields:
      - name: '* name'
        type: char
      - name: (*init)(ncclDebugLogger_t logFunction)
        type: ncclResult_t
      - name: (*devices)(int* ndev)
        type: ncclResult_t
      - name: (*getProperties)(int dev, ncclNetProperties_v3_t* props)
        type: ncclResult_t
      - name: (*listen)(int dev, void* handle, void** listenComm)
        type: ncclResult_t
      - name: (*connect)(int dev, void* handle, void** sendComm)
        type: ncclResult_t
      - name: (*accept)(void* listenComm, void** recvComm)
        type: ncclResult_t
      - name: (*regMr)(void* comm, void* data, int size, int type, void** mhandle)
        type: ncclResult_t
      - name: (*deregMr)(void* comm, void* mhandle)
        type: ncclResult_t
      - name: (*isend)(void* sendComm, void* data, int size, void* mhandle, void**
          request)
        type: ncclResult_t
      - name: (*irecv)(void* recvComm, void* data, int size, void* mhandle, void**
          request)
        type: ncclResult_t
      - name: (*flush)(void* recvComm, void* data, int size, void* mhandle)
        type: ncclResult_t
      - name: (*test)(void* request, int* done, int* size)
        type: ncclResult_t
      - name: (*closeSend)(void* sendComm)
        type: ncclResult_t
      - name: (*closeRecv)(void* recvComm)
        type: ncclResult_t
      - name: (*closeListen)(void* listenComm)
        type: ncclResult_t
      item_type: struct
      name: ncclNet_v3_t
      pos:
        line_end: 47
        line_start: 10
        source_file: /src/nccl/ext-net/example/nccl/net_v3.h
    typedefs:
    - item_type: typedef
      name: ncclNetProperties_v3_t
      pos:
        line_end: 9
        line_start: 9
        source_file: /src/nccl/ext-net/example/nccl/net_v3.h
    union: []
- function_names: []
  source_file: /src/nccl/ext-net/example/nccl/net_v9.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NCCL_NET_MAX_DEVS_PER_NIC_V9
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/nccl/ext-net/example/nccl/net_v9.h
      type_or_value: '4'
    structs:
    - fields:
      - name: ndevs
        type: int
      - name: devs[NCCL_NET_MAX_DEVS_PER_NIC_V9]
        type: int
      item_type: struct
      name: ncclNetVDeviceProps_v9_t
      pos:
        line_end: 11
        line_start: 8
        source_file: /src/nccl/ext-net/example/nccl/net_v9.h
    - fields:
      - name: '* name'
        type: char
      - name: '* pciPath'
        type: char
      - name: guid
        type: uint64_t
      - name: ptrSupport
        type: int
      - name: regIsGlobal
        type: int
      - name: forceFlush
        type: int
      - name: speed
        type: int
      - name: port
        type: int
      - name: latency
        type: float
      - name: maxComms
        type: int
      - name: maxRecvs
        type: int
      - name: netDeviceType
        type: ncclNetDeviceType
      - name: netDeviceVersion
        type: int
      - name: vProps
        type: ncclNetVDeviceProps_v9_t
      - name: maxP2pBytes
        type: size_t
      - name: maxCollBytes
        type: size_t
      item_type: struct
      name: ncclNetProperties_v9_t
      pos:
        line_end: 31
        line_start: 13
        source_file: /src/nccl/ext-net/example/nccl/net_v9.h
    - fields:
      - name: '* name'
        type: char
      - name: (*init)(ncclDebugLogger_t logFunction)
        type: ncclResult_t
      - name: (*devices)(int* ndev)
        type: ncclResult_t
      - name: (*getProperties)(int dev, ncclNetProperties_v9_t* props)
        type: ncclResult_t
      - name: (*listen)(int dev, void* handle, void** listenComm)
        type: ncclResult_t
      - name: (*connect)(int dev, void* handle, void** sendComm, ncclNetDeviceHandle_v9_t**
          sendDevComm)
        type: ncclResult_t
      - name: (*accept)(void* listenComm, void** recvComm, ncclNetDeviceHandle_v9_t**
          recvDevComm)
        type: ncclResult_t
      - name: (*regMr)(void* comm, void* data, size_t size, int type, void** mhandle)
        type: ncclResult_t
      - name: (*regMrDmaBuf)(void* comm, void* data, size_t size, int type, uint64_t
          offset, int fd, void** mhandle)
        type: ncclResult_t
      - name: (*deregMr)(void* comm, void* mhandle)
        type: ncclResult_t
      - name: (*isend)(void* sendComm, void* data, size_t size, int tag, void* mhandle,
          void** request)
        type: ncclResult_t
      - name: (*irecv)(void* recvComm, int n, void** data, size_t* sizes, int* tags,
          void** mhandles, void** request)
        type: ncclResult_t
      - name: (*iflush)(void* recvComm, int n, void** data, int* sizes, void** mhandles,
          void** request)
        type: ncclResult_t
      - name: (*test)(void* request, int* done, int* sizes)
        type: ncclResult_t
      - name: (*closeSend)(void* sendComm)
        type: ncclResult_t
      - name: (*closeRecv)(void* recvComm)
        type: ncclResult_t
      - name: (*closeListen)(void* listenComm)
        type: ncclResult_t
      - name: (*getDeviceMr)(void* comm, void* mhandle, void** dptr_mhandle)
        type: ncclResult_t
      - name: (*irecvConsumed)(void* recvComm, int n, void* request)
        type: ncclResult_t
      - name: (*makeVDevice)(int* d, ncclNetVDeviceProps_v9_t* props)
        type: ncclResult_t
      item_type: struct
      name: ncclNet_v9_t
      pos:
        line_end: 90
        line_start: 33
        source_file: /src/nccl/ext-net/example/nccl/net_v9.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/ext-net/example/nccl/net_v4.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NCCL_NET_HANDLE_MAXSIZE_V4
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/nccl/ext-net/example/nccl/net_v4.h
      type_or_value: '64'
    structs:
    - fields:
      - name: '* name'
        type: char
      - name: '* pciPath'
        type: char
      - name: guid
        type: uint64_t
      - name: ptrSupport
        type: int
      - name: speed
        type: int
      - name: port
        type: int
      - name: maxComms
        type: int
      item_type: struct
      name: ncclNetProperties_v4_t
      pos:
        line_end: 18
        line_start: 9
        source_file: /src/nccl/ext-net/example/nccl/net_v4.h
    - fields:
      - name: '* name'
        type: char
      - name: (*init)(ncclDebugLogger_t logFunction)
        type: ncclResult_t
      - name: (*devices)(int* ndev)
        type: ncclResult_t
      - name: (*getProperties)(int dev, ncclNetProperties_v4_t* props)
        type: ncclResult_t
      - name: (*listen)(int dev, void* handle, void** listenComm)
        type: ncclResult_t
      - name: (*connect)(int dev, void* handle, void** sendComm)
        type: ncclResult_t
      - name: (*accept)(void* listenComm, void** recvComm)
        type: ncclResult_t
      - name: (*regMr)(void* comm, void* data, int size, int type, void** mhandle)
        type: ncclResult_t
      - name: (*deregMr)(void* comm, void* mhandle)
        type: ncclResult_t
      - name: (*isend)(void* sendComm, void* data, int size, void* mhandle, void**
          request)
        type: ncclResult_t
      - name: (*irecv)(void* recvComm, void* data, int size, void* mhandle, void**
          request)
        type: ncclResult_t
      - name: (*iflush)(void* recvComm, void* data, int size, void* mhandle, void**
          request)
        type: ncclResult_t
      - name: (*test)(void* request, int* done, int* size)
        type: ncclResult_t
      - name: (*closeSend)(void* sendComm)
        type: ncclResult_t
      - name: (*closeRecv)(void* recvComm)
        type: ncclResult_t
      - name: (*closeListen)(void* listenComm)
        type: ncclResult_t
      item_type: struct
      name: ncclNet_v4_t
      pos:
        line_end: 58
        line_start: 21
        source_file: /src/nccl/ext-net/example/nccl/net_v4.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/ext-net/example/nccl/common.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: ncclDebugLogLevel
      pos:
        line_end: 11
        line_start: 11
        source_file: /src/nccl/ext-net/example/nccl/common.h
    - item_type: typedef
      name: ncclDebugLogSubSys
      pos:
        line_end: 12
        line_start: 12
        source_file: /src/nccl/ext-net/example/nccl/common.h
    - item_type: typedef
      name: (*ncclDebugLogger_t)(ncclDebugLogLevel level, unsigned long flags, const
        char *file, int line, const char *fmt, ...)
      pos:
        line_end: 14
        line_start: 14
        source_file: /src/nccl/ext-net/example/nccl/common.h
      type: void
    - item_type: typedef
      name: (*ncclProfilerCallback_t)(void** eHandle, int type, void* phandle, int64_t
        pluginId, void* extData)
      pos:
        line_end: 18
        line_start: 18
        source_file: /src/nccl/ext-net/example/nccl/common.h
    union: []
- function_names: []
  source_file: /src/nccl/ext-net/example/nccl/net_v7.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '* name'
        type: char
      - name: '* pciPath'
        type: char
      - name: guid
        type: uint64_t
      - name: ptrSupport
        type: int
      - name: speed
        type: int
      - name: port
        type: int
      - name: latency
        type: float
      - name: maxComms
        type: int
      - name: maxRecvs
        type: int
      - name: netDeviceType
        type: ncclNetDeviceType
      - name: netDeviceVersion
        type: int
      item_type: struct
      name: ncclNetProperties_v7_t
      pos:
        line_end: 20
        line_start: 7
        source_file: /src/nccl/ext-net/example/nccl/net_v7.h
    - fields:
      - name: '* name'
        type: char
      - name: (*init)(ncclDebugLogger_t logFunction)
        type: ncclResult_t
      - name: (*devices)(int* ndev)
        type: ncclResult_t
      - name: (*getProperties)(int dev, ncclNetProperties_v7_t* props)
        type: ncclResult_t
      - name: (*listen)(int dev, void* handle, void** listenComm)
        type: ncclResult_t
      - name: (*connect)(int dev, void* handle, void** sendComm, ncclNetDeviceHandle_v7_t**
          sendDevComm)
        type: ncclResult_t
      - name: (*accept)(void* listenComm, void** recvComm, ncclNetDeviceHandle_v7_t**
          recvDevComm)
        type: ncclResult_t
      - name: (*regMr)(void* comm, void* data, int size, int type, void** mhandle)
        type: ncclResult_t
      - name: (*regMrDmaBuf)(void* comm, void* data, size_t size, int type, uint64_t
          offset, int fd, void** mhandle)
        type: ncclResult_t
      - name: (*deregMr)(void* comm, void* mhandle)
        type: ncclResult_t
      - name: (*isend)(void* sendComm, void* data, int size, int tag, void* mhandle,
          void** request)
        type: ncclResult_t
      - name: (*irecv)(void* recvComm, int n, void** data, int* sizes, int* tags,
          void** mhandles, void** request)
        type: ncclResult_t
      - name: (*iflush)(void* recvComm, int n, void** data, int* sizes, void** mhandles,
          void** request)
        type: ncclResult_t
      - name: (*test)(void* request, int* done, int* sizes)
        type: ncclResult_t
      - name: (*closeSend)(void* sendComm)
        type: ncclResult_t
      - name: (*closeRecv)(void* recvComm)
        type: ncclResult_t
      - name: (*closeListen)(void* listenComm)
        type: ncclResult_t
      - name: (*getDeviceMr)(void* comm, void* mhandle, void** dptr_mhandle)
        type: ncclResult_t
      - name: (*irecvConsumed)(void* recvComm, int n, void* request)
        type: ncclResult_t
      item_type: struct
      name: ncclNet_v7_t
      pos:
        line_end: 72
        line_start: 22
        source_file: /src/nccl/ext-net/example/nccl/net_v7.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/ext-net/example/nccl/err.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: ncclResult_t
      pos:
        line_end: 14
        line_start: 8
        source_file: /src/nccl/ext-net/example/nccl/err.h
    union: []
- function_names: []
  source_file: /src/nccl/ext-net/example/nccl/net_v2.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '* name'
        type: char
      - name: (*init)(ncclDebugLogger_t logFunction)
        type: ncclResult_t
      - name: (*devices)(int* ndev)
        type: ncclResult_t
      - name: (*pciPath)(int dev, char** path)
        type: ncclResult_t
      - name: (*ptrSupport)(int dev, int* supportedTypes)
        type: ncclResult_t
      - name: (*listen)(int dev, void* handle, void** listenComm)
        type: ncclResult_t
      - name: (*connect)(int dev, void* handle, void** sendComm)
        type: ncclResult_t
      - name: (*accept)(void* listenComm, void** recvComm)
        type: ncclResult_t
      - name: (*regMr)(void* comm, void* data, int size, int type, void** mhandle)
        type: ncclResult_t
      - name: (*deregMr)(void* comm, void* mhandle)
        type: ncclResult_t
      - name: (*isend)(void* sendComm, void* data, int size, void* mhandle, void**
          request)
        type: ncclResult_t
      - name: (*irecv)(void* recvComm, void* data, int size, void* mhandle, void**
          request)
        type: ncclResult_t
      - name: (*flush)(void* recvComm, void* data, int size, void* mhandle)
        type: ncclResult_t
      - name: (*test)(void* request, int* done, int* size)
        type: ncclResult_t
      - name: (*closeSend)(void* sendComm)
        type: ncclResult_t
      - name: (*closeRecv)(void* recvComm)
        type: ncclResult_t
      - name: (*closeListen)(void* listenComm)
        type: ncclResult_t
      item_type: struct
      name: ncclNet_v2_t
      pos:
        line_end: 47
        line_start: 7
        source_file: /src/nccl/ext-net/example/nccl/net_v2.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/ext-net/example/nccl/types.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: ncclDataType_t
      pos:
        line_end: 18
        line_start: 8
        source_file: /src/nccl/ext-net/example/nccl/types.h
    union: []
- function_names: []
  source_file: /src/nccl/ext-net/example/nccl/net_v8.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '* name'
        type: char
      - name: '* pciPath'
        type: char
      - name: guid
        type: uint64_t
      - name: ptrSupport
        type: int
      - name: regIsGlobal
        type: int
      - name: speed
        type: int
      - name: port
        type: int
      - name: latency
        type: float
      - name: maxComms
        type: int
      - name: maxRecvs
        type: int
      - name: netDeviceType
        type: ncclNetDeviceType
      - name: netDeviceVersion
        type: int
      item_type: struct
      name: ncclNetProperties_v8_t
      pos:
        line_end: 21
        line_start: 7
        source_file: /src/nccl/ext-net/example/nccl/net_v8.h
    - fields:
      - name: '* name'
        type: char
      - name: (*init)(ncclDebugLogger_t logFunction)
        type: ncclResult_t
      - name: (*devices)(int* ndev)
        type: ncclResult_t
      - name: (*getProperties)(int dev, ncclNetProperties_v8_t* props)
        type: ncclResult_t
      - name: (*listen)(int dev, void* handle, void** listenComm)
        type: ncclResult_t
      - name: (*connect)(int dev, void* handle, void** sendComm, ncclNetDeviceHandle_v8_t**
          sendDevComm)
        type: ncclResult_t
      - name: (*accept)(void* listenComm, void** recvComm, ncclNetDeviceHandle_v8_t**
          recvDevComm)
        type: ncclResult_t
      - name: (*regMr)(void* comm, void* data, size_t size, int type, void** mhandle)
        type: ncclResult_t
      - name: (*regMrDmaBuf)(void* comm, void* data, size_t size, int type, uint64_t
          offset, int fd, void** mhandle)
        type: ncclResult_t
      - name: (*deregMr)(void* comm, void* mhandle)
        type: ncclResult_t
      - name: (*isend)(void* sendComm, void* data, int size, int tag, void* mhandle,
          void** request)
        type: ncclResult_t
      - name: (*irecv)(void* recvComm, int n, void** data, int* sizes, int* tags,
          void** mhandles, void** request)
        type: ncclResult_t
      - name: (*iflush)(void* recvComm, int n, void** data, int* sizes, void** mhandles,
          void** request)
        type: ncclResult_t
      - name: (*test)(void* request, int* done, int* sizes)
        type: ncclResult_t
      - name: (*closeSend)(void* sendComm)
        type: ncclResult_t
      - name: (*closeRecv)(void* recvComm)
        type: ncclResult_t
      - name: (*closeListen)(void* listenComm)
        type: ncclResult_t
      - name: (*getDeviceMr)(void* comm, void* mhandle, void** dptr_mhandle)
        type: ncclResult_t
      - name: (*irecvConsumed)(void* recvComm, int n, void* request)
        type: ncclResult_t
      item_type: struct
      name: ncclNet_v8_t
      pos:
        line_end: 76
        line_start: 23
        source_file: /src/nccl/ext-net/example/nccl/net_v8.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/ext-net/example/nccl/net_v6.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '* name'
        type: char
      - name: '* pciPath'
        type: char
      - name: guid
        type: uint64_t
      - name: ptrSupport
        type: int
      - name: speed
        type: int
      - name: port
        type: int
      - name: latency
        type: float
      - name: maxComms
        type: int
      - name: maxRecvs
        type: int
      item_type: struct
      name: ncclNetProperties_v6_t
      pos:
        line_end: 18
        line_start: 7
        source_file: /src/nccl/ext-net/example/nccl/net_v6.h
    - fields:
      - name: '* name'
        type: char
      - name: (*init)(ncclDebugLogger_t logFunction)
        type: ncclResult_t
      - name: (*devices)(int* ndev)
        type: ncclResult_t
      - name: (*getProperties)(int dev, ncclNetProperties_v6_t* props)
        type: ncclResult_t
      - name: (*listen)(int dev, void* handle, void** listenComm)
        type: ncclResult_t
      - name: (*connect)(int dev, void* handle, void** sendComm)
        type: ncclResult_t
      - name: (*accept)(void* listenComm, void** recvComm)
        type: ncclResult_t
      - name: (*regMr)(void* comm, void* data, int size, int type, void** mhandle)
        type: ncclResult_t
      - name: (*regMrDmaBuf)(void* comm, void* data, size_t size, int type, uint64_t
          offset, int fd, void** mhandle)
        type: ncclResult_t
      - name: (*deregMr)(void* comm, void* mhandle)
        type: ncclResult_t
      - name: (*isend)(void* sendComm, void* data, int size, int tag, void* mhandle,
          void** request)
        type: ncclResult_t
      - name: (*irecv)(void* recvComm, int n, void** data, int* sizes, int* tags,
          void** mhandles, void** request)
        type: ncclResult_t
      - name: (*iflush)(void* recvComm, int n, void** data, int* sizes, void** mhandles,
          void** request)
        type: ncclResult_t
      - name: (*test)(void* request, int* done, int* sizes)
        type: ncclResult_t
      - name: (*closeSend)(void* sendComm)
        type: ncclResult_t
      - name: (*closeRecv)(void* recvComm)
        type: ncclResult_t
      - name: (*closeListen)(void* listenComm)
        type: ncclResult_t
      item_type: struct
      name: ncclNet_v6_t
      pos:
        line_end: 65
        line_start: 20
        source_file: /src/nccl/ext-net/example/nccl/net_v6.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/ext-net/example/nccl/net.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NCCL_NET_HANDLE_MAXSIZE
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/nccl/ext-net/example/nccl/net.h
      type_or_value: '128'
    - item_type: preproc_def
      name: NCCL_MAX_NET_SIZE_BYTES
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/nccl/ext-net/example/nccl/net.h
      type_or_value: (1*1024*1024*1024*1024L) //1TB
    - item_type: preproc_def
      name: NCCL_NET_OPTIONAL_RECV_COMPLETION
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/nccl/ext-net/example/nccl/net.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: NCCL_PTR_HOST
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/nccl/ext-net/example/nccl/net.h
      type_or_value: '0x1'
    - item_type: preproc_def
      name: NCCL_PTR_CUDA
      pos:
        line_end: 20
        line_start: 19
        source_file: /src/nccl/ext-net/example/nccl/net.h
      type_or_value: '0x2'
    - item_type: preproc_def
      name: NCCL_PTR_DMABUF
      pos:
        line_end: 21
        line_start: 20
        source_file: /src/nccl/ext-net/example/nccl/net.h
      type_or_value: '0x4'
    - item_type: preproc_def
      name: NCCL_NET_MAX_REQUESTS
      pos:
        line_end: 24
        line_start: 23
        source_file: /src/nccl/ext-net/example/nccl/net.h
      type_or_value: '32'
    structs: []
    typedefs:
    - item_type: typedef
      name: ncclNet_t
      pos:
        line_end: 35
        line_start: 35
        source_file: /src/nccl/ext-net/example/nccl/net.h
    - item_type: typedef
      name: ncclNetProperties_t
      pos:
        line_end: 36
        line_start: 36
        source_file: /src/nccl/ext-net/example/nccl/net.h
    - item_type: typedef
      name: ncclNetVDeviceProps_t
      pos:
        line_end: 37
        line_start: 37
        source_file: /src/nccl/ext-net/example/nccl/net.h
    - item_type: typedef
      name: ncclNetCommConfig_t
      pos:
        line_end: 38
        line_start: 38
        source_file: /src/nccl/ext-net/example/nccl/net.h
    union: []
- function_names: []
  source_file: /src/nccl/ext-net/example/nccl/net_v10.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NCCL_NET_MAX_DEVS_PER_NIC_V10
      pos:
        line_end: 8
        line_start: 7
        source_file: /src/nccl/ext-net/example/nccl/net_v10.h
      type_or_value: '4'
    - item_type: preproc_def
      name: NCCL_NET_TRAFFIC_CLASS_UNDEF
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/nccl/ext-net/example/nccl/net_v10.h
      type_or_value: '-1'
    structs:
    - fields:
      - name: ndevs
        type: int
      - name: devs[NCCL_NET_MAX_DEVS_PER_NIC_V10]
        type: int
      item_type: struct
      name: ncclNetVDeviceProps_v10_t
      pos:
        line_end: 11
        line_start: 8
        source_file: /src/nccl/ext-net/example/nccl/net_v10.h
    - fields:
      - name: trafficClass
        type: int
      item_type: struct
      name: ncclNetCommConfig_v10_t
      pos:
        line_end: 18
        line_start: 15
        source_file: /src/nccl/ext-net/example/nccl/net_v10.h
    - fields:
      - name: '* name'
        type: char
      - name: '* pciPath'
        type: char
      - name: guid
        type: uint64_t
      - name: ptrSupport
        type: int
      - name: regIsGlobal
        type: int
      - name: forceFlush
        type: int
      - name: speed
        type: int
      - name: port
        type: int
      - name: latency
        type: float
      - name: maxComms
        type: int
      - name: maxRecvs
        type: int
      - name: netDeviceType
        type: ncclNetDeviceType
      - name: netDeviceVersion
        type: int
      - name: vProps
        type: ncclNetVDeviceProps_v10_t
      - name: maxP2pBytes
        type: size_t
      - name: maxCollBytes
        type: size_t
      item_type: struct
      name: ncclNetProperties_v10_t
      pos:
        line_end: 39
        line_start: 21
        source_file: /src/nccl/ext-net/example/nccl/net_v10.h
    - fields:
      - name: '* name'
        type: char
      - name: (*init)(ncclDebugLogger_t logFunction, ncclProfilerCallback_t profFunction)
        type: ncclResult_t
      - name: (*devices)(int* ndev)
        type: ncclResult_t
      - name: (*getProperties)(int dev, ncclNetProperties_v10_t* props)
        type: ncclResult_t
      - name: (*listen)(int dev, void* handle, void** listenComm)
        type: ncclResult_t
      - name: (*connect)(int dev, ncclNetCommConfig_v10_t* config, void* handle, void**
          sendComm, ncclNetDeviceHandle_v10_t** sendDevComm)
        type: ncclResult_t
      - name: (*accept)(void* listenComm, void** recvComm, ncclNetDeviceHandle_v10_t**
          recvDevComm)
        type: ncclResult_t
      - name: (*regMr)(void* comm, void* data, size_t size, int type, void** mhandle)
        type: ncclResult_t
      - name: (*regMrDmaBuf)(void* comm, void* data, size_t size, int type, uint64_t
          offset, int fd, void** mhandle)
        type: ncclResult_t
      - name: (*deregMr)(void* comm, void* mhandle)
        type: ncclResult_t
      - name: (*isend)(void* sendComm, void* data, size_t size, int tag, void* mhandle,
          void* phandle, void** request)
        type: ncclResult_t
      - name: (*irecv)(void* recvComm, int n, void** data, size_t* sizes, int* tags,
          void** mhandles, void** phandles, void** request)
        type: ncclResult_t
      - name: (*iflush)(void* recvComm, int n, void** data, int* sizes, void** mhandles,
          void** request)
        type: ncclResult_t
      - name: (*test)(void* request, int* done, int* sizes)
        type: ncclResult_t
      - name: (*closeSend)(void* sendComm)
        type: ncclResult_t
      - name: (*closeRecv)(void* recvComm)
        type: ncclResult_t
      - name: (*closeListen)(void* listenComm)
        type: ncclResult_t
      - name: (*getDeviceMr)(void* comm, void* mhandle, void** dptr_mhandle)
        type: ncclResult_t
      - name: (*irecvConsumed)(void* recvComm, int n, void* request)
        type: ncclResult_t
      - name: (*makeVDevice)(int* d, ncclNetVDeviceProps_v10_t* props)
        type: ncclResult_t
      item_type: struct
      name: ncclNet_v10_t
      pos:
        line_end: 98
        line_start: 41
        source_file: /src/nccl/ext-net/example/nccl/net_v10.h
    typedefs: []
    union: []
- function_names:
  - printGroupEventHeader
  - printGroupEventTrailer
  - printCollEventHeader
  - printCollEventTrailer
  - printP2pEventHeader
  - printP2pEventTrailer
  - printProxyOpEventHeader
  - printProxyOpEventTrailer
  - printProxyStepEventHeader
  - printProxyStepEventTrailer
  - printKernelChEventHeader
  - printKernelChEventTrailer
  - printProxyCtrlEvent
  - printNetPluginEvent
  - debugEvent
  - printEvent
  source_file: /src/nccl/ext-profiler/example/print_event.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: __hidden
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/nccl/ext-profiler/example/print_event.c
      type_or_value: __attribute__ ((visibility("hidden")))
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/ext-profiler/example/print_event.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - taskEventQueueEmpty
  - taskEventQueueEnqueue
  - taskEventQueueHead
  - taskEventQueueDequeue
  source_file: /src/nccl/ext-profiler/example/event.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - INFO
  - gettime
  - ncclResult_t::exampleProfilerInit
  - ncclResult_t::exampleProfilerFinalize
  - ncclResult_t::exampleProfilerStartEvent
  - updateEvent
  - ncclResult_t::exampleProfilerStopEvent
  - ncclResult_t::exampleProfilerRecordEventState
  - exampleProfilerStart
  - exampleProfilerStop
  source_file: /src/nccl/ext-profiler/example/plugin.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: __hidden
      pos:
        line_end: 19
        line_start: 18
        source_file: /src/nccl/ext-profiler/example/plugin.c
      type_or_value: __attribute__ ((visibility("hidden")))
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/ext-profiler/example/event.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_CHANNELS
      pos:
        line_end: 15
        line_start: 14
        source_file: /src/nccl/ext-profiler/example/event.h
      type_or_value: '32'
    - item_type: preproc_def
      name: MAX_STEPS
      pos:
        line_end: 16
        line_start: 15
        source_file: /src/nccl/ext-profiler/example/event.h
      type_or_value: '16'
    - item_type: preproc_def
      name: MAX_OPS
      pos:
        line_end: 17
        line_start: 16
        source_file: /src/nccl/ext-profiler/example/event.h
      type_or_value: 16 // Up to 64K ranks for PAT
    - item_type: preproc_def
      name: MAX_EVENTS_PER_REQ
      pos:
        line_end: 18
        line_start: 17
        source_file: /src/nccl/ext-profiler/example/event.h
      type_or_value: (8)
    - item_type: preproc_def
      name: PROXY_STEP_SEND_GPU_WAIT
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/nccl/ext-profiler/example/event.h
      type_or_value: '0'
    - item_type: preproc_def
      name: PROXY_STEP_SEND_PEER_WAIT
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/nccl/ext-profiler/example/event.h
      type_or_value: '1'
    - item_type: preproc_def
      name: PROXY_STEP_SEND_WAIT
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/nccl/ext-profiler/example/event.h
      type_or_value: '2'
    - item_type: preproc_def
      name: PROXY_STEP_RECV_WAIT
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/nccl/ext-profiler/example/event.h
      type_or_value: '0'
    - item_type: preproc_def
      name: PROXY_STEP_RECV_FLUSH_WAIT
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/nccl/ext-profiler/example/event.h
      type_or_value: '1'
    - item_type: preproc_def
      name: PROXY_STEP_RECV_GPU_WAIT
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/nccl/ext-profiler/example/event.h
      type_or_value: '2'
    - item_type: preproc_def
      name: PROXY_STEP_MAX_STATES
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/nccl/ext-profiler/example/event.h
      type_or_value: '3'
    structs:
    - fields:
      - name: type
        type: uint8_t
      - name: pluginType
        type: int
      - name: pluginVer
        type: int
      - name: pluginEvent
        type: uint8_t
      - name: startTs
        type: double
      - name: stopTs
        type: double
      - name: '* parent'
        type: struct proxyStep
      item_type: struct
      name: netPlugin
      pos:
        line_end: 44
        line_start: 22
        source_file: /src/nccl/ext-profiler/example/event.h
    - fields:
      - name: type
        type: uint8_t
      - name: channelId
        type: uint8_t
      - name: '* parent'
        type: struct taskEventBase
      - name: startTs
        type: double
      - name: stopTs
        type: double
      - name: startGpuClk
        type: uint64_t
      - name: stopGpuClk
        type: uint64_t
      item_type: struct
      name: kernelCh
      pos:
        line_end: 54
        line_start: 46
        source_file: /src/nccl/ext-profiler/example/event.h
    - fields:
      - name: type
        type: uint8_t
      - name: state
        type: int
      - name: step
        type: int
      - name: isSend
        type: int
      - name: timestamp[PROXY_STEP_MAX_STATES]
        type: double
      - name: startTs
        type: double
      - name: stopTs
        type: double
      - name: '* parent'
        type: struct proxyOp
      - name: net[MAX_EVENTS_PER_REQ]
        type: struct netPlugin
      - name: nNetEvents
        type: int
      item_type: struct
      name: proxyStep
      pos:
        line_end: 75
        line_start: 64
        source_file: /src/nccl/ext-profiler/example/event.h
    - fields:
      - name: type
        type: uint8_t
      - name: channelId
        type: uint8_t
      - name: pid
        type: pid_t
      - name: rank
        type: int
      - name: peer
        type: int
      - name: nSteps
        type: int
      - name: chunkSize
        type: int
      - name: isSend
        type: int
      - name: transSize
        type: size_t
      - name: startTs
        type: double
      - name: progrTs
        type: double
      - name: stopTs
        type: double
      - name: stepCount
        type: int
      - name: step[MAX_STEPS]
        type: struct proxyStep
      - name: '* parent'
        type: struct taskEventBase
      item_type: struct
      name: proxyOp
      pos:
        line_end: 93
        line_start: 77
        source_file: /src/nccl/ext-profiler/example/event.h
    - fields:
      - name: type
        type: uint8_t
      - name: '* ctx'
        type: struct context
      - name: startTs
        type: double
      - name: stopTs
        type: double
      - name: state
        type: int
      - name: appended
        type: int
      item_type: struct
      name: proxyCtrl
      pos:
        line_end: 105
        line_start: 98
        source_file: /src/nccl/ext-profiler/example/event.h
    - fields:
      - name: type
        type: uint8_t
      - name: rank
        type: int
      - name: '* func'
        type: char
      - name: refCount
        type: int
      - name: '* parent'
        type: struct group
      - name: '* next'
        type: struct taskEventBase
      - name: startTs
        type: double
      - name: stopTs
        type: double
      item_type: struct
      name: taskEventBase
      pos:
        line_end: 117
        line_start: 108
        source_file: /src/nccl/ext-profiler/example/event.h
    - fields:
      - name: base
        type: struct taskEventBase
      - name: seqNumber
        type: uint64_t
      - name: '* sendBuff'
        type: void
      - name: '* recvBuff'
        type: void
      - name: count
        type: size_t
      - name: root
        type: int
      - name: '* datatype'
        type: char
      - name: nChannels
        type: uint8_t
      - name: '* algo'
        type: char
      - name: '* proto'
        type: char
      - name: nWarps
        type: int
      - name: op[MAX_CHANNELS][2*MAX_OPS]
        type: struct proxyOp
      - name: nProxyOps[MAX_CHANNELS]
        type: int
      - name: kernel[MAX_CHANNELS]
        type: struct kernelCh
      item_type: struct
      name: collective
      pos:
        line_end: 134
        line_start: 119
        source_file: /src/nccl/ext-profiler/example/event.h
    - fields:
      - name: base
        type: struct taskEventBase
      - name: func
        type: uint8_t
      - name: '* buff'
        type: void
      - name: count
        type: size_t
      - name: '* datatype'
        type: char
      - name: peer
        type: int
      - name: nChannels
        type: uint8_t
      - name: op[MAX_CHANNELS]
        type: struct proxyOp
      - name: kernel[MAX_CHANNELS]
        type: struct kernelCh
      item_type: struct
      name: p2p
      pos:
        line_end: 146
        line_start: 136
        source_file: /src/nccl/ext-profiler/example/event.h
    - fields:
      - name: type
        type: uint8_t
      - name: '* ctx'
        type: struct context
      - name: groupId
        type: int
      - name: refCount
        type: int
      - name: '* eventHead'
        type: struct taskEventBase
      - name: '* eventTail'
        type: struct taskEventBase
      - name: startTs
        type: double
      - name: stopTs
        type: double
      - name: '* next'
        type: struct group
      item_type: struct
      name: group
      pos:
        line_end: 158
        line_start: 148
        source_file: /src/nccl/ext-profiler/example/event.h
    - fields:
      - name: '* commName'
        type: char
      - name: commHash
        type: uint64_t
      - name: nranks
        type: int
      - name: rank
        type: int
      - name: groupPoolSize
        type: int
      - name: groupPoolBase
        type: int
      - name: groupPoolIndex
        type: int
      - name: '* groupPool'
        type: struct group
      - name: collPoolSize
        type: int
      - name: collPoolBase
        type: int
      - name: collPoolIndex
        type: int
      - name: '* collPool'
        type: struct collective
      - name: p2pPoolSize
        type: int
      - name: p2pPoolBase
        type: int
      - name: p2pPoolIndex
        type: int
      - name: '* p2pPool'
        type: struct p2p
      - name: proxyCtrlPoolSize
        type: int
      - name: proxyCtrlPoolBase
        type: int
      - name: proxyCtrlPoolIndex
        type: int
      - name: '* proxyCtrlPool'
        type: struct proxyCtrl
      item_type: struct
      name: context
      pos:
        line_end: 186
        line_start: 161
        source_file: /src/nccl/ext-profiler/example/event.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/ext-profiler/example/plugin.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/ext-profiler/example/nccl/profiler_net.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NCCL_PROFILER_NET_VER_BITS
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/nccl/ext-profiler/example/nccl/profiler_net.h
      type_or_value: (16)
    - item_type: preproc_def
      name: NCCL_PROFILER_NET_VER_MASK
      pos:
        line_end: 11
        line_start: 10
        source_file: /src/nccl/ext-profiler/example/nccl/profiler_net.h
      type_or_value: (~0U >> NCCL_PROFILER_NET_VER_BITS)
    - item_type: preproc_def
      name: NCCL_PROFILER_NET_TYPE_MASK
      pos:
        line_end: 12
        line_start: 11
        source_file: /src/nccl/ext-profiler/example/nccl/profiler_net.h
      type_or_value: (~0U << NCCL_PROFILER_NET_VER_BITS)
    structs: []
    typedefs:
    - item_type: typedef
      name: ncclProfilerNetType
      pos:
        line_end: 16
        line_start: 13
        source_file: /src/nccl/ext-profiler/example/nccl/profiler_net.h
    union: []
- function_names: []
  source_file: /src/nccl/ext-profiler/example/nccl/profiler_v1.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: type
        type: uint8_t
      - name: '* parentObj'
        type: void
      - name: rank
        type: int
      item_type: struct
      name: ncclProfilerEventDescr_v1_t
      pos:
        line_end: 59
        line_start: 11
        source_file: /src/nccl/ext-profiler/example/nccl/profiler_v1.h
    - fields:
      - name: '* name'
        type: char
      - name: (*init)(void** context, int* eActivationMask)
        type: ncclResult_t
      - name: (*startEvent)(void* context, void** eHandle, ncclProfilerEventDescr_v1_t*
          eDescr)
        type: ncclResult_t
      - name: (*stopEvent)(void* eHandle)
        type: ncclResult_t
      - name: (*recordEventState)(void* eHandle, ncclProfilerEventState_v1_t eState,
          ncclProfilerEventStateArgs_v1_t* eStateArgs)
        type: ncclResult_t
      - name: (*finalize)(void* context)
        type: ncclResult_t
      item_type: struct
      name: ncclProfiler_v1_t
      pos:
        line_end: 106
        line_start: 72
        source_file: /src/nccl/ext-profiler/example/nccl/profiler_v1.h
    typedefs: []
    union:
    - fields:
      - name: proxyOp
        type: "struct {\n    size_t transSize;\n    int steps;\n  }"
      - name: proxyCtrl
        type: "struct {\n    int appendedProxyOps;\n  }"
      item_type: union
      name: ncclProfilerEventStateArgs_v1_t
      pos:
        line_end: 70
        line_start: 61
        source_file: /src/nccl/ext-profiler/example/nccl/profiler_v1.h
- function_names: []
  source_file: /src/nccl/ext-profiler/example/nccl/profiler_v3.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: type
        type: uint8_t
      - name: '* parentObj'
        type: void
      - name: rank
        type: int
      item_type: struct
      name: ncclProfilerEventDescr_v3_t
      pos:
        line_end: 64
        line_start: 11
        source_file: /src/nccl/ext-profiler/example/nccl/profiler_v3.h
    - fields:
      - name: '* name'
        type: char
      - name: (*init)(void** context, int* eActivationMask)
        type: ncclResult_t
      - name: (*startEvent)(void* context, void** eHandle, ncclProfilerEventDescr_v3_t*
          eDescr)
        type: ncclResult_t
      - name: (*stopEvent)(void* eHandle)
        type: ncclResult_t
      - name: (*recordEventState)(void* eHandle, ncclProfilerEventState_v3_t eState,
          ncclProfilerEventStateArgs_v3_t* eStateArgs)
        type: ncclResult_t
      - name: (*finalize)(void* context)
        type: ncclResult_t
      item_type: struct
      name: ncclProfiler_v3_t
      pos:
        line_end: 111
        line_start: 77
        source_file: /src/nccl/ext-profiler/example/nccl/profiler_v3.h
    typedefs: []
    union:
    - fields:
      - name: proxyOp
        type: "struct {\n    size_t transSize;\n    int steps;\n  }"
      - name: proxyCtrl
        type: "struct {\n    int appendedProxyOps;\n  }"
      item_type: union
      name: ncclProfilerEventStateArgs_v3_t
      pos:
        line_end: 75
        line_start: 66
        source_file: /src/nccl/ext-profiler/example/nccl/profiler_v3.h
- function_names: []
  source_file: /src/nccl/ext-profiler/example/nccl/net_socket_v1.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NCCL_PROFILER_NET_SOCKET_VER
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/nccl/ext-profiler/example/nccl/net_socket_v1.h
      type_or_value: '1'
    structs:
    - fields:
      - name: type
        type: uint8_t
      item_type: struct
      name: ncclProfilerNetSockDescr_v1_t
      pos:
        line_end: 29
        line_start: 20
        source_file: /src/nccl/ext-profiler/example/nccl/net_socket_v1.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/ext-profiler/example/nccl/profiler_v4.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: type
        type: uint8_t
      - name: '* parentObj'
        type: void
      - name: rank
        type: int
      item_type: struct
      name: ncclProfilerEventDescr_v4_t
      pos:
        line_end: 60
        line_start: 9
        source_file: /src/nccl/ext-profiler/example/nccl/profiler_v4.h
    - fields:
      - name: '* name'
        type: char
      - name: (*init)(void** context, int* eActivationMask, const char* commName,
          uint64_t commHash, int nNodes, int nranks, int rank, ncclDebugLogger_t logfn)
        type: ncclResult_t
      - name: (*startEvent)(void* context, void** eHandle, ncclProfilerEventDescr_v4_t*
          eDescr)
        type: ncclResult_t
      - name: (*stopEvent)(void* eHandle)
        type: ncclResult_t
      - name: (*recordEventState)(void* eHandle, ncclProfilerEventState_v4_t eState,
          ncclProfilerEventStateArgs_v4_t* eStateArgs)
        type: ncclResult_t
      - name: (*finalize)(void* context)
        type: ncclResult_t
      item_type: struct
      name: ncclProfiler_v4_t
      pos:
        line_end: 120
        line_start: 80
        source_file: /src/nccl/ext-profiler/example/nccl/profiler_v4.h
    typedefs: []
    union:
    - fields:
      - name: proxyStep
        type: "struct {\n    size_t transSize;\n  }"
      - name: proxyCtrl
        type: "struct {\n    int appendedProxyOps;\n  }"
      - name: netPlugin
        type: "struct {\n    void* data;\n  }"
      - name: kernelCh
        type: "struct {\n    uint64_t pTimer;\n  }"
      item_type: union
      name: ncclProfilerEventStateArgs_v4_t
      pos:
        line_end: 78
        line_start: 62
        source_file: /src/nccl/ext-profiler/example/nccl/profiler_v4.h
- function_names: []
  source_file: /src/nccl/ext-profiler/example/nccl/net_ib_v1.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NCCL_PROFILER_NET_IB_VER
      pos:
        line_end: 10
        line_start: 9
        source_file: /src/nccl/ext-profiler/example/nccl/net_ib_v1.h
      type_or_value: '1'
    structs:
    - fields:
      - name: type
        type: uint8_t
      item_type: struct
      name: ncclProfilerNetIbDescr_v1_t
      pos:
        line_end: 31
        line_start: 20
        source_file: /src/nccl/ext-profiler/example/nccl/net_ib_v1.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/nccl/ext-profiler/example/nccl/common.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: ncclDebugLogLevel
      pos:
        line_end: 9
        line_start: 9
        source_file: /src/nccl/ext-profiler/example/nccl/common.h
    - item_type: typedef
      name: ncclDebugLogSubSys
      pos:
        line_end: 10
        line_start: 10
        source_file: /src/nccl/ext-profiler/example/nccl/common.h
    - item_type: typedef
      name: (*ncclDebugLogger_t)(ncclDebugLogLevel level, unsigned long flags, const
        char *file, int line, const char *fmt, ...)
      pos:
        line_end: 12
        line_start: 12
        source_file: /src/nccl/ext-profiler/example/nccl/common.h
      type: void
    union: []
- function_names: []
  source_file: /src/nccl/ext-profiler/example/nccl/err.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: ncclResult_t
      pos:
        line_end: 16
        line_start: 10
        source_file: /src/nccl/ext-profiler/example/nccl/err.h
    union: []
- function_names: []
  source_file: /src/nccl/ext-profiler/example/nccl/profiler_v2.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: type
        type: uint8_t
      - name: '* parentObj'
        type: void
      - name: rank
        type: int
      item_type: struct
      name: ncclProfilerEventDescr_v2_t
      pos:
        line_end: 56
        line_start: 11
        source_file: /src/nccl/ext-profiler/example/nccl/profiler_v2.h
    - fields:
      - name: '* name'
        type: char
      - name: (*init)(void** context, int* eActivationMask)
        type: ncclResult_t
      - name: (*startEvent)(void* context, void** eHandle, ncclProfilerEventDescr_v2_t*
          eDescr)
        type: ncclResult_t
      - name: (*stopEvent)(void* eHandle)
        type: ncclResult_t
      - name: (*recordEventState)(void* eHandle, ncclProfilerEventState_v2_t eState,
          ncclProfilerEventStateArgs_v2_t* eStateArgs)
        type: ncclResult_t
      - name: (*finalize)(void* context)
        type: ncclResult_t
      item_type: struct
      name: ncclProfiler_v2_t
      pos:
        line_end: 103
        line_start: 69
        source_file: /src/nccl/ext-profiler/example/nccl/profiler_v2.h
    typedefs: []
    union:
    - fields:
      - name: proxyOp
        type: "struct {\n    size_t transSize;\n    int steps;\n  }"
      - name: proxyCtrl
        type: "struct {\n    int appendedProxyOps;\n  }"
      item_type: union
      name: ncclProfilerEventStateArgs_v2_t
      pos:
        line_end: 67
        line_start: 58
        source_file: /src/nccl/ext-profiler/example/nccl/profiler_v2.h
- function_names: []
  source_file: /src/nccl/ext-profiler/example/nccl/profiler.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: ncclProfilerEventState_t
      pos:
        line_end: 58
        line_start: 26
        source_file: /src/nccl/ext-profiler/example/nccl/profiler.h
    - item_type: typedef
      name: ncclProfilerEventState_v1_t
      pos:
        line_end: 60
        line_start: 60
        source_file: /src/nccl/ext-profiler/example/nccl/profiler.h
    - item_type: typedef
      name: ncclProfilerEventState_v2_t
      pos:
        line_end: 61
        line_start: 61
        source_file: /src/nccl/ext-profiler/example/nccl/profiler.h
    - item_type: typedef
      name: ncclProfilerEventState_v3_t
      pos:
        line_end: 62
        line_start: 62
        source_file: /src/nccl/ext-profiler/example/nccl/profiler.h
    - item_type: typedef
      name: ncclProfilerEventState_v4_t
      pos:
        line_end: 63
        line_start: 63
        source_file: /src/nccl/ext-profiler/example/nccl/profiler.h
    - item_type: typedef
      name: ncclProfiler_t
      pos:
        line_end: 71
        line_start: 71
        source_file: /src/nccl/ext-profiler/example/nccl/profiler.h
    - item_type: typedef
      name: ncclProfilerEventDescr_t
      pos:
        line_end: 72
        line_start: 72
        source_file: /src/nccl/ext-profiler/example/nccl/profiler.h
    - item_type: typedef
      name: ncclProfilerEventStateArgs_t
      pos:
        line_end: 73
        line_start: 73
        source_file: /src/nccl/ext-profiler/example/nccl/profiler.h
    union: []
- function_names: []
  source_file: /src/nccl/ext-profiler/example/nccl/types.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: ncclDataType_t
      pos:
        line_end: 18
        line_start: 8
        source_file: /src/nccl/ext-profiler/example/nccl/types.h
    union: []
